{"version":3,"sources":["../src/scripts/inspiration/app.js","../src/scripts/lib/locomotive-scroll.js"],"names":["_typeof","obj","Symbol","iterator","constructor","prototype","_regeneratorRuntime","define","key","value","Object","defineProperty","enumerable","configurable","writable","wrap","innerFn","outerFn","self","tryLocsList","protoGenerator","Generator","generator","create","context","Context","makeInvokeMethod","tryCatch","fn","arg","type","call","err","GeneratorFunction","GeneratorFunctionPrototype","defineIteratorMethods","forEach","method","this","_invoke","AsyncIterator","PromiseImpl","invoke","resolve","reject","record","result","hasOwn","__await","then","unwrapped","error","previousPromise","callInvokeWithMethodAndArg","state","Error","doneResult","delegate","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","done","methodName","undefined","TypeError","info","resultName","next","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","push","resetTryEntry","completion","reset","values","iterable","iteratorMethod","iteratorSymbol","isNaN","length","i","exports","Op","hasOwnProperty","desc","$Symbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","toStringTag","IteratorPrototype","getProto","getPrototypeOf","NativeIteratorPrototype","Gp","displayName","isGeneratorFunction","genFun","ctor","name","mark","setPrototypeOf","__proto__","awrap","async","Promise","iter","keys","val","object","reverse","pop","skipTempReset","prev","charAt","slice","stop","rootRecord","rval","exception","handle","loc","caught","hasCatch","hasFinally","finallyEntry","complete","finish","catch","thrown","delegateYield","asyncGeneratorStep","gen","_next","_throw","_asyncToGenerator","args","arguments","apply","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_unsupportedIterableToArray","_nonIterableSpread","o","minLen","_arrayLikeToArray","n","toString","Array","from","test","isArray","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","_toPrimitive","String","input","hint","prim","toPrimitive","res","Number","_classPrivateFieldInitSpec","privateMap","_checkPrivateRedeclaration","set","privateCollection","has","_classPrivateFieldGet","receiver","_classExtractFieldDescriptor","_classApplyDescriptorGet","action","get","_main","_breakpoint","_indexOfFirstLandscape","_isLanscapeClass","_activeClass","_libelleSessionStorage","module","WeakMap","inspiration","config","document","querySelector","articles","querySelectorAll","filters","nbItems","_loadGoodImage","window","addEventListener","LocomotiveScroll","body","e","JSON","parse","detail","documentElement","classList","add","remove","_filtrer","firstIndex","raison","array","index","_this","items","filter","el","tagName","j","includeIndex","getArrayOfLandscape","helpers","getWindowWidth","includes","src","dataset","imgLandscape","console","imgPortrait","sessionStorage","getItem","tag","setItem","tagLink","scroll","top","left","behavior","activeFiltre","_ref","_callee","itemsToHide","itemsToShow","_context","concat","_x","_x2","lenght","global","factory","amd","_extends","assign","bind","source","_createForOfIteratorHelperLoose","allowArrayLike","it","t","s","Math","max","min","clearTimeout","setTimeout","clamp","mapRange","inMin","inMax","outMin","outMax","inRange","outRange","normalize","closestNumber","reduce","curr","abs","isRunning","lerp","to","round","currentTime","duration","easing","onUpdate","completed","_ref4","_ref4$lerp","_ref4$duration","_ref4$easing","_this7","onWindowResize","width","innerWidth","height","innerHeight","onWrapperResize","wrapper","clientWidth","clientHeight","onContentResize","scrollHeight","scrollWidth","content","wrapperResizeObserver","ResizeObserver","observe","contentResizeObserver","removeEventListener","disconnect","x","y","events","emit","_len","_key","on","_this8","r","_ref5","_this9","_ref5$wheelMultiplier","wheelMultiplier","_ref5$touchMultiplier","touchMultiplier","_ref5$normalizeWheel","normalizeWheel","onTouchStart","_ref6","targetTouches","clientX","clientY","touchStart","lastDelta","onTouchMove","_ref7","emitter","deltaX","deltaY","event","onTouchEnd","inertia","onWheel","element","passive","l","_this10","_ref8","direction","gestureDirection","mouseMultiplier","h","smooth","_ref8$wrapper","a","_ref8$content","c","_ref8$wheelEventsTarg","wheelEventsTarget","u","_ref8$smoothWheel","smoothWheel","p","_ref8$smoothTouch","smoothTouch","d","_ref8$syncTouch","syncTouch","m","_ref8$syncTouchLerp","syncTouchLerp","v","_ref8$touchInertiaMul","touchInertiaMultiplier","g","S","_ref8$easing","w","pow","_ref8$lerp","f","_ref8$infinite","infinite","_ref8$orientation","orientation","T","_ref8$gestureOrientat","gestureOrientation","z","_ref8$touchMultiplier","M","_ref8$wheelMultiplier","E","_ref8$normalizeWheel","L","onVirtualScroll","_ref9","ctrlKey","options","composedPath","find","hasAttribute","isStopped","isLocked","preventDefault","isSmooth","isScrolling","animate","velocity","scrollTo","targetScroll","programmatic","onScroll","animatedScroll","actualScroll","sign","warn","lenisVersion","dimensions","rootElement","virtualScroll","destroy","isHorizontal","scrollLeft","scrollTop","time","advance","_this11","_ref10","_ref10$offset","offset","_ref10$immediate","immediate","_ref10$lock","lock","_ref10$duration","_ref10$easing","_ref10$lerp","_ref10$onComplete","onComplete","_ref10$force","force","_ref10$programmatic","limit","nodeType","getBoundingClientRect","setScroll","fromTo","_ref11","requestAnimationFrame","__isSmooth","toggle","__isScrolling","__isStopped","IO","scrollElements","_ref$rootMargin","rootMargin","IORaf","observer","_init","_proto","observerOptions","onIntersect","entries","$targetItem","item","$el","isIntersecting","isAlreadyIntersected","_setInview","_setOutOfView","IntersectionObserver","_step","_iterator","scrollElement","$scrollElement","unobserve","setInteractivityOn","setInview","setInteractivityOff","setOutOfView","attributes","scrollRepeat","INVIEW_CLASS","PROGRESS_CSS_VAR","PROGRESS_MODULAR_METHOD","ScrollElement","_this$$el$dataset$scr","_this$$el$dataset$scr2","_this$$el$dataset$scr3","_this$$el$dataset$scr4","_this$$el$dataset$scr5","id","modularInstance","subscribeElementUpdateFn","unsubscribeElementUpdateFn","needRaf","scrollOrientation","intersection","metrics","currentScroll","translateValue","progress","lastProgress","progressModularModules","isInview","isInteractive","isInFold","isFirstResize","scrollClass","scrollOffset","scrollPosition","scrollModuleProgress","scrollCssProgress","scrollEventProgress","scrollSpeed","parseFloat","scrollCall","scrollCallSelf","scrollIgnoreFold","scrollEnableTouchSpeed","start","end","offsetStart","offsetEnd","bcr","scrollY","scrollX","_getProgressModularModules","_resize","onResize","_ref2","onRender","_ref3","wSize","_computeProgress","_progress","style","transform","way","_getScrollCallFrom","_dispatchCall","_computeMetrics","_computeIntersection","_this$metrics$bcr","metricsStart","metricsSize","split","trim","scrollPositionStart","scrollPositionEnd","viewportStart","parseInt","replace","viewportEnd","forcedProgress","_setCssProgress","_setCustomEventProgress","modularModules","moduleName","moduleId","currentProgress","setProperty","customEventName","customEvent","CustomEvent","dispatchEvent","modulesIdNames","modules","_step2","_iterator2","modulesIdName","_step3","_iterator3","moduleObj","closestIntersectionValue","_this$attributes$scro","_this$attributes","callParameters","callSelf","_targetModuleId","targetModuleId","func","ATTRIBUTES_THAT_NEED_RAF","TRIGGER_ROOT_MARGIN","RAF_ROOT_MARGIN","Core","triggerRootMargin","rafRootMargin","$scrollContainer","triggeredScrollElements","RAFScrollElements","scrollElementsToUpdate","IOTriggerInstance","IORafInstance","$scrollElements","$scrollElementsArr","_subscribeScrollElements","_unsubscribeAllScrollElements","removeScrollElements","$oldContainer","$scrollElementsToRemove","$scrollElementsToRemoveArr","indexOf","splice","_index","_scrollElement","_$scrollElementsToRemoveArr","targetScrollElementToUpdate","targetScrollElement","_unsubscribeElementUpdate","scrollElementItem","addScrollElements","$newContainer","ids","maxID","fromIndex","toObserve","_checkRafNeeded","scrollElementInstance","_subscribeElementUpdate","scrollElementToUpdate","attributesThatNeedRaf","removeAttribute","attributeToRemove","attribute","map","join","_value","RO","resizeElements","_ref$resizeCallback","resizeCallback","$resizeElements","isFirstObserve","$resizeElement","defaultLenisOptions","_temp","_ref$lenisOptions","lenisOptions","_ref$autoResize","autoResize","_ref$autoStart","autoStart","_ref$scrollCallback","scrollCallback","initCustomTicker","destroyCustomTicker","rafPlaying","lenisInstance","coreInstance","rafInstance","ROInstance","_onRenderBind","_onResizeBind","_onScrollToBind","_onRender","_onScrollTo","_onResize","_this$lenisInstance","setAttribute","_bindEvents","_unbindEvents","_bindScrollToEvents","_unbindScrollToEvents","$container","_this2","$rootContainer","$scrollToElements","_this3","_this4","_this4$coreInstance","_this$lenisInstance2","_this$coreInstance","raf","Date","now","_event$currentTarget","$target","currentTarget","getAttribute","_raf","cancelAnimationFrame","_this$coreInstance2","_this$coreInstance3","_this5","resize","_this$lenisInstance3","_this6"],"mappings":"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","file":"static/scripts/inspiration/app.js.map","sourcesContent":["'use strict';\r\n\r\nmodule.exports = class inspiration {\r\n\t#main = document.querySelector('.inspiration__main');\r\n\t#breakpoint = 1024;\r\n\t#indexOfFirstLandscape = 4;\r\n\t#isLanscapeClass = 'is-landscape';\r\n\t#activeClass = 'is-active';\r\n\t#libelleSessionStorage = 'activeTag';\r\n\r\n\tconstructor(config) {\r\n\t\tthis.config = config\r\n\t\tthis.articles = document.querySelectorAll('.inspiration__container > [data-inspiration]');\r\n\t\tthis.filters = document.querySelectorAll('[data-tag-link]');\r\n\t\tthis.nbItems = config.nbItems;\r\n\t}\r\n\tinitialize() {\r\n\t\tlet self = this;\r\n\r\n\t\t// On load les images pour les paysages\r\n\t\tself._loadGoodImage();\r\n\t\twindow.addEventListener('resize', () => {\r\n\t\t\tself._loadGoodImage();\r\n\t\t})\r\n\r\n\t\t// Librairie load et scroll\r\n\t\tconst locomotiveScroll = new LocomotiveScroll();\r\n\t\tdocument.body.addEventListener('stateMenu', (e) => {\r\n\t\t\tif(JSON.parse(e.detail.state())) {\r\n\t\t\t\tdocument.documentElement.classList.add('state-open');\r\n\t\t\t} else {\r\n\t\t\t\tdocument.documentElement.classList.remove('state-open');\r\n\t\t\t}\r\n\t\t})\r\n\r\n\t\t// Event tag\r\n\t\tthis._filtrer();\r\n\t}\r\n\r\n\t/**\r\n\t *\tUtility : renvoie un array des index des items au format landscape\r\n\t * @param {int} firstIndex l'index du premier item au format landscape\r\n\t * @param {int} length le nombre d'items inspiration\r\n\t * @returns array\r\n\t */\r\n\tgetArrayOfLandscape(firstIndex, length) {\r\n\t\tlet raison = 6,\r\n\t\t\t\tarray = [firstIndex],\r\n\t\t\t\ti = 1;\r\n\r\n\t\tfor (let index = firstIndex; index < length; index++) {\r\n\t\t\traison = (i % 2 == 0) ? 4 : 6;\r\n\r\n\t\t\tif (index === array[array.length - 1] + raison) {\r\n\t\t\t\tarray.push(index);\r\n\t\t\t\ti++;\r\n\t\t\t}\r\n\t\t}\r\n\t\treturn array;\r\n\t}\r\n\r\n\t/**\r\n\t *\r\n\t * @param {array} liste des blocks\r\n\t * @description Sur les écrans > this.#breakpoint, on charge des images landscapes pour certains index sinon\r\n\t * * on traite quand même le esle en cas de redimensionnement\r\n\t */\r\n\t_loadGoodImage(array = this.articles) {\r\n\t\tlet items = [...array].filter((el) => el.tagName === 'ARTICLE'),\r\n\t\t\t\tj = 1,\r\n\t\t\tincludeIndex = this.getArrayOfLandscape(this.#indexOfFirstLandscape, this.nbItems);\r\n\r\n\t\tif (helpers.getWindowWidth() >= this.#breakpoint) {\r\n\t\t\titems.forEach((el, index) => {\r\n\t\t\t\tj = index + 1;\r\n\t\t\t\tif (includeIndex.includes(j)) {\r\n\t\t\t\t\titems[index].classList.add(this.#isLanscapeClass);\r\n\t\t\t\t\ttry {\r\n\t\t\t\t\t\titems[index].querySelector('img').src = items[index].querySelector('img').dataset.imgLandscape;\r\n\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t})\r\n\t\t} else { items.forEach(el => el.querySelector('img').src = el.querySelector('img').dataset.imgPortrait) }\r\n\r\n\t\treturn true;\r\n\t}\r\n/**\r\n *\r\n * SETTER/GETTER : état du tag actif\r\n */\r\n\tset activeFiltre(tag) {\r\n\t\twindow.sessionStorage.setItem(this.#libelleSessionStorage, tag);\r\n\t}\r\n\tget activeFiltre() {\r\n\t\treturn window.sessionStorage.getItem(this.#libelleSessionStorage);\r\n\t}\r\n\r\n\t/**\r\n\t * @description : on coche ou décoche un tag\r\n\t */\r\n\t_filtrer() {\r\n\t\tlet self = this;\r\n\r\n\t\tconst filters = this.filters;\r\n\r\n\t\tthis.#main.addEventListener('click', (e) => {\r\n\t\t\tconst {\r\n\t\t\t\ttarget\r\n\t\t\t} = e;\r\n\t\t\tif(target.dataset.tagLink) {\r\n\t\t\t\tfilters.forEach(el => el.classList.remove(self.#activeClass))\r\n\r\n\t\t\t\twindow.scroll({\r\n\t\t\t\t\ttop: 0,\r\n\t\t\t\t\tleft: 0,\r\n\t\t\t\t\tbehavior: 'smooth'\r\n\t\t\t\t});\r\n\r\n\t\t\t\tif (self.activeFiltre === target.dataset.tagLink) {\r\n\t\t\t\t\t// On décoche un tag coché\r\n\t\t\t\t\tself.activeFiltre = 'all';\r\n\t\t\t\t\ttarget.classList.remove(self.#activeClass);\r\n\t\t\t\t} else {\r\n\t\t\t\t\tself.activeFiltre = target.dataset.tagLink;\r\n\t\t\t\t\ttarget.classList.add(self.#activeClass);\r\n\t\t\t\t}\r\n\r\n\t\t\t\treturn new Promise(async function (resolve, reject) {\r\n\r\n\t\t\t\t\t// On reinit l'ensemble des images en mode portrait\r\n\t\t\t\t\tdocument.querySelectorAll(`.inspiration__container > [data-inspiration]`).forEach(el => {\r\n\t\t\t\t\t\tel.classList.remove(self.#isLanscapeClass);\r\n\t\t\t\t\t\tif (el.tagName === 'ARTICLE') {\r\n\t\t\t\t\t\t\ttry {\r\n\t\t\t\t\t\t\t\tel.querySelector('img').src = el.querySelector('img').dataset.imgPortrait;\r\n\t\t\t\t\t\t\t} catch (e) {\r\n\t\t\t\t\t\t\t\tconsole.error(e);\r\n\t\t\t\t\t\t\t}\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t})\r\n\t\t\t\t\tlet itemsToHide = '';\r\n\t\t\t\t\tlet itemsToShow = '';\r\n\r\n\t\t\t\t\tif (self.activeFiltre == 'all') {\r\n\t\t\t\t\t\titemsToHide = [];\r\n\t\t\t\t\t\titemsToShow = document.querySelectorAll('.inspiration__container > *');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\titemsToHide = document.querySelectorAll(`.inspiration__container > :not([data-inspiration='${self.activeFiltre}'])`);\r\n\t\t\t\t\t\titemsToShow = document.querySelectorAll(`.inspiration__container > [data-inspiration='${self.activeFiltre}']`);\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\titemsToHide.forEach(el => {\r\n\t\t\t\t\t\tel.classList.add('hide');\r\n\t\t\t\t\t\tel.classList.remove('show');\r\n\t\t\t\t\t});\r\n\t\t\t\t\titemsToShow.forEach(el => {\r\n\t\t\t\t\t\tel.classList.add('show');\r\n\t\t\t\t\t\tel.classList.remove('hide');\r\n\t\t\t\t\t});\r\n\t\t\t\t\tresolve(itemsToShow);\r\n\t\t\t\t}).then((itemsToShow) => {\r\n\t\t\t\t\tif (itemsToShow.lenght % 3 === 0) {\r\n\t\t\t\t\t\tdocument.querySelector('.inspiration__container').classList.remove('has-less-3-items-lastLine');\r\n\t\t\t\t\t} else {\r\n\t\t\t\t\t\tdocument.querySelector('.inspiration__container').classList.add('has-less-3-items-lastLine');\r\n\t\t\t\t\t}\r\n\r\n\t\t\t\t\tself._loadGoodImage(itemsToShow);\r\n\t\t\t\t\tnew LocomotiveScroll();\r\n\t\t\t\t})\r\n\t\t\t}\r\n\t\t})\r\n\t}\r\n}","(function (global, factory) {\r\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\r\n typeof define === 'function' && define.amd ? define(factory) :\r\n (global = global || self, global.LocomotiveScroll = factory());\r\n})(this, (function () {\r\n function _extends() {\r\n _extends = Object.assign ? Object.assign.bind() : function (target) {\r\n for (var i = 1; i < arguments.length; i++) {\r\n var source = arguments[i];\r\n for (var key in source) {\r\n if (Object.prototype.hasOwnProperty.call(source, key)) {\r\n target[key] = source[key];\r\n }\r\n }\r\n }\r\n return target;\r\n };\r\n return _extends.apply(this, arguments);\r\n }\r\n function _unsupportedIterableToArray(o, minLen) {\r\n if (!o) return;\r\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\r\n var n = Object.prototype.toString.call(o).slice(8, -1);\r\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\r\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\r\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\r\n }\r\n function _arrayLikeToArray(arr, len) {\r\n if (len == null || len > arr.length) len = arr.length;\r\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\r\n return arr2;\r\n }\r\n function _createForOfIteratorHelperLoose(o, allowArrayLike) {\r\n var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"];\r\n if (it) return (it = it.call(o)).next.bind(it);\r\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\r\n if (it) o = it;\r\n var i = 0;\r\n return function () {\r\n if (i >= o.length) return {\r\n done: true\r\n };\r\n return {\r\n done: false,\r\n value: o[i++]\r\n };\r\n };\r\n }\r\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\r\n }\r\n\r\n function t(){return t=Object.assign?Object.assign.bind():function(t){for(var e=1;e=1;const o=s?1:this.easing(i);this.value=this.from+(this.to-this.from)*o;}var o;null==(i=this.onUpdate)||i.call(this,this.value,{completed:s}),s&&this.stop();}stop(){this.isRunning=!1;}fromTo(t,e,{lerp:i=.1,duration:s=1,easing:o=(t=>t),onUpdate:n}){this.from=this.value=t,this.to=e,this.lerp=i,this.duration=s,this.easing=o,this.currentTime=0,this.isRunning=!0,this.onUpdate=n;}}function s(t,e){let i;return function(){let s=arguments,o=this;clearTimeout(i),i=setTimeout(function(){t.apply(o,s);},e);}}class o{constructor(t,e){this.onWindowResize=()=>{this.width=window.innerWidth,this.height=window.innerHeight;},this.onWrapperResize=()=>{this.width=this.wrapper.clientWidth,this.height=this.wrapper.clientHeight;},this.onContentResize=()=>{const t=this.wrapper===window?document.documentElement:this.wrapper;this.scrollHeight=t.scrollHeight,this.scrollWidth=t.scrollWidth;},this.wrapper=t,this.content=e,this.wrapper===window?(window.addEventListener(\"resize\",this.onWindowResize,!1),this.onWindowResize()):(this.wrapperResizeObserver=new ResizeObserver(s(this.onWrapperResize,100)),this.wrapperResizeObserver.observe(this.wrapper),this.onWrapperResize()),this.contentResizeObserver=new ResizeObserver(s(this.onContentResize,100)),this.contentResizeObserver.observe(this.content),this.onContentResize();}destroy(){var t,e;window.removeEventListener(\"resize\",this.onWindowResize,!1),null==(t=this.wrapperResizeObserver)||t.disconnect(),null==(e=this.contentResizeObserver)||e.disconnect();}get limit(){return {x:this.scrollWidth-this.width,y:this.scrollHeight-this.height}}}let n=()=>({events:{},emit(t,...e){let i=this.events[t]||[];for(let t=0,s=i.length;t{var i;this.events[t]=null==(i=this.events[t])?void 0:i.filter(t=>e!==t);}}});class r{constructor(t,{wheelMultiplier:i=1,touchMultiplier:s=2,normalizeWheel:o=!1}){this.onTouchStart=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:0,y:0};},this.onTouchMove=t=>{const{clientX:e,clientY:i}=t.targetTouches?t.targetTouches[0]:t,s=-(e-this.touchStart.x)*this.touchMultiplier,o=-(i-this.touchStart.y)*this.touchMultiplier;this.touchStart.x=e,this.touchStart.y=i,this.lastDelta={x:s,y:o},this.emitter.emit(\"scroll\",{type:\"touch\",deltaX:s,deltaY:o,event:t});},this.onTouchEnd=t=>{this.emitter.emit(\"scroll\",{type:\"touch\",inertia:!0,deltaX:this.lastDelta.x,deltaY:this.lastDelta.y,event:t});},this.onWheel=t=>{let{deltaX:i,deltaY:s}=t;this.normalizeWheel&&(i=e(-100,i,100),s=e(-100,s,100)),i*=this.wheelMultiplier,s*=this.wheelMultiplier,this.emitter.emit(\"scroll\",{type:\"wheel\",deltaX:i,deltaY:s,event:t});},this.element=t,this.wheelMultiplier=i,this.touchMultiplier=s,this.normalizeWheel=o,this.touchStart={x:null,y:null},this.emitter=n(),this.element.addEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.addEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.addEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.addEventListener(\"touchend\",this.onTouchEnd,{passive:!1});}on(t,e){return this.emitter.on(t,e)}destroy(){this.emitter.events={},this.element.removeEventListener(\"wheel\",this.onWheel,{passive:!1}),this.element.removeEventListener(\"touchstart\",this.onTouchStart,{passive:!1}),this.element.removeEventListener(\"touchmove\",this.onTouchMove,{passive:!1}),this.element.removeEventListener(\"touchend\",this.onTouchEnd,{passive:!1});}}class l{constructor({direction:e,gestureDirection:s,mouseMultiplier:l,smooth:h,wrapper:a=window,content:c=document.documentElement,wheelEventsTarget:u=a,smoothWheel:p=null==h||h,smoothTouch:d=!1,syncTouch:m=!1,syncTouchLerp:v=.1,touchInertiaMultiplier:g=35,duration:S,easing:w=(t=>Math.min(1,1.001-Math.pow(2,-10*t))),lerp:f=(S?null:.1),infinite:y=!1,orientation:T=(null!=e?e:\"vertical\"),gestureOrientation:z=(null!=s?s:\"vertical\"),touchMultiplier:M=1,wheelMultiplier:E=(null!=l?l:1),normalizeWheel:L=!1}={}){this.onVirtualScroll=({type:e,inertia:i,deltaX:s,deltaY:o,event:n})=>{if(n.ctrlKey)return;const r=\"touch\"===e,l=\"wheel\"===e;if(\"vertical\"===this.options.gestureOrientation&&0===o||\"horizontal\"===this.options.gestureOrientation&&0===s||r&&\"vertical\"===this.options.gestureOrientation&&0===this.scroll&&!this.options.infinite&&o<=0)return;if(n.composedPath().find(t=>null==t||null==t.hasAttribute?void 0:t.hasAttribute(\"data-lenis-prevent\")))return;if(this.isStopped||this.isLocked)return void n.preventDefault();if(this.isSmooth=(this.options.smoothTouch||this.options.syncTouch)&&r||this.options.smoothWheel&&l,!this.isSmooth)return this.isScrolling=!1,void this.animate.stop();n.preventDefault();let h=o;\"both\"===this.options.gestureOrientation?h=Math.abs(o)>Math.abs(s)?o:s:\"horizontal\"===this.options.gestureOrientation&&(h=s);const a=r&&this.options.syncTouch,c=r&&i&&Math.abs(h)>1;c&&(h=this.velocity*this.options.touchInertiaMultiplier),this.scrollTo(this.targetScroll+h,t({programmatic:!1},a&&{lerp:c?this.syncTouchLerp:.4}));},this.onScroll=()=>{if(!this.isScrolling){const t=this.animatedScroll;this.animatedScroll=this.targetScroll=this.actualScroll,this.velocity=0,this.direction=Math.sign(this.animatedScroll-t),this.emit();}},e&&console.warn(\"Lenis: `direction` option is deprecated, use `orientation` instead\"),s&&console.warn(\"Lenis: `gestureDirection` option is deprecated, use `gestureOrientation` instead\"),l&&console.warn(\"Lenis: `mouseMultiplier` option is deprecated, use `wheelMultiplier` instead\"),h&&console.warn(\"Lenis: `smooth` option is deprecated, use `smoothWheel` instead\"),window.lenisVersion=\"1.0.11\",a!==document.documentElement&&a!==document.body||(a=window),this.options={wrapper:a,content:c,wheelEventsTarget:u,smoothWheel:p,smoothTouch:d,syncTouch:m,syncTouchLerp:v,touchInertiaMultiplier:g,duration:S,easing:w,lerp:f,infinite:y,gestureOrientation:z,orientation:T,touchMultiplier:M,wheelMultiplier:E,normalizeWheel:L},this.dimensions=new o(a,c),this.rootElement.classList.add(\"lenis\"),this.velocity=0,this.isStopped=!1,this.isSmooth=p||d,this.isScrolling=!1,this.targetScroll=this.animatedScroll=this.actualScroll,this.animate=new i,this.emitter=n(),this.options.wrapper.addEventListener(\"scroll\",this.onScroll,{passive:!1}),this.virtualScroll=new r(u,{touchMultiplier:M,wheelMultiplier:E,normalizeWheel:L}),this.virtualScroll.on(\"scroll\",this.onVirtualScroll);}destroy(){this.emitter.events={},this.options.wrapper.removeEventListener(\"scroll\",this.onScroll,{passive:!1}),this.virtualScroll.destroy();}on(t,e){return this.emitter.on(t,e)}off(t,e){var i;this.emitter.events[t]=null==(i=this.emitter.events[t])?void 0:i.filter(t=>e!==t);}setScroll(t){this.isHorizontal?this.rootElement.scrollLeft=t:this.rootElement.scrollTop=t;}emit(){this.emitter.emit(\"scroll\",this);}reset(){this.isLocked=!1,this.isScrolling=!1,this.velocity=0,this.animate.stop();}start(){this.isStopped=!1,this.reset();}stop(){this.isStopped=!0,this.animate.stop(),this.reset();}raf(t){const e=t-(this.time||t);this.time=t,this.animate.advance(.001*e);}scrollTo(t,{offset:i=0,immediate:s=!1,lock:o=!1,duration:n=this.options.duration,easing:r=this.options.easing,lerp:l=!n&&this.options.lerp,onComplete:h=null,force:a=!1,programmatic:c=!0}={}){if(!this.isStopped||a){if([\"top\",\"left\",\"start\"].includes(t))t=0;else if([\"bottom\",\"right\",\"end\"].includes(t))t=this.limit;else {var u;let e;if(\"string\"==typeof t?e=document.querySelector(t):null!=(u=t)&&u.nodeType&&(e=t),e){if(this.options.wrapper!==window){const t=this.options.wrapper.getBoundingClientRect();i-=this.isHorizontal?t.left:t.top;}const s=e.getBoundingClientRect();t=(this.isHorizontal?s.left:s.top)+this.animatedScroll;}}if(\"number\"==typeof t){if(t+=i,t=Math.round(t),this.options.infinite?c&&(this.targetScroll=this.animatedScroll=this.scroll):t=e(0,t,this.limit),s)return this.animatedScroll=this.targetScroll=t,this.setScroll(this.scroll),this.reset(),this.emit(),void(null==h||h());if(!c){if(t===this.targetScroll)return;this.targetScroll=t;}this.animate.fromTo(this.animatedScroll,t,{duration:n,easing:r,lerp:l,onUpdate:(t,{completed:e})=>{o&&(this.isLocked=!0),this.isScrolling=!0,this.velocity=t-this.animatedScroll,this.direction=Math.sign(this.velocity),this.animatedScroll=t,this.setScroll(this.scroll),c&&(this.targetScroll=t),e&&(o&&(this.isLocked=!1),requestAnimationFrame(()=>{this.isScrolling=!1;}),this.velocity=0,null==h||h()),this.emit();}});}}}get rootElement(){return this.options.wrapper===window?this.options.content:this.options.wrapper}get limit(){return this.isHorizontal?this.dimensions.limit.x:this.dimensions.limit.y}get isHorizontal(){return \"horizontal\"===this.options.orientation}get actualScroll(){return this.isHorizontal?this.rootElement.scrollLeft:this.rootElement.scrollTop}get scroll(){return this.options.infinite?function(t,e){let i=t%e;return (e>0&&i<0||e<0&&i>0)&&(i+=e),i}(this.animatedScroll,this.limit):this.animatedScroll}get progress(){return 0===this.limit?1:this.scroll/this.limit}get isSmooth(){return this.__isSmooth}set isSmooth(t){this.__isSmooth!==t&&(this.rootElement.classList.toggle(\"lenis-smooth\",t),this.__isSmooth=t);}get isScrolling(){return this.__isScrolling}set isScrolling(t){this.__isScrolling!==t&&(this.rootElement.classList.toggle(\"lenis-scrolling\",t),this.__isScrolling=t);}get isStopped(){return this.__isStopped}set isStopped(t){this.__isStopped!==t&&(this.rootElement.classList.toggle(\"lenis-stopped\",t),this.__isStopped=t);}}\r\n\r\n /**\r\n * Intersection Observer\r\n *\r\n * Detecting visibility of an element in the viewport.\r\n *\r\n * Features functions to:\r\n *\r\n * - Trigger inview/outOfView callbacks\r\n * - If the element has a requestAnimationFrame dependency, set interactivy status for the ScrollElement Class\r\n *\r\n * References:\r\n *\r\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Intersection_Observer_API}\r\n */\r\n var IO = /*#__PURE__*/function () {\r\n function IO(_ref) {\r\n var scrollElements = _ref.scrollElements,\r\n _ref$rootMargin = _ref.rootMargin,\r\n rootMargin = _ref$rootMargin === void 0 ? '-1px -1px -1px -1px' : _ref$rootMargin,\r\n IORaf = _ref.IORaf;\r\n this.scrollElements = void 0;\r\n this.rootMargin = void 0;\r\n this.IORaf = void 0;\r\n this.observer = void 0;\r\n // Parameters\r\n this.scrollElements = scrollElements;\r\n this.rootMargin = rootMargin;\r\n this.IORaf = IORaf;\r\n // Init\r\n this._init();\r\n }\r\n /**\r\n * Lifecyle - Initialize Intersection Observer.\r\n *\r\n * @private\r\n */\r\n var _proto = IO.prototype;\r\n _proto._init = function _init() {\r\n var _this = this;\r\n // Options\r\n var observerOptions = {\r\n rootMargin: this.rootMargin\r\n };\r\n // Callback\r\n var onIntersect = function onIntersect(entries) {\r\n entries.forEach(function (entry) {\r\n var $targetItem = _this.scrollElements.find(function (item) {\r\n return item.$el === entry.target;\r\n });\r\n if (entry.isIntersecting) {\r\n $targetItem && ($targetItem.isAlreadyIntersected = true);\r\n _this._setInview(entry);\r\n } else if ($targetItem && $targetItem.isAlreadyIntersected) {\r\n _this._setOutOfView(entry);\r\n }\r\n });\r\n };\r\n // Instance\r\n this.observer = new IntersectionObserver(onIntersect, observerOptions);\r\n // Observe each default elements\r\n for (var _iterator = _createForOfIteratorHelperLoose(this.scrollElements), _step; !(_step = _iterator()).done;) {\r\n var scrollElement = _step.value;\r\n var $scrollElement = scrollElement.$el;\r\n this.observe($scrollElement);\r\n }\r\n }\r\n /**\r\n * Lifecyle - Destroy Intersection Observer.\r\n */;\r\n _proto.destroy = function destroy() {\r\n this.observer.disconnect();\r\n }\r\n /**\r\n * Subscribe element to the Intersection Observer.\r\n *\r\n * @param {HTMLElement} $scrollElement - DOM Element to observe.\r\n */;\r\n _proto.observe = function observe($scrollElement) {\r\n if (!$scrollElement) {\r\n return;\r\n }\r\n this.observer.observe($scrollElement);\r\n }\r\n /**\r\n * Unsubscribe element to the Intersection Observer.\r\n *\r\n * @param {HTMLElement} $scrollElement - DOM Element to unobserve.\r\n */;\r\n _proto.unobserve = function unobserve($scrollElement) {\r\n if (!$scrollElement) {\r\n return;\r\n }\r\n this.observer.unobserve($scrollElement);\r\n }\r\n /**\r\n * Find ScrollElementReference instance and trigger inview callbacks.\r\n *\r\n * @private\r\n *\r\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\r\n */;\r\n _proto._setInview = function _setInview(entry) {\r\n var scrollElement = this.scrollElements.find(function (scrollElement) {\r\n return scrollElement.$el === entry.target;\r\n });\r\n this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInteractivityOn());\r\n !this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInview());\r\n }\r\n /**\r\n * Find ScrollElementReference instance and trigger out of view callbacks.\r\n *\r\n * @private\r\n *\r\n * @param {IntersectionObserverEntry} entry - DOM Element to observe.\r\n */;\r\n _proto._setOutOfView = function _setOutOfView(entry) {\r\n var scrollElement = this.scrollElements.find(function (scrollElement) {\r\n return scrollElement.$el === entry.target;\r\n });\r\n this.IORaf && (scrollElement == null ? void 0 : scrollElement.setInteractivityOff());\r\n !this.IORaf && (scrollElement == null ? void 0 : scrollElement.setOutOfView());\r\n // Unobserve if element doesn't have repeat attribute\r\n if (!(scrollElement != null && scrollElement.attributes.scrollRepeat) && !this.IORaf) {\r\n this.unobserve(entry.target);\r\n }\r\n };\r\n return IO;\r\n }();\r\n\r\n // https://greensock.com/docs/v3/GSAP/gsap.utils\r\n /**\r\n * Clamp a value to fit within a specific range (ex: clamp(0, 100, -12) --> 0).\r\n *\r\n * @param {number} min - Minimum value expected.\r\n * @param {number} max - Maximum value expected.\r\n * @param {number} value - Current value.\r\n *\r\n * @returns {number} - Clamped value.\r\n */\r\n function clamp(min, max, value) {\r\n return value < min ? min : value > max ? max : value;\r\n }\r\n /**\r\n * Map one range to another (ex: mapRange(-10, 10, 0, 100, 5) --> 75).\r\n *\r\n * @param {number} inMin - Current minimum value.\r\n * @param {number} inMax - Current maximum value.\r\n * @param {number} outMin - Maximum value expected.\r\n * @param {number} outMax - Maximum value expected.\r\n * @param {number} value - Current value.\r\n *\r\n * @returns {number} - New value that should be between minimum value expected and maximum value.\r\n */\r\n function mapRange(inMin, inMax, outMin, outMax, value) {\r\n var inRange = inMax - inMin;\r\n var outRange = outMax - outMin;\r\n return outMin + ((value - inMin) / inRange * outRange || 0);\r\n }\r\n /**\r\n * Map a number within a range to a progress between 0 to 1 (ex: normalize(100, 200, 150) --> 0.5).\r\n *\r\n * @param {number} min - Current minimum value.\r\n * @param {number} max - Current maximum value.\r\n * @param {number} value - Current value.\r\n *\r\n * @returns {number} - New value that should be between 0 and 1.\r\n */\r\n function normalize(min, max, value) {\r\n return mapRange(min, max, 0, 1, value);\r\n }\r\n /**\r\n * Get closest number from an array.\r\n *\r\n * @param {number[]} array - Numbers array.\r\n * @param {number} target - Reference value.\r\n *\r\n * @returns {number} - Closest number.\r\n */\r\n function closestNumber(array, target) {\r\n return array.reduce(function (prev, curr) {\r\n return Math.abs(curr - target) < Math.abs(prev - target) ? curr : prev;\r\n });\r\n }\r\n\r\n /** Constants */\r\n var INVIEW_CLASS = 'is-inview';\r\n var PROGRESS_CSS_VAR = '--progress';\r\n var PROGRESS_MODULAR_METHOD = 'onScrollProgress';\r\n var ScrollElement = /*#__PURE__*/function () {\r\n function ScrollElement(_ref) {\r\n var _this$$el$dataset$scr, _this$$el$dataset$scr2, _this$$el$dataset$scr3, _this$$el$dataset$scr4, _this$$el$dataset$scr5;\r\n var $el = _ref.$el,\r\n id = _ref.id,\r\n modularInstance = _ref.modularInstance,\r\n subscribeElementUpdateFn = _ref.subscribeElementUpdateFn,\r\n unsubscribeElementUpdateFn = _ref.unsubscribeElementUpdateFn,\r\n needRaf = _ref.needRaf,\r\n scrollOrientation = _ref.scrollOrientation;\r\n this.$el = void 0;\r\n this.id = void 0;\r\n this.needRaf = void 0;\r\n this.attributes = void 0;\r\n this.scrollOrientation = void 0;\r\n this.isAlreadyIntersected = void 0;\r\n this.intersection = void 0;\r\n this.metrics = void 0;\r\n this.currentScroll = void 0;\r\n this.translateValue = void 0;\r\n this.progress = void 0;\r\n this.lastProgress = void 0;\r\n this.modularInstance = void 0;\r\n this.progressModularModules = void 0;\r\n this.isInview = void 0;\r\n this.isInteractive = void 0;\r\n this.isInFold = void 0;\r\n this.isFirstResize = void 0;\r\n this.subscribeElementUpdateFn = void 0;\r\n this.unsubscribeElementUpdateFn = void 0;\r\n // Scroll DOM element\r\n this.$el = $el;\r\n // Unique ID\r\n this.id = id;\r\n // RAF option\r\n this.needRaf = needRaf;\r\n // Scroll Direction\r\n this.scrollOrientation = scrollOrientation;\r\n // Modular.js\r\n this.modularInstance = modularInstance;\r\n // Parent's callbacks\r\n this.subscribeElementUpdateFn = subscribeElementUpdateFn;\r\n this.unsubscribeElementUpdateFn = unsubscribeElementUpdateFn;\r\n // Attributes\r\n this.attributes = {\r\n scrollClass: (_this$$el$dataset$scr = this.$el.dataset['scrollClass']) != null ? _this$$el$dataset$scr : INVIEW_CLASS,\r\n scrollOffset: (_this$$el$dataset$scr2 = this.$el.dataset['scrollOffset']) != null ? _this$$el$dataset$scr2 : '0,0',\r\n scrollPosition: (_this$$el$dataset$scr3 = this.$el.dataset['scrollPosition']) != null ? _this$$el$dataset$scr3 : 'start,end',\r\n scrollModuleProgress: this.$el.dataset['scrollModuleProgress'] != null,\r\n scrollCssProgress: this.$el.dataset['scrollCssProgress'] != null,\r\n scrollEventProgress: (_this$$el$dataset$scr4 = this.$el.dataset['scrollEventProgress']) != null ? _this$$el$dataset$scr4 : null,\r\n scrollSpeed: this.$el.dataset['scrollSpeed'] != null ? parseFloat(this.$el.dataset['scrollSpeed']) : null,\r\n scrollRepeat: this.$el.dataset['scrollRepeat'] != null,\r\n scrollCall: (_this$$el$dataset$scr5 = this.$el.dataset['scrollCall']) != null ? _this$$el$dataset$scr5 : null,\r\n scrollCallSelf: this.$el.dataset['scrollCallSelf'] != null,\r\n scrollIgnoreFold: this.$el.dataset['scrollIgnoreFold'] != null,\r\n scrollEnableTouchSpeed: this.$el.dataset['scrollEnableTouchSpeed'] != null\r\n };\r\n // Limits\r\n this.intersection = {\r\n start: 0,\r\n end: 0\r\n };\r\n // Metrics\r\n this.metrics = {\r\n offsetStart: 0,\r\n offsetEnd: 0,\r\n bcr: {}\r\n };\r\n // Scroll Values\r\n this.currentScroll = this.scrollOrientation === 'vertical' ? window.scrollY : window.scrollX;\r\n // Parallax\r\n this.translateValue = 0;\r\n // Progress\r\n this.progress = 0;\r\n this.lastProgress = null;\r\n this.progressModularModules = [];\r\n // Inview\r\n this.isInview = false;\r\n this.isInteractive = false;\r\n this.isAlreadyIntersected = false;\r\n this.isInFold = false;\r\n this.isFirstResize = true;\r\n // Init\r\n this._init();\r\n }\r\n /**\r\n * Lifecyle - Initialize progress tracking.\r\n *\r\n * @private\r\n */\r\n var _proto = ScrollElement.prototype;\r\n _proto._init = function _init() {\r\n if (!this.needRaf) {\r\n return;\r\n }\r\n // Prepare modules progress\r\n if (this.modularInstance && this.attributes.scrollModuleProgress) {\r\n this._getProgressModularModules();\r\n }\r\n // First resize to compute all values\r\n this._resize();\r\n }\r\n /**\r\n * Callback - Resize callback\r\n */;\r\n _proto.onResize = function onResize(_ref2) {\r\n var currentScroll = _ref2.currentScroll;\r\n this.currentScroll = currentScroll;\r\n this._resize();\r\n }\r\n /**\r\n * Callback - RAF callback\r\n */;\r\n _proto.onRender = function onRender(_ref3) {\r\n var currentScroll = _ref3.currentScroll,\r\n smooth = _ref3.smooth;\r\n var wSize = this.scrollOrientation === 'vertical' ? window.innerHeight : window.innerWidth;\r\n this.currentScroll = currentScroll;\r\n this._computeProgress();\r\n // Parallax\r\n if (this.attributes.scrollSpeed && !isNaN(this.attributes.scrollSpeed)) {\r\n // if touch detected or smooth disabled\r\n if (!this.attributes.scrollEnableTouchSpeed && !smooth) {\r\n if (this.translateValue) {\r\n this.$el.style.transform = \"translate3d(0, 0, 0)\";\r\n }\r\n this.translateValue = 0;\r\n // if mousewheel or smooth enabled\r\n } else {\r\n // Check fold condition\r\n if (this.isInFold) {\r\n var progress = Math.max(0, this.progress);\r\n this.translateValue = progress * wSize * this.attributes.scrollSpeed * -1;\r\n } else {\r\n var _progress = mapRange(0, 1, -1, 1, this.progress);\r\n this.translateValue = _progress * wSize * this.attributes.scrollSpeed * -1;\r\n }\r\n this.$el.style.transform = this.scrollOrientation === 'vertical' ? \"translate3d(0, \" + this.translateValue + \"px, 0)\" : \"translate3d(\" + this.translateValue + \"px, 0, 0)\";\r\n }\r\n }\r\n }\r\n /**\r\n * Inview callback\r\n */;\r\n _proto.setInview = function setInview() {\r\n if (this.isInview) {\r\n return;\r\n }\r\n this.isInview = true;\r\n this.$el.classList.add(this.attributes.scrollClass);\r\n var way = 'enter';\r\n var from = this._getScrollCallFrom();\r\n this.attributes.scrollCall && this._dispatchCall(way, from);\r\n }\r\n /**\r\n * Out of view callback\r\n */;\r\n _proto.setOutOfView = function setOutOfView() {\r\n if (!(this.isInview && this.attributes.scrollRepeat)) {\r\n return;\r\n }\r\n this.isInview = false;\r\n this.$el.classList.remove(this.attributes.scrollClass);\r\n var way = 'leave';\r\n var from = this._getScrollCallFrom();\r\n this.attributes.scrollCall && this._dispatchCall(way, from);\r\n }\r\n /**\r\n * Switch interactivity on to subscribe the instance to the RAF\r\n * and start calculations.\r\n */;\r\n _proto.setInteractivityOn = function setInteractivityOn() {\r\n if (this.isInteractive) {\r\n return;\r\n }\r\n this.isInteractive = true;\r\n this.subscribeElementUpdateFn(this);\r\n }\r\n /**\r\n * Switch interactivity off to unsubscribe the instance to the RAF\r\n * and stop calculations.\r\n */;\r\n _proto.setInteractivityOff = function setInteractivityOff() {\r\n if (!this.isInteractive) {\r\n return;\r\n }\r\n this.isInteractive = false;\r\n this.unsubscribeElementUpdateFn(this);\r\n // Force progress to progress limit when the element is out\r\n this.lastProgress != null && this._computeProgress(closestNumber([0, 1], this.lastProgress));\r\n }\r\n /**\r\n * Resize method that compute the element's values.\r\n *\r\n * @private\r\n */;\r\n _proto._resize = function _resize() {\r\n this.metrics.bcr = this.$el.getBoundingClientRect();\r\n this._computeMetrics();\r\n this._computeIntersection();\r\n // First resize logic\r\n if (this.isFirstResize) {\r\n this.isFirstResize = false;\r\n // Dispatch default call if the element is in fold.\r\n if (this.isInFold) {\r\n this.setInview();\r\n }\r\n }\r\n }\r\n /**\r\n * Compute element's offsets and determine if the element is in fold.\r\n *\r\n * @private\r\n */;\r\n _proto._computeMetrics = function _computeMetrics() {\r\n var _this$metrics$bcr = this.metrics.bcr,\r\n top = _this$metrics$bcr.top,\r\n left = _this$metrics$bcr.left,\r\n height = _this$metrics$bcr.height,\r\n width = _this$metrics$bcr.width;\r\n var wSize = this.scrollOrientation === 'vertical' ? window.innerHeight : window.innerWidth;\r\n var metricsStart = this.scrollOrientation === 'vertical' ? top : left;\r\n var metricsSize = this.scrollOrientation === 'vertical' ? height : width;\r\n this.metrics.offsetStart = this.currentScroll + metricsStart - this.translateValue;\r\n this.metrics.offsetEnd = this.metrics.offsetStart + metricsSize;\r\n if (this.metrics.offsetStart < wSize && !this.attributes.scrollIgnoreFold) {\r\n this.isInFold = true;\r\n } else {\r\n this.isInFold = false;\r\n }\r\n }\r\n /**\r\n * Compute intersection values depending on the context.\r\n *\r\n * @private\r\n */;\r\n _proto._computeIntersection = function _computeIntersection() {\r\n // Window size\r\n var wSize = this.scrollOrientation === 'vertical' ? window.innerHeight : window.innerWidth;\r\n // Metrics size\r\n var metricsSize = this.scrollOrientation === 'vertical' ? this.metrics.bcr.height : this.metrics.bcr.width;\r\n // Offset\r\n var offset = this.attributes.scrollOffset.split(',');\r\n var offsetStart = offset[0] != undefined ? offset[0].trim() : '0';\r\n var offsetEnd = offset[1] != undefined ? offset[1].trim() : '0';\r\n // Positions\r\n var scrollPosition = this.attributes.scrollPosition.split(',');\r\n var scrollPositionStart = scrollPosition[0] != undefined ? scrollPosition[0].trim() : 'start';\r\n var scrollPositionEnd = scrollPosition[1] != undefined ? scrollPosition[1].trim() : 'end';\r\n // Viewport\r\n var viewportStart = offsetStart.includes('%') ? wSize * parseInt(offsetStart.replace('%', '').trim()) * 0.01 : parseInt(offsetStart);\r\n var viewportEnd = offsetEnd.includes('%') ? wSize * parseInt(offsetEnd.replace('%', '').trim()) * 0.01 : parseInt(offsetEnd);\r\n // Fold exception\r\n if (this.isInFold) {\r\n scrollPositionStart = 'fold';\r\n }\r\n // Define Intersection Start\r\n switch (scrollPositionStart) {\r\n case 'start':\r\n this.intersection.start = this.metrics.offsetStart - wSize + viewportStart;\r\n break;\r\n case 'middle':\r\n this.intersection.start = this.metrics.offsetStart - wSize + viewportStart + metricsSize * 0.5;\r\n break;\r\n case 'end':\r\n this.intersection.start = this.metrics.offsetStart - wSize + viewportStart + metricsSize;\r\n break;\r\n case 'fold':\r\n this.intersection.start = 0;\r\n break;\r\n default:\r\n this.intersection.start = this.metrics.offsetStart - wSize + viewportStart;\r\n break;\r\n }\r\n // Define Intersection End\r\n switch (scrollPositionEnd) {\r\n case 'start':\r\n this.intersection.end = this.metrics.offsetStart - viewportEnd;\r\n break;\r\n case 'middle':\r\n this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize * 0.5;\r\n break;\r\n case 'end':\r\n this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize;\r\n break;\r\n default:\r\n this.intersection.end = this.metrics.offsetStart - viewportEnd + metricsSize;\r\n break;\r\n }\r\n // Avoid to have the end < the start intersection >\r\n if (this.intersection.end <= this.intersection.start) {\r\n switch (scrollPositionEnd) {\r\n case 'start':\r\n this.intersection.end = this.intersection.start + 1;\r\n break;\r\n case 'middle':\r\n this.intersection.end = this.intersection.start + metricsSize * 0.5;\r\n break;\r\n case 'end':\r\n this.intersection.end = this.intersection.start + metricsSize;\r\n break;\r\n default:\r\n this.intersection.end = this.intersection.start + 1;\r\n break;\r\n }\r\n }\r\n }\r\n /**\r\n * Compute the scroll progress of the element depending\r\n * on its intersection values.\r\n *\r\n * @private\r\n *\r\n * @param {number} [forcedProgress] - Value to force progress.\r\n */;\r\n _proto._computeProgress = function _computeProgress(forcedProgress) {\r\n // Progress\r\n var progress = forcedProgress != null ? forcedProgress : clamp(0, 1, normalize(this.intersection.start, this.intersection.end, this.currentScroll));\r\n this.progress = progress;\r\n if (progress != this.lastProgress) {\r\n this.lastProgress = progress;\r\n // Set the element's progress to the css variable\r\n this.attributes.scrollCssProgress && this._setCssProgress(progress);\r\n // Set the element's progress to the custom event listeners\r\n this.attributes.scrollEventProgress && this._setCustomEventProgress(progress);\r\n // Set the element's progress to inline modules\r\n if (this.attributes.scrollModuleProgress) {\r\n for (var _iterator = _createForOfIteratorHelperLoose(this.progressModularModules), _step; !(_step = _iterator()).done;) {\r\n var modularModules = _step.value;\r\n this.modularInstance && this.modularInstance.call(PROGRESS_MODULAR_METHOD, progress, modularModules.moduleName, modularModules.moduleId);\r\n }\r\n }\r\n // Logic to trigger the inview/out of view callbacks\r\n progress > 0 && progress < 1 && this.setInview();\r\n progress === 0 && this.setOutOfView();\r\n progress === 1 && this.setOutOfView();\r\n }\r\n }\r\n /**\r\n * Set the element's progress to a specific css variable.\r\n *\r\n * @private\r\n *\r\n * @param {number} [currentProgress] - Progress value.\r\n */;\r\n _proto._setCssProgress = function _setCssProgress(currentProgress) {\r\n if (currentProgress === void 0) {\r\n currentProgress = 0;\r\n }\r\n this.$el.style.setProperty(PROGRESS_CSS_VAR, currentProgress.toString());\r\n }\r\n /**\r\n * Set the element's progress to the custom event listeners.\r\n *\r\n * @private\r\n *\r\n * @param {number} [currentProgress] - Progress value.\r\n */;\r\n _proto._setCustomEventProgress = function _setCustomEventProgress(currentProgress) {\r\n if (currentProgress === void 0) {\r\n currentProgress = 0;\r\n }\r\n var customEventName = this.attributes.scrollEventProgress;\r\n if (!customEventName) return;\r\n var customEvent = new CustomEvent(customEventName, {\r\n detail: {\r\n target: this.$el,\r\n progress: currentProgress\r\n }\r\n });\r\n window.dispatchEvent(customEvent);\r\n }\r\n /**\r\n * Get modular modules that can listen the element's progress.\r\n *\r\n * @private\r\n */;\r\n _proto._getProgressModularModules = function _getProgressModularModules() {\r\n if (!this.modularInstance) {\r\n return;\r\n }\r\n var modulesIdNames = Object.keys(this.$el.dataset).filter(function (key) {\r\n return key.includes('module');\r\n });\r\n var modules = Object.entries(this.modularInstance.modules);\r\n if (!modulesIdNames.length) {\r\n return;\r\n }\r\n for (var _iterator2 = _createForOfIteratorHelperLoose(modulesIdNames), _step2; !(_step2 = _iterator2()).done;) {\r\n var modulesIdName = _step2.value;\r\n var moduleId = this.$el.dataset[modulesIdName];\r\n if (!moduleId) {\r\n return;\r\n }\r\n for (var _iterator3 = _createForOfIteratorHelperLoose(modules), _step3; !(_step3 = _iterator3()).done;) {\r\n var module = _step3.value;\r\n var moduleName = module[0],\r\n moduleObj = module[1];\r\n if (moduleId in moduleObj) {\r\n this.progressModularModules.push({\r\n moduleName: moduleName,\r\n moduleId: moduleId\r\n });\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Function to get scroll call from.\r\n *\r\n * @private\r\n */;\r\n _proto._getScrollCallFrom = function _getScrollCallFrom() {\r\n var closestIntersectionValue = closestNumber([this.intersection.start, this.intersection.end], this.currentScroll);\r\n return this.intersection.start === closestIntersectionValue ? 'start' : 'end';\r\n }\r\n /**\r\n * Function to dispatch a custom event or call a modular callback.\r\n *\r\n * @private\r\n *\r\n * @param {scrollCallWay} way - Enter or leave.\r\n * @param {scrollCallFrom} from - Start or end.\r\n */;\r\n _proto._dispatchCall = function _dispatchCall(way, from) {\r\n var _this$attributes$scro, _this$attributes;\r\n var callParameters = (_this$attributes$scro = this.attributes.scrollCall) == null ? void 0 : _this$attributes$scro.split(',');\r\n var callSelf = (_this$attributes = this.attributes) == null ? void 0 : _this$attributes.scrollCallSelf;\r\n if (callParameters && callParameters.length > 1) {\r\n var _targetModuleId;\r\n // Using Modular.js (https://github.com/modularorg/modularjs)\r\n var func = callParameters[0],\r\n moduleName = callParameters[1],\r\n moduleId = callParameters[2];\r\n var targetModuleId;\r\n // If the module is set on the scroll element\r\n if (callSelf) {\r\n targetModuleId = this.$el.dataset[\"module\" + moduleName.trim()];\r\n } else {\r\n targetModuleId = moduleId;\r\n }\r\n this.modularInstance && this.modularInstance.call(func.trim(), {\r\n target: this.$el,\r\n way: way,\r\n from: from\r\n }, moduleName.trim(), (_targetModuleId = targetModuleId) == null ? void 0 : _targetModuleId.trim());\r\n } else if (callParameters) {\r\n // Using CustomEvent API (https://developer.mozilla.org/en-US/docs/Web/API/CustomEvent)\r\n var customEventName = callParameters[0];\r\n var customEvent = new CustomEvent(customEventName, {\r\n detail: {\r\n target: this.$el,\r\n way: way,\r\n from: from\r\n }\r\n });\r\n window.dispatchEvent(customEvent);\r\n }\r\n };\r\n return ScrollElement;\r\n }();\r\n\r\n /** Defined attributes that need a requestAnimationFrame */\r\n var ATTRIBUTES_THAT_NEED_RAF = ['scrollOffset', 'scrollPosition', 'scrollModuleProgress', 'scrollCssProgress', 'scrollEventProgress', 'scrollSpeed'];\r\n /** Default root margins */\r\n var TRIGGER_ROOT_MARGIN = '-1px -1px -1px -1px';\r\n var RAF_ROOT_MARGIN = '100% 100% 100% 100%'; // Add 100vh top/bottom && 100vw left/right to use a biggest value with data-scroll-speed\r\n var Core = /*#__PURE__*/function () {\r\n function Core(_ref) {\r\n var $el = _ref.$el,\r\n modularInstance = _ref.modularInstance,\r\n triggerRootMargin = _ref.triggerRootMargin,\r\n rafRootMargin = _ref.rafRootMargin,\r\n scrollOrientation = _ref.scrollOrientation;\r\n this.$scrollContainer = void 0;\r\n this.modularInstance = void 0;\r\n this.triggerRootMargin = void 0;\r\n this.rafRootMargin = void 0;\r\n this.scrollElements = void 0;\r\n this.triggeredScrollElements = void 0;\r\n this.RAFScrollElements = void 0;\r\n this.scrollElementsToUpdate = void 0;\r\n this.IOTriggerInstance = void 0;\r\n this.IORafInstance = void 0;\r\n this.scrollOrientation = void 0;\r\n if (!$el) {\r\n console.error('Please provide a DOM Element as scrollContainer');\r\n return;\r\n }\r\n // Scroll container\r\n this.$scrollContainer = $el;\r\n // Modular.js\r\n this.modularInstance = modularInstance;\r\n // Scroll Direction\r\n this.scrollOrientation = scrollOrientation;\r\n // IO Margins\r\n this.triggerRootMargin = triggerRootMargin != null ? triggerRootMargin : TRIGGER_ROOT_MARGIN;\r\n this.rafRootMargin = rafRootMargin != null ? rafRootMargin : RAF_ROOT_MARGIN;\r\n // ScrollElements arrays\r\n this.scrollElements = [];\r\n this.triggeredScrollElements = [];\r\n this.RAFScrollElements = [];\r\n this.scrollElementsToUpdate = [];\r\n // Init\r\n this._init();\r\n }\r\n /**\r\n * Lifecyle - Initialize the core.\r\n *\r\n * @private\r\n */\r\n var _proto = Core.prototype;\r\n _proto._init = function _init() {\r\n var $scrollElements = this.$scrollContainer.querySelectorAll('[data-scroll]');\r\n var $scrollElementsArr = Array.from($scrollElements);\r\n this._subscribeScrollElements($scrollElementsArr);\r\n // Trigger IO\r\n this.IOTriggerInstance = new IO({\r\n scrollElements: [].concat(this.triggeredScrollElements),\r\n rootMargin: this.triggerRootMargin,\r\n IORaf: false\r\n });\r\n // Raf IO\r\n this.IORafInstance = new IO({\r\n scrollElements: [].concat(this.RAFScrollElements),\r\n rootMargin: this.rafRootMargin,\r\n IORaf: true\r\n });\r\n }\r\n /**\r\n * Lifecyle - Destroy core.\r\n */;\r\n _proto.destroy = function destroy() {\r\n this.IOTriggerInstance.destroy();\r\n this.IORafInstance.destroy();\r\n this._unsubscribeAllScrollElements();\r\n }\r\n /**\r\n * Callback - Resize callback.\r\n */;\r\n _proto.onResize = function onResize(_ref2) {\r\n var currentScroll = _ref2.currentScroll;\r\n for (var _iterator = _createForOfIteratorHelperLoose(this.RAFScrollElements), _step; !(_step = _iterator()).done;) {\r\n var scrollElement = _step.value;\r\n scrollElement.onResize({\r\n currentScroll: currentScroll\r\n });\r\n }\r\n }\r\n /**\r\n * Callback - RAF callback.\r\n */;\r\n _proto.onRender = function onRender(_ref3) {\r\n var currentScroll = _ref3.currentScroll,\r\n smooth = _ref3.smooth;\r\n for (var _iterator2 = _createForOfIteratorHelperLoose(this.scrollElementsToUpdate), _step2; !(_step2 = _iterator2()).done;) {\r\n var scrollElement = _step2.value;\r\n scrollElement.onRender({\r\n currentScroll: currentScroll,\r\n smooth: smooth\r\n });\r\n }\r\n }\r\n /**\r\n * Remove items from lists of scroll elements and compute all new values.\r\n *\r\n * @param {HTMLElement} $oldContainer - HTMLElement that contains data-scroll elements to unsubscribe\r\n */;\r\n _proto.removeScrollElements = function removeScrollElements($oldContainer) {\r\n var _this = this;\r\n var $scrollElementsToRemove = $oldContainer.querySelectorAll('[data-scroll]');\r\n if (!$scrollElementsToRemove.length) return;\r\n // 1. Remove from IO\r\n for (var index = 0; index < this.triggeredScrollElements.length; index++) {\r\n var scrollElement = this.triggeredScrollElements[index];\r\n var $scrollElementsToRemoveArr = Array.from($scrollElementsToRemove);\r\n if ($scrollElementsToRemoveArr.indexOf(scrollElement.$el) > -1) {\r\n this.IOTriggerInstance.unobserve(scrollElement.$el);\r\n this.triggeredScrollElements.splice(index, 1);\r\n }\r\n }\r\n for (var _index = 0; _index < this.RAFScrollElements.length; _index++) {\r\n var _scrollElement = this.RAFScrollElements[_index];\r\n var _$scrollElementsToRemoveArr = Array.from($scrollElementsToRemove);\r\n if (_$scrollElementsToRemoveArr.indexOf(_scrollElement.$el) > -1) {\r\n this.IORafInstance.unobserve(_scrollElement.$el);\r\n this.RAFScrollElements.splice(_index, 1);\r\n }\r\n }\r\n // 2. Remove from scrollElementsToUpdate[] and scrollElements[]\r\n $scrollElementsToRemove.forEach(function ($scrollElement) {\r\n var targetScrollElementToUpdate = _this.scrollElementsToUpdate.find(function (scrollElement) {\r\n return scrollElement.$el === $scrollElement;\r\n });\r\n var targetScrollElement = _this.scrollElements.find(function (scrollElement) {\r\n return scrollElement.$el === $scrollElement;\r\n });\r\n if (targetScrollElementToUpdate) {\r\n _this._unsubscribeElementUpdate(targetScrollElementToUpdate);\r\n }\r\n if (targetScrollElement) {\r\n _this.scrollElements = _this.scrollElements.filter(function (scrollElementItem) {\r\n return scrollElementItem.id != targetScrollElement.id;\r\n });\r\n }\r\n });\r\n }\r\n /**\r\n * Add items to lists of scroll elements and compute all new values.\r\n *\r\n * @param {HTMLElement} $newContainer - HTMLElement that contains data-scroll elements to subscribe\r\n */;\r\n _proto.addScrollElements = function addScrollElements($newContainer) {\r\n // 3. Rebuild ScrollElements\r\n var $scrollElements = $newContainer.querySelectorAll('[data-scroll]');\r\n // 4. Get max scrollElement.id\r\n var ids = [];\r\n this.scrollElements.forEach(function (scrollElement) {\r\n ids.push(scrollElement.id);\r\n });\r\n var maxID = Math.max.apply(Math, ids);\r\n var fromIndex = maxID + 1;\r\n var $scrollElementsArr = Array.from($scrollElements);\r\n this._subscribeScrollElements($scrollElementsArr, fromIndex, true);\r\n }\r\n /**\r\n * Create a ScrollElement instance for each elements with\r\n * `data-scroll` attribute.\r\n *\r\n * @private\r\n *\r\n * @param {HTMLElement[]} $scrollElements - List of elements that need\r\n * to be regarded.\r\n */;\r\n _proto._subscribeScrollElements = function _subscribeScrollElements($scrollElements, fromIndex, toObserve) {\r\n if (fromIndex === void 0) {\r\n fromIndex = 0;\r\n }\r\n if (toObserve === void 0) {\r\n toObserve = false;\r\n }\r\n // For each scroll element create a ScrollElement instance\r\n for (var index = 0; index < $scrollElements.length; index++) {\r\n var $scrollElement = $scrollElements[index];\r\n var needRaf = this._checkRafNeeded($scrollElement);\r\n var scrollElementInstance = new ScrollElement({\r\n $el: $scrollElement,\r\n id: fromIndex + index,\r\n scrollOrientation: this.scrollOrientation,\r\n modularInstance: this.modularInstance,\r\n subscribeElementUpdateFn: this._subscribeElementUpdate.bind(this),\r\n unsubscribeElementUpdateFn: this._unsubscribeElementUpdate.bind(this),\r\n needRaf: needRaf\r\n });\r\n // Push to common array\r\n this.scrollElements.push(scrollElementInstance);\r\n // Push to specific array\r\n if (needRaf) {\r\n this.RAFScrollElements.push(scrollElementInstance);\r\n // Dynamic observe item\r\n if (toObserve) {\r\n this.IORafInstance.scrollElements.push(scrollElementInstance);\r\n this.IORafInstance.observe(scrollElementInstance.$el);\r\n }\r\n } else {\r\n this.triggeredScrollElements.push(scrollElementInstance);\r\n // Dynamic observe item\r\n if (toObserve) {\r\n this.IOTriggerInstance.scrollElements.push(scrollElementInstance);\r\n this.IOTriggerInstance.observe(scrollElementInstance.$el);\r\n }\r\n }\r\n }\r\n }\r\n /**\r\n * Clear all ScrollElement arrays.\r\n *\r\n * @private\r\n */;\r\n _proto._unsubscribeAllScrollElements = function _unsubscribeAllScrollElements() {\r\n this.scrollElements = [];\r\n this.RAFScrollElements = [];\r\n this.triggeredScrollElements = [];\r\n this.scrollElementsToUpdate = [];\r\n }\r\n /**\r\n * Subscribe ScrollElement instance that needs to be updated.\r\n *\r\n * @private\r\n *\r\n * @param {ScrollElement} scrollElement - ScrollElement instance inview\r\n * that needs to be updated.\r\n */;\r\n _proto._subscribeElementUpdate = function _subscribeElementUpdate(scrollElement) {\r\n this.scrollElementsToUpdate.push(scrollElement);\r\n }\r\n /**\r\n * Unscribe ScrollElement instance that doesn't need to be updated.\r\n *\r\n * @private\r\n *\r\n * @param {ScrollElement} scrollElement - The updated ScrollElement instance\r\n * out of view now.\r\n */;\r\n _proto._unsubscribeElementUpdate = function _unsubscribeElementUpdate(scrollElement) {\r\n this.scrollElementsToUpdate = this.scrollElementsToUpdate.filter(function (scrollElementToUpdate) {\r\n return scrollElementToUpdate.id != scrollElement.id;\r\n });\r\n }\r\n /**\r\n * Check if a DOM Element need a requestAnimationFrame to be used.\r\n *\r\n * @private\r\n *\r\n * @param {HTMLElement} $scrollElement - The element that needs to be checked.\r\n *\r\n * @returns {boolean}\r\n */;\r\n _proto._checkRafNeeded = function _checkRafNeeded($scrollElement) {\r\n var attributesThatNeedRaf = [].concat(ATTRIBUTES_THAT_NEED_RAF);\r\n // Remove utils\r\n var removeAttribute = function removeAttribute(attributeToRemove) {\r\n attributesThatNeedRaf = attributesThatNeedRaf.filter(function (attribute) {\r\n return attribute != attributeToRemove;\r\n });\r\n };\r\n // 1. Check scroll offset values\r\n if ($scrollElement.dataset.scrollOffset) {\r\n var value = $scrollElement.dataset.scrollOffset.split(',').map(function (test) {\r\n return test.replace('%', '').trim();\r\n }).join(',');\r\n if (value != '0,0') {\r\n return true;\r\n } else {\r\n removeAttribute('scrollOffset');\r\n }\r\n } else {\r\n removeAttribute('scrollOffset');\r\n }\r\n // 2. Check scroll position values\r\n if ($scrollElement.dataset.scrollPosition) {\r\n var _value = $scrollElement.dataset.scrollPosition.trim();\r\n if (_value != 'top,bottom') {\r\n return true;\r\n } else {\r\n removeAttribute('scrollPosition');\r\n }\r\n } else {\r\n removeAttribute('scrollPosition');\r\n }\r\n // 3. Check scroll speed values\r\n if ($scrollElement.dataset.scrollSpeed && !isNaN(parseFloat($scrollElement.dataset.scrollSpeed))) {\r\n return true;\r\n } else {\r\n removeAttribute('scrollSpeed');\r\n }\r\n // 4. Check others attributes\r\n for (var _iterator3 = _createForOfIteratorHelperLoose(attributesThatNeedRaf), _step3; !(_step3 = _iterator3()).done;) {\r\n var attribute = _step3.value;\r\n if (attribute in $scrollElement.dataset) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n return Core;\r\n }();\r\n\r\n /**\r\n * Resize Observer\r\n *\r\n * The Resize Observer API provides a performant mechanism by which code can monitor an element for changes to its size,\r\n * with notifications being delivered to the observer each time the size changes.\r\n *\r\n * Features functions to:\r\n *\r\n * - Trigger the resize callback if the specified element's size change.\r\n *\r\n * References:\r\n *\r\n * - {@link https://developer.mozilla.org/en-US/docs/Web/API/Resize_Observer_API}\r\n */\r\n var RO = /*#__PURE__*/function () {\r\n function RO(_ref) {\r\n var resizeElements = _ref.resizeElements,\r\n _ref$resizeCallback = _ref.resizeCallback,\r\n resizeCallback = _ref$resizeCallback === void 0 ? function () {} : _ref$resizeCallback;\r\n this.$resizeElements = void 0;\r\n this.isFirstObserve = void 0;\r\n this.observer = void 0;\r\n this.resizeCallback = void 0;\r\n // Parameters\r\n this.$resizeElements = resizeElements;\r\n this.resizeCallback = resizeCallback;\r\n // Flags\r\n this.isFirstObserve = true;\r\n // Init\r\n this._init();\r\n }\r\n /**\r\n * Lifecyle - Initialize Resize Observer.\r\n *\r\n * @private\r\n */\r\n var _proto = RO.prototype;\r\n _proto._init = function _init() {\r\n var _this = this;\r\n // Callback\r\n var onResize = function onResize(entries) {\r\n !_this.isFirstObserve && (_this.resizeCallback == null ? void 0 : _this.resizeCallback());\r\n _this.isFirstObserve = false;\r\n };\r\n // Instance\r\n this.observer = new ResizeObserver(onResize);\r\n // Observe each default elements\r\n for (var _iterator = _createForOfIteratorHelperLoose(this.$resizeElements), _step; !(_step = _iterator()).done;) {\r\n var $resizeElement = _step.value;\r\n this.observer.observe($resizeElement);\r\n }\r\n }\r\n /**\r\n * Lifecyle - Destroy Resize Observer.\r\n */;\r\n _proto.destroy = function destroy() {\r\n this.observer.disconnect();\r\n };\r\n return RO;\r\n }();\r\n\r\n /**\r\n * @type {ILenisOptions}\r\n */\r\n var defaultLenisOptions = {\r\n wrapper: window,\r\n content: document.documentElement,\r\n lerp: 0.1,\r\n duration: 1.2,\r\n orientation: 'vertical',\r\n gestureOrientation: 'vertical',\r\n smoothWheel: true,\r\n smoothTouch: false,\r\n wheelMultiplier: 1,\r\n touchMultiplier: 2,\r\n normalizeWheel: true,\r\n easing: function easing(t) {\r\n return Math.min(1, 1.001 - Math.pow(2, -10 * t));\r\n } // https://www.desmos.com/calculator/brs54l4xou\r\n };\r\n /**\r\n * Locomotive Scroll\r\n *\r\n * Detection of elements in viewport & smooth scrolling with parallax.\r\n *\r\n * Inspired by\r\n * {@link https://github.com/locomotivemtl/locomotive-scroll locomotive-scroll.js}\r\n * and built around\r\n * {@link https://github.com/studio-freight/lenis lenis.js}.\r\n */\r\n var LocomotiveScroll = /*#__PURE__*/function () {\r\n function LocomotiveScroll(_temp) {\r\n var _ref = _temp === void 0 ? {} : _temp,\r\n _ref$lenisOptions = _ref.lenisOptions,\r\n lenisOptions = _ref$lenisOptions === void 0 ? {} : _ref$lenisOptions,\r\n modularInstance = _ref.modularInstance,\r\n triggerRootMargin = _ref.triggerRootMargin,\r\n rafRootMargin = _ref.rafRootMargin,\r\n _ref$autoResize = _ref.autoResize,\r\n autoResize = _ref$autoResize === void 0 ? true : _ref$autoResize,\r\n _ref$autoStart = _ref.autoStart,\r\n autoStart = _ref$autoStart === void 0 ? true : _ref$autoStart,\r\n _ref$scrollCallback = _ref.scrollCallback,\r\n scrollCallback = _ref$scrollCallback === void 0 ? function () {} : _ref$scrollCallback,\r\n initCustomTicker = _ref.initCustomTicker,\r\n destroyCustomTicker = _ref.destroyCustomTicker;\r\n this.rafPlaying = void 0;\r\n this.lenisInstance = void 0;\r\n this.coreInstance = void 0;\r\n this.lenisOptions = void 0;\r\n this.modularInstance = void 0;\r\n this.triggerRootMargin = void 0;\r\n this.rafRootMargin = void 0;\r\n this.rafInstance = void 0;\r\n this.autoResize = void 0;\r\n this.autoStart = void 0;\r\n this.ROInstance = void 0;\r\n this.initCustomTicker = void 0;\r\n this.destroyCustomTicker = void 0;\r\n this._onRenderBind = void 0;\r\n this._onResizeBind = void 0;\r\n this._onScrollToBind = void 0;\r\n // Arguments\r\n this.lenisOptions = _extends({}, defaultLenisOptions, lenisOptions);\r\n Object.assign(this, {\r\n lenisOptions: lenisOptions,\r\n modularInstance: modularInstance,\r\n triggerRootMargin: triggerRootMargin,\r\n rafRootMargin: rafRootMargin,\r\n autoResize: autoResize,\r\n autoStart: autoStart,\r\n scrollCallback: scrollCallback,\r\n initCustomTicker: initCustomTicker,\r\n destroyCustomTicker: destroyCustomTicker\r\n });\r\n // Binding\r\n this._onRenderBind = this._onRender.bind(this);\r\n this._onScrollToBind = this._onScrollTo.bind(this);\r\n this._onResizeBind = this._onResize.bind(this);\r\n // Data\r\n this.rafPlaying = false;\r\n // Init\r\n this._init();\r\n }\r\n /**\r\n * Lifecyle - Initialize instance.\r\n *\r\n * @private\r\n */\r\n var _proto = LocomotiveScroll.prototype;\r\n _proto._init = function _init() {\r\n var _this$lenisInstance,\r\n _this = this;\r\n // Create Lenis instance\r\n this.lenisInstance = new l({\r\n wrapper: this.lenisOptions.wrapper,\r\n content: this.lenisOptions.content,\r\n lerp: this.lenisOptions.lerp,\r\n duration: this.lenisOptions.duration,\r\n orientation: this.lenisOptions.orientation,\r\n gestureOrientation: this.lenisOptions.gestureOrientation,\r\n smoothWheel: this.lenisOptions.smoothWheel,\r\n smoothTouch: this.lenisOptions.smoothTouch,\r\n wheelMultiplier: this.lenisOptions.wheelMultiplier,\r\n touchMultiplier: this.lenisOptions.touchMultiplier,\r\n normalizeWheel: this.lenisOptions.normalizeWheel,\r\n easing: this.lenisOptions.easing\r\n });\r\n (_this$lenisInstance = this.lenisInstance) == null ? void 0 : _this$lenisInstance.on('scroll', this.scrollCallback);\r\n // Add scroll direction attribute on body\r\n document.documentElement.setAttribute('data-scroll-orientation', this.lenisInstance.options.orientation);\r\n requestAnimationFrame(function () {\r\n // Create Core Instance\r\n _this.coreInstance = new Core({\r\n $el: _this.lenisInstance.rootElement,\r\n modularInstance: _this.modularInstance,\r\n triggerRootMargin: _this.triggerRootMargin,\r\n rafRootMargin: _this.rafRootMargin,\r\n scrollOrientation: _this.lenisInstance.options.orientation\r\n });\r\n // Bind Events\r\n _this._bindEvents();\r\n // RAF warning\r\n if (_this.initCustomTicker && !_this.destroyCustomTicker) {\r\n console.warn('initCustomTicker callback is declared, but destroyCustomTicker is not. Please pay attention. It could cause trouble.');\r\n } else if (!_this.initCustomTicker && _this.destroyCustomTicker) {\r\n console.warn('destroyCustomTicker callback is declared, but initCustomTicker is not. Please pay attention. It could cause trouble.');\r\n }\r\n // Start RAF\r\n _this.autoStart && _this.start();\r\n });\r\n }\r\n /**\r\n * Lifecyle - Destroy instance.\r\n */;\r\n _proto.destroy = function destroy() {\r\n // Stop raf\r\n this.stop();\r\n // Unbind Events\r\n this._unbindEvents();\r\n // Destroy Lenis\r\n this.lenisInstance.destroy();\r\n // Destroy Core\r\n this.coreInstance.destroy();\r\n }\r\n /**\r\n * Events - Subscribe events to listen.\r\n */;\r\n _proto._bindEvents = function _bindEvents() {\r\n this._bindScrollToEvents();\r\n if (this.autoResize) {\r\n if ('ResizeObserver' in window) {\r\n this.ROInstance = new RO({\r\n resizeElements: [document.body],\r\n resizeCallback: this._onResizeBind\r\n });\r\n } else {\r\n window.addEventListener('resize', this._onResizeBind);\r\n }\r\n }\r\n }\r\n /**\r\n * Events - Unsubscribe listened events.\r\n */;\r\n _proto._unbindEvents = function _unbindEvents() {\r\n this._unbindScrollToEvents();\r\n if (this.autoResize) {\r\n if ('ResizeObserver' in window) {\r\n this.ROInstance && this.ROInstance.destroy();\r\n } else {\r\n window.removeEventListener('resize', this._onResizeBind);\r\n }\r\n }\r\n }\r\n /**\r\n * Events - Subscribe scrollTo events to listen.\r\n */;\r\n _proto._bindScrollToEvents = function _bindScrollToEvents($container) {\r\n var _this2 = this;\r\n var $rootContainer = $container ? $container : this.lenisInstance.rootElement;\r\n var $scrollToElements = $rootContainer == null ? void 0 : $rootContainer.querySelectorAll('[data-scroll-to]');\r\n ($scrollToElements == null ? void 0 : $scrollToElements.length) && $scrollToElements.forEach(function ($el) {\r\n $el.addEventListener('click', _this2._onScrollToBind, false);\r\n });\r\n }\r\n /**\r\n * Events - Unsubscribe scrollTo listened events.\r\n */;\r\n _proto._unbindScrollToEvents = function _unbindScrollToEvents($container) {\r\n var _this3 = this;\r\n var $rootContainer = $container ? $container : this.lenisInstance.rootElement;\r\n var $scrollToElements = $rootContainer == null ? void 0 : $rootContainer.querySelectorAll('[data-scroll-to]');\r\n ($scrollToElements == null ? void 0 : $scrollToElements.length) && $scrollToElements.forEach(function ($el) {\r\n $el.removeEventListener('click', _this3._onScrollToBind, false);\r\n });\r\n }\r\n /**\r\n * Callback - Resize callback.\r\n */;\r\n _proto._onResize = function _onResize() {\r\n var _this4 = this;\r\n // Waiting the next frame to get the new current scroll value return by Lenis\r\n requestAnimationFrame(function () {\r\n var _this4$coreInstance;\r\n (_this4$coreInstance = _this4.coreInstance) == null ? void 0 : _this4$coreInstance.onResize({\r\n currentScroll: _this4.lenisInstance.scroll\r\n });\r\n });\r\n }\r\n /**\r\n * Callback - Render callback.\r\n */;\r\n _proto._onRender = function _onRender() {\r\n var _this$lenisInstance2, _this$coreInstance;\r\n (_this$lenisInstance2 = this.lenisInstance) == null ? void 0 : _this$lenisInstance2.raf(Date.now());\r\n (_this$coreInstance = this.coreInstance) == null ? void 0 : _this$coreInstance.onRender({\r\n currentScroll: this.lenisInstance.scroll,\r\n smooth: this.lenisInstance.isSmooth\r\n });\r\n }\r\n /**\r\n * Callback - Scroll To callback.\r\n */;\r\n _proto._onScrollTo = function _onScrollTo(event) {\r\n var _event$currentTarget;\r\n event.preventDefault();\r\n var $target = (_event$currentTarget = event.currentTarget) != null ? _event$currentTarget : null;\r\n if (!$target) return;\r\n var target = $target.getAttribute('data-scroll-to-href') || $target.getAttribute('href');\r\n var offset = $target.getAttribute('data-scroll-to-offset') || 0;\r\n var duration = $target.getAttribute('data-scroll-to-duration') || this.lenisOptions.duration || defaultLenisOptions.duration;\r\n target && this.scrollTo(target, {\r\n offset: typeof offset === 'string' ? parseInt(offset) : offset,\r\n duration: typeof duration === 'string' ? parseInt(duration) : duration\r\n });\r\n }\r\n /**\r\n * Start RequestAnimationFrame that active Lenis smooth and scroll progress.\r\n */;\r\n _proto.start = function start() {\r\n if (this.rafPlaying) {\r\n return;\r\n }\r\n this.rafPlaying = true;\r\n this.initCustomTicker ? this.initCustomTicker(this._onRenderBind) : this._raf();\r\n }\r\n /**\r\n * Stop RequestAnimationFrame that active Lenis smooth and scroll progress.\r\n */;\r\n _proto.stop = function stop() {\r\n if (!this.rafPlaying) {\r\n return;\r\n }\r\n this.rafPlaying = false;\r\n this.destroyCustomTicker ? this.destroyCustomTicker(this._onRenderBind) : this.rafInstance && cancelAnimationFrame(this.rafInstance);\r\n }\r\n /**\r\n * Remove old scroll elements items and rebuild ScrollElements instances.\r\n */;\r\n _proto.removeScrollElements = function removeScrollElements($oldContainer) {\r\n var _this$coreInstance2;\r\n if (!$oldContainer) {\r\n console.error('Please provide a DOM Element as $oldContainer');\r\n return;\r\n }\r\n this._unbindScrollToEvents($oldContainer);\r\n (_this$coreInstance2 = this.coreInstance) == null ? void 0 : _this$coreInstance2.removeScrollElements($oldContainer);\r\n }\r\n /**\r\n * Add new scroll elements items and rebuild ScrollElements instances.\r\n */;\r\n _proto.addScrollElements = function addScrollElements($newContainer) {\r\n var _this$coreInstance3,\r\n _this5 = this;\r\n if (!$newContainer) {\r\n console.error('Please provide a DOM Element as $newContainer');\r\n return;\r\n }\r\n (_this$coreInstance3 = this.coreInstance) == null ? void 0 : _this$coreInstance3.addScrollElements($newContainer);\r\n requestAnimationFrame(function () {\r\n _this5._bindScrollToEvents($newContainer);\r\n });\r\n }\r\n /**\r\n * Trigger resize callback.\r\n */;\r\n _proto.resize = function resize() {\r\n this._onResizeBind();\r\n }\r\n /**\r\n * Trigger scroll to callback.\r\n */;\r\n _proto.scrollTo = function scrollTo(target, options) {\r\n var _this$lenisInstance3;\r\n (_this$lenisInstance3 = this.lenisInstance) == null ? void 0 : _this$lenisInstance3.scrollTo(target, {\r\n offset: options == null ? void 0 : options.offset,\r\n lerp: options == null ? void 0 : options.lerp,\r\n duration: options == null ? void 0 : options.duration,\r\n immediate: options == null ? void 0 : options.immediate,\r\n lock: options == null ? void 0 : options.lock,\r\n force: options == null ? void 0 : options.force,\r\n easing: options == null ? void 0 : options.easing,\r\n onComplete: options == null ? void 0 : options.onComplete\r\n });\r\n }\r\n /**\r\n * RequestAnimationFrame that active Lenis smooth and scroll progress.\r\n *\r\n * @private\r\n *\r\n */;\r\n _proto._raf = function _raf() {\r\n var _this6 = this;\r\n this._onRenderBind();\r\n this.rafInstance = requestAnimationFrame(function () {\r\n return _this6._raf();\r\n });\r\n };\r\n return LocomotiveScroll;\r\n }();\r\n\r\n return LocomotiveScroll;\r\n\r\n}));\r\n"]}