{"version":3,"sources":["webpack:///./assets/javascripts/modules/utils/FocusableElementUtils.js","webpack:///./node_modules/bootstrap/js/dist lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./node_modules/flatpickr/dist/l10n lazy ^\\.\\/.*\\.js$ namespace object","webpack:///./node_modules/scrollmagic/scrollmagic/uncompressed/plugins/debug.addIndicators.js","webpack:///./assets/javascripts/modules/utils/DependencyInjector.js","webpack:///./assets/javascripts/modules/abstracts/Component.js"],"names":["$","__webpack_require__","d","__webpack_exports__","getFirstFocusable","toggleTabIndex","FOCUSABLE_ELEMENTS","parent","querySelector","join","makeTabbable","el","hasAttribute","setAttribute","getAttribute","removeAttribute","makeUntabbable","classList","contains","add","focusable","els","Array","prototype","slice","call","find","getFocusableElements","forEach","map","./alert.js","./button.js","./carousel.js","./collapse.js","./dropdown.js","./index.js","./modal.js","./popover.js","./scrollspy.js","./tab.js","./toast.js","./tooltip.js","./util.js","webpackAsyncContext","req","ids","Promise","all","e","then","id","t","resolve","Error","code","keys","Object","module","exports","./ar.js","./at.js","./be.js","./bg.js","./bn.js","./cat.js","./cs.js","./cy.js","./da.js","./de.js","./default.js","./eo.js","./es.js","./et.js","./fa.js","./fi.js","./fr.js","./gr.js","./he.js","./hi.js","./hr.js","./hu.js","./id.js","./it.js","./ja.js","./km.js","./ko.js","./kz.js","./lt.js","./lv.js","./mk.js","./mn.js","./ms.js","./my.js","./nl.js","./no.js","./pa.js","./pl.js","./pt.js","./ro.js","./ru.js","./si.js","./sk.js","./sl.js","./sq.js","./sr.js","./sv.js","./th.js","./tr.js","./uk.js","./vn.js","./zh.js","__WEBPACK_AMD_DEFINE_FACTORY__","__WEBPACK_AMD_DEFINE_ARRAY__","__WEBPACK_AMD_DEFINE_RESULT__","undefined","ScrollMagic","NAMESPACE","console","window","err","Function","bind","error","log","_util","_autoindex","Scene","extend","_indicator","this","addIndicators","options","DEFAULT_OPTIONS","name","indent","colorStart","colorEnd","colorTrigger","Indicator","on","remove","removeIndicators","controller","off","Controller","addOption","_info","info","_container","container","_isDocument","isDocument","_vertical","vertical","_indicators","groups","_log","splice","arguments","apply","handleBoundsPositionChange","updateBoundsPositions","handleTriggerPositionChange","updateTriggerGroupPositions","addEventListener","specificIndicator","b","triggerSize","group","triggerGroup","members","g","length","css","paramPos","paramDimension","edge","get","scrollLeft","width","scrollTop","height","element","firstChild","bounds","specificGroup","elem","pos","elemSize","transform","i","document","body","containerOffset","top","left","offset","paramTransform","triggerHook","-ms-transform","-webkit-transform","updateTriggerGroupLabel","text","doUpdate","textContent","addScene","newScene","_options","$super","destroy","removeEventListener","_ctrl","_elemBounds","TPL","_elemStart","start","_elemEnd","end","_boundsContainer","elements","appendChild","position","handleTriggerParamsChange","handleBoundsParamsChange","updateTriggerGroup","updateBounds","setTimeout","indexOf","removeTriggerGroup","removeBounds","what","parentNode","removeChild","v","border-bottom-width","border-right-width","bottom","right","padding","border-top-width","border-left-width","addBounds","triggerPosition","duration","display","Math","abs","push","triggerElem","trigger","newGroup","addTriggerGroup","color","inner","createElement","overflow","border-width","border-style","border-color","white-space","pointer-events","font-size","style","zIndex","w","loadedDependency","existingDependency","saveDependency","lib","reject","DependencyInjector","logStr","myName","constructor","debug","componentName","thenPromise","catchPromise","catch","res","locale","widgetName","url","script","type","src","stack","Component","Component_classCallCheck","moduleLoader","$customEvents","CustomEvents","$matchMedia","match","$on","$emit","emit","$off","$one","one","$getFirstFocusable","warn"],"mappings":"4FAAA,SAAAA,GAAAC,EAAAC,EAAAC,EAAA,sBAAAC,IAAAH,EAAAC,EAAAC,EAAA,sBAAAE,IAAA,IAAMC,GAAsB,UAAW,6CAA8C,yBAA0B,2BAA4B,yBAA0B,mCAExJF,EAAoB,SAACG,GAChC,OAAOA,EAAOC,cAAcF,EAAmBG,KAAK,OAShDC,EAAe,SAACC,GAChBA,EAAGC,aAAa,iBAClBD,EAAGE,aAAa,WAAYF,EAAGG,aAAa,kBAE5CH,EAAGI,gBAAgB,aAIjBC,EAAiB,SAACL,GAClBA,EAAGC,aAAa,cAAgBD,EAAGM,UAAUC,SAAS,aACxDP,EAAGE,aAAa,gBAAiBF,EAAGG,aAAa,aAEnDH,EAAGM,UAAUE,IAAI,YACjBR,EAAGE,aAAa,YAAa,IAGlBR,EAAiB,SAACE,EAAQa,GACrC,IAAIC,EAvB8B,SAACV,GACnC,OAAOW,MAAMC,UAAUC,MAAMC,KAC3BzB,EAAEW,GAAIe,KAAKpB,EAAmBG,KAAK,OAqB3BkB,CAAqBpB,GAE/Ba,EACIC,EAAIO,QAAQlB,GACZW,EAAIO,QAAQZ,4CCjClB,IAAAa,GACAC,cACA,IACA,KAEAC,eACA,IACA,KAEAC,iBACA,IACA,KAEAC,iBACA,IACA,KAEAC,iBACA,IACA,EACA,KAEAC,cACA,IACA,KAEAC,cACA,IACA,KAEAC,gBACA,IACA,EACA,IACA,KAEAC,kBACA,IACA,KAEAC,YACA,IACA,KAEAC,cACA,IACA,KAEAC,gBACA,IACA,EACA,KAEAC,aACA,IACA,MAGA,SAAAC,EAAAC,GACA,IAAAC,EAAAhB,EAAAe,GACA,OAAAC,EAOAC,QAAAC,IAAAF,EAAArB,MAAA,GAAAK,IAAA5B,EAAA+C,IAAAC,KAAA,WACA,IAAAC,EAAAL,EAAA,GACA,OAAA5C,EAAAkD,EAAAD,EAAA,KARAJ,QAAAM,UAAAH,KAAA,WACA,IAAAD,EAAA,IAAAK,MAAA,uBAAAT,EAAA,KAEA,MADAI,EAAAM,KAAA,mBACAN,IAQAL,EAAAY,KAAA,WACA,OAAAC,OAAAD,KAAA1B,IAEAc,EAAAO,GAAA,IACAO,EAAAC,QAAAf,uBC5EA,IAAAd,GACA8B,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,YACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,gBACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEA9C,cACA,IACA,KAEA+C,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,KAEAC,WACA,IACA,MAGA,SAAAnE,EAAAC,GACA,IAAAC,EAAAhB,EAAAe,GACA,OAAAC,EAOA5C,EAAA+C,EAAAH,EAAA,IAAAI,KAAA,WACA,IAAAC,EAAAL,EAAA,GACA,OAAA5C,EAAAkD,EAAAD,EAAA,KARAJ,QAAAM,UAAAH,KAAA,WACA,IAAAD,EAAA,IAAAK,MAAA,uBAAAT,EAAA,KAEA,MADAI,EAAAM,KAAA,mBACAN,IAQAL,EAAAY,KAAA,WACA,OAAAC,OAAAD,KAAA1B,IAEAc,EAAAO,GAAA,IACAO,EAAAC,QAAAf,uBCxOA,IAAAoE,EAAAC,EAAAC,EAuBED,GAAQ/G,EAAA,WAAuBi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","file":"components-BigVisualComponent~components-ShopTheLookComponent.chunks.js","sourcesContent":["const FOCUSABLE_ELEMENTS = ['a[href]', 'input:not([disabled]):not([type=\"hidden\"])', 'select:not([disabled])', 'textarea:not([disabled])', 'button:not([disabled])', '[tabindex]:not([tabindex^=\"-\"])'];\n\nexport const getFirstFocusable = (parent) => {\n return parent.querySelector(FOCUSABLE_ELEMENTS.join(','));\n};\n\nexport const getFocusableElements = (el) => {\n return Array.prototype.slice.call(\n $(el).find(FOCUSABLE_ELEMENTS.join(','))\n )\n};\n\nconst makeTabbable = (el) => {\n if (el.hasAttribute('data-tabindex')) {\n el.setAttribute('tabindex', el.getAttribute('data-tabindex'));\n } else {\n el.removeAttribute('tabindex');\n }\n};\n\nconst makeUntabbable = (el) => {\n if (el.hasAttribute('tabindex') && !el.classList.contains('untabbed')) {\n el.setAttribute('data-tabindex', el.getAttribute('tabindex'));\n }\n el.classList.add('untabbed');\n el.setAttribute('tabindex', -1);\n};\n\nexport const toggleTabIndex = (parent, focusable) => {\n var els = getFocusableElements(parent)\n \n focusable\n ? els.forEach(makeTabbable)\n : els.forEach(makeUntabbable)\n};","var map = {\n\t\"./alert.js\": [\n\t\t322,\n\t\t186\n\t],\n\t\"./button.js\": [\n\t\t323,\n\t\t187\n\t],\n\t\"./carousel.js\": [\n\t\t324,\n\t\t188\n\t],\n\t\"./collapse.js\": [\n\t\t325,\n\t\t189\n\t],\n\t\"./dropdown.js\": [\n\t\t326,\n\t\t2,\n\t\t190\n\t],\n\t\"./index.js\": [\n\t\t327,\n\t\t191\n\t],\n\t\"./modal.js\": [\n\t\t328,\n\t\t192\n\t],\n\t\"./popover.js\": [\n\t\t329,\n\t\t2,\n\t\t171,\n\t\t193\n\t],\n\t\"./scrollspy.js\": [\n\t\t330,\n\t\t194\n\t],\n\t\"./tab.js\": [\n\t\t331,\n\t\t195\n\t],\n\t\"./toast.js\": [\n\t\t332,\n\t\t196\n\t],\n\t\"./tooltip.js\": [\n\t\t321,\n\t\t2,\n\t\t171\n\t],\n\t\"./util.js\": [\n\t\t320,\n\t\t197\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 291;\nmodule.exports = webpackAsyncContext;","var map = {\n\t\"./ar.js\": [\n\t\t333,\n\t\t198\n\t],\n\t\"./at.js\": [\n\t\t334,\n\t\t199\n\t],\n\t\"./be.js\": [\n\t\t335,\n\t\t200\n\t],\n\t\"./bg.js\": [\n\t\t336,\n\t\t201\n\t],\n\t\"./bn.js\": [\n\t\t337,\n\t\t202\n\t],\n\t\"./cat.js\": [\n\t\t338,\n\t\t203\n\t],\n\t\"./cs.js\": [\n\t\t339,\n\t\t204\n\t],\n\t\"./cy.js\": [\n\t\t340,\n\t\t205\n\t],\n\t\"./da.js\": [\n\t\t341,\n\t\t206\n\t],\n\t\"./de.js\": [\n\t\t342,\n\t\t207\n\t],\n\t\"./default.js\": [\n\t\t343,\n\t\t208\n\t],\n\t\"./eo.js\": [\n\t\t344,\n\t\t209\n\t],\n\t\"./es.js\": [\n\t\t345,\n\t\t210\n\t],\n\t\"./et.js\": [\n\t\t346,\n\t\t211\n\t],\n\t\"./fa.js\": [\n\t\t347,\n\t\t212\n\t],\n\t\"./fi.js\": [\n\t\t348,\n\t\t213\n\t],\n\t\"./fr.js\": [\n\t\t349,\n\t\t214\n\t],\n\t\"./gr.js\": [\n\t\t350,\n\t\t215\n\t],\n\t\"./he.js\": [\n\t\t351,\n\t\t216\n\t],\n\t\"./hi.js\": [\n\t\t352,\n\t\t217\n\t],\n\t\"./hr.js\": [\n\t\t353,\n\t\t218\n\t],\n\t\"./hu.js\": [\n\t\t354,\n\t\t219\n\t],\n\t\"./id.js\": [\n\t\t355,\n\t\t220\n\t],\n\t\"./index.js\": [\n\t\t356,\n\t\t257\n\t],\n\t\"./it.js\": [\n\t\t357,\n\t\t221\n\t],\n\t\"./ja.js\": [\n\t\t358,\n\t\t222\n\t],\n\t\"./km.js\": [\n\t\t359,\n\t\t223\n\t],\n\t\"./ko.js\": [\n\t\t360,\n\t\t224\n\t],\n\t\"./kz.js\": [\n\t\t361,\n\t\t225\n\t],\n\t\"./lt.js\": [\n\t\t362,\n\t\t226\n\t],\n\t\"./lv.js\": [\n\t\t363,\n\t\t227\n\t],\n\t\"./mk.js\": [\n\t\t364,\n\t\t228\n\t],\n\t\"./mn.js\": [\n\t\t365,\n\t\t229\n\t],\n\t\"./ms.js\": [\n\t\t366,\n\t\t230\n\t],\n\t\"./my.js\": [\n\t\t367,\n\t\t231\n\t],\n\t\"./nl.js\": [\n\t\t368,\n\t\t232\n\t],\n\t\"./no.js\": [\n\t\t369,\n\t\t233\n\t],\n\t\"./pa.js\": [\n\t\t370,\n\t\t234\n\t],\n\t\"./pl.js\": [\n\t\t371,\n\t\t235\n\t],\n\t\"./pt.js\": [\n\t\t372,\n\t\t236\n\t],\n\t\"./ro.js\": [\n\t\t373,\n\t\t237\n\t],\n\t\"./ru.js\": [\n\t\t374,\n\t\t238\n\t],\n\t\"./si.js\": [\n\t\t375,\n\t\t239\n\t],\n\t\"./sk.js\": [\n\t\t376,\n\t\t240\n\t],\n\t\"./sl.js\": [\n\t\t377,\n\t\t241\n\t],\n\t\"./sq.js\": [\n\t\t378,\n\t\t242\n\t],\n\t\"./sr.js\": [\n\t\t379,\n\t\t243\n\t],\n\t\"./sv.js\": [\n\t\t380,\n\t\t244\n\t],\n\t\"./th.js\": [\n\t\t381,\n\t\t245\n\t],\n\t\"./tr.js\": [\n\t\t382,\n\t\t246\n\t],\n\t\"./uk.js\": [\n\t\t383,\n\t\t247\n\t],\n\t\"./vn.js\": [\n\t\t384,\n\t\t248\n\t],\n\t\"./zh.js\": [\n\t\t385,\n\t\t249\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tvar ids = map[req];\n\tif(!ids) {\n\t\treturn Promise.resolve().then(function() {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\treturn __webpack_require__.e(ids[1]).then(function() {\n\t\tvar id = ids[0];\n\t\treturn __webpack_require__.t(id, 7);\n\t});\n}\nwebpackAsyncContext.keys = function webpackAsyncContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackAsyncContext.id = 292;\nmodule.exports = webpackAsyncContext;","/*!\r\n * ScrollMagic v2.0.7 (2019-05-07)\r\n * The javascript library for magical scroll interactions.\r\n * (c) 2019 Jan Paepke (@janpaepke)\r\n * Project Website: http://scrollmagic.io\r\n * \r\n * @version 2.0.7\r\n * @license Dual licensed under MIT license and GPL.\r\n * @author Jan Paepke - e-mail@janpaepke.de\r\n *\r\n * @file Debug Extension for ScrollMagic.\r\n */\r\n/**\r\n * This plugin was formerly known as the ScrollMagic debug extension.\r\n *\r\n * It enables you to add visual indicators to your page, to be able to see exactly when a scene is triggered.\r\n *\r\n * To have access to this extension, please include `plugins/debug.addIndicators.js`.\r\n * @mixin debug.addIndicators\r\n */\r\n(function (root, factory) {\r\n\tif (typeof define === 'function' && define.amd) {\r\n\t\t// AMD. Register as an anonymous module.\r\n\t\tdefine(['ScrollMagic'], factory);\r\n\t} else if (typeof exports === 'object') {\r\n\t\t// CommonJS\r\n\t\tfactory(require('scrollmagic'));\r\n\t} else {\r\n\t\t// no browser global export needed, just execute\r\n\t\tfactory(root.ScrollMagic || (root.jQuery && root.jQuery.ScrollMagic));\r\n\t}\r\n}(this, function (ScrollMagic) {\r\n\t\"use strict\";\r\n\tvar NAMESPACE = \"debug.addIndicators\";\r\n\r\n\tvar\r\n\t\tconsole = window.console || {},\r\n\t\terr = Function.prototype.bind.call(console.error || console.log || function () {}, console);\r\n\tif (!ScrollMagic) {\r\n\t\terr(\"(\" + NAMESPACE + \") -> ERROR: The ScrollMagic main module could not be found. Please make sure it's loaded before this plugin or use an asynchronous loader like requirejs.\");\r\n\t}\r\n\r\n\t// plugin settings\r\n\tvar\r\n\t\tFONT_SIZE = \"0.85em\",\r\n\t\tZINDEX = \"9999\",\r\n\t\tEDGE_OFFSET = 15; // minimum edge distance, added to indentation\r\n\r\n\t// overall vars\r\n\tvar\r\n\t\t_util = ScrollMagic._util,\r\n\t\t_autoindex = 0;\r\n\r\n\r\n\r\n\tScrollMagic.Scene.extend(function () {\r\n\t\tvar\r\n\t\t\tScene = this,\r\n\t\t\t_indicator;\r\n\r\n\t\tvar log = function () {\r\n\t\t\tif (Scene._log) { // not available, when main source minified\r\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \")\", \"->\");\r\n\t\t\t\tScene._log.apply(this, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Add visual indicators for a ScrollMagic.Scene. \r\n\t\t * @memberof! debug.addIndicators#\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // add basic indicators\r\n\t\t * scene.addIndicators()\r\n\t\t *\r\n\t\t * // passing options\r\n\t\t * scene.addIndicators({name: \"pin scene\", colorEnd: \"#FFFFFF\"});\r\n\t\t *\r\n\t\t * @param {object} [options] - An object containing one or more options for the indicators.\r\n\t\t * @param {(string|object)} [options.parent] - A selector, DOM Object or a jQuery object that the indicators should be added to. \r\n\t\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t\t\t\t\t\t\t If undefined, the controller's container will be used.\r\n\t\t * @param {number} [options.name=\"\"] - This string will be displayed at the start and end indicators of the scene for identification purposes. If no name is supplied an automatic index will be used.\r\n\t\t * @param {number} [options.indent=0] - Additional position offset for the indicators (useful, when having multiple scenes starting at the same position).\r\n\t\t * @param {string} [options.colorStart=green] - CSS color definition for the start indicator.\r\n\t\t * @param {string} [options.colorEnd=red] - CSS color definition for the end indicator.\r\n\t\t * @param {string} [options.colorTrigger=blue] - CSS color definition for the trigger indicator.\r\n\t\t */\r\n\t\tScene.addIndicators = function (options) {\r\n\t\t\tif (!_indicator) {\r\n\t\t\t\tvar\r\n\t\t\t\t\tDEFAULT_OPTIONS = {\r\n\t\t\t\t\t\tname: \"\",\r\n\t\t\t\t\t\tindent: 0,\r\n\t\t\t\t\t\tparent: undefined,\r\n\t\t\t\t\t\tcolorStart: \"green\",\r\n\t\t\t\t\t\tcolorEnd: \"red\",\r\n\t\t\t\t\t\tcolorTrigger: \"blue\",\r\n\t\t\t\t\t};\r\n\r\n\t\t\t\toptions = _util.extend({}, DEFAULT_OPTIONS, options);\r\n\r\n\t\t\t\t_autoindex++;\r\n\t\t\t\t_indicator = new Indicator(Scene, options);\r\n\r\n\t\t\t\tScene.on(\"add.plugin_addIndicators\", _indicator.add);\r\n\t\t\t\tScene.on(\"remove.plugin_addIndicators\", _indicator.remove);\r\n\t\t\t\tScene.on(\"destroy.plugin_addIndicators\", Scene.removeIndicators);\r\n\r\n\t\t\t\t// it the scene already has a controller we can start right away.\r\n\t\t\t\tif (Scene.controller()) {\r\n\t\t\t\t\t_indicator.add();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t\t/**\r\n\t\t * Removes visual indicators from a ScrollMagic.Scene.\r\n\t\t * @memberof! debug.addIndicators#\r\n\t\t *\r\n\t\t * @example\r\n\t\t * // remove previously added indicators\r\n\t\t * scene.removeIndicators()\r\n\t\t *\r\n\t\t */\r\n\t\tScene.removeIndicators = function () {\r\n\t\t\tif (_indicator) {\r\n\t\t\t\t_indicator.remove();\r\n\t\t\t\tthis.off(\"*.plugin_addIndicators\");\r\n\t\t\t\t_indicator = undefined;\r\n\t\t\t}\r\n\t\t\treturn Scene;\r\n\t\t};\r\n\r\n\t});\r\n\r\n\r\n\t/*\r\n\t * ----------------------------------------------------------------\r\n\t * Extension for controller to store and update related indicators\r\n\t * ----------------------------------------------------------------\r\n\t */\r\n\t// add option to globally auto-add indicators to scenes\r\n\t/**\r\n\t * Every ScrollMagic.Controller instance now accepts an additional option. \r\n\t * See {@link ScrollMagic.Controller} for a complete list of the standard options.\r\n\t * @memberof! debug.addIndicators#\r\n\t * @method new ScrollMagic.Controller(options)\r\n\t * @example\r\n\t * // make a controller and add indicators to all scenes attached\r\n\t * var controller = new ScrollMagic.Controller({addIndicators: true});\r\n\t * // this scene will automatically have indicators added to it\r\n\t * new ScrollMagic.Scene()\r\n\t * .addTo(controller);\r\n\t *\r\n\t * @param {object} [options] - Options for the Controller.\r\n\t * @param {boolean} [options.addIndicators=false] - If set to `true` every scene that is added to the controller will automatically get indicators added to it.\r\n\t */\r\n\tScrollMagic.Controller.addOption(\"addIndicators\", false);\r\n\t// extend Controller\r\n\tScrollMagic.Controller.extend(function () {\r\n\t\tvar\r\n\t\t\tController = this,\r\n\t\t\t_info = Controller.info(),\r\n\t\t\t_container = _info.container,\r\n\t\t\t_isDocument = _info.isDocument,\r\n\t\t\t_vertical = _info.vertical,\r\n\t\t\t_indicators = { // container for all indicators and methods\r\n\t\t\t\tgroups: []\r\n\t\t\t};\r\n\r\n\t\tvar log = function () {\r\n\t\t\tif (Controller._log) { // not available, when main source minified\r\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \")\", \"->\");\r\n\t\t\t\tController._log.apply(this, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\t\tif (Controller._indicators) {\r\n\t\t\tlog(2, \"WARNING: Scene already has a property '_indicators', which will be overwritten by plugin.\");\r\n\t\t}\r\n\r\n\t\t// add indicators container\r\n\t\tthis._indicators = _indicators;\r\n\t\t/*\r\n\t\t\tneeded updates:\r\n\t\t\t+++++++++++++++\r\n\t\t\tstart/end position on scene shift (handled in Indicator class)\r\n\t\t\ttrigger parameters on triggerHook value change (handled in Indicator class)\r\n\t\t\tbounds position on container scroll or resize (to keep alignment to bottom/right)\r\n\t\t\ttrigger position on container resize, window resize (if container isn't document) and window scroll (if container isn't document)\r\n\t\t*/\r\n\r\n\t\t// event handler for when associated bounds markers need to be repositioned\r\n\t\tvar handleBoundsPositionChange = function () {\r\n\t\t\t_indicators.updateBoundsPositions();\r\n\t\t};\r\n\r\n\t\t// event handler for when associated trigger groups need to be repositioned\r\n\t\tvar handleTriggerPositionChange = function () {\r\n\t\t\t_indicators.updateTriggerGroupPositions();\r\n\t\t};\r\n\r\n\t\t_container.addEventListener(\"resize\", handleTriggerPositionChange);\r\n\t\tif (!_isDocument) {\r\n\t\t\twindow.addEventListener(\"resize\", handleTriggerPositionChange);\r\n\t\t\twindow.addEventListener(\"scroll\", handleTriggerPositionChange);\r\n\t\t}\r\n\t\t// update all related bounds containers\r\n\t\t_container.addEventListener(\"resize\", handleBoundsPositionChange);\r\n\t\t_container.addEventListener(\"scroll\", handleBoundsPositionChange);\r\n\r\n\r\n\t\t// updates the position of the bounds container to aligned to the right for vertical containers and to the bottom for horizontal\r\n\t\tthis._indicators.updateBoundsPositions = function (specificIndicator) {\r\n\t\t\tvar // constant for all bounds\r\n\t\t\t\tgroups = specificIndicator ? [_util.extend({}, specificIndicator.triggerGroup, {\r\n\t\t\t\t\tmembers: [specificIndicator]\r\n\t\t\t\t})] : // create a group with only one element\r\n\t\t\t\t_indicators.groups, // use all\r\n\t\t\t\tg = groups.length,\r\n\t\t\t\tcss = {},\r\n\t\t\t\tparamPos = _vertical ? \"left\" : \"top\",\r\n\t\t\t\tparamDimension = _vertical ? \"width\" : \"height\",\r\n\t\t\t\tedge = _vertical ?\r\n\t\t\t\t_util.get.scrollLeft(_container) + _util.get.width(_container) - EDGE_OFFSET :\r\n\t\t\t\t_util.get.scrollTop(_container) + _util.get.height(_container) - EDGE_OFFSET,\r\n\t\t\t\tb, triggerSize, group;\r\n\t\t\twhile (g--) { // group loop\r\n\t\t\t\tgroup = groups[g];\r\n\t\t\t\tb = group.members.length;\r\n\t\t\t\ttriggerSize = _util.get[paramDimension](group.element.firstChild);\r\n\t\t\t\twhile (b--) { // indicators loop\r\n\t\t\t\t\tcss[paramPos] = edge - triggerSize;\r\n\t\t\t\t\t_util.css(group.members[b].bounds, css);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// updates the positions of all trigger groups attached to a controller or a specific one, if provided\r\n\t\tthis._indicators.updateTriggerGroupPositions = function (specificGroup) {\r\n\t\t\tvar // constant vars\r\n\t\t\t\tgroups = specificGroup ? [specificGroup] : _indicators.groups,\r\n\t\t\t\ti = groups.length,\r\n\t\t\t\tcontainer = _isDocument ? document.body : _container,\r\n\t\t\t\tcontainerOffset = _isDocument ? {\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0\r\n\t\t\t\t} : _util.get.offset(container, true),\r\n\t\t\t\tedge = _vertical ?\r\n\t\t\t\t_util.get.width(_container) - EDGE_OFFSET :\r\n\t\t\t\t_util.get.height(_container) - EDGE_OFFSET,\r\n\t\t\t\tparamDimension = _vertical ? \"width\" : \"height\",\r\n\t\t\t\tparamTransform = _vertical ? \"Y\" : \"X\";\r\n\t\t\tvar // changing vars\r\n\t\t\t\tgroup,\r\n\t\t\t\telem,\r\n\t\t\t\tpos,\r\n\t\t\t\telemSize,\r\n\t\t\t\ttransform;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tgroup = groups[i];\r\n\t\t\t\telem = group.element;\r\n\t\t\t\tpos = group.triggerHook * Controller.info(\"size\");\r\n\t\t\t\telemSize = _util.get[paramDimension](elem.firstChild.firstChild);\r\n\t\t\t\ttransform = pos > elemSize ? \"translate\" + paramTransform + \"(-100%)\" : \"\";\r\n\r\n\t\t\t\t_util.css(elem, {\r\n\t\t\t\t\ttop: containerOffset.top + (_vertical ? pos : edge - group.members[0].options.indent),\r\n\t\t\t\t\tleft: containerOffset.left + (_vertical ? edge - group.members[0].options.indent : pos)\r\n\t\t\t\t});\r\n\t\t\t\t_util.css(elem.firstChild.firstChild, {\r\n\t\t\t\t\t\"-ms-transform\": transform,\r\n\t\t\t\t\t\"-webkit-transform\": transform,\r\n\t\t\t\t\t\"transform\": transform\r\n\t\t\t\t});\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// updates the label for the group to contain the name, if it only has one member\r\n\t\tthis._indicators.updateTriggerGroupLabel = function (group) {\r\n\t\t\tvar\r\n\t\t\t\ttext = \"trigger\" + (group.members.length > 1 ? \"\" : \" \" + group.members[0].options.name),\r\n\t\t\t\telem = group.element.firstChild.firstChild,\r\n\t\t\t\tdoUpdate = elem.textContent !== text;\r\n\t\t\tif (doUpdate) {\r\n\t\t\t\telem.textContent = text;\r\n\t\t\t\tif (_vertical) { // bounds position is dependent on text length, so update\r\n\t\t\t\t\t_indicators.updateBoundsPositions();\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t// add indicators if global option is set\r\n\t\tthis.addScene = function (newScene) {\r\n\r\n\t\t\tif (this._options.addIndicators && newScene instanceof ScrollMagic.Scene && newScene.controller() === Controller) {\r\n\t\t\t\tnewScene.addIndicators();\r\n\t\t\t}\r\n\t\t\t// call original destroy method\r\n\t\t\tthis.$super.addScene.apply(this, arguments);\r\n\t\t};\r\n\r\n\t\t// remove all previously set listeners on destroy\r\n\t\tthis.destroy = function () {\r\n\t\t\t_container.removeEventListener(\"resize\", handleTriggerPositionChange);\r\n\t\t\tif (!_isDocument) {\r\n\t\t\t\twindow.removeEventListener(\"resize\", handleTriggerPositionChange);\r\n\t\t\t\twindow.removeEventListener(\"scroll\", handleTriggerPositionChange);\r\n\t\t\t}\r\n\t\t\t_container.removeEventListener(\"resize\", handleBoundsPositionChange);\r\n\t\t\t_container.removeEventListener(\"scroll\", handleBoundsPositionChange);\r\n\t\t\t// call original destroy method\r\n\t\t\tthis.$super.destroy.apply(this, arguments);\r\n\t\t};\r\n\t\treturn Controller;\r\n\r\n\t});\r\n\r\n\t/*\r\n\t * ----------------------------------------------------------------\r\n\t * Internal class for the construction of Indicators\r\n\t * ----------------------------------------------------------------\r\n\t */\r\n\tvar Indicator = function (Scene, options) {\r\n\t\tvar\r\n\t\t\tIndicator = this,\r\n\t\t\t_elemBounds = TPL.bounds(),\r\n\t\t\t_elemStart = TPL.start(options.colorStart),\r\n\t\t\t_elemEnd = TPL.end(options.colorEnd),\r\n\t\t\t_boundsContainer = options.parent && _util.get.elements(options.parent)[0],\r\n\t\t\t_vertical,\r\n\t\t\t_ctrl;\r\n\r\n\t\tvar log = function () {\r\n\t\t\tif (Scene._log) { // not available, when main source minified\r\n\t\t\t\tArray.prototype.splice.call(arguments, 1, 0, \"(\" + NAMESPACE + \")\", \"->\");\r\n\t\t\t\tScene._log.apply(this, arguments);\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\toptions.name = options.name || _autoindex;\r\n\r\n\t\t// prepare bounds elements\r\n\t\t_elemStart.firstChild.textContent += \" \" + options.name;\r\n\t\t_elemEnd.textContent += \" \" + options.name;\r\n\t\t_elemBounds.appendChild(_elemStart);\r\n\t\t_elemBounds.appendChild(_elemEnd);\r\n\r\n\t\t// set public variables\r\n\t\tIndicator.options = options;\r\n\t\tIndicator.bounds = _elemBounds;\r\n\t\t// will be set later\r\n\t\tIndicator.triggerGroup = undefined;\r\n\r\n\t\t// add indicators to DOM\r\n\t\tthis.add = function () {\r\n\t\t\t_ctrl = Scene.controller();\r\n\t\t\t_vertical = _ctrl.info(\"vertical\");\r\n\r\n\t\t\tvar isDocument = _ctrl.info(\"isDocument\");\r\n\r\n\t\t\tif (!_boundsContainer) {\r\n\t\t\t\t// no parent supplied or doesnt exist\r\n\t\t\t\t_boundsContainer = isDocument ? document.body : _ctrl.info(\"container\"); // check if window/document (then use body)\r\n\t\t\t}\r\n\t\t\tif (!isDocument && _util.css(_boundsContainer, \"position\") === 'static') {\r\n\t\t\t\t// position mode needed for correct positioning of indicators\r\n\t\t\t\t_util.css(_boundsContainer, {\r\n\t\t\t\t\tposition: \"relative\"\r\n\t\t\t\t});\r\n\t\t\t}\r\n\r\n\t\t\t// add listeners for updates\r\n\t\t\tScene.on(\"change.plugin_addIndicators\", handleTriggerParamsChange);\r\n\t\t\tScene.on(\"shift.plugin_addIndicators\", handleBoundsParamsChange);\r\n\r\n\t\t\t// updates trigger & bounds (will add elements if needed)\r\n\t\t\tupdateTriggerGroup();\r\n\t\t\tupdateBounds();\r\n\r\n\t\t\tsetTimeout(function () { // do after all execution is finished otherwise sometimes size calculations are off\r\n\t\t\t\t_ctrl._indicators.updateBoundsPositions(Indicator);\r\n\t\t\t}, 0);\r\n\r\n\t\t\tlog(3, \"added indicators\");\r\n\t\t};\r\n\r\n\t\t// remove indicators from DOM\r\n\t\tthis.remove = function () {\r\n\t\t\tif (Indicator.triggerGroup) { // if not set there's nothing to remove\r\n\t\t\t\tScene.off(\"change.plugin_addIndicators\", handleTriggerParamsChange);\r\n\t\t\t\tScene.off(\"shift.plugin_addIndicators\", handleBoundsParamsChange);\r\n\r\n\t\t\t\tif (Indicator.triggerGroup.members.length > 1) {\r\n\t\t\t\t\t// just remove from memberlist of old group\r\n\t\t\t\t\tvar group = Indicator.triggerGroup;\r\n\t\t\t\t\tgroup.members.splice(group.members.indexOf(Indicator), 1);\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupLabel(group);\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupPositions(group);\r\n\t\t\t\t\tIndicator.triggerGroup = undefined;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// remove complete group\r\n\t\t\t\t\tremoveTriggerGroup();\r\n\t\t\t\t}\r\n\t\t\t\tremoveBounds();\r\n\r\n\t\t\t\tlog(3, \"removed indicators\");\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * internal Event Handlers\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\t// event handler for when bounds params change\r\n\t\tvar handleBoundsParamsChange = function () {\r\n\t\t\tupdateBounds();\r\n\t\t};\r\n\r\n\t\t// event handler for when trigger params change\r\n\t\tvar handleTriggerParamsChange = function (e) {\r\n\t\t\tif (e.what === \"triggerHook\") {\r\n\t\t\t\tupdateTriggerGroup();\r\n\t\t\t}\r\n\t\t};\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * Bounds (start / stop) management\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\t// adds an new bounds elements to the array and to the DOM\r\n\t\tvar addBounds = function () {\r\n\t\t\tvar v = _ctrl.info(\"vertical\");\r\n\t\t\t// apply stuff we didn't know before...\r\n\t\t\t_util.css(_elemStart.firstChild, {\r\n\t\t\t\t\"border-bottom-width\": v ? 1 : 0,\r\n\t\t\t\t\"border-right-width\": v ? 0 : 1,\r\n\t\t\t\t\"bottom\": v ? -1 : options.indent,\r\n\t\t\t\t\"right\": v ? options.indent : -1,\r\n\t\t\t\t\"padding\": v ? \"0 8px\" : \"2px 4px\",\r\n\t\t\t});\r\n\t\t\t_util.css(_elemEnd, {\r\n\t\t\t\t\"border-top-width\": v ? 1 : 0,\r\n\t\t\t\t\"border-left-width\": v ? 0 : 1,\r\n\t\t\t\t\"top\": v ? \"100%\" : \"\",\r\n\t\t\t\t\"right\": v ? options.indent : \"\",\r\n\t\t\t\t\"bottom\": v ? \"\" : options.indent,\r\n\t\t\t\t\"left\": v ? \"\" : \"100%\",\r\n\t\t\t\t\"padding\": v ? \"0 8px\" : \"2px 4px\"\r\n\t\t\t});\r\n\t\t\t// append\r\n\t\t\t_boundsContainer.appendChild(_elemBounds);\r\n\t\t};\r\n\r\n\t\t// remove bounds from list and DOM\r\n\t\tvar removeBounds = function () {\r\n\t\t\t_elemBounds.parentNode.removeChild(_elemBounds);\r\n\t\t};\r\n\r\n\t\t// update the start and end positions of the scene\r\n\t\tvar updateBounds = function () {\r\n\t\t\tif (_elemBounds.parentNode !== _boundsContainer) {\r\n\t\t\t\taddBounds(); // Add Bounds elements (start/end)\r\n\t\t\t}\r\n\t\t\tvar css = {};\r\n\t\t\tcss[_vertical ? \"top\" : \"left\"] = Scene.triggerPosition();\r\n\t\t\tcss[_vertical ? \"height\" : \"width\"] = Scene.duration();\r\n\t\t\t_util.css(_elemBounds, css);\r\n\t\t\t_util.css(_elemEnd, {\r\n\t\t\t\tdisplay: Scene.duration() > 0 ? \"\" : \"none\"\r\n\t\t\t});\r\n\t\t};\r\n\r\n\t\t/*\r\n\t\t * ----------------------------------------------------------------\r\n\t\t * trigger and trigger group management\r\n\t\t * ----------------------------------------------------------------\r\n\t\t */\r\n\r\n\t\t// adds an new trigger group to the array and to the DOM\r\n\t\tvar addTriggerGroup = function () {\r\n\t\t\tvar triggerElem = TPL.trigger(options.colorTrigger); // new trigger element\r\n\t\t\tvar css = {};\r\n\t\t\tcss[_vertical ? \"right\" : \"bottom\"] = 0;\r\n\t\t\tcss[_vertical ? \"border-top-width\" : \"border-left-width\"] = 1;\r\n\t\t\t_util.css(triggerElem.firstChild, css);\r\n\t\t\t_util.css(triggerElem.firstChild.firstChild, {\r\n\t\t\t\tpadding: _vertical ? \"0 8px 3px 8px\" : \"3px 4px\"\r\n\t\t\t});\r\n\t\t\tdocument.body.appendChild(triggerElem); // directly add to body\r\n\t\t\tvar newGroup = {\r\n\t\t\t\ttriggerHook: Scene.triggerHook(),\r\n\t\t\t\telement: triggerElem,\r\n\t\t\t\tmembers: [Indicator]\r\n\t\t\t};\r\n\t\t\t_ctrl._indicators.groups.push(newGroup);\r\n\t\t\tIndicator.triggerGroup = newGroup;\r\n\t\t\t// update right away\r\n\t\t\t_ctrl._indicators.updateTriggerGroupLabel(newGroup);\r\n\t\t\t_ctrl._indicators.updateTriggerGroupPositions(newGroup);\r\n\t\t};\r\n\r\n\t\tvar removeTriggerGroup = function () {\r\n\t\t\t_ctrl._indicators.groups.splice(_ctrl._indicators.groups.indexOf(Indicator.triggerGroup), 1);\r\n\t\t\tIndicator.triggerGroup.element.parentNode.removeChild(Indicator.triggerGroup.element);\r\n\t\t\tIndicator.triggerGroup = undefined;\r\n\t\t};\r\n\r\n\t\t// updates the trigger group -> either join existing or add new one\r\n\t\t/*\t\r\n\t\t * Logic:\r\n\t\t * 1 if a trigger group exist, check if it's in sync with Scene settings – if so, nothing else needs to happen\r\n\t\t * 2 try to find an existing one that matches Scene parameters\r\n\t\t * \t 2.1 If a match is found check if already assigned to an existing group\r\n\t\t *\t\t\t If so:\r\n\t\t * A: it was the last member of existing group -> kill whole group\r\n\t\t * B: the existing group has other members -> just remove from member list\r\n\t\t *\t 2.2 Assign to matching group\r\n\t\t * 3 if no new match could be found, check if assigned to existing group\r\n\t\t * A: yes, and it's the only member -> just update parameters and positions and keep using this group\r\n\t\t * B: yes but there are other members -> remove from member list and create a new one\r\n\t\t * C: no, so create a new one\r\n\t\t */\r\n\t\tvar updateTriggerGroup = function () {\r\n\t\t\tvar\r\n\t\t\t\ttriggerHook = Scene.triggerHook(),\r\n\t\t\t\tcloseEnough = 0.0001;\r\n\r\n\t\t\t// Have a group, check if it still matches\r\n\t\t\tif (Indicator.triggerGroup) {\r\n\t\t\t\tif (Math.abs(Indicator.triggerGroup.triggerHook - triggerHook) < closeEnough) {\r\n\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"no need to change, still in sync\");\r\n\t\t\t\t\treturn; // all good\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// Don't have a group, check if a matching one exists\r\n\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"out of sync!\");\r\n\t\t\tvar\r\n\t\t\t\tgroups = _ctrl._indicators.groups,\r\n\t\t\t\tgroup,\r\n\t\t\t\ti = groups.length;\r\n\t\t\twhile (i--) {\r\n\t\t\t\tgroup = groups[i];\r\n\t\t\t\tif (Math.abs(group.triggerHook - triggerHook) < closeEnough) {\r\n\t\t\t\t\t// found a match!\r\n\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"found match\");\r\n\t\t\t\t\tif (Indicator.triggerGroup) { // do I have an old group that is out of sync?\r\n\t\t\t\t\t\tif (Indicator.triggerGroup.members.length === 1) { // is it the only remaining group?\r\n\t\t\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"kill\");\r\n\t\t\t\t\t\t\t// was the last member, remove the whole group\r\n\t\t\t\t\t\t\tremoveTriggerGroup();\r\n\t\t\t\t\t\t} else {\r\n\t\t\t\t\t\t\tIndicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group\r\n\t\t\t\t\t\t\t_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);\r\n\t\t\t\t\t\t\t_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);\r\n\t\t\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"removing from previous member list\");\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\t// join new group\r\n\t\t\t\t\tgroup.members.push(Indicator);\r\n\t\t\t\t\tIndicator.triggerGroup = group;\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupLabel(group);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\r\n\t\t\t// at this point I am obviously out of sync and don't match any other group\r\n\t\t\tif (Indicator.triggerGroup) {\r\n\t\t\t\tif (Indicator.triggerGroup.members.length === 1) {\r\n\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"updating existing\");\r\n\t\t\t\t\t// out of sync but i'm the only member => just change and update\r\n\t\t\t\t\tIndicator.triggerGroup.triggerHook = triggerHook;\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);\r\n\t\t\t\t\treturn;\r\n\t\t\t\t} else {\r\n\t\t\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"removing from previous member list\");\r\n\t\t\t\t\tIndicator.triggerGroup.members.splice(Indicator.triggerGroup.members.indexOf(Indicator), 1); // just remove from memberlist of old group\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupLabel(Indicator.triggerGroup);\r\n\t\t\t\t\t_ctrl._indicators.updateTriggerGroupPositions(Indicator.triggerGroup);\r\n\t\t\t\t\tIndicator.triggerGroup = undefined; // need a brand new group...\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t\t// _util.log(0, \"trigger\", options.name, \"->\", \"add a new one\");\r\n\t\t\t// did not find any match, make new trigger group\r\n\t\t\taddTriggerGroup();\r\n\t\t};\r\n\t};\r\n\r\n\t/*\r\n\t * ----------------------------------------------------------------\r\n\t * Templates for the indicators\r\n\t * ----------------------------------------------------------------\r\n\t */\r\n\tvar TPL = {\r\n\t\tstart: function (color) {\r\n\t\t\t// inner element (for bottom offset -1, while keeping top position 0)\r\n\t\t\tvar inner = document.createElement(\"div\");\r\n\t\t\tinner.textContent = \"start\";\r\n\t\t\t_util.css(inner, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\t\"border-width\": 0,\r\n\t\t\t\t\"border-style\": \"solid\",\r\n\t\t\t\tcolor: color,\r\n\t\t\t\t\"border-color\": color\r\n\t\t\t});\r\n\t\t\tvar e = document.createElement('div');\r\n\t\t\t// wrapper\r\n\t\t\t_util.css(e, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\twidth: 0,\r\n\t\t\t\theight: 0\r\n\t\t\t});\r\n\t\t\te.appendChild(inner);\r\n\t\t\treturn e;\r\n\t\t},\r\n\t\tend: function (color) {\r\n\t\t\tvar e = document.createElement('div');\r\n\t\t\te.textContent = \"end\";\r\n\t\t\t_util.css(e, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\t\"border-width\": 0,\r\n\t\t\t\t\"border-style\": \"solid\",\r\n\t\t\t\tcolor: color,\r\n\t\t\t\t\"border-color\": color\r\n\t\t\t});\r\n\t\t\treturn e;\r\n\t\t},\r\n\t\tbounds: function () {\r\n\t\t\tvar e = document.createElement('div');\r\n\t\t\t_util.css(e, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\t\"white-space\": \"nowrap\",\r\n\t\t\t\t\"pointer-events\": \"none\",\r\n\t\t\t\t\"font-size\": FONT_SIZE\r\n\t\t\t});\r\n\t\t\te.style.zIndex = ZINDEX;\r\n\t\t\treturn e;\r\n\t\t},\r\n\t\ttrigger: function (color) {\r\n\t\t\t// inner to be above or below line but keep position\r\n\t\t\tvar inner = document.createElement('div');\r\n\t\t\tinner.textContent = \"trigger\";\r\n\t\t\t_util.css(inner, {\r\n\t\t\t\tposition: \"relative\",\r\n\t\t\t});\r\n\t\t\t// inner wrapper for right: 0 and main element has no size\r\n\t\t\tvar w = document.createElement('div');\r\n\t\t\t_util.css(w, {\r\n\t\t\t\tposition: \"absolute\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\t\"border-width\": 0,\r\n\t\t\t\t\"border-style\": \"solid\",\r\n\t\t\t\tcolor: color,\r\n\t\t\t\t\"border-color\": color\r\n\t\t\t});\r\n\t\t\tw.appendChild(inner);\r\n\t\t\t// wrapper\r\n\t\t\tvar e = document.createElement('div');\r\n\t\t\t_util.css(e, {\r\n\t\t\t\tposition: \"fixed\",\r\n\t\t\t\toverflow: \"visible\",\r\n\t\t\t\t\"white-space\": \"nowrap\",\r\n\t\t\t\t\"pointer-events\": \"none\",\r\n\t\t\t\t\"font-size\": FONT_SIZE\r\n\t\t\t});\r\n\t\t\te.style.zIndex = ZINDEX;\r\n\t\t\te.appendChild(w);\r\n\t\t\treturn e;\r\n\t\t},\r\n\t};\r\n\r\n}));","const loadedDependency = {};\n\nconst existingDependency = (name) => {\n return (name in loadedDependency) ? loadedDependency[name] : false;\n};\n\nconst saveDependency = (name, lib) => {\n return new Promise((resolve, reject) => {\n try {\n if (!existingDependency(name)) {\n loadedDependency[name] = lib;\n resolve(false);\n } else {\n resolve(true);\n }\n } catch (e) {\n reject(e);\n }\n });\n};\n\n\n\n/**\n * This utility class is injected in all components that extends Component\n * and is used to lazy load third-part libraries\n */\nexport default class DependencyInjector {\n static get CUSTOM_STYLES() {\n return '../../../stylesheets';\n }\n\n static defaultCatchPromise(error) {\n console.error(\"Failed to inject dependency\", error.stack);\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.debug(`[${myName}] ${logStr}`);\n }\n }\n\n\n /**\n * Load a single bootstrap component from library\n * The SCSS file shoul be created due to the impossibility to import from bootstrap package\n * @param thenPromise\n * @param catchPromise\n */\n loadBootstrapJsComponentAndExecute(componentName, thenPromise, catchPromise) {\n this.log(`Loading Bootstrap ${componentName}`);\n\n import(/* webpackChunkName: `boostrap-js` */ `bootstrap/js/dist/${componentName}.js`).then(thenPromise).catch(catchPromise);\n }\n\n\n loadAos(thenPromise, catchPromise) {\n this.log('Loading aos');\n\n import(/* webpackChunkName: `aos` */ 'aos/dist/aos.css').then(\n () => {\n import(/* webpackChunkName: `aos` */ 'aos').then(thenPromise).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n\n loadModalAndExecute(thenPromise, catchPromise) {\n this.log('Loading Modal');\n\n import(/* webpackChunkName: `vex` */ 'vex-js/dist/js/vex.js').then(thenPromise).catch(catchPromise);\n }\n\n loadCarouselAndExecute(thenPromise, catchPromise) {\n this.log('Loading Slick Carousel');\n if (existingDependency('carousel')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.scss').then( () => {\n import(/* webpackChunkName: `slick` */ \"slick-carousel/slick/slick-theme.scss\").then(() => {\n import(/* webpackChunkName: `slick` */ 'slick-carousel/slick/slick.js').then((res) => {\n saveDependency('carousel', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(err => {\n console.error('Failed slick css import')\n }); // js library\n }).catch(err => {\n console.error('Failed slick css theme')\n });\n\n }\n\n loadStickyAndExecute(thenPromise, catchPromise) {\n this.log('Loading stickybits');\n import(/* webpackChunkName: `stickybits` */ 'stickybits').then(thenPromise).catch(catchPromise);\n }\n\n loadSelect2(thenPromise, catchPromise) {\n this.log('Loading Select2');\n if (existingDependency('select2')) return thenPromise(existingDependency('carousel'));\n\n import(/* webpackChunkName: `flatpickr` */ 'select2/src/scss/core.scss').then(\n () => {\n import(/* webpackChunkName: `selectize` */ 'select2/dist/js/select2.js').then((res) => {\n saveDependency('select2', res);\n thenPromise(res);\n }).catch(catchPromise);\n }).catch(catchPromise);\n }\n\n loadFlatpickrLocale(locale, thenPromise, catchPromise) {\n import(/* webpackChunkName: `flatpickr-locale` */ `flatpickr/dist/l10n/${locale}.js`).then(thenPromise).catch(catchPromise)\n }\n\n loadFlatpickr(thenPromise, catchPromise) {\n this.log('Loading Flatpickr');\n\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/flatpickr.styl').then(\n () => {\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/src/style/themes/airbnb.styl');\n import(/* webpackChunkName: `flatpickr` */ 'flatpickr/dist/flatpickr.js').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n\n loadMasonry(thenPromise, catchPromise) {\n this.log('Loading Masonry');\n\n import(/* webpackChunkName: `masonry-layout` */ 'masonry-layout').then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the query-string library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscrol fails to load\n */\n loadQueryStringAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading query-string\");\n import(/* webpackChunkName: `query-string` */ \"query-string\").then(thenPromise).catch(catchPromise);\n }\n\n /**\n * This method load the jscroll library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when jscroll is ready\n * @param catchPromise the code that must be executed when jscroll fails to load\n */\n // loadJscrollAndExecute(thenPromise, catchPromise) {\n // this.log(\"Loading jscroll\");\n // import(/* webpackChunkName: `jscroll` */ \"jscroll\").then(thenPromise).catch(catchPromise);\n // }\n\n /**\n * This method load the blueimp-file-upload library and execute the given promises\n * when loaded\n * @param thenPromise the code that must be executed when blueimp-file-upload is ready\n * @param catchPromise the code that must be executed when blueimp-file-upload fails to load\n */\n loadBlueimpFileUploadAndExecute(thenPromise, catchPromise) {\n this.log(\"Loading BlueimpFileUpload\");\n import(/* webpackChunkName: `blueimp-file-upload` */ \"blueimp-file-upload\").then(\n () => {\n import(/* webpackChunkName: `blueimp-file-upload` */ 'blueimp-file-upload/css/jquery.fileupload.css').then(thenPromise).catch(catchPromise); // js library\n }).catch(catchPromise);\n }\n\n /**\n * Load all jquery ui js (1.5kb gzipped)\n * @param widgetName the name of jquery wigget\n * @param thenPromise the code that must be executed when the widget is ready\n * @param catchPromise the code that must be executed when the widget fails to load\n */\n loadJqueryUIWidgetAndExecute(widgetName, thenPromise, catchPromise) {\n this.log(`Loading jQuery UI dist for ${widgetName}`);\n\n import(\n /* webpackChunkName: `jquery-ui` */\n 'jquery-ui-dist/jquery-ui').then(thenPromise).catch(catchPromise);\n }\n\n loadExternalScript(url) {\n return new Promise((resolve, reject) => {\n let script = document.createElement('script');\n script.type = 'text/javascript';\n script.src = url;\n script.addEventListener('load', () => resolve(script), false);\n script.addEventListener('error', () => reject(script), false);\n document.body.appendChild(script);\n });\n }\n}\n","import DependencyInjector from '../utils/DependencyInjector';\nimport { CustomEvents } from '../utils/CustomEvents';\nimport { match } from '../utils/ResolutionHandler';\nimport { getFirstFocusable } from \"../utils/FocusableElementUtils\";\nimport {on, emit, off, one} from '../utils/EventsBus';\n\n\n\n/**\n * Generic web component that expose a render method\n */\nexport default class Component {\n\n constructor() {\n this.moduleLoader = new DependencyInjector(); // Use this class to lazy load modules!!\n this.$customEvents = CustomEvents;\n this.$matchMedia = match;\n this.$on = on;\n this.$emit = emit;\n this.$off = off;\n this.$one = one;\n this.$getFirstFocusable = getFirstFocusable;\n }\n\n /**\n * Log utility\n * @param logStr\n */\n log(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.log(`%c[${myName}] %c${logStr}`, 'color: #f56c42', 'color: inherit');\n }\n }\n\n /**\n * Log utility\n * @param logStr\n */\n warn(logStr = \"\") {\n if (logStr != \"\") {\n let myName = this.constructor.name;\n console.warn(`[${myName}] ${logStr}`);\n }\n }\n\n /*\n Main method that execute the render logic of the component\n */\n render() {\n let myName = this.constructor.name;\n console.log(`[${myName}] Rendering..`);\n }\n}\n"],"sourceRoot":""}