{"version":3,"file":"6095.e23e297e50ac1218.js","mappings":"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","names":["$","jQuery","$window","window","$document","document","extend","isFn","isFunction","mathMax","Math","max","mathMin","min","mathRound","round","getId","ids","nextId","element","isTypeOf","obj","type","isInstanceOf","isHTMLElement","nodeType","getHTMLElement","undefined","reduce","elements","fn","current","each","idx","call","equal","obj1","obj2","props","i","l","prop","constructor","length","equals","Rect","left","top","width","height","this","right","bottom","Fractions","visible","viewport","possible","rects","Group","els","prototype","that","area","relativeTo","rect","intersection","envelope","ofContent","inContentSpace","scrollWidth","scrollHeight","offsetLeft","scrollLeft","offsetTop","scrollTop","ofViewport","clientWidth","clientHeight","ofElement","$element","is","offset","outerWidth","outerHeight","fracsEqual","rectsEqual","of","intersectionArea","possibleArea","rectProps","fracsProps","getValue","property","inArray","sortAscending","entry1","entry2","val","sortDescending","ScrollState","content","w","h","Viewport","el","sorted","descending","map","sort","best","scrollState","scrollTo","duration","$el","isNaN","stop","animate","scroll","scrollToRect","paddingLeft","paddingTop","scrollToElement","callbacksMixIn","init","callbacks","Callbacks","currVal","prevVal","checkProxy","proxy","check","autoCheck","bind","callback","add","unbind","remove","empty","trigger","fireWith","context","event","value","updatedValue","$autoTarget","autoEvents","on","FracsCallbacks","GroupCallbacks","ScrollStateCallbacks","namespace","options","slice","settings","applyMethod","statics","methods","plug","version","fracs","action","ns","cbs","data","$this","pushStack","isNumeric","scrollToThis","softLink","filter","$a","attr","ascending","entry","defaultStatic","defaultMethod","args","methodName","apply","error","arguments","method","modplug","prev","addClassDelay","className","delay","$addClassDelayElement","$addClassName","addClass","setTimeout","removeClass","SectionScrollHelper","configuration","sections","arrows","arrowTop","arrowDown","wofContainer","doAutoScroll","addEventListener","reset","resetScrollArrows","removePluginEventListeners","removeEventListener","collectSections","scrollSmartWoFContainer","off","addPluginEventListeners","calculatePositionOfWoFContainer","checkAllSectionsInWoFContainer","find","contentSelector","eventHelper","deferredEmit","sectionSelector","setSectionsData","minSectionCount","createWheelOfFortuneContainer","appendSectionsIntoWoFContainer","hide","append","scaleSmartWoFContainer","show","onMouseEnterOnWoFContainer","onMouseLeaveOnWoFContainer","getScrollPositionForWoFContainer","percentageOfElement","pageY","currentTarget","checkArrowAndWoFContainerStateAfterScrolling","onMouseMoveOnWoFContainer","validSections","index","section","currentSection","possibleSections","selectorClass","sectionConfig","hasClass","header","push","innerHeight","actual","createScrollArrows","htmlComposer","generateDiv","after","correctPositionOfScrollArrows","css","pageYOffset","pageXOffset","arrowOffset","x","createSectionLink","children","sectionGroup","checkVisibilityOfSectionGroup","sectionParam","wofElement","doUpdateSection","text","onWoFElementClick","onWoFElementEnter","onWoFElementLeave","correctHorizontalPositionOfWofContainer","correctVerticalPositionOfWofContainer","verticalPosition","position","innerWidth","wofContainerOffset","windowHeight","sectionHeight","pluginPanelData","dfd","Deferred","scrollPromise","promise","when","then","scrollHelper","scrollpoint","scrollToPosition","containsNoError","parent","getState","onClick","sectionGroupTop","wrapperOffsetTop","wrapperHeight","toScroll","lastSectionGroupInWoFContainerInViewport","last","first","__WEBPACK_DEFAULT_EXPORT__"],"ignoreList":[],"sourceRoot":"webpack:///","sources":["./generated-src/legacy/default/helper/jquery.fracs.ts","./generated-src/legacy/default/helper/sectionScrollHelper.ts"],"sourcesContent":["// @ts-nocheck\nexport {};\n\n/* jQuery.fracs 0.15.0 - http://larsjung.de/jquery-fracs/ */\n(function () {\n\t'use strict';\n\n\t// Some often used references.\n\tvar $ = jQuery;\n\tvar $window = $(window);\n\tvar $document = $(document);\n\tvar extend = $.extend;\n\tvar isFn = $.isFunction;\n\tvar mathMax = Math.max;\n\tvar mathMin = Math.min;\n\tvar mathRound = Math.round;\n\n\tvar getId = (function () {\n\n\t\tvar ids = {};\n\t\tvar nextId = 1;\n\n\t\treturn function (element) {\n\n\t\t\tif (!element) { return 0; }\n\t\t\tif (!ids[element]) {\n\t\t\t\tids[element] = nextId;\n\t\t\t\tnextId += 1;\n\t\t\t}\n\t\t\treturn ids[element];\n\t\t};\n\t}());\n\n\tfunction isTypeOf(obj, type) {\n\n\t\treturn typeof obj === type;\n\t}\n\n\tfunction isInstanceOf(obj, type) {\n\n\t\treturn obj instanceof type;\n\t}\n\n\tfunction isHTMLElement(obj) {\n\n\t\treturn obj && obj.nodeType;\n\t}\n\n\tfunction getHTMLElement(obj) {\n\n\t\treturn isHTMLElement(obj) ? obj : (isInstanceOf(obj, $) ? obj[0] : undefined);\n\t}\n\n\tfunction reduce(elements, fn, current) {\n\n\t\t$.each(elements, function (idx, element) {\n\n\t\t\tcurrent = fn.call(element, current, idx, element);\n\t\t});\n\t\treturn current;\n\t}\n\n\tfunction equal(obj1, obj2, props) {\n\n\t\tvar i,\n\t\t\tl,\n\t\t\tprop;\n\n\t\tif (obj1 === obj2) { return true; }\n\t\tif (!obj1 || !obj2 || obj1.constructor !== obj2.constructor) { return false; }\n\t\tfor (i = 0, l = props.length; i < l; i += 1) {\n\t\t\tprop = props[i];\n\t\t\tif (obj1[prop] && isFn(obj1[prop].equals) && !obj1[prop].equals(obj2[prop])) { return false; }\n\t\t\tif (obj1[prop] !== obj2[prop]) { return false; }\n\t\t}\n\t\treturn true;\n\t}\n\n\t// Objects\n\t// =======\n\n\t// Rect\n\t// ----\n\t// Holds the position and dimensions of a rectangle. The position might be\n\t// relative to document, viewport or element space.\n\tfunction Rect(left, top, width, height) {\n\n\t\t// Top left corner of the rectangle rounded to integers.\n\t\tthis.left = mathRound(left);\n\t\tthis.top = mathRound(top);\n\n\t\t// Dimensions rounded to integers.\n\t\tthis.width = mathRound(width);\n\t\tthis.height = mathRound(height);\n\n\t\t// Bottom right corner of the rectangle.\n\t\tthis.right = this.left + this.width;\n\t\tthis.bottom = this.top + this.height;\n\t}\n\n\t// ### Prototype\n\textend(Rect.prototype, {\n\n\t\t// Checks if this instance equals `that` in position and dimensions.\n\t\tequals: function (that) {\n\n\t\t\treturn equal(this, that, [\n\t\t\t\t'left', 'top', 'width', 'height',\n\t\t\t]);\n\t\t},\n\n\t\t// Returns the area of this rectangle.\n\t\tarea: function () {\n\n\t\t\treturn this.width * this.height;\n\t\t},\n\n\t\t// Returns a new `Rect` representig this rect relative to `rect`.\n\t\trelativeTo: function (rect) {\n\n\t\t\treturn new Rect(this.left - rect.left, this.top - rect.top, this.width, this.height);\n\t\t},\n\n\t\t// Returns a new rectangle representing the intersection of this\n\t\t// instance and `rect`. If there is no intersection the return value\n\t\t// is `null`.\n\t\tintersection: function (rect) {\n\n\t\t\tif (!isInstanceOf(rect, Rect)) { return null; }\n\n\t\t\tvar left = mathMax(this.left, rect.left);\n\t\t\tvar right = mathMin(this.right, rect.right);\n\t\t\tvar top = mathMax(this.top, rect.top);\n\t\t\tvar bottom = mathMin(this.bottom, rect.bottom);\n\t\t\tvar width = right - left;\n\t\t\tvar height = bottom - top;\n\n\t\t\treturn (width >= 0 && height >= 0) ? new Rect(left, top, width, height) : null;\n\t\t},\n\n\t\t// Returns a new rectangle representing the smallest rectangle\n\t\t// containing this instance and `rect`.\n\t\tenvelope: function (rect) {\n\n\t\t\tif (!isInstanceOf(rect, Rect)) { return this; }\n\n\t\t\tvar left = mathMin(this.left, rect.left);\n\t\t\tvar right = mathMax(this.right, rect.right);\n\t\t\tvar top = mathMin(this.top, rect.top);\n\t\t\tvar bottom = mathMax(this.bottom, rect.bottom);\n\t\t\tvar width = right - left;\n\t\t\tvar height = bottom - top;\n\n\t\t\treturn new Rect(left, top, width, height);\n\t\t},\n\t});\n\n\t// ### Static methods\n\textend(Rect, {\n\n\t\t// Returns a new instance of `Rect` representing the content of the\n\t\t// specified element. Since the coordinates are in content space the\n\t\t// `left` and `top` values are always set to `0`. If `inDocSpace` is\n\t\t// `true` the rect gets returned in document space.\n\t\tofContent: function (element, inContentSpace) {\n\n\t\t\tif (!element || element === document || element === window) { return new Rect(0, 0, $document.width(), $document.height()); }\n\n\t\t\tif (inContentSpace) {\n\t\t\t\treturn new Rect(0, 0, element.scrollWidth, element.scrollHeight);\n\t\t\t} else {\n\t\t\t\treturn new Rect(element.offsetLeft - element.scrollLeft, element.offsetTop - element.scrollTop, element.scrollWidth, element.scrollHeight);\n\t\t\t}\n\t\t},\n\n\t\t// Returns a new instance of `Rect` representing the viewport of the\n\t\t// specified element. If `inDocSpace` is `true` the rect gets returned\n\t\t// in document space instead of content space.\n\t\tofViewport: function (element, inContentSpace) {\n\n\t\t\tif (!element || element === document || element === window) { return new Rect($window.scrollLeft(), $window.scrollTop(), $window.width(), $window.height()); }\n\n\t\t\tif (inContentSpace) {\n\t\t\t\treturn new Rect(element.scrollLeft, element.scrollTop, element.clientWidth, element.clientHeight);\n\t\t\t} else {\n\t\t\t\treturn new Rect(element.offsetLeft, element.offsetTop, element.clientWidth, element.clientHeight);\n\t\t\t}\n\t\t},\n\n\t\t// Returns a new instance of `Rect` representing a given\n\t\t// `HTMLElement`. The dimensions respect padding and border widths. If\n\t\t// the element is invisible (as determined by jQuery) the return value\n\t\t// is null.\n\t\tofElement: function (element) {\n\n\t\t\tvar $element = $(element);\n\t\t\tif (!$element.is(':visible')) { return null; }\n\n\t\t\tvar offset = $element.offset();\n\t\t\treturn new Rect(offset.left, offset.top, $element.outerWidth(), $element.outerHeight());\n\t\t},\n\t});\n\n\t// Fractions\n\t// ---------\n\t// The heart of the library. Creates and holds the\n\t// fractions data for the two specified rects. `viewport` defaults to\n\t// `Rect.ofViewport()`.\n\tfunction Fractions(visible, viewport, possible, rects) {\n\n\t\tthis.visible = visible || 0;\n\t\tthis.viewport = viewport || 0;\n\t\tthis.possible = possible || 0;\n\t\tthis.rects = (rects && extend({}, rects)) || null;\n\t}\n\n\t// ### Prototype\n\textend(Fractions.prototype, {\n\n\t\t// Checks if this instance equals `that` in all attributes.\n\t\tequals: function (that) {\n\n\t\t\treturn this.fracsEqual(that) && this.rectsEqual(that);\n\t\t},\n\n\t\t// Checks if this instance equals `that` in all fraction attributes.\n\t\tfracsEqual: function (that) {\n\n\t\t\treturn equal(this, that, [\n\t\t\t\t'visible', 'viewport', 'possible',\n\t\t\t]);\n\t\t},\n\n\t\t// Checks if this instance equals `that` in all rectangle attributes.\n\t\trectsEqual: function (that) {\n\n\t\t\treturn equal(this.rects, that.rects, [\n\t\t\t\t'document', 'element', 'viewport',\n\t\t\t]);\n\t\t},\n\t});\n\n\t// ### Static methods\n\textend(Fractions, {\n\n\t\tof: function (rect, viewport) {\n\n\t\t\tvar intersection,\n\t\t\t\tintersectionArea,\n\t\t\t\tpossibleArea;\n\n\t\t\trect = (isHTMLElement(rect) && Rect.ofElement(rect)) || rect;\n\t\t\tviewport = (isHTMLElement(viewport) && Rect.ofViewport(viewport)) || viewport || Rect.ofViewport();\n\n\t\t\tif (!(rect instanceof Rect)) { return new Fractions(); }\n\t\t\tintersection = rect.intersection(viewport);\n\t\t\tif (!intersection) { return new Fractions(); }\n\n\t\t\tintersectionArea = intersection.area();\n\t\t\tpossibleArea = mathMin(rect.width, viewport.width) * mathMin(rect.height, viewport.height);\n\t\t\treturn new Fractions(intersectionArea / rect.area(), intersectionArea / viewport.area(), intersectionArea / possibleArea, {\n\t\t\t\tdocument: intersection,\n\t\t\t\telement: intersection.relativeTo(rect),\n\t\t\t\tviewport: intersection.relativeTo(viewport),\n\t\t\t});\n\t\t},\n\t});\n\n\t// Group\n\t// -----\n\tfunction Group(elements, viewport) {\n\n\t\tthis.els = elements;\n\t\tthis.viewport = viewport;\n\t}\n\n\t// ### Helpers\n\n\t// Accepted values for `property` parameters below.\n\tvar rectProps = [\n\t\t'width', 'height', 'left', 'right', 'top', 'bottom',\n\t];\n\tvar fracsProps = [\n\t\t'possible', 'visible', 'viewport',\n\t];\n\n\t// Returns the specified `property` for `HTMLElement element` or `0`\n\t// if `property` is invalid.\n\tfunction getValue(element, viewport, property) {\n\n\t\tvar obj;\n\n\t\tif ($.inArray(property, rectProps) >= 0) {\n\t\t\tobj = Rect.ofElement(element);\n\t\t} else if ($.inArray(property, fracsProps) >= 0) {\n\t\t\tobj = Fractions.of(element, viewport);\n\t\t}\n\t\treturn obj ? obj[property] : 0;\n\t}\n\n\t// Sorting functions.\n\tfunction sortAscending(entry1, entry2) {\n\n\t\treturn entry1.val - entry2.val;\n\t}\n\n\tfunction sortDescending(entry1, entry2) {\n\n\t\treturn entry2.val - entry1.val;\n\t}\n\n\t// ### Prototype\n\textend(Group.prototype, {\n\n\t\t// Returns a sorted list of objects `{el: HTMLElement, val: Number}`\n\t\t// for the specified `property`. `descending` defaults to `false`.\n\t\tsorted: function (property, descending) {\n\n\t\t\tvar viewport = this.viewport;\n\n\t\t\treturn $.map(this.els, function (element) {\n\n\t\t\t\treturn {\n\t\t\t\t\tel: element,\n\t\t\t\t\tval: getValue(element, viewport, property),\n\t\t\t\t};\n\t\t\t})\n\t\t\t\t.sort(descending ? sortDescending : sortAscending);\n\t\t},\n\n\t\t// Returns the first element of the sorted list returned by `sorted` above,\n\t\t// or `null` if this list is empty.\n\t\tbest: function (property, descending) {\n\n\t\t\treturn this.els.length ? this.sorted(property, descending)[0] : null;\n\t\t},\n\t});\n\n\t// ScrollState\n\t// -----------\n\tfunction ScrollState(element) {\n\n\t\tvar content = Rect.ofContent(element, true);\n\t\tvar viewport = Rect.ofViewport(element, true);\n\t\tvar w = content.width - viewport.width;\n\t\tvar h = content.height - viewport.height;\n\n\t\tthis.content = content;\n\t\tthis.viewport = viewport;\n\t\tthis.width = w <= 0 ? null : viewport.left / w;\n\t\tthis.height = h <= 0 ? null : viewport.top / h;\n\t\tthis.left = viewport.left;\n\t\tthis.top = viewport.top;\n\t\tthis.right = content.right - viewport.right;\n\t\tthis.bottom = content.bottom - viewport.bottom;\n\t}\n\n\t// ### Prototype\n\textend(ScrollState.prototype, {\n\n\t\t// Checks if this instance equals `that`.\n\t\tequals: function (that) {\n\n\t\t\treturn equal(this, that, [\n\t\t\t\t'width', 'height', 'left', 'top', 'right', 'bottom', 'content', 'viewport',\n\t\t\t]);\n\t\t},\n\t});\n\n\t// Viewport\n\t// --------\n\tfunction Viewport(element) {\n\n\t\tthis.el = element || window;\n\t}\n\n\t// ### Prototype\n\textend(Viewport.prototype, {\n\n\t\t// Checks if this instance equals `that`.\n\t\tequals: function (that) {\n\n\t\t\treturn equal(this, that, [\n\t\t\t\t'el',\n\t\t\t]);\n\t\t},\n\n\t\tscrollState: function () {\n\n\t\t\treturn new ScrollState(this.el);\n\t\t},\n\n\t\tscrollTo: function (left, top, duration) {\n\n\t\t\tvar $el = this.el === window ? $('html,body') : $(this.el);\n\n\t\t\tleft = left || 0;\n\t\t\ttop = top || 0;\n\t\t\tduration = isNaN(duration) ? 1000 : duration;\n\n\t\t\t$el.stop(true)\n\t\t\t\t.animate({\n\t\t\t\t\tscrollLeft: left,\n\t\t\t\t\tscrollTop: top,\n\t\t\t\t}, duration);\n\t\t},\n\n\t\tscroll: function (left, top, duration) {\n\n\t\t\tvar $el = this.el === window ? $window : $(this.el);\n\n\t\t\tleft = left || 0;\n\t\t\ttop = top || 0;\n\n\t\t\tthis.scrollTo($el.scrollLeft() + left, $el.scrollTop() + top, duration);\n\t\t},\n\n\t\tscrollToRect: function (rect, paddingLeft, paddingTop, duration) {\n\n\t\t\tpaddingLeft = paddingLeft || 0;\n\t\t\tpaddingTop = paddingTop || 0;\n\n\t\t\tthis.scrollTo(rect.left - paddingLeft, rect.top - paddingTop, duration);\n\t\t},\n\n\t\tscrollToElement: function (element, paddingLeft, paddingTop, duration) {\n\n\t\t\tvar rect = Rect.ofElement(element)\n\t\t\t\t.relativeTo(Rect.ofContent(this.el));\n\n\t\t\tthis.scrollToRect(rect, paddingLeft, paddingTop, duration);\n\t\t},\n\t});\n\n\t// Callbacks\n\t// =========\n\n\t// callbacks mix-in\n\t// ----------------\n\t// Expects `context: HTMLElement` and `updatedValue: function`.\n\tvar callbacksMixIn = {\n\n\t\t// Initial setup.\n\t\tinit: function () {\n\n\t\t\tthis.callbacks = $.Callbacks('memory unique');\n\t\t\tthis.currVal = null;\n\t\t\tthis.prevVal = null;\n\n\t\t\t// A proxy to make `check` bindable to events.\n\t\t\tthis.checkProxy = $.proxy(this.check, this);\n\n\t\t\tthis.autoCheck();\n\t\t},\n\n\t\t// Adds a new callback function.\n\t\tbind: function (callback) {\n\n\t\t\tthis.callbacks.add(callback);\n\t\t},\n\n\t\t// Removes a previously added callback function.\n\t\tunbind: function (callback) {\n\n\t\t\tif (callback) {\n\t\t\t\tthis.callbacks.remove(callback);\n\t\t\t} else {\n\t\t\t\tthis.callbacks.empty();\n\t\t\t}\n\t\t},\n\n\t\t// Triggers all callbacks with the current values.\n\t\ttrigger: function () {\n\n\t\t\tthis.callbacks.fireWith(this.context, [\n\t\t\t\tthis.currVal, this.prevVal,\n\t\t\t]);\n\t\t},\n\n\t\t// Checks if value changed, updates attributes `currVal` and\n\t\t// `prevVal` accordingly and triggers the callbacks. Returns\n\t\t// `true` if value changed, otherwise `false`.\n\t\tcheck: function (event) {\n\n\t\t\tvar value = this.updatedValue(event);\n\n\t\t\tif (value === undefined) { return false; }\n\n\t\t\tthis.prevVal = this.currVal;\n\t\t\tthis.currVal = value;\n\t\t\tthis.trigger();\n\t\t\treturn true;\n\t\t},\n\n\t\t// Auto-check configuration.\n\t\t$autoTarget: $window,\n\t\tautoEvents: 'load resize scroll',\n\n\t\t// Enables/disables automated checking for changes on the specified `window`\n\t\t// events.\n\t\tautoCheck: function (on) {\n\n\t\t\tthis.$autoTarget[on === false ? 'off' : 'on'](this.autoEvents, this.checkProxy);\n\t\t},\n\t};\n\n\t// FracsCallbacks\n\t// --------------\n\tfunction FracsCallbacks(element, viewport) {\n\n\t\tthis.context = element;\n\t\tthis.viewport = viewport;\n\t\tthis.init();\n\t}\n\n\t// ### Prototype\n\textend(FracsCallbacks.prototype, callbacksMixIn, {\n\t\tupdatedValue: function () {\n\n\t\t\tvar value = Fractions.of(this.context, this.viewport);\n\n\t\t\tif (!this.currVal || !this.currVal.equals(value)) { return value; }\n\t\t},\n\t});\n\n\t// GroupCallbacks\n\t// --------------\n\tfunction GroupCallbacks(elements, viewport, property, descending) {\n\n\t\tthis.context = new Group(elements, viewport);\n\t\tthis.property = property;\n\t\tthis.descending = descending;\n\t\tthis.init();\n\t}\n\n\t// ### Prototype\n\textend(GroupCallbacks.prototype, callbacksMixIn, {\n\t\tupdatedValue: function () {\n\n\t\t\tvar best = this.context.best(this.property, this.descending);\n\n\t\t\tif (best) {\n\t\t\t\tbest = best.val > 0 ? best.el : null;\n\t\t\t\tif (this.currVal !== best) { return best; }\n\t\t\t}\n\t\t},\n\t});\n\n\t// ScrollStateCallbacks\n\t// --------------------\n\tfunction ScrollStateCallbacks(element) {\n\n\t\tif (!element || element === window || element === document) {\n\t\t\tthis.context = window;\n\t\t} else {\n\t\t\tthis.context = element;\n\t\t\tthis.$autoTarget = $(element);\n\t\t}\n\t\tthis.init();\n\t}\n\n\t// ### Prototype\n\textend(ScrollStateCallbacks.prototype, callbacksMixIn, {\n\t\tupdatedValue: function () {\n\n\t\t\tvar value = new ScrollState(this.context);\n\n\t\t\tif (!this.currVal || !this.currVal.equals(value)) { return value; }\n\t\t},\n\t});\n\n\t/* modplug 1.4.1 - http://larsjung.de/modplug/ */\n\t// This function is ment to be copied into your plugin file as a local\n\t// variable.\n\t//\n\t// `modplug` expects a string `namespace` and a configuration object\n\t// `options`.\n\t//\n\t// options = {\n\t// statics: hash of functions,\n\t// methods: hash of functions,\n\t// defaultStatic: String/function,\n\t// defaultMethod: String/function\n\t// }\n\t//\n\t// For more details see .\n\tvar modplug = function (namespace, options) {\n\t\t'use strict';\n\n\t\t// Some references to enhance minification.\n\t\tvar slice = [].slice,\n\t\t\t$ = jQuery,\n\t\t\textend = $.extend,\n\t\t\tisFn = $.isFunction,\n\n\t\t\t// Save the initial settings.\n\t\t\tsettings = extend({}, options),\n\n\t\t\t// Helper function to apply default methods.\n\t\t\tapplyMethod = function (obj, args, methodName, methods) {\n\n\t\t\t\t// If `methodName` is a function apply it to get the actual\n\t\t\t\t// method name.\n\t\t\t\tmethodName = isFn(methodName) ? methodName.apply(obj, args) : methodName;\n\n\t\t\t\t// If method exists then apply it and return the result ...\n\t\t\t\tif (isFn(methods[methodName])) { return methods[methodName].apply(obj, args); }\n\n\t\t\t\t// ... otherwise raise an error.\n\t\t\t\t$.error('Method \"' + methodName + '\" does not exist on jQuery.' + namespace);\n\t\t\t},\n\n\t\t\t// This function gets exposed as `$.`.\n\t\t\tstatics = function () {\n\n\t\t\t\t// Try to apply a default method.\n\t\t\t\treturn applyMethod(this, slice.call(arguments), settings.defaultStatic, statics);\n\t\t\t},\n\n\t\t\t// This function gets exposed as `$(selector).`.\n\t\t\tmethods = function (method) {\n\n\t\t\t\t// If `method` exists then apply it ...\n\t\t\t\tif (isFn(methods[method])) { return methods[method].apply(this, slice.call(arguments, 1)); }\n\n\t\t\t\t// ... otherwise try to apply a default method.\n\t\t\t\treturn applyMethod(this, slice.call(arguments), settings.defaultMethod, methods);\n\t\t\t},\n\n\t\t\t// Adds/overwrites plugin methods. This function gets exposed as\n\t\t\t// `$..modplug` to make the plugin extendable.\n\t\t\tplug = function (options) {\n\n\t\t\t\tif (options) {\n\t\t\t\t\textend(statics, options.statics);\n\t\t\t\t\textend(methods, options.methods);\n\t\t\t\t}\n\n\t\t\t\t// Make sure that `$..modplug` points to this function\n\t\t\t\t// after adding new methods.\n\t\t\t\tstatics.modplug = plug;\n\t\t\t};\n\n\t\t// Save objects or methods previously registered to the desired namespace.\n\t\t// They are available via `$..modplug.prev`.\n\t\tplug.prev = {\n\t\t\tstatics: $[namespace],\n\t\t\tmethods: $.fn[namespace],\n\t\t};\n\n\t\t// Init the plugin by adding the specified statics and methods.\n\t\tplug(options);\n\n\t\t// Register the plugin.\n\t\t$[namespace] = statics;\n\t\t$.fn[namespace] = methods;\n\t};\n\n\t// Register the plug-in\n\t// ====================\n\n\t// The namespace used to register the plug-in and to attach data to\n\t// elements.\n\tvar namespace = 'fracs';\n\n\t// The methods are sorted in alphabetical order. All methods that do not\n\t// provide a return value will return `this` to enable method chaining.\n\tmodplug(namespace, {\n\n\t\t// Static methods\n\t\t// --------------\n\t\t// These methods are accessible via `$.fracs.`.\n\t\tstatics: {\n\n\t\t\t// Build version.\n\t\t\tversion: '0.15.0',\n\n\t\t\t// Publish object constructors (for testing).\n\t\t\tRect: Rect,\n\t\t\tFractions: Fractions,\n\t\t\tGroup: Group,\n\t\t\tScrollState: ScrollState,\n\t\t\tViewport: Viewport,\n\t\t\tFracsCallbacks: FracsCallbacks,\n\t\t\tGroupCallbacks: GroupCallbacks,\n\t\t\tScrollStateCallbacks: ScrollStateCallbacks,\n\n\t\t\t// ### fracs\n\t\t\t// This is the **default method**. So instead of calling\n\t\t\t// `$.fracs.fracs(...)` simply call `$.fracs(...)`.\n\t\t\t//\n\t\t\t// Returns the fractions for a given `Rect` and `viewport`,\n\t\t\t// viewport defaults to `$.fracs.viewport()`.\n\t\t\t//\n\t\t\t// $.fracs(rect: Rect, [viewport: Rect]): Fractions\n\t\t\tfracs: function (rect, viewport) {\n\n\t\t\t\treturn Fractions.of(rect, viewport);\n\t\t\t},\n\t\t},\n\n\t\t// Instance methods\n\t\t// ----------------\n\t\t// These methods are accessible via `$(selector).fracs('', ...)`.\n\t\tmethods: {\n\n\t\t\t// ### 'content'\n\t\t\t// Returns the content rect of the first selected element in content space.\n\t\t\t// If no element is selected it returns the document rect.\n\t\t\t//\n\t\t\t// .fracs('content'): Rect\n\t\t\tcontent: function (inContentSpace) {\n\n\t\t\t\treturn this.length ? Rect.ofContent(this[0], inContentSpace) : null;\n\t\t\t},\n\n\t\t\t// ### 'envelope'\n\t\t\t// Returns the smallest rectangle that containes all selected elements.\n\t\t\t//\n\t\t\t// .fracs('envelope'): Rect\n\t\t\tenvelope: function () {\n\n\t\t\t\treturn reduce(this, function (current) {\n\n\t\t\t\t\tvar rect = Rect.ofElement(this);\n\t\t\t\t\treturn current ? current.envelope(rect) : rect;\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// ### 'fracs'\n\t\t\t// This is the **default method**. So the first parameter `'fracs'`\n\t\t\t// can be omitted.\n\t\t\t//\n\t\t\t// Returns the fractions for the first selected element.\n\t\t\t//\n\t\t\t// .fracs(): Fractions\n\t\t\t//\n\t\t\t// Binds a callback function that will be invoked if fractions have changed\n\t\t\t// after a `window resize` or `window scroll` event.\n\t\t\t//\n\t\t\t// .fracs(callback(fracs: Fractions, prevFracs: Fractions)): jQuery\n\t\t\t//\n\t\t\t// Unbinds the specified callback function.\n\t\t\t//\n\t\t\t// .fracs('unbind', callback): jQuery\n\t\t\t//\n\t\t\t// Unbinds all callback functions.\n\t\t\t//\n\t\t\t// .fracs('unbind'): jQuery\n\t\t\t//\n\t\t\t// Checks if fractions changed and if so invokes all bound callback functions.\n\t\t\t//\n\t\t\t// .fracs('check'): jQuery\n\t\t\tfracs: function (action, callback, viewport) {\n\n\t\t\t\tif (!isTypeOf(action, 'string')) {\n\t\t\t\t\tviewport = callback;\n\t\t\t\t\tcallback = action;\n\t\t\t\t\taction = null;\n\t\t\t\t}\n\t\t\t\tif (!isFn(callback)) {\n\t\t\t\t\tviewport = callback;\n\t\t\t\t\tcallback = null;\n\t\t\t\t}\n\t\t\t\tviewport = getHTMLElement(viewport);\n\n\t\t\t\tvar ns = namespace + '.fracs.' + getId(viewport);\n\n\t\t\t\tif (action === 'unbind') {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar cbs = $(this)\n\t\t\t\t\t\t\t.data(ns);\n\n\t\t\t\t\t\tif (cbs) {\n\t\t\t\t\t\t\tcbs.unbind(callback);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else if (action === 'check') {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar cbs = $(this)\n\t\t\t\t\t\t\t.data(ns);\n\n\t\t\t\t\t\tif (cbs) {\n\t\t\t\t\t\t\tcbs.check();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else if (isFn(callback)) {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t\tcbs = $this.data(ns);\n\n\t\t\t\t\t\tif (!cbs) {\n\t\t\t\t\t\t\tcbs = new FracsCallbacks(this, viewport);\n\t\t\t\t\t\t\t$this.data(ns, cbs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcbs.bind(callback);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this.length ? Fractions.of(this[0], viewport) : null;\n\t\t\t},\n\n\t\t\t// ### 'intersection'\n\t\t\t// Returns the greatest rectangle that is contained in all selected elements.\n\t\t\t//\n\t\t\t// .fracs('intersection'): Rect\n\t\t\tintersection: function () {\n\n\t\t\t\treturn reduce(this, function (current) {\n\n\t\t\t\t\tvar rect = Rect.ofElement(this);\n\t\t\t\t\treturn current ? current.intersection(rect) : rect;\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// ### 'max'\n\t\t\t// Reduces the set of selected elements to those with the maximum value\n\t\t\t// of the specified property.\n\t\t\t// Valid values for property are `possible`, `visible`, `viewport`,\n\t\t\t// `width`, `height`, `left`, `right`, `top`, `bottom`.\n\t\t\t//\n\t\t\t// .fracs('max', property: String): jQuery\n\t\t\t//\n\t\t\t// Binds a callback function to the set of selected elements that gets\n\t\t\t// triggert whenever the element with the highest value of the specified\n\t\t\t// property changes.\n\t\t\t//\n\t\t\t// .fracs('max', property: String, callback(best: Element, prevBest: Element)): jQuery\n\t\t\tmax: function (property, callback, viewport) {\n\n\t\t\t\tif (!isFn(callback)) {\n\t\t\t\t\tviewport = callback;\n\t\t\t\t\tcallback = null;\n\t\t\t\t}\n\t\t\t\tviewport = getHTMLElement(viewport);\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tnew GroupCallbacks(this, viewport, property, true).bind(callback);\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\treturn this.pushStack(new Group(this, viewport).best(property, true).el);\n\t\t\t},\n\n\t\t\t// ### 'min'\n\t\t\t// Reduces the set of selected elements to those with the minimum value\n\t\t\t// of the specified property.\n\t\t\t// Valid values for property are `possible`, `visible`, `viewport`,\n\t\t\t// `width`, `height`, `left`, `right`, `top`, `bottom`.\n\t\t\t//\n\t\t\t// .fracs('min', property: String): jQuery\n\t\t\t//\n\t\t\t// Binds a callback function to the set of selected elements that gets\n\t\t\t// triggert whenever the element with the lowest value of the specified\n\t\t\t// property changes.\n\t\t\t//\n\t\t\t// .fracs('min', property: String, callback(best: Element, prevBest: Element)): jQuery\n\t\t\tmin: function (property, callback, viewport) {\n\n\t\t\t\tif (!isFn(callback)) {\n\t\t\t\t\tviewport = callback;\n\t\t\t\t\tcallback = null;\n\t\t\t\t}\n\t\t\t\tviewport = getHTMLElement(viewport);\n\n\t\t\t\tif (callback) {\n\t\t\t\t\tnew GroupCallbacks(this, viewport, property).bind(callback);\n\t\t\t\t\treturn this;\n\t\t\t\t}\n\n\t\t\t\treturn this.pushStack(new Group(this, viewport).best(property).el);\n\t\t\t},\n\n\t\t\t// ### 'rect'\n\t\t\t// Returns the dimensions for the first selected element in document space.\n\t\t\t//\n\t\t\t// .fracs('rect'): Rect\n\t\t\trect: function () {\n\n\t\t\t\treturn this.length ? Rect.ofElement(this[0]) : null;\n\t\t\t},\n\n\t\t\t// ### 'scrollState'\n\t\t\t// Returns the current scroll state for the first selected element.\n\t\t\t//\n\t\t\t// .fracs('scrollState'): ScrollState\n\t\t\t//\n\t\t\t// Binds a callback function that will be invoked if scroll state has changed\n\t\t\t// after a `resize` or `scroll` event.\n\t\t\t//\n\t\t\t// .fracs('scrollState', callback(scrollState: scrollState, prevScrollState: scrollState)): jQuery\n\t\t\t//\n\t\t\t// Unbinds the specified callback function.\n\t\t\t//\n\t\t\t// .fracs('scrollState', 'unbind', callback): jQuery\n\t\t\t//\n\t\t\t// Unbinds all callback functions.\n\t\t\t//\n\t\t\t// .fracs('scrollState', 'unbind'): jQuery\n\t\t\t//\n\t\t\t// Checks if scroll state changed and if so invokes all bound callback functions.\n\t\t\t//\n\t\t\t// .fracs('scrollState', 'check'): jQuery\n\t\t\tscrollState: function (action, callback) {\n\n\t\t\t\tvar ns = namespace + '.scrollState';\n\n\t\t\t\tif (!isTypeOf(action, 'string')) {\n\t\t\t\t\tcallback = action;\n\t\t\t\t\taction = null;\n\t\t\t\t}\n\n\t\t\t\tif (action === 'unbind') {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar cbs = $(this)\n\t\t\t\t\t\t\t.data(ns);\n\n\t\t\t\t\t\tif (cbs) {\n\t\t\t\t\t\t\tcbs.unbind(callback);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else if (action === 'check') {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar cbs = $(this)\n\t\t\t\t\t\t\t.data(ns);\n\n\t\t\t\t\t\tif (cbs) {\n\t\t\t\t\t\t\tcbs.check();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t} else if (isFn(callback)) {\n\t\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\t\tvar $this = $(this),\n\t\t\t\t\t\t\tcbs = $this.data(ns);\n\n\t\t\t\t\t\tif (!cbs) {\n\t\t\t\t\t\t\tcbs = new ScrollStateCallbacks(this);\n\t\t\t\t\t\t\t$this.data(ns, cbs);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tcbs.bind(callback);\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn this.length ? new ScrollState(this[0]) : null;\n\t\t\t},\n\n\t\t\t// ### 'scroll'\n\t\t\t// Scrolls the selected elements relative to its current position,\n\t\t\t// `padding` defaults to `0`, `duration` to `1000`.\n\t\t\t//\n\t\t\t// .fracs('scroll', element: HTMLElement/jQuery, [paddingLeft: int,] [paddingTop: int,] [duration: int]): jQuery\n\t\t\tscroll: function (left, top, duration) {\n\n\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\tnew Viewport(this).scroll(left, top, duration);\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// ### 'scrollTo'\n\t\t\t// Scrolls the selected elements to the specified element or an absolute position,\n\t\t\t// `padding` defaults to `0`, `duration` to `1000`.\n\t\t\t//\n\t\t\t// .fracs('scrollTo', element: HTMLElement/jQuery, [paddingLeft: int,] [paddingTop: int,] [duration: int]): jQuery\n\t\t\t// .fracs('scrollTo', [left: int,] [top: int,] [duration: int]): jQuery\n\t\t\tscrollTo: function (element, paddingLeft, paddingTop, duration) {\n\n\t\t\t\tif ($.isNumeric(element)) {\n\t\t\t\t\tduration = paddingTop;\n\t\t\t\t\tpaddingTop = paddingLeft;\n\t\t\t\t\tpaddingLeft = element;\n\t\t\t\t\telement = null;\n\t\t\t\t}\n\n\t\t\t\telement = getHTMLElement(element);\n\n\t\t\t\treturn this.each(function () {\n\n\t\t\t\t\tif (element) {\n\t\t\t\t\t\tnew Viewport(this).scrollToElement(element, paddingLeft, paddingTop, duration);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tnew Viewport(this).scrollTo(paddingLeft, paddingTop, duration);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\t// ### 'scrollToThis'\n\t\t\t// Scrolls the viewport (window) to the first selected element in the specified time,\n\t\t\t// `padding` defaults to `0`, `duration` to `1000`.\n\t\t\t//\n\t\t\t// .fracs('scrollToThis', [paddingLeft: int,] [paddingTop: int,] [duration: int,] [viewport: HTMLElement/jQuery]): jQuery\n\t\t\tscrollToThis: function (paddingLeft, paddingTop, duration, viewport) {\n\n\t\t\t\tviewport = new Viewport(getHTMLElement(viewport));\n\n\t\t\t\tviewport.scrollToElement(this[0], paddingLeft, paddingTop, duration);\n\t\t\t\treturn this;\n\t\t\t},\n\n\t\t\t// ### 'softLink'\n\t\t\t// Converts all selected page intern links `` into soft links.\n\t\t\t// Uses `scrollTo` to scroll to the location.\n\t\t\t//\n\t\t\t// .fracs('softLink', [paddingLeft: int,] [paddingTop: int,] [duration: int,] [viewport: HTMLElement/jQuery]): jQuery\n\t\t\tsoftLink: function (paddingLeft, paddingTop, duration, viewport) {\n\n\t\t\t\tviewport = new Viewport(getHTMLElement(viewport));\n\n\t\t\t\treturn this.filter('a[href^=#]')\n\t\t\t\t\t.each(function () {\n\t\t\t\t\t\tvar $a = $(this);\n\t\t\t\t\t\t$a.on('click', function () {\n\t\t\t\t\t\t\tviewport.scrollToElement($($a.attr('href'))[0], paddingLeft, paddingTop, duration);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t},\n\n\t\t\t// ### 'sort'\n\t\t\t// Sorts the set of selected elements by the specified property.\n\t\t\t// Valid values for property are `possible`, `visible`, `viewport`,\n\t\t\t// `width`, `height`, `left`, `right`, `top`, `bottom`. The default\n\t\t\t// sort order is descending.\n\t\t\t//\n\t\t\t// .fracs('sort', property: String, [ascending: boolean]): jQuery\n\t\t\tsort: function (property, ascending, viewport) {\n\n\t\t\t\tif (!isTypeOf(ascending, 'boolean')) {\n\t\t\t\t\tviewport = ascending;\n\t\t\t\t\tascending = null;\n\t\t\t\t}\n\t\t\t\tviewport = getHTMLElement(viewport);\n\n\t\t\t\treturn this.pushStack($.map(new Group(this, viewport).sorted(property, !ascending), function (entry) {\n\t\t\t\t\treturn entry.el;\n\t\t\t\t}));\n\t\t\t},\n\n\t\t\t// ### 'viewport'\n\t\t\t// Returns the current viewport of the first selected element in content space.\n\t\t\t// If no element is selected it returns the document's viewport.\n\t\t\t//\n\t\t\t// .fracs('viewport'): Rect\n\t\t\tviewport: function (inContentSpace) {\n\n\t\t\t\treturn this.length ? Rect.ofViewport(this[0], inContentSpace) : null;\n\t\t\t},\n\t\t},\n\n\t\t// Defaults\n\t\t// --------\n\t\tdefaultStatic: 'fracs',\n\t\tdefaultMethod: 'fracs',\n\t});\n\n}());","import configuration from 'globalConfiguration';\nimport eventHelper from 'helper/eventHelper';\nimport 'plugins/jquery.actual';\nimport htmlComposer from 'helper/htmlComposer';\nimport scrollHelper from 'helper/scrollHelper';\nimport 'helper/jquery.fracs';\n\nfunction addClassDelay(element, className, delay) {\n\tvar $addClassDelayElement = $(element),\n\t\t$addClassName = className;\n\t$addClassDelayElement.addClass($addClassName);\n\tsetTimeout(function () {\n\t\t$addClassDelayElement.removeClass($addClassName);\n\t}, delay);\n}\n\nfunction SectionScrollHelper() {\n\tthis.configuration = configuration.SectionScrollHelper;\n\tthis.sections = [];\n\tthis.arrows = {\n\t\tarrowTop: undefined,\n\t\tarrowDown: undefined,\n\t};\n\t/**\n\t * @type {JQuery}\n\t */\n\tthis.wofContainer = undefined;\n\tthis.document = $(document);\n\tthis.init();\n\n\tthis.doAutoScroll = true;\n}\n\nSectionScrollHelper.prototype = {\n\n\tinit: function () {\n\t\tthis.addEventListener();\n\t},\n\n\treset: function () {\n\t\tthis.sections = [];\n\t\tthis.resetScrollArrows();\n\t\tif (this.wofContainer) {\n\t\t\tthis.wofContainer.remove();\n\t\t\tthis.wofContainer.empty();\n\t\t\tthis.wofContainer = null;\n\t\t}\n\t\tthis.removePluginEventListeners();\n\t\tthis.removeEventListener();\n\t},\n\n\tresetScrollArrows: function () {\n\t\tif (this.arrows.arrowDown) {\n\t\t\tthis.arrows.arrowDown.remove();\n\t\t\tthis.arrows.arrowDown = undefined;\n\t\t}\n\t\tif (this.arrows.arrowTop) {\n\t\t\tthis.arrows.arrowTop.remove();\n\t\t\tthis.arrows.arrowTop = undefined;\n\t\t}\n\t},\n\n\taddEventListener: function () {\n\t\tthis.document.on('ajaxPageLoadStart', $.proxy(this.reset, this));\n\t\tthis.document.on('ajaxPageLoaded', $.proxy(this.collectSections, this));\n\t\t$(window)\n\t\t\t.on('scroll', $.proxy(this.scrollSmartWoFContainer, this));\n\t},\n\n\tremoveEventListener: function () {\n\t\t$(window)\n\t\t\t.off('scroll', $.proxy(this.scrollSmartWoFContainer, this));\n\t},\n\n\taddPluginEventListeners: function () {\n\t\t$(window)\n\t\t\t.on('resize.wofContainer', $.proxy(this.calculatePositionOfWoFContainer, this));\n\t\tthis.document.on('PanelTrigger_toggle', $.proxy(this.checkAllSectionsInWoFContainer, this));\n\t\tthis.document.on('PanelTrigger_toggle', $.proxy(this.calculatePositionOfWoFContainer, this));\n\t\tthis.document.on('toggleHelper_toggleAllButtonCreated', $.proxy(this.calculatePositionOfWoFContainer, this));\n\n\t\tif (this.document.find(this.configuration.contentSelector + ' ' + '.panel').length > 0) {\n\t\t\teventHelper.deferredEmit($.proxy(this.checkAllSectionsInWoFContainer, this), 'allPanelsReady', this.document);\n\t\t}\n\t},\n\n\tremovePluginEventListeners: function () {\n\t\t$(window)\n\t\t\t.off('scroll.wofHeadline');\n\t\t$(window)\n\t\t\t.off('resize.wofContainer');\n\t\tthis.document.off('PanelTrigger_toggle');\n\t\tthis.document.off('toggleHelper_toggleAllButtonCreated');\n\t},\n\n\tcollectSections: function () {\n\t\tthis.sections = this.document.find(this.configuration.contentSelector + ' ' + this.configuration.sectionSelector);\n\t\tthis.setSectionsData();\n\t\tif (this.sections.length >= this.configuration.minSectionCount) {\n\t\t\tthis.createWheelOfFortuneContainer();\n\t\t\tthis.appendSectionsIntoWoFContainer();\n\t\t\tthis.calculatePositionOfWoFContainer();\n\t\t\tthis.checkAllSectionsInWoFContainer();\n\t\t\tthis.addPluginEventListeners();\n\n\t\t\tthis.wofContainer.hide();\n\t\t\tthis.document.find('body')\n\t\t\t\t.append(this.wofContainer);\n\t\t\tthis.scaleSmartWoFContainer();\n\t\t\tthis.wofContainer.show();\n\t\t\tthis.scaleSmartWoFContainer();\n\n\t\t\tthis.wofContainer.on('mouseenter', $.proxy(this.onMouseEnterOnWoFContainer, this));\n\t\t\tthis.wofContainer.on('mouseleave', $.proxy(this.onMouseLeaveOnWoFContainer, this));\n\t\t}\n\t},\n\n\tgetScrollPositionForWoFContainer: function (event) {\n\t\tlet wrapperMousePositionY = event.pageY - $(event.currentTarget)\n\t\t\t.offset().top;\n\t\tlet percentageOfElement = wrapperMousePositionY / $(event.currentTarget)\n\t\t\t.height();\n\t\tlet scrollTop = this.wofContainer[0].scrollHeight * (percentageOfElement - 0.5);\n\n\t\tthis.checkArrowAndWoFContainerStateAfterScrolling(scrollTop);\n\n\t\treturn this.wofContainer[0].scrollHeight * (percentageOfElement - 0.5);\n\t},\n\n\tcheckArrowAndWoFContainerStateAfterScrolling: function (scrollTop) {\n\t\tthis.wofContainer.removeClass('maxTop maxBottom');\n\t\tif (this.arrows.arrowDown && this.arrows.arrowTop) {\n\t\t\tthis.arrows.arrowDown.removeClass('max');\n\t\t\tthis.arrows.arrowTop.removeClass('max');\n\t\t\tif (this.wofContainer[0].scrollHeight - this.wofContainer.height() - scrollTop <= 0) {\n\t\t\t\tthis.arrows.arrowDown.addClass('max');\n\t\t\t\tthis.wofContainer.addClass('maxBottom');\n\t\t\t}\n\t\t\tif (scrollTop <= 0) {\n\t\t\t\tthis.arrows.arrowTop.addClass('max');\n\t\t\t\tthis.wofContainer.addClass('maxTop');\n\t\t\t}\n\t\t}\n\t},\n\n\tonMouseEnterOnWoFContainer: function (event) {\n\t\tthis.wofContainer.addClass('open');\n\t\tthis.doAutoScroll = false;\n\t\tthis.wofContainer.stop()\n\t\t\t.animate({\n\t\t\t\tscrollTop: this.getScrollPositionForWoFContainer(event),\n\t\t\t}, 800, function () {\n\t\t\t\tif (this.wofContainer) {\n\t\t\t\t\tthis.wofContainer.on('mousemove', $.proxy(this.onMouseMoveOnWoFContainer, this));\n\t\t\t\t\tthis.doAutoScroll = true;\n\t\t\t\t}\n\n\t\t\t}.bind(this));\n\t},\n\n\tonMouseLeaveOnWoFContainer: function () {\n\t\tthis.wofContainer.removeClass('open');\n\t\tthis.wofContainer.off('mousemove', $.proxy(this.onMouseMoveOnWoFContainer, this));\n\t},\n\n\tonMouseMoveOnWoFContainer: function (event) {\n\t\tthis.wofContainer.scrollTop(this.getScrollPositionForWoFContainer(event));\n\t},\n\n\tsetSectionsData: function () {\n\t\tlet validSections = [];\n\t\t$.each(this.sections, function (index, section) {\n\t\t\tlet currentSection = $(section);\n\t\t\t$.each(this.configuration.possibleSections, function (selectorClass, sectionConfig) {\n\t\t\t\tif (currentSection.hasClass(selectorClass)) {\n\t\t\t\t\tcurrentSection.data('headline', currentSection.find(sectionConfig.header));\n\t\t\t\t\tcurrentSection.data('content', currentSection.find(sectionConfig.content));\n\t\t\t\t\tvalidSections.push(currentSection);\n\t\t\t\t\treturn false;\n\t\t\t\t} else if (currentSection.hasClass('groupSeparator')) {\n\t\t\t\t\tcurrentSection.data('headline', currentSection);\n\t\t\t\t\tcurrentSection.data('content', currentSection);\n\t\t\t\t\tvalidSections.push(currentSection);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}.bind(this));\n\t\t}.bind(this));\n\t\tthis.sections = validSections;\n\t},\n\n\tscaleSmartWoFContainer: function () {\n\t\tlet viewport = {\n\t\t\theight: window.innerHeight,\n\t\t\twidth: window.innerWidth,\n\t\t};\n\t\tlet scaleFactorMin = 0.8;\n\t\tlet scaleFactorMax = 0.9;\n\t\tlet height = this.wofContainer[0].scrollHeight != 0\n\t\t\t? this.wofContainer[0].scrollHeight\n\t\t\t: this.wofContainer.actual('outerHeight');\n\n\t\tif (height > viewport.height * scaleFactorMax) {\n\t\t\tthis.wofContainer.height(viewport.height * scaleFactorMin);\n\t\t\tthis.wofContainer.addClass('isScaled');\n\t\t\tthis.createScrollArrows();\n\t\t} else {\n\t\t\tthis.wofContainer.height(height);\n\t\t\tthis.wofContainer.removeClass('isScaled');\n\t\t\tthis.resetScrollArrows();\n\t\t}\n\t},\n\n\tcreateScrollArrows: function () {\n\t\tif (typeof this.arrows.arrowTop === 'undefined' && typeof this.arrows.arrowDown === 'undefined') {\n\t\t\tthis.arrows.arrowTop = htmlComposer.generateDiv('wofArrowTop wofArrow');\n\t\t\tthis.arrows.arrowDown = htmlComposer.generateDiv('wofArrowDown wofArrow');\n\t\t\tthis.wofContainer.after(this.arrows.arrowTop)\n\t\t\t\t.after(this.arrows.arrowDown);\n\t\t\tthis.correctPositionOfScrollArrows();\n\t\t}\n\t},\n\n\tcorrectPositionOfScrollArrows: function () {\n\t\tif (this.arrows.arrowTop) {\n\t\t\tthis.arrows.arrowTop.css({\n\t\t\t\ttop: this.wofContainer.offset().top - window.pageYOffset - this.arrows.arrowTop.outerHeight() - 10,\n\t\t\t\tleft: this.wofContainer.offset().left - window.pageXOffset + this.wofContainer.outerWidth() - this.arrows.arrowTop.outerWidth() + this.configuration.arrowOffset.x,\n\t\t\t});\n\t\t}\n\t\tif (this.arrows.arrowDown) {\n\t\t\tthis.arrows.arrowDown.css({\n\t\t\t\ttop: this.wofContainer.offset().top - window.pageYOffset + this.wofContainer.outerHeight() + 10,\n\t\t\t\tleft: this.wofContainer.offset().left - window.pageXOffset + this.wofContainer.outerWidth() - this.arrows.arrowDown.outerWidth() + this.configuration.arrowOffset.x,\n\t\t\t});\n\t\t}\n\t},\n\n\tcreateWheelOfFortuneContainer: function () {\n\t\tthis.wofContainer = htmlComposer.generateDiv('wofWrapper', 'wofWrapper');\n\t},\n\n\tappendSectionsIntoWoFContainer: function () {\n\t\t$.each(this.sections, function (index, section) {\n\t\t\t$(section)\n\t\t\t\t.data('originalPosition', $(section)\n\t\t\t\t\t.offset().top)\n\t\t\t\t.data('originalHeight', $(section)\n\t\t\t\t\t.outerHeight());\n\t\t\tthis.wofContainer.append(this.createSectionLink(section));\n\t\t}.bind(this));\n\t\tif (this.wofContainer.find('.inviewport').length > 0) {\n\t\t\tthis.wofContainer.children()\n\t\t\t\t.each(function (index, sectionGroup) {\n\t\t\t\t\tthis.checkVisibilityOfSectionGroup($(sectionGroup));\n\t\t\t\t}.bind(this));\n\t\t}\n\t},\n\n\tcreateSectionLink: function (sectionParam) {\n\t\tlet section = $(sectionParam);\n\t\tlet sectionGroup = htmlComposer.generateDiv('wofSectionGroup');\n\t\tlet wofElement = htmlComposer.generateDiv('wofElement');\n\n\t\t// fracs\n\t\tsection.fracs($.proxy(this.doUpdateSection, this, sectionGroup));\n\t\twofElement.text(section.data('headline')\n\t\t\t.text());\n\n\t\tif (section.data('content')\n\t\t\t.find('.error.small').length > 0) {\n\t\t\tsectionGroup.addClass('containsErrors');\n\t\t}\n\t\tif (section.hasClass('groupSeparator')) {\n\t\t\tsectionGroup.addClass('wofSeparator');\n\t\t} else {\n\t\t\tsectionGroup.on('click', $.proxy(this.onWoFElementClick, this, section));\n\t\t\tsectionGroup.on('mouseenter', $.proxy(this.onWoFElementEnter, this, section));\n\t\t\tsectionGroup.on('mouseleave', $.proxy(this.onWoFElementLeave, this, section));\n\t\t}\n\t\tsectionGroup.append(wofElement);\n\n\t\treturn sectionGroup;\n\t},\n\n\tcheckAllSectionsInWoFContainer: function () {\n\t\t$.each(this.sections, function (index, section) {\n\t\t\tsection.fracs('check');\n\t\t}.bind(this));\n\t},\n\n\tcalculatePositionOfWoFContainer: function () {\n\t\tlet content = $(this.configuration.contentSelector);\n\n\t\tthis.correctHorizontalPositionOfWofContainer(content);\n\t\tthis.scaleSmartWoFContainer();\n\t\t// buggy\n\t\t// this.correctVerticalPositionOfWofContainer(content);\n\t\tthis.correctPositionOfScrollArrows();\n\t},\n\n\tcorrectVerticalPositionOfWofContainer: function (content) {\n\t\tif (content.offset().top + content.height() <= window.innerHeight) {\n\t\t\t// content < window\n\t\t\tlet verticalPosition = content.height() / 2 + content.offset().top;\n\t\t\tthis.wofContainer.css('top', verticalPosition);\n\t\t} else {\n\t\t\t// content > window\n\t\t\tif (this.wofContainer.position().top <= content.offset().top) {\n\t\t\t\tthis.wofContainer.css('top', content.offset().top + this.wofContainer.height() / 2);\n\t\t\t} else {\n\t\t\t\tthis.wofContainer.css('top', '50%');\n\t\t\t}\n\t\t}\n\t},\n\n\tcorrectHorizontalPositionOfWofContainer: function (content) {\n\t\tif ('right' == this.configuration.position) {\n\t\t\tthis.wofContainer.css('right', window.innerWidth - content.offset().left - content.actual('outerWidth') - 50 + this.configuration.wofContainerOffset.x);\n\t\t} else {\n\t\t\tthis.wofContainer.css('left', content.offset().left + this.configuration.wofContainerOffset.x);\n\t\t}\n\t},\n\n\tonWoFElementClick: function (section) {\n\t\tlet windowHeight = $(window)\n\t\t\t.height();\n\t\tlet sectionHeight = section.actual('outerHeight');\n\t\tlet pluginPanelData = section.data('plugin_Panel');\n\n\t\tlet dfd = jQuery.Deferred();\n\t\tlet scrollPromise = dfd.promise();\n\n\t\tif (sectionHeight >= windowHeight) {\n\t\t\tthis.doAutoScroll = false;\n\t\t\t$.when(scrollPromise)\n\t\t\t\t.then(function () {\n\t\t\t\t\tthis.doAutoScroll = true;\n\t\t\t\t}.bind(this));\n\t\t\tscrollHelper.scrollToElement(section, 500, dfd);\n\t\t} else {\n\t\t\tthis.doAutoScroll = false;\n\t\t\tlet scrollpoint = section.offset().top - windowHeight / 2 + sectionHeight / 2 - 10;\n\t\t\t$.when(scrollPromise)\n\t\t\t\t.then(function () {\n\t\t\t\t\tthis.doAutoScroll = true;\n\t\t\t\t}.bind(this));\n\t\t\tscrollHelper.scrollToPosition(scrollpoint, 500, dfd);\n\t\t}\n\t\tif (this.containsNoError(section)) {\n\t\t\tif (section.hasClass('groupSeparator')) {\n\t\t\t\taddClassDelay(section.parent(), 'highlightFlash', 800);\n\t\t\t} else {\n\t\t\t\taddClassDelay(section, 'highlightFlash', 800);\n\t\t\t}\n\t\t}\n\t\tif (typeof pluginPanelData != 'undefined' && pluginPanelData.getState() != 'opened') {\n\t\t\tpluginPanelData.onClick('sectionScrollHelper');\n\t\t}\n\t},\n\n\tonWoFElementEnter: function (section) {\n\t\tif (this.containsNoError(section)) {\n\t\t\tif (section.hasClass('groupSeparator')) {\n\t\t\t\tsection.parent()\n\t\t\t\t\t.addClass('highlightFlash');\n\t\t\t} else {\n\t\t\t\tsection.addClass('highlightFlash');\n\t\t\t}\n\t\t}\n\t},\n\n\tonWoFElementLeave: function (section) {\n\t\tif (this.containsNoError(section)) {\n\t\t\tif (section.hasClass('groupSeparator')) {\n\t\t\t\tsection.parent()\n\t\t\t\t\t.removeClass('highlightFlash');\n\t\t\t} else {\n\t\t\t\tsection.removeClass('highlightFlash');\n\t\t\t}\n\t\t}\n\t},\n\n\tdoUpdateSection: function (sectionGroup, fracs) {\n\t\tif (1 - fracs.visible < 1) {\n\t\t\tsectionGroup.addClass('inviewport');\n\t\t\t//this.checkVisibilityOfSectionGroup(sectionGroup);\n\t\t} else {\n\t\t\tsectionGroup.removeClass('inviewport');\n\t\t}\n\t},\n\n\tcontainsNoError: function (section) {\n\t\tif (!section.hasClass('containsErrors') || section.parent()\n\t\t\t.hasClass('containsErrors')) {\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},\n\n\tcheckVisibilityOfSectionGroup: function (sectionGroup) {\n\t\tif (this.doAutoScroll && !this.wofContainer.hasClass('open')) {\n\t\t\tlet sectionGroupTop = sectionGroup.offset().top;\n\t\t\tlet wrapperOffsetTop = this.wofContainer.offset().top;\n\t\t\tlet wrapperHeight = this.wofContainer.outerHeight();\n\t\t\tlet toScroll = false;\n\n\t\t\tif (sectionGroupTop >= wrapperOffsetTop + wrapperHeight) {\n\t\t\t\tlet lastSectionGroupInWoFContainerInViewport = sectionGroup.parent()\n\t\t\t\t\t.find('.inviewport')\n\t\t\t\t\t.last();\n\t\t\t\ttoScroll = lastSectionGroupInWoFContainerInViewport.offset().top - wrapperOffsetTop - wrapperHeight + lastSectionGroupInWoFContainerInViewport.outerHeight() + this.wofContainer.scrollTop();\n\t\t\t} else if (sectionGroupTop < wrapperOffsetTop) {\n\t\t\t\tlet firstSectionGroupInWoFContainerInViewport = sectionGroup.parent()\n\t\t\t\t\t.find('.inviewport')\n\t\t\t\t\t.first();\n\t\t\t\ttoScroll = firstSectionGroupInWoFContainerInViewport.offset().top - wrapperOffsetTop + this.wofContainer.scrollTop();\n\t\t\t}\n\n\t\t\tif (toScroll !== false) {\n\t\t\t\tthis.wofContainer.stop()\n\t\t\t\t\t.animate({\n\t\t\t\t\t\tscrollTop: toScroll,\n\t\t\t\t\t}, 200, function () {\n\t\t\t\t\t\tthis.checkArrowAndWoFContainerStateAfterScrolling(toScroll);\n\t\t\t\t\t}.bind(this));\n\t\t\t}\n\t\t}\n\t},\n};\n\nexport default new SectionScrollHelper();\n"],"x_google_ignoreList":[]}