芝麻web文件管理V1.00
编辑当前文件:/home/qrafawbu/kwesioben.com/thefirstcookout/4/dist/js.00a46daa.js.map
{"version":3,"sources":["../node_modules/ev-emitter/ev-emitter.js","../node_modules/imagesloaded/imagesloaded.js","js/utils.js","../node_modules/locomotive-scroll/dist/locomotive-scroll.esm.js","js/index.js"],"names":["imagesLoaded","require","preloadImages","selector","Promise","resolve","document","querySelectorAll","background","preloadFonts","id","WebFont","load","typekit","active","_classCallCheck","instance","Constructor","TypeError","_defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","Object","defineProperty","key","_createClass","protoProps","staticProps","prototype","_defineProperty","obj","value","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","push","apply","_objectSpread2","arguments","source","forEach","getOwnPropertyDescriptors","defineProperties","_inherits","subClass","superClass","create","constructor","_setPrototypeOf","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","__proto__","p","_assertThisInitialized","self","ReferenceError","_possibleConstructorReturn","call","_superPropBase","property","hasOwnProperty","_get","receiver","Reflect","get","base","desc","_toConsumableArray","arr","_arrayWithoutHoles","_iterableToArray","_nonIterableSpread","Array","isArray","arr2","iter","Symbol","iterator","toString","from","defaults","el","elMobile","name","offset","repeat","smooth","smoothMobile","direction","lerp","scrollbarContainer","scrollbarClass","scrollingClass","draggingClass","smoothClass","initClass","getSpeed","getDirection","multiplier","firefoxMultiplier","touchMultiplier","scrollFromAnywhere","_default","options","undefined","assign","namespace","html","documentElement","windowHeight","window","innerHeight","windowMiddle","els","listeners","hasScrollTicking","hasCallEventSet","checkScroll","bind","checkResize","checkEvent","scroll","x","y","limit","offsetHeight","speed","classList","add","addEventListener","init","initEvents","dispatchScroll","_this","resizeTick","requestAnimationFrame","resize","_this2","scrollToEls","concat","setScrollTo","event","preventDefault","scrollTo","currentTarget","getAttribute","addElements","detectElements","_this3","scrollTop","scrollBottom","inView","top","bottom","setInView","setOutOfView","current","dispatchCall","sticky","remove","way","callWay","callValue","split","map","item","trim","callObj","callEvent","Event","dispatchEvent","scrollEvent","setEvents","func","list","unsetEvents","index","indexOf","splice","removeEventListener","_this4","type","replace","startScroll","stopScroll","setScroll","destroy","_this5","commonjsGlobal","globalThis","global","createCommonjsModule","fn","module","exports","smoothscroll","polyfill","w","d","style","__forceSmoothScrollPolyfill__","Element","HTMLElement","SCROLL_TIME","original","scrollBy","elementScroll","scrollElement","scrollIntoView","now","performance","Date","isMicrosoftBrowser","userAgent","userAgentPatterns","RegExp","join","test","ROUNDING_TOLERANCE","navigator","scrollLeft","ease","k","Math","cos","PI","shouldBailOut","firstArg","behavior","hasScrollableSpace","axis","clientHeight","scrollHeight","clientWidth","scrollWidth","canOverflow","overflowValue","getComputedStyle","isScrollable","isScrollableY","isScrollableX","findScrollableParent","body","parentNode","host","step","context","time","currentX","currentY","elapsed","startTime","startX","startY","method","scrollable","smoothScroll","scrollX","pageXOffset","scrollY","pageYOffset","left","SyntaxError","scrollableParent","parentRects","getBoundingClientRect","clientRects","position","smoothscroll_1","_default$1","_Core","addDirection","addSpeed","timestamp","updateElements","cl","dataset","relativeOffset","getRelativeOffset","mappedEl","contains","includes","parseInt","targetOption","offsetOption","duration","easing","disableLerp","callback","querySelector","tagName","console","warn","toFixed","onScroll","update","propIsEnumerable","propertyIsEnumerable","toObject","val","shouldUseNative","test1","String","getOwnPropertyNames","test2","fromCharCode","order2","n","test3","letter","err","objectAssign","to","s","E","on","ctx","e","once","listener","off","_","emit","data","slice","evtArr","len","evts","liveEvents","tinyEmitter","lethargy","root","Lethargy","stability","sensitivity","tolerance","delay","abs","lastUpDeltas","ref","results","lastDownDeltas","deltasTimestamp","check","lastDelta","originalEvent","wheelDelta","deltaY","detail","shift","isInertia","lastDeltas","lastDeltasNew","lastDeltasOld","newAverage","newSum","oldAverage","oldSum","reduce","t","showLastUpDeltas","showLastDownDeltas","support","getSupport","hasWheelEvent","hasMouseWheelEvent","hasTouch","TouchEvent","DocumentTouch","hasTouchWin","msMaxTouchPoints","hasPointer","msPointerEnabled","hasKeyDown","isFirefox","hasOwnProperty$1","bindallStandalone","functions","f","EVT_ID","src","VirtualScroll","keyCodes","LEFT","UP","RIGHT","DOWN","SPACE","mouseMultiplier","keyStep","preventTouch","unpreventTouchClass","limitInertia","useKeyboard","useTouch","_lethargy","_emitter","_event","deltaX","touchStartX","touchStartY","bodyTouchAction","passive","listenerOptions","_notify","evt","_onWheel","wheelDeltaX","wheelDeltaY","deltaMode","_onMouseWheel","_onTouchStart","targetTouches","pageX","pageY","_onTouchMove","_onKeyDown","keyCode","shiftKey","_bind","msTouchAction","_unbind","cb","events","reset","start","end","amt","getTranslate","translate","transform","webkitTransform","mozTransform","mat","match","parseFloat","getParents","elem","parents","NEWTON_ITERATIONS","NEWTON_MIN_SLOPE","SUBDIVISION_PRECISION","SUBDIVISION_MAX_ITERATIONS","kSplineTableSize","kSampleStepSize","float32ArraySupported","Float32Array","A","aA1","aA2","B","C","calcBezier","aT","getSlope","binarySubdivide","aX","aA","aB","mX1","mX2","currentT","newtonRaphsonIterate","aGuessT","currentSlope","LinearEasing","src$1","bezier","mY1","mY2","Error","sampleValues","getTForX","intervalStart","currentSample","lastSample","dist","guessForT","initialSlope","BezierEasing","keyCodes$1","TAB","PAGEUP","PAGEDOWN","HOME","END","_default$2","history","scrollRestoration","inertia","isScrolling","isDraggingScrollbar","isTicking","parallaxElements","stop","checkKey","delta","vs","platform","updateDelta","startScrolling","setScrollLimit","initScrollBar","addSections","transformElements","stopScrolling","scrollToRaf","cancelAnimationFrame","round","activeElement","HTMLInputElement","HTMLTextAreaElement","forced","updateScroll","distance","animatingScroll","sections","persistent","opacity","pointerEvents","setAttribute","removeAttribute","scrollBarTranslation","scrollBarLimit","scrollbarThumb","max","scrollbar","createElement","append","getScrollBar","releaseScrollBar","moveScrollBar","scrollbarBCR","scrollbarHeight","height","reinitScrollBar","destroyScrollBar","clientY","_this6","section","targetEl","middle","elTop","elDistance","_this7","mappedSection","element","lerpX","lerpY","msTransform","isForced","_this8","setAllElements","scrollMiddle","transformDistance","_this9","targetInScope","targetBCR","offsetTop","targetParents","parentSection","find","candidate","parentSectionOffset","scrollStart","scrollTarget","min","scrollDiff","render","loop","_default$3","isMobile","maxTouchPoints","location","hash","getElementById","backtopEl","headerEl","all","then","LocomotiveScroll"],"mappings":";ACAA;ADAA,ACCA,AGDA;AJCA,ACCA;ADAA,ACCA,AGFA;AJEA,ACCA;ADAA,ACCA;ADAA,ACCA,ACNA,IAAMA,YAAY,GAAGC,OAAO,CAAC,cAAD,CAA5B,EAEA;AFIA,ACCA,AEPA,ACGA,IAAM6kB,SAAS,GAAGxkB,QAAQ,CAACyS,aAAT,CAAuB,UAAvB,CAAlB;AJIA,ACCA,AEPA,ACGA,IAAMgS,KDHGhkB,GCGK,GAAGT,QAAQ,CDHzB,ACG0ByS,CDHD/R,QAAzB,EAAmCC,ECGlB,CAAuB,QDHxC,CCGiB,CDH+B,ACGhD,EAEA;AJEA,ACCA,AEPE,ADCF,IAAMf,ECDA,EAAEc,QAAQ,CDCG,GAAG,QCDMC,CDCtBf,UCDA,CAAJ,EAAwC,ADCpB,GAAsB;AFM5C,ACCA,AEPI,ACIJE,AFJ4C,MAArBD,CEIhB,CAAC6kB,EDJE,CCIV,CAAY,CAAC,CDJC9jB,ADA8B,SCAlC,CAAc,eCIG,kBAAd,CAAD,CDJF,CAAN,ACI4C,yBAAa,AFJ3B,KAAU,IEII,CAApC,CAAZ,EAA0E+jB,IAA1E,CAA+E,YAAM;AJGrF,ACCA,AEPG,ACIC,AFJA,SAAO,IAAI7kB,OAAJ,CAAY,UAACC,OAAD,EAAa;AFOpC,ACCA,AEPC,ACIGC,AFJIN,EEIJM,EFJIN,MEII,CAACgQ,IAAT,CAAcnH,AFJE,CAACvI,QEIjB,AFJyB,CEIDuK,AFJEtK,MEI1B,CAA+B,SAA/B,AFJiB,CAA0BJ,CEEsC,CAIjF,MFNiB,CAAD,EAAsC;AFO1D,ACCA,ACR2DK,MAAAA,UAAU,EAAE;AFQvE,ACCA,AEPA,ACKI,AFPsD,KAAtC,CEOV+H,CFPoElI,ECErEc,GCKO,EFPI,CEOD,AFPX,IEOe+jB,ODLvB,CAA2B9jB,MAA3B,EAAmCC,KAAnC,EAA0C,ECKvB,CAAqB;AJExC,ACCA,AEPE,ACKM0E,AFPH,GAFM,CESHA,AFTJ,EESM,CDLH,CCKKzF,GDLDgB,CAAC,GAAG,CAAb,ACKkB,CAACyR,CDLHzR,CAAC,GAAGD,KAAK,CAACE,ECKhB,CAAuB,GDLjC,EAAkCD,CAAC,EAAnC,EAAuC,eCK7B,CAD4B;AJGxC,ACCA,AEPI,ACKI8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","file":"js.00a46daa.js","sourceRoot":"../src","sourcesContent":["/**\n * EvEmitter v1.1.0\n * Lil' event emitter\n * MIT License\n */\n\n/* jshint unused: true, undef: true, strict: true */\n\n( function( global, factory ) {\n // universal module definition\n /* jshint strict: false */ /* globals define, module, window */\n if ( typeof define == 'function' && define.amd ) {\n // AMD - RequireJS\n define( factory );\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS - Browserify, Webpack\n module.exports = factory();\n } else {\n // Browser globals\n global.EvEmitter = factory();\n }\n\n}( typeof window != 'undefined' ? window : this, function() {\n\n\"use strict\";\n\nfunction EvEmitter() {}\n\nvar proto = EvEmitter.prototype;\n\nproto.on = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // set events hash\n var events = this._events = this._events || {};\n // set listeners array\n var listeners = events[ eventName ] = events[ eventName ] || [];\n // only add once\n if ( listeners.indexOf( listener ) == -1 ) {\n listeners.push( listener );\n }\n\n return this;\n};\n\nproto.once = function( eventName, listener ) {\n if ( !eventName || !listener ) {\n return;\n }\n // add event\n this.on( eventName, listener );\n // set once flag\n // set onceEvents hash\n var onceEvents = this._onceEvents = this._onceEvents || {};\n // set onceListeners object\n var onceListeners = onceEvents[ eventName ] = onceEvents[ eventName ] || {};\n // set flag\n onceListeners[ listener ] = true;\n\n return this;\n};\n\nproto.off = function( eventName, listener ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n var index = listeners.indexOf( listener );\n if ( index != -1 ) {\n listeners.splice( index, 1 );\n }\n\n return this;\n};\n\nproto.emitEvent = function( eventName, args ) {\n var listeners = this._events && this._events[ eventName ];\n if ( !listeners || !listeners.length ) {\n return;\n }\n // copy over to avoid interference if .off() in listener\n listeners = listeners.slice(0);\n args = args || [];\n // once stuff\n var onceListeners = this._onceEvents && this._onceEvents[ eventName ];\n\n for ( var i=0; i < listeners.length; i++ ) {\n var listener = listeners[i]\n var isOnce = onceListeners && onceListeners[ listener ];\n if ( isOnce ) {\n // remove listener\n // remove before trigger to prevent recursion\n this.off( eventName, listener );\n // unset once flag\n delete onceListeners[ listener ];\n }\n // trigger listener\n listener.apply( this, args );\n }\n\n return this;\n};\n\nproto.allOff = function() {\n delete this._events;\n delete this._onceEvents;\n};\n\nreturn EvEmitter;\n\n}));\n","/*!\n * imagesLoaded v4.1.4\n * JavaScript is all like \"You images are done yet or what?\"\n * MIT License\n */\n\n( function( window, factory ) { 'use strict';\n // universal module definition\n\n /*global define: false, module: false, require: false */\n\n if ( typeof define == 'function' && define.amd ) {\n // AMD\n define( [\n 'ev-emitter/ev-emitter'\n ], function( EvEmitter ) {\n return factory( window, EvEmitter );\n });\n } else if ( typeof module == 'object' && module.exports ) {\n // CommonJS\n module.exports = factory(\n window,\n require('ev-emitter')\n );\n } else {\n // browser global\n window.imagesLoaded = factory(\n window,\n window.EvEmitter\n );\n }\n\n})( typeof window !== 'undefined' ? window : this,\n\n// -------------------------- factory -------------------------- //\n\nfunction factory( window, EvEmitter ) {\n\n'use strict';\n\nvar $ = window.jQuery;\nvar console = window.console;\n\n// -------------------------- helpers -------------------------- //\n\n// extend objects\nfunction extend( a, b ) {\n for ( var prop in b ) {\n a[ prop ] = b[ prop ];\n }\n return a;\n}\n\nvar arraySlice = Array.prototype.slice;\n\n// turn element or nodeList into an array\nfunction makeArray( obj ) {\n if ( Array.isArray( obj ) ) {\n // use object if already an array\n return obj;\n }\n\n var isArrayLike = typeof obj == 'object' && typeof obj.length == 'number';\n if ( isArrayLike ) {\n // convert nodeList to array\n return arraySlice.call( obj );\n }\n\n // array of single index\n return [ obj ];\n}\n\n// -------------------------- imagesLoaded -------------------------- //\n\n/**\n * @param {Array, Element, NodeList, String} elem\n * @param {Object or Function} options - if function, use as callback\n * @param {Function} onAlways - callback function\n */\nfunction ImagesLoaded( elem, options, onAlways ) {\n // coerce ImagesLoaded() without new, to be new ImagesLoaded()\n if ( !( this instanceof ImagesLoaded ) ) {\n return new ImagesLoaded( elem, options, onAlways );\n }\n // use elem as selector string\n var queryElem = elem;\n if ( typeof elem == 'string' ) {\n queryElem = document.querySelectorAll( elem );\n }\n // bail if bad element\n if ( !queryElem ) {\n console.error( 'Bad element for imagesLoaded ' + ( queryElem || elem ) );\n return;\n }\n\n this.elements = makeArray( queryElem );\n this.options = extend( {}, this.options );\n // shift arguments if no options set\n if ( typeof options == 'function' ) {\n onAlways = options;\n } else {\n extend( this.options, options );\n }\n\n if ( onAlways ) {\n this.on( 'always', onAlways );\n }\n\n this.getImages();\n\n if ( $ ) {\n // add jQuery Deferred object\n this.jqDeferred = new $.Deferred();\n }\n\n // HACK check async to allow time to bind listeners\n setTimeout( this.check.bind( this ) );\n}\n\nImagesLoaded.prototype = Object.create( EvEmitter.prototype );\n\nImagesLoaded.prototype.options = {};\n\nImagesLoaded.prototype.getImages = function() {\n this.images = [];\n\n // filter & find items if we have an item selector\n this.elements.forEach( this.addElementImages, this );\n};\n\n/**\n * @param {Node} element\n */\nImagesLoaded.prototype.addElementImages = function( elem ) {\n // filter siblings\n if ( elem.nodeName == 'IMG' ) {\n this.addImage( elem );\n }\n // get background image on element\n if ( this.options.background === true ) {\n this.addElementBackgroundImages( elem );\n }\n\n // find children\n // no non-element nodes, #143\n var nodeType = elem.nodeType;\n if ( !nodeType || !elementNodeTypes[ nodeType ] ) {\n return;\n }\n var childImgs = elem.querySelectorAll('img');\n // concat childElems to filterFound array\n for ( var i=0; i < childImgs.length; i++ ) {\n var img = childImgs[i];\n this.addImage( img );\n }\n\n // get child background images\n if ( typeof this.options.background == 'string' ) {\n var children = elem.querySelectorAll( this.options.background );\n for ( i=0; i < children.length; i++ ) {\n var child = children[i];\n this.addElementBackgroundImages( child );\n }\n }\n};\n\nvar elementNodeTypes = {\n 1: true,\n 9: true,\n 11: true\n};\n\nImagesLoaded.prototype.addElementBackgroundImages = function( elem ) {\n var style = getComputedStyle( elem );\n if ( !style ) {\n // Firefox returns null if in a hidden iframe https://bugzil.la/548397\n return;\n }\n // get url inside url(\"...\")\n var reURL = /url\\((['\"])?(.*?)\\1\\)/gi;\n var matches = reURL.exec( style.backgroundImage );\n while ( matches !== null ) {\n var url = matches && matches[2];\n if ( url ) {\n this.addBackground( url, elem );\n }\n matches = reURL.exec( style.backgroundImage );\n }\n};\n\n/**\n * @param {Image} img\n */\nImagesLoaded.prototype.addImage = function( img ) {\n var loadingImage = new LoadingImage( img );\n this.images.push( loadingImage );\n};\n\nImagesLoaded.prototype.addBackground = function( url, elem ) {\n var background = new Background( url, elem );\n this.images.push( background );\n};\n\nImagesLoaded.prototype.check = function() {\n var _this = this;\n this.progressedCount = 0;\n this.hasAnyBroken = false;\n // complete if no images\n if ( !this.images.length ) {\n this.complete();\n return;\n }\n\n function onProgress( image, elem, message ) {\n // HACK - Chrome triggers event before object properties have changed. #83\n setTimeout( function() {\n _this.progress( image, elem, message );\n });\n }\n\n this.images.forEach( function( loadingImage ) {\n loadingImage.once( 'progress', onProgress );\n loadingImage.check();\n });\n};\n\nImagesLoaded.prototype.progress = function( image, elem, message ) {\n this.progressedCount++;\n this.hasAnyBroken = this.hasAnyBroken || !image.isLoaded;\n // progress event\n this.emitEvent( 'progress', [ this, image, elem ] );\n if ( this.jqDeferred && this.jqDeferred.notify ) {\n this.jqDeferred.notify( this, image );\n }\n // check if completed\n if ( this.progressedCount == this.images.length ) {\n this.complete();\n }\n\n if ( this.options.debug && console ) {\n console.log( 'progress: ' + message, image, elem );\n }\n};\n\nImagesLoaded.prototype.complete = function() {\n var eventName = this.hasAnyBroken ? 'fail' : 'done';\n this.isComplete = true;\n this.emitEvent( eventName, [ this ] );\n this.emitEvent( 'always', [ this ] );\n if ( this.jqDeferred ) {\n var jqMethod = this.hasAnyBroken ? 'reject' : 'resolve';\n this.jqDeferred[ jqMethod ]( this );\n }\n};\n\n// -------------------------- -------------------------- //\n\nfunction LoadingImage( img ) {\n this.img = img;\n}\n\nLoadingImage.prototype = Object.create( EvEmitter.prototype );\n\nLoadingImage.prototype.check = function() {\n // If complete is true and browser supports natural sizes,\n // try to check for image status manually.\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n // report based on naturalWidth\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n return;\n }\n\n // If none of the checks above matched, simulate loading on detached element.\n this.proxyImage = new Image();\n this.proxyImage.addEventListener( 'load', this );\n this.proxyImage.addEventListener( 'error', this );\n // bind to image as well for Firefox. #191\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.proxyImage.src = this.img.src;\n};\n\nLoadingImage.prototype.getIsImageComplete = function() {\n // check for non-zero, non-undefined naturalWidth\n // fixes Safari+InfiniteScroll+Masonry bug infinite-scroll#671\n return this.img.complete && this.img.naturalWidth;\n};\n\nLoadingImage.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.img, message ] );\n};\n\n// ----- events ----- //\n\n// trigger specified handler for event type\nLoadingImage.prototype.handleEvent = function( event ) {\n var method = 'on' + event.type;\n if ( this[ method ] ) {\n this[ method ]( event );\n }\n};\n\nLoadingImage.prototype.onload = function() {\n this.confirm( true, 'onload' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.onerror = function() {\n this.confirm( false, 'onerror' );\n this.unbindEvents();\n};\n\nLoadingImage.prototype.unbindEvents = function() {\n this.proxyImage.removeEventListener( 'load', this );\n this.proxyImage.removeEventListener( 'error', this );\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\n// -------------------------- Background -------------------------- //\n\nfunction Background( url, element ) {\n this.url = url;\n this.element = element;\n this.img = new Image();\n}\n\n// inherit LoadingImage prototype\nBackground.prototype = Object.create( LoadingImage.prototype );\n\nBackground.prototype.check = function() {\n this.img.addEventListener( 'load', this );\n this.img.addEventListener( 'error', this );\n this.img.src = this.url;\n // check if image is already complete\n var isComplete = this.getIsImageComplete();\n if ( isComplete ) {\n this.confirm( this.img.naturalWidth !== 0, 'naturalWidth' );\n this.unbindEvents();\n }\n};\n\nBackground.prototype.unbindEvents = function() {\n this.img.removeEventListener( 'load', this );\n this.img.removeEventListener( 'error', this );\n};\n\nBackground.prototype.confirm = function( isLoaded, message ) {\n this.isLoaded = isLoaded;\n this.emitEvent( 'progress', [ this, this.element, message ] );\n};\n\n// -------------------------- jQuery -------------------------- //\n\nImagesLoaded.makeJQueryPlugin = function( jQuery ) {\n jQuery = jQuery || window.jQuery;\n if ( !jQuery ) {\n return;\n }\n // set local variable\n $ = jQuery;\n // $().imagesLoaded()\n $.fn.imagesLoaded = function( options, callback ) {\n var instance = new ImagesLoaded( this, options, callback );\n return instance.jqDeferred.promise( $(this) );\n };\n};\n// try making plugin\nImagesLoaded.makeJQueryPlugin();\n\n// -------------------------- -------------------------- //\n\nreturn ImagesLoaded;\n\n});\n","const imagesLoaded = require('imagesloaded');\n\n// Preload images\nconst preloadImages = (selector = 'img') => {\n return new Promise((resolve) => {\n imagesLoaded(document.querySelectorAll(selector), {background: true}, resolve);\n });\n};\n\n// Preload images\nconst preloadFonts = (id) => {\n return new Promise((resolve) => {\n WebFont.load({\n typekit: {\n id: id\n },\n active: resolve\n });\n });\n};\n\nexport { \n preloadImages, \n preloadFonts \n};","/* locomotive-scroll v3.6.1 | MIT License | https://github.com/locomotivemtl/locomotive-scroll */\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];\n\n return arr2;\n }\n}\n\nfunction _iterableToArray(iter) {\n if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === \"[object Arguments]\") return Array.from(iter);\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance\");\n}\n\nvar defaults = {\n el: document,\n elMobile: document,\n name: 'scroll',\n offset: [0, 0],\n repeat: false,\n smooth: false,\n smoothMobile: false,\n direction: 'vertical',\n lerp: 0.1,\n \"class\": 'is-inview',\n scrollbarContainer: false,\n scrollbarClass: 'c-scrollbar',\n scrollingClass: 'has-scroll-scrolling',\n draggingClass: 'has-scroll-dragging',\n smoothClass: 'has-scroll-smooth',\n initClass: 'has-scroll-init',\n getSpeed: false,\n getDirection: false,\n multiplier: 1,\n firefoxMultiplier: 50,\n touchMultiplier: 2,\n scrollFromAnywhere: false\n};\n\nvar _default = /*#__PURE__*/function () {\n function _default() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n Object.assign(this, defaults, options);\n this.namespace = 'locomotive';\n this.html = document.documentElement;\n this.windowHeight = window.innerHeight;\n this.windowMiddle = this.windowHeight / 2;\n this.els = [];\n this.listeners = {};\n this.hasScrollTicking = false;\n this.hasCallEventSet = false;\n this.checkScroll = this.checkScroll.bind(this);\n this.checkResize = this.checkResize.bind(this);\n this.checkEvent = this.checkEvent.bind(this);\n this.instance = {\n scroll: {\n x: 0,\n y: 0\n },\n limit: this.html.offsetHeight\n };\n\n if (this.getDirection) {\n this.instance.direction = null;\n }\n\n if (this.getDirection) {\n this.instance.speed = 0;\n }\n\n this.html.classList.add(this.initClass);\n window.addEventListener('resize', this.checkResize, false);\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.initEvents();\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n this.dispatchScroll();\n }\n }, {\n key: \"checkResize\",\n value: function checkResize() {\n var _this = this;\n\n if (!this.resizeTick) {\n this.resizeTick = true;\n requestAnimationFrame(function () {\n _this.resize();\n\n _this.resizeTick = false;\n });\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {}\n }, {\n key: \"initEvents\",\n value: function initEvents() {\n var _this2 = this;\n\n this.scrollToEls = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-to]\"));\n this.setScrollTo = this.setScrollTo.bind(this);\n this.scrollToEls.forEach(function (el) {\n el.addEventListener('click', _this2.setScrollTo, false);\n });\n }\n }, {\n key: \"setScrollTo\",\n value: function setScrollTo(event) {\n event.preventDefault();\n this.scrollTo(event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-href\")) || event.currentTarget.getAttribute('href'), event.currentTarget.getAttribute(\"data-\".concat(this.name, \"-offset\")));\n }\n }, {\n key: \"addElements\",\n value: function addElements() {}\n }, {\n key: \"detectElements\",\n value: function detectElements(hasCallEventSet) {\n var _this3 = this;\n\n var scrollTop = this.instance.scroll.y;\n var scrollBottom = scrollTop + this.windowHeight;\n this.els.forEach(function (el, i) {\n if (el && (!el.inView || hasCallEventSet)) {\n if (scrollBottom >= el.top && scrollTop < el.bottom) {\n _this3.setInView(el, i);\n }\n }\n\n if (el && el.inView) {\n if (scrollBottom < el.top || scrollTop > el.bottom) {\n _this3.setOutOfView(el, i);\n }\n }\n });\n this.els = this.els.filter(function (current, i) {\n return current !== null;\n });\n this.hasScrollTicking = false;\n }\n }, {\n key: \"setInView\",\n value: function setInView(current, i) {\n this.els[i].inView = true;\n current.el.classList.add(current[\"class\"]);\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'enter');\n\n if (!current.repeat) {\n this.els[i].call = false;\n }\n }\n\n if (!current.repeat && !current.speed && !current.sticky) {\n if (!current.call || current.call && this.hasCallEventSet) {\n this.els[i] = null;\n }\n }\n }\n }, {\n key: \"setOutOfView\",\n value: function setOutOfView(current, i) {\n if (current.repeat || current.speed !== undefined) {\n this.els[i].inView = false;\n }\n\n if (current.call && this.hasCallEventSet) {\n this.dispatchCall(current, 'exit');\n }\n\n if (current.repeat) {\n current.el.classList.remove(current[\"class\"]);\n }\n }\n }, {\n key: \"dispatchCall\",\n value: function dispatchCall(current, way) {\n this.callWay = way;\n this.callValue = current.call.split(',').map(function (item) {\n return item.trim();\n });\n this.callObj = current;\n if (this.callValue.length == 1) this.callValue = this.callValue[0];\n var callEvent = new Event(this.namespace + 'call');\n this.el.dispatchEvent(callEvent);\n }\n }, {\n key: \"dispatchScroll\",\n value: function dispatchScroll() {\n var scrollEvent = new Event(this.namespace + 'scroll');\n this.el.dispatchEvent(scrollEvent);\n }\n }, {\n key: \"setEvents\",\n value: function setEvents(event, func) {\n if (!this.listeners[event]) {\n this.listeners[event] = [];\n }\n\n var list = this.listeners[event];\n list.push(func);\n\n if (list.length === 1) {\n this.el.addEventListener(this.namespace + event, this.checkEvent, false);\n }\n\n if (event === 'call') {\n this.hasCallEventSet = true;\n this.detectElements(true);\n }\n }\n }, {\n key: \"unsetEvents\",\n value: function unsetEvents(event, func) {\n if (!this.listeners[event]) return;\n var list = this.listeners[event];\n var index = list.indexOf(func);\n if (index < 0) return;\n list.splice(index, 1);\n\n if (list.index === 0) {\n this.el.removeEventListener(this.namespace + event, this.checkEvent, false);\n }\n }\n }, {\n key: \"checkEvent\",\n value: function checkEvent(event) {\n var _this4 = this;\n\n var name = event.type.replace(this.namespace, '');\n var list = this.listeners[name];\n if (!list || list.length === 0) return;\n list.forEach(function (func) {\n switch (name) {\n case 'scroll':\n return func(_this4.instance);\n\n case 'call':\n return func(_this4.callValue, _this4.callWay, _this4.callObj);\n\n default:\n return func();\n }\n });\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {}\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {}\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance.scroll = {\n x: 0,\n y: 0\n };\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var _this5 = this;\n\n window.removeEventListener('resize', this.checkResize, false);\n Object.keys(this.listeners).forEach(function (event) {\n _this5.el.removeEventListener(_this5.namespace + event, _this5.checkEvent, false);\n });\n this.listeners = {};\n this.scrollToEls.forEach(function (el) {\n el.removeEventListener('click', _this5.setScrollTo, false);\n });\n }\n }]);\n\n return _default;\n}();\n\nvar commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof global !== 'undefined' ? global : typeof self !== 'undefined' ? self : {};\n\nfunction createCommonjsModule(fn, module) {\n\treturn module = { exports: {} }, fn(module, module.exports), module.exports;\n}\n\nvar smoothscroll = createCommonjsModule(function (module, exports) {\n/* smoothscroll v0.4.4 - 2019 - Dustan Kasten, Jeremias Menichelli - MIT License */\n(function () {\n\n // polyfill\n function polyfill() {\n // aliases\n var w = window;\n var d = document;\n\n // return if scroll behavior is supported and polyfill is not forced\n if (\n 'scrollBehavior' in d.documentElement.style &&\n w.__forceSmoothScrollPolyfill__ !== true\n ) {\n return;\n }\n\n // globals\n var Element = w.HTMLElement || w.Element;\n var SCROLL_TIME = 468;\n\n // object gathering original scroll methods\n var original = {\n scroll: w.scroll || w.scrollTo,\n scrollBy: w.scrollBy,\n elementScroll: Element.prototype.scroll || scrollElement,\n scrollIntoView: Element.prototype.scrollIntoView\n };\n\n // define timing method\n var now =\n w.performance && w.performance.now\n ? w.performance.now.bind(w.performance)\n : Date.now;\n\n /**\n * indicates if a the current browser is made by Microsoft\n * @method isMicrosoftBrowser\n * @param {String} userAgent\n * @returns {Boolean}\n */\n function isMicrosoftBrowser(userAgent) {\n var userAgentPatterns = ['MSIE ', 'Trident/', 'Edge/'];\n\n return new RegExp(userAgentPatterns.join('|')).test(userAgent);\n }\n\n /*\n * IE has rounding bug rounding down clientHeight and clientWidth and\n * rounding up scrollHeight and scrollWidth causing false positives\n * on hasScrollableSpace\n */\n var ROUNDING_TOLERANCE = isMicrosoftBrowser(w.navigator.userAgent) ? 1 : 0;\n\n /**\n * changes scroll position inside an element\n * @method scrollElement\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function scrollElement(x, y) {\n this.scrollLeft = x;\n this.scrollTop = y;\n }\n\n /**\n * returns result of applying ease math function to a number\n * @method ease\n * @param {Number} k\n * @returns {Number}\n */\n function ease(k) {\n return 0.5 * (1 - Math.cos(Math.PI * k));\n }\n\n /**\n * indicates if a smooth behavior should be applied\n * @method shouldBailOut\n * @param {Number|Object} firstArg\n * @returns {Boolean}\n */\n function shouldBailOut(firstArg) {\n if (\n firstArg === null ||\n typeof firstArg !== 'object' ||\n firstArg.behavior === undefined ||\n firstArg.behavior === 'auto' ||\n firstArg.behavior === 'instant'\n ) {\n // first argument is not an object/null\n // or behavior is auto, instant or undefined\n return true;\n }\n\n if (typeof firstArg === 'object' && firstArg.behavior === 'smooth') {\n // first argument is an object and behavior is smooth\n return false;\n }\n\n // throw error when behavior is not supported\n throw new TypeError(\n 'behavior member of ScrollOptions ' +\n firstArg.behavior +\n ' is not a valid value for enumeration ScrollBehavior.'\n );\n }\n\n /**\n * indicates if an element has scrollable space in the provided axis\n * @method hasScrollableSpace\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function hasScrollableSpace(el, axis) {\n if (axis === 'Y') {\n return el.clientHeight + ROUNDING_TOLERANCE < el.scrollHeight;\n }\n\n if (axis === 'X') {\n return el.clientWidth + ROUNDING_TOLERANCE < el.scrollWidth;\n }\n }\n\n /**\n * indicates if an element has a scrollable overflow property in the axis\n * @method canOverflow\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function canOverflow(el, axis) {\n var overflowValue = w.getComputedStyle(el, null)['overflow' + axis];\n\n return overflowValue === 'auto' || overflowValue === 'scroll';\n }\n\n /**\n * indicates if an element can be scrolled in either axis\n * @method isScrollable\n * @param {Node} el\n * @param {String} axis\n * @returns {Boolean}\n */\n function isScrollable(el) {\n var isScrollableY = hasScrollableSpace(el, 'Y') && canOverflow(el, 'Y');\n var isScrollableX = hasScrollableSpace(el, 'X') && canOverflow(el, 'X');\n\n return isScrollableY || isScrollableX;\n }\n\n /**\n * finds scrollable parent of an element\n * @method findScrollableParent\n * @param {Node} el\n * @returns {Node} el\n */\n function findScrollableParent(el) {\n while (el !== d.body && isScrollable(el) === false) {\n el = el.parentNode || el.host;\n }\n\n return el;\n }\n\n /**\n * self invoked function that, given a context, steps through scrolling\n * @method step\n * @param {Object} context\n * @returns {undefined}\n */\n function step(context) {\n var time = now();\n var value;\n var currentX;\n var currentY;\n var elapsed = (time - context.startTime) / SCROLL_TIME;\n\n // avoid elapsed times higher than one\n elapsed = elapsed > 1 ? 1 : elapsed;\n\n // apply easing to elapsed time\n value = ease(elapsed);\n\n currentX = context.startX + (context.x - context.startX) * value;\n currentY = context.startY + (context.y - context.startY) * value;\n\n context.method.call(context.scrollable, currentX, currentY);\n\n // scroll more if we have not reached our destination\n if (currentX !== context.x || currentY !== context.y) {\n w.requestAnimationFrame(step.bind(w, context));\n }\n }\n\n /**\n * scrolls window or element with a smooth behavior\n * @method smoothScroll\n * @param {Object|Node} el\n * @param {Number} x\n * @param {Number} y\n * @returns {undefined}\n */\n function smoothScroll(el, x, y) {\n var scrollable;\n var startX;\n var startY;\n var method;\n var startTime = now();\n\n // define scroll context\n if (el === d.body) {\n scrollable = w;\n startX = w.scrollX || w.pageXOffset;\n startY = w.scrollY || w.pageYOffset;\n method = original.scroll;\n } else {\n scrollable = el;\n startX = el.scrollLeft;\n startY = el.scrollTop;\n method = scrollElement;\n }\n\n // scroll looping over a frame\n step({\n scrollable: scrollable,\n method: method,\n startTime: startTime,\n startX: startX,\n startY: startY,\n x: x,\n y: y\n });\n }\n\n // ORIGINAL METHODS OVERRIDES\n // w.scroll and w.scrollTo\n w.scroll = w.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scroll.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object'\n ? arguments[0]\n : w.scrollX || w.pageXOffset,\n // use top prop, second argument if present or fallback to scrollY\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined\n ? arguments[1]\n : w.scrollY || w.pageYOffset\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : w.scrollX || w.pageXOffset,\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : w.scrollY || w.pageYOffset\n );\n };\n\n // w.scrollBy\n w.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0])) {\n original.scrollBy.call(\n w,\n arguments[0].left !== undefined\n ? arguments[0].left\n : typeof arguments[0] !== 'object' ? arguments[0] : 0,\n arguments[0].top !== undefined\n ? arguments[0].top\n : arguments[1] !== undefined ? arguments[1] : 0\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n w,\n d.body,\n ~~arguments[0].left + (w.scrollX || w.pageXOffset),\n ~~arguments[0].top + (w.scrollY || w.pageYOffset)\n );\n };\n\n // Element.prototype.scroll and Element.prototype.scrollTo\n Element.prototype.scroll = Element.prototype.scrollTo = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n // if one number is passed, throw error to match Firefox implementation\n if (typeof arguments[0] === 'number' && arguments[1] === undefined) {\n throw new SyntaxError('Value could not be converted');\n }\n\n original.elementScroll.call(\n this,\n // use left prop, first number argument or fallback to scrollLeft\n arguments[0].left !== undefined\n ? ~~arguments[0].left\n : typeof arguments[0] !== 'object' ? ~~arguments[0] : this.scrollLeft,\n // use top prop, second argument or fallback to scrollTop\n arguments[0].top !== undefined\n ? ~~arguments[0].top\n : arguments[1] !== undefined ? ~~arguments[1] : this.scrollTop\n );\n\n return;\n }\n\n var left = arguments[0].left;\n var top = arguments[0].top;\n\n // LET THE SMOOTHNESS BEGIN!\n smoothScroll.call(\n this,\n this,\n typeof left === 'undefined' ? this.scrollLeft : ~~left,\n typeof top === 'undefined' ? this.scrollTop : ~~top\n );\n };\n\n // Element.prototype.scrollBy\n Element.prototype.scrollBy = function() {\n // avoid action when no arguments are passed\n if (arguments[0] === undefined) {\n return;\n }\n\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.elementScroll.call(\n this,\n arguments[0].left !== undefined\n ? ~~arguments[0].left + this.scrollLeft\n : ~~arguments[0] + this.scrollLeft,\n arguments[0].top !== undefined\n ? ~~arguments[0].top + this.scrollTop\n : ~~arguments[1] + this.scrollTop\n );\n\n return;\n }\n\n this.scroll({\n left: ~~arguments[0].left + this.scrollLeft,\n top: ~~arguments[0].top + this.scrollTop,\n behavior: arguments[0].behavior\n });\n };\n\n // Element.prototype.scrollIntoView\n Element.prototype.scrollIntoView = function() {\n // avoid smooth behavior if not required\n if (shouldBailOut(arguments[0]) === true) {\n original.scrollIntoView.call(\n this,\n arguments[0] === undefined ? true : arguments[0]\n );\n\n return;\n }\n\n // LET THE SMOOTHNESS BEGIN!\n var scrollableParent = findScrollableParent(this);\n var parentRects = scrollableParent.getBoundingClientRect();\n var clientRects = this.getBoundingClientRect();\n\n if (scrollableParent !== d.body) {\n // reveal element inside parent\n smoothScroll.call(\n this,\n scrollableParent,\n scrollableParent.scrollLeft + clientRects.left - parentRects.left,\n scrollableParent.scrollTop + clientRects.top - parentRects.top\n );\n\n // reveal parent in viewport unless is fixed\n if (w.getComputedStyle(scrollableParent).position !== 'fixed') {\n w.scrollBy({\n left: parentRects.left,\n top: parentRects.top,\n behavior: 'smooth'\n });\n }\n } else {\n // reveal element in viewport\n w.scrollBy({\n left: clientRects.left,\n top: clientRects.top,\n behavior: 'smooth'\n });\n }\n };\n }\n\n {\n // commonjs\n module.exports = { polyfill: polyfill };\n }\n\n}());\n});\nvar smoothscroll_1 = smoothscroll.polyfill;\n\nvar _default$1 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, options));\n window.addEventListener('scroll', _this.checkScroll, false);\n smoothscroll.polyfill();\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n this.instance.scroll.y = window.pageYOffset;\n this.addElements();\n this.detectElements();\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this2 = this;\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.timestamp = Date.now();\n }\n\n this.instance.scroll.y = window.pageYOffset;\n\n if (this.els.length) {\n if (!this.hasScrollTicking) {\n requestAnimationFrame(function () {\n _this2.detectElements();\n });\n this.hasScrollTicking = true;\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (window.pageYOffset > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (window.pageYOffset < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (window.pageYOffset != this.instance.scroll.y) {\n this.instance.speed = (window.pageYOffset - this.instance.scroll.y) / (Date.now() - this.timestamp);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n if (this.els.length) {\n this.windowHeight = window.innerHeight;\n this.updateElements();\n }\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this3 = this;\n\n this.els = [];\n var els = this.el.querySelectorAll('[data-' + this.name + ']');\n els.forEach(function (el, id) {\n var cl = el.dataset[_this3.name + 'Class'] || _this3[\"class\"];\n\n var top = el.getBoundingClientRect().top + _this3.instance.scroll.y;\n\n var bottom = top + el.offsetHeight;\n var offset = typeof el.dataset[_this3.name + 'Offset'] === 'string' ? el.dataset[_this3.name + 'Offset'].split(',') : _this3.offset;\n var repeat = el.dataset[_this3.name + 'Repeat'];\n var call = el.dataset[_this3.name + 'Call'];\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this3.repeat;\n }\n\n var relativeOffset = _this3.getRelativeOffset(offset);\n\n var mappedEl = {\n el: el,\n id: id,\n \"class\": cl,\n top: top + relativeOffset[0],\n bottom: bottom - relativeOffset[1],\n offset: offset,\n repeat: repeat,\n inView: el.classList.contains(cl) ? true : false,\n call: call\n };\n\n _this3.els.push(mappedEl);\n });\n }\n }, {\n key: \"updateElements\",\n value: function updateElements() {\n var _this4 = this;\n\n this.els.forEach(function (el, i) {\n var top = el.el.getBoundingClientRect().top + _this4.instance.scroll.y;\n\n var bottom = top + el.el.offsetHeight;\n\n var relativeOffset = _this4.getRelativeOffset(el.offset);\n\n _this4.els[i].top = top + relativeOffset[0];\n _this4.els[i].bottom = bottom - relativeOffset[1];\n });\n this.hasScrollTicking = false;\n }\n }, {\n key: \"getRelativeOffset\",\n value: function getRelativeOffset(offset) {\n var relativeOffset = [0, 0];\n\n if (offset) {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * this.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n }\n\n return relativeOffset;\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * targetOption {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * offsetOption {int} - An absolute vertical scroll value to reach, or an offset to apply on top of given `target` or `sourceElem`'s target\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(targetOption, offsetOption, duration, easing, disableLerp, callback) {\n // TODO - In next breaking update, use an object as 2nd parameter for options (offset, duration, easing, disableLerp, callback)\n var target;\n var offset = offsetOption ? parseInt(offsetOption) : 0;\n\n if (typeof targetOption === 'string') {\n // Selector or boundaries\n if (targetOption === 'top') {\n target = this.html;\n } else if (targetOption === 'bottom') {\n target = this.html.offsetHeight - window.innerHeight;\n } else {\n target = document.querySelector(targetOption); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof targetOption === 'number') {\n // Absolute coordinate\n target = parseInt(targetOption);\n } else if (targetOption && targetOption.tagName) {\n // DOM Element\n target = targetOption;\n } else {\n console.warn('`targetOption` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n offset = target.getBoundingClientRect().top + offset + this.instance.scroll.y;\n } else {\n offset = target + offset;\n }\n\n if (callback) {\n offset = offset.toFixed();\n\n var onScroll = function onScroll() {\n if (window.pageYOffset.toFixed() === offset) {\n window.removeEventListener('scroll', onScroll);\n callback();\n }\n };\n\n window.addEventListener('scroll', onScroll);\n }\n\n window.scrollTo({\n top: offset,\n behavior: 'smooth'\n });\n }\n }, {\n key: \"update\",\n value: function update() {\n this.addElements();\n this.detectElements();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n window.removeEventListener('scroll', this.checkScroll, false);\n }\n }]);\n\n return _default;\n}(_default);\n\n/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nvar objectAssign = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n\nfunction E () {\n // Keep this empty so it's easier to inherit from\n // (via https://github.com/lipsmack from https://github.com/scottcorgan/tiny-emitter/issues/3)\n}\n\nE.prototype = {\n on: function (name, callback, ctx) {\n var e = this.e || (this.e = {});\n\n (e[name] || (e[name] = [])).push({\n fn: callback,\n ctx: ctx\n });\n\n return this;\n },\n\n once: function (name, callback, ctx) {\n var self = this;\n function listener () {\n self.off(name, listener);\n callback.apply(ctx, arguments);\n }\n listener._ = callback;\n return this.on(name, listener, ctx);\n },\n\n emit: function (name) {\n var data = [].slice.call(arguments, 1);\n var evtArr = ((this.e || (this.e = {}))[name] || []).slice();\n var i = 0;\n var len = evtArr.length;\n\n for (i; i < len; i++) {\n evtArr[i].fn.apply(evtArr[i].ctx, data);\n }\n\n return this;\n },\n\n off: function (name, callback) {\n var e = this.e || (this.e = {});\n var evts = e[name];\n var liveEvents = [];\n\n if (evts && callback) {\n for (var i = 0, len = evts.length; i < len; i++) {\n if (evts[i].fn !== callback && evts[i].fn._ !== callback)\n liveEvents.push(evts[i]);\n }\n }\n\n // Remove event from queue to prevent memory leak\n // Suggested by https://github.com/lazd\n // Ref: https://github.com/scottcorgan/tiny-emitter/commit/c6ebfaa9bc973b33d110a84a307742b7cf94c953#commitcomment-5024910\n\n (liveEvents.length)\n ? e[name] = liveEvents\n : delete e[name];\n\n return this;\n }\n};\n\nvar tinyEmitter = E;\n\nvar lethargy = createCommonjsModule(function (module, exports) {\n// Generated by CoffeeScript 1.9.2\n(function() {\n var root;\n\n root = exports !== null ? exports : this;\n\n root.Lethargy = (function() {\n function Lethargy(stability, sensitivity, tolerance, delay) {\n this.stability = stability != null ? Math.abs(stability) : 8;\n this.sensitivity = sensitivity != null ? 1 + Math.abs(sensitivity) : 100;\n this.tolerance = tolerance != null ? 1 + Math.abs(tolerance) : 1.1;\n this.delay = delay != null ? delay : 150;\n this.lastUpDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.lastDownDeltas = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n this.deltasTimestamp = (function() {\n var i, ref, results;\n results = [];\n for (i = 1, ref = this.stability * 2; 1 <= ref ? i <= ref : i >= ref; 1 <= ref ? i++ : i--) {\n results.push(null);\n }\n return results;\n }).call(this);\n }\n\n Lethargy.prototype.check = function(e) {\n var lastDelta;\n e = e.originalEvent || e;\n if (e.wheelDelta != null) {\n lastDelta = e.wheelDelta;\n } else if (e.deltaY != null) {\n lastDelta = e.deltaY * -40;\n } else if ((e.detail != null) || e.detail === 0) {\n lastDelta = e.detail * -40;\n }\n this.deltasTimestamp.push(Date.now());\n this.deltasTimestamp.shift();\n if (lastDelta > 0) {\n this.lastUpDeltas.push(lastDelta);\n this.lastUpDeltas.shift();\n return this.isInertia(1);\n } else {\n this.lastDownDeltas.push(lastDelta);\n this.lastDownDeltas.shift();\n return this.isInertia(-1);\n }\n };\n\n Lethargy.prototype.isInertia = function(direction) {\n var lastDeltas, lastDeltasNew, lastDeltasOld, newAverage, newSum, oldAverage, oldSum;\n lastDeltas = direction === -1 ? this.lastDownDeltas : this.lastUpDeltas;\n if (lastDeltas[0] === null) {\n return direction;\n }\n if (this.deltasTimestamp[(this.stability * 2) - 2] + this.delay > Date.now() && lastDeltas[0] === lastDeltas[(this.stability * 2) - 1]) {\n return false;\n }\n lastDeltasOld = lastDeltas.slice(0, this.stability);\n lastDeltasNew = lastDeltas.slice(this.stability, this.stability * 2);\n oldSum = lastDeltasOld.reduce(function(t, s) {\n return t + s;\n });\n newSum = lastDeltasNew.reduce(function(t, s) {\n return t + s;\n });\n oldAverage = oldSum / lastDeltasOld.length;\n newAverage = newSum / lastDeltasNew.length;\n if (Math.abs(oldAverage) < Math.abs(newAverage * this.tolerance) && (this.sensitivity < Math.abs(newAverage))) {\n return direction;\n } else {\n return false;\n }\n };\n\n Lethargy.prototype.showLastUpDeltas = function() {\n return this.lastUpDeltas;\n };\n\n Lethargy.prototype.showLastDownDeltas = function() {\n return this.lastDownDeltas;\n };\n\n return Lethargy;\n\n })();\n\n}).call(commonjsGlobal);\n});\n\nvar support = (function getSupport() {\n return {\n hasWheelEvent: 'onwheel' in document,\n hasMouseWheelEvent: 'onmousewheel' in document,\n hasTouch: ('ontouchstart' in window) || window.TouchEvent || window.DocumentTouch && document instanceof DocumentTouch,\n hasTouchWin: navigator.msMaxTouchPoints && navigator.msMaxTouchPoints > 1,\n hasPointer: !!window.navigator.msPointerEnabled,\n hasKeyDown: 'onkeydown' in document,\n isFirefox: navigator.userAgent.indexOf('Firefox') > -1\n };\n})();\n\nvar toString = Object.prototype.toString,\n hasOwnProperty$1 = Object.prototype.hasOwnProperty;\n\nvar bindallStandalone = function(object) {\n if(!object) return console.warn('bindAll requires at least one argument.');\n\n var functions = Array.prototype.slice.call(arguments, 1);\n\n if (functions.length === 0) {\n\n for (var method in object) {\n if(hasOwnProperty$1.call(object, method)) {\n if(typeof object[method] == 'function' && toString.call(object[method]) == \"[object Function]\") {\n functions.push(method);\n }\n }\n }\n }\n\n for(var i = 0; i < functions.length; i++) {\n var f = functions[i];\n object[f] = bind(object[f], object);\n }\n};\n\n/*\n Faster bind without specific-case checking. (see https://coderwall.com/p/oi3j3w).\n bindAll is only needed for events binding so no need to make slow fixes for constructor\n or partial application.\n*/\nfunction bind(func, context) {\n return function() {\n return func.apply(context, arguments);\n };\n}\n\nvar Lethargy = lethargy.Lethargy;\n\n\n\nvar EVT_ID = 'virtualscroll';\n\nvar src = VirtualScroll;\n\nvar keyCodes = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32\n};\n\nfunction VirtualScroll(options) {\n bindallStandalone(this, '_onWheel', '_onMouseWheel', '_onTouchStart', '_onTouchMove', '_onKeyDown');\n\n this.el = window;\n if (options && options.el) {\n this.el = options.el;\n delete options.el;\n }\n this.options = objectAssign({\n mouseMultiplier: 1,\n touchMultiplier: 2,\n firefoxMultiplier: 15,\n keyStep: 120,\n preventTouch: false,\n unpreventTouchClass: 'vs-touchmove-allowed',\n limitInertia: false,\n useKeyboard: true,\n useTouch: true\n }, options);\n\n if (this.options.limitInertia) this._lethargy = new Lethargy();\n\n this._emitter = new tinyEmitter();\n this._event = {\n y: 0,\n x: 0,\n deltaX: 0,\n deltaY: 0\n };\n this.touchStartX = null;\n this.touchStartY = null;\n this.bodyTouchAction = null;\n\n if (this.options.passive !== undefined) {\n this.listenerOptions = {passive: this.options.passive};\n }\n}\n\nVirtualScroll.prototype._notify = function(e) {\n var evt = this._event;\n evt.x += evt.deltaX;\n evt.y += evt.deltaY;\n\n this._emitter.emit(EVT_ID, {\n x: evt.x,\n y: evt.y,\n deltaX: evt.deltaX,\n deltaY: evt.deltaY,\n originalEvent: e\n });\n};\n\nVirtualScroll.prototype._onWheel = function(e) {\n var options = this.options;\n if (this._lethargy && this._lethargy.check(e) === false) return;\n var evt = this._event;\n\n // In Chrome and in Firefox (at least the new one)\n evt.deltaX = e.wheelDeltaX || e.deltaX * -1;\n evt.deltaY = e.wheelDeltaY || e.deltaY * -1;\n\n // for our purpose deltamode = 1 means user is on a wheel mouse, not touch pad\n // real meaning: https://developer.mozilla.org/en-US/docs/Web/API/WheelEvent#Delta_modes\n if(support.isFirefox && e.deltaMode == 1) {\n evt.deltaX *= options.firefoxMultiplier;\n evt.deltaY *= options.firefoxMultiplier;\n }\n\n evt.deltaX *= options.mouseMultiplier;\n evt.deltaY *= options.mouseMultiplier;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onMouseWheel = function(e) {\n if (this.options.limitInertia && this._lethargy.check(e) === false) return;\n\n var evt = this._event;\n\n // In Safari, IE and in Chrome if 'wheel' isn't defined\n evt.deltaX = (e.wheelDeltaX) ? e.wheelDeltaX : 0;\n evt.deltaY = (e.wheelDeltaY) ? e.wheelDeltaY : e.wheelDelta;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onTouchStart = function(e) {\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n};\n\nVirtualScroll.prototype._onTouchMove = function(e) {\n var options = this.options;\n if(options.preventTouch\n && !e.target.classList.contains(options.unpreventTouchClass)) {\n e.preventDefault();\n }\n\n var evt = this._event;\n\n var t = (e.targetTouches) ? e.targetTouches[0] : e;\n\n evt.deltaX = (t.pageX - this.touchStartX) * options.touchMultiplier;\n evt.deltaY = (t.pageY - this.touchStartY) * options.touchMultiplier;\n\n this.touchStartX = t.pageX;\n this.touchStartY = t.pageY;\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._onKeyDown = function(e) {\n var evt = this._event;\n evt.deltaX = evt.deltaY = 0;\n var windowHeight = window.innerHeight - 40;\n\n switch(e.keyCode) {\n case keyCodes.LEFT:\n case keyCodes.UP:\n evt.deltaY = this.options.keyStep;\n break;\n\n case keyCodes.RIGHT:\n case keyCodes.DOWN:\n evt.deltaY = - this.options.keyStep;\n break;\n case e.shiftKey:\n evt.deltaY = windowHeight;\n break;\n case keyCodes.SPACE:\n evt.deltaY = - windowHeight;\n break;\n default:\n return;\n }\n\n this._notify(e);\n};\n\nVirtualScroll.prototype._bind = function() {\n if(support.hasWheelEvent) this.el.addEventListener('wheel', this._onWheel, this.listenerOptions);\n if(support.hasMouseWheelEvent) this.el.addEventListener('mousewheel', this._onMouseWheel, this.listenerOptions);\n\n if(support.hasTouch && this.options.useTouch) {\n this.el.addEventListener('touchstart', this._onTouchStart, this.listenerOptions);\n this.el.addEventListener('touchmove', this._onTouchMove, this.listenerOptions);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n this.bodyTouchAction = document.body.style.msTouchAction;\n document.body.style.msTouchAction = 'none';\n this.el.addEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.addEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.addEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype._unbind = function() {\n if(support.hasWheelEvent) this.el.removeEventListener('wheel', this._onWheel);\n if(support.hasMouseWheelEvent) this.el.removeEventListener('mousewheel', this._onMouseWheel);\n\n if(support.hasTouch) {\n this.el.removeEventListener('touchstart', this._onTouchStart);\n this.el.removeEventListener('touchmove', this._onTouchMove);\n }\n\n if(support.hasPointer && support.hasTouchWin) {\n document.body.style.msTouchAction = this.bodyTouchAction;\n this.el.removeEventListener('MSPointerDown', this._onTouchStart, true);\n this.el.removeEventListener('MSPointerMove', this._onTouchMove, true);\n }\n\n if(support.hasKeyDown && this.options.useKeyboard) document.removeEventListener('keydown', this._onKeyDown);\n};\n\nVirtualScroll.prototype.on = function(cb, ctx) {\n this._emitter.on(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (events && events[EVT_ID] && events[EVT_ID].length === 1) this._bind();\n};\n\nVirtualScroll.prototype.off = function(cb, ctx) {\n this._emitter.off(EVT_ID, cb, ctx);\n\n var events = this._emitter.e;\n if (!events[EVT_ID] || events[EVT_ID].length <= 0) this._unbind();\n};\n\nVirtualScroll.prototype.reset = function() {\n var evt = this._event;\n evt.x = 0;\n evt.y = 0;\n};\n\nVirtualScroll.prototype.destroy = function() {\n this._emitter.off();\n this._unbind();\n};\n\nfunction lerp(start, end, amt) {\n return (1 - amt) * start + amt * end;\n}\n\nfunction getTranslate(el) {\n var translate = {};\n if (!window.getComputedStyle) return;\n var style = getComputedStyle(el);\n var transform = style.transform || style.webkitTransform || style.mozTransform;\n var mat = transform.match(/^matrix3d\\((.+)\\)$/);\n\n if (mat) {\n translate.x = mat ? parseFloat(mat[1].split(', ')[12]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[13]) : 0;\n } else {\n mat = transform.match(/^matrix\\((.+)\\)$/);\n translate.x = mat ? parseFloat(mat[1].split(', ')[4]) : 0;\n translate.y = mat ? parseFloat(mat[1].split(', ')[5]) : 0;\n }\n\n return translate;\n}\n\n/**\n * Returns an array containing all the parent nodes of the given node\n * @param {object} node\n * @return {array} parent nodes\n */\nfunction getParents(elem) {\n // Set up a parent array\n var parents = []; // Push each parent element to the array\n\n for (; elem && elem !== document; elem = elem.parentNode) {\n parents.push(elem);\n } // Return our parent array\n\n\n return parents;\n} // https://gomakethings.com/how-to-get-the-closest-parent-element-with-a-matching-selector-using-vanilla-javascript/\n\n/**\n * https://github.com/gre/bezier-easing\n * BezierEasing - use bezier curve for transition easing function\n * by Gaëtan Renaudeau 2014 - 2015 – MIT License\n */\n\n// These values are established by empiricism with tests (tradeoff: performance VS precision)\nvar NEWTON_ITERATIONS = 4;\nvar NEWTON_MIN_SLOPE = 0.001;\nvar SUBDIVISION_PRECISION = 0.0000001;\nvar SUBDIVISION_MAX_ITERATIONS = 10;\n\nvar kSplineTableSize = 11;\nvar kSampleStepSize = 1.0 / (kSplineTableSize - 1.0);\n\nvar float32ArraySupported = typeof Float32Array === 'function';\n\nfunction A (aA1, aA2) { return 1.0 - 3.0 * aA2 + 3.0 * aA1; }\nfunction B (aA1, aA2) { return 3.0 * aA2 - 6.0 * aA1; }\nfunction C (aA1) { return 3.0 * aA1; }\n\n// Returns x(t) given t, x1, and x2, or y(t) given t, y1, and y2.\nfunction calcBezier (aT, aA1, aA2) { return ((A(aA1, aA2) * aT + B(aA1, aA2)) * aT + C(aA1)) * aT; }\n\n// Returns dx/dt given t, x1, and x2, or dy/dt given t, y1, and y2.\nfunction getSlope (aT, aA1, aA2) { return 3.0 * A(aA1, aA2) * aT * aT + 2.0 * B(aA1, aA2) * aT + C(aA1); }\n\nfunction binarySubdivide (aX, aA, aB, mX1, mX2) {\n var currentX, currentT, i = 0;\n do {\n currentT = aA + (aB - aA) / 2.0;\n currentX = calcBezier(currentT, mX1, mX2) - aX;\n if (currentX > 0.0) {\n aB = currentT;\n } else {\n aA = currentT;\n }\n } while (Math.abs(currentX) > SUBDIVISION_PRECISION && ++i < SUBDIVISION_MAX_ITERATIONS);\n return currentT;\n}\n\nfunction newtonRaphsonIterate (aX, aGuessT, mX1, mX2) {\n for (var i = 0; i < NEWTON_ITERATIONS; ++i) {\n var currentSlope = getSlope(aGuessT, mX1, mX2);\n if (currentSlope === 0.0) {\n return aGuessT;\n }\n var currentX = calcBezier(aGuessT, mX1, mX2) - aX;\n aGuessT -= currentX / currentSlope;\n }\n return aGuessT;\n}\n\nfunction LinearEasing (x) {\n return x;\n}\n\nvar src$1 = function bezier (mX1, mY1, mX2, mY2) {\n if (!(0 <= mX1 && mX1 <= 1 && 0 <= mX2 && mX2 <= 1)) {\n throw new Error('bezier x values must be in [0, 1] range');\n }\n\n if (mX1 === mY1 && mX2 === mY2) {\n return LinearEasing;\n }\n\n // Precompute samples table\n var sampleValues = float32ArraySupported ? new Float32Array(kSplineTableSize) : new Array(kSplineTableSize);\n for (var i = 0; i < kSplineTableSize; ++i) {\n sampleValues[i] = calcBezier(i * kSampleStepSize, mX1, mX2);\n }\n\n function getTForX (aX) {\n var intervalStart = 0.0;\n var currentSample = 1;\n var lastSample = kSplineTableSize - 1;\n\n for (; currentSample !== lastSample && sampleValues[currentSample] <= aX; ++currentSample) {\n intervalStart += kSampleStepSize;\n }\n --currentSample;\n\n // Interpolate to provide an initial guess for t\n var dist = (aX - sampleValues[currentSample]) / (sampleValues[currentSample + 1] - sampleValues[currentSample]);\n var guessForT = intervalStart + dist * kSampleStepSize;\n\n var initialSlope = getSlope(guessForT, mX1, mX2);\n if (initialSlope >= NEWTON_MIN_SLOPE) {\n return newtonRaphsonIterate(aX, guessForT, mX1, mX2);\n } else if (initialSlope === 0.0) {\n return guessForT;\n } else {\n return binarySubdivide(aX, intervalStart, intervalStart + kSampleStepSize, mX1, mX2);\n }\n }\n\n return function BezierEasing (x) {\n // Because JavaScript number are imprecise, we should guarantee the extremes are right.\n if (x === 0) {\n return 0;\n }\n if (x === 1) {\n return 1;\n }\n return calcBezier(getTForX(x), mY1, mY2);\n };\n};\n\nvar keyCodes$1 = {\n LEFT: 37,\n UP: 38,\n RIGHT: 39,\n DOWN: 40,\n SPACE: 32,\n TAB: 9,\n PAGEUP: 33,\n PAGEDOWN: 34,\n HOME: 36,\n END: 35\n};\n\nvar _default$2 = /*#__PURE__*/function (_Core) {\n _inherits(_default, _Core);\n\n function _default() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n window.scrollTo(0, 0);\n history.scrollRestoration = 'manual';\n _this = _possibleConstructorReturn(this, _getPrototypeOf(_default).call(this, options));\n if (_this.inertia) _this.lerp = _this.inertia * 0.1;\n _this.isScrolling = false;\n _this.isDraggingScrollbar = false;\n _this.isTicking = false;\n _this.hasScrollTicking = false;\n _this.parallaxElements = [];\n _this.stop = false;\n _this.scrollbarContainer = options.scrollbarContainer;\n _this.checkKey = _this.checkKey.bind(_assertThisInitialized(_this));\n window.addEventListener('keydown', _this.checkKey, false);\n return _this;\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n var _this2 = this;\n\n this.html.classList.add(this.smoothClass);\n this.instance = _objectSpread2({\n delta: {\n x: 0,\n y: 0\n }\n }, this.instance);\n this.vs = new src({\n el: this.scrollFromAnywhere ? document : this.el,\n mouseMultiplier: navigator.platform.indexOf('Win') > -1 ? 1 : 0.4,\n firefoxMultiplier: this.firefoxMultiplier,\n touchMultiplier: this.touchMultiplier,\n useKeyboard: false,\n passive: true\n });\n this.vs.on(function (e) {\n if (_this2.stop) {\n return;\n }\n\n if (!_this2.isTicking && !_this2.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n _this2.updateDelta(e);\n\n if (!_this2.isScrolling) _this2.startScrolling();\n });\n _this2.isTicking = true;\n }\n\n _this2.isTicking = false;\n });\n this.setScrollLimit();\n this.initScrollBar();\n this.addSections();\n this.addElements();\n this.detectElements();\n this.transformElements(true, true);\n this.checkScroll(true);\n\n _get(_getPrototypeOf(_default.prototype), \"init\", this).call(this);\n }\n }, {\n key: \"setScrollLimit\",\n value: function setScrollLimit() {\n this.instance.limit = this.el.offsetHeight - this.windowHeight;\n }\n }, {\n key: \"startScrolling\",\n value: function startScrolling() {\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"stopScrolling\",\n value: function stopScrolling() {\n if (this.scrollToRaf) {\n cancelAnimationFrame(this.scrollToRaf);\n this.scrollToRaf = null;\n }\n\n this.isScrolling = false;\n this.instance.scroll.y = Math.round(this.instance.scroll.y);\n this.html.classList.remove(this.scrollingClass);\n }\n }, {\n key: \"checkKey\",\n value: function checkKey(e) {\n var _this3 = this;\n\n if (this.stop) {\n // If we are stopped, we don't want any scroll to occur because of a keypress\n // Prevent tab to scroll to activeElement\n if (e.keyCode == keyCodes$1.TAB) {\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0;\n });\n }\n\n return;\n }\n\n switch (e.keyCode) {\n case keyCodes$1.TAB:\n // Do not remove the RAF\n // It allows to override the browser's native scrollTo, which is essential\n requestAnimationFrame(function () {\n // Make sure native scroll is always at top of page\n _this3.html.scrollTop = 0;\n document.body.scrollTop = 0; // Request scrollTo on the focusedElement, putting it at the center of the screen\n\n _this3.scrollTo(document.activeElement, -window.innerHeight / 2);\n });\n break;\n\n case keyCodes$1.UP:\n this.instance.delta.y -= 240;\n break;\n\n case keyCodes$1.DOWN:\n this.instance.delta.y += 240;\n break;\n\n case keyCodes$1.PAGEUP:\n this.instance.delta.y -= window.innerHeight;\n break;\n\n case keyCodes$1.PAGEDOWN:\n this.instance.delta.y += window.innerHeight;\n break;\n\n case keyCodes$1.HOME:\n this.instance.delta.y -= this.instance.limit;\n break;\n\n case keyCodes$1.END:\n this.instance.delta.y += this.instance.limit;\n break;\n\n case keyCodes$1.SPACE:\n if (!(document.activeElement instanceof HTMLInputElement) && !(document.activeElement instanceof HTMLTextAreaElement)) {\n if (e.shiftKey) {\n this.instance.delta.y -= window.innerHeight;\n } else {\n this.instance.delta.y += window.innerHeight;\n }\n }\n\n break;\n\n default:\n return;\n }\n\n if (this.instance.delta.y < 0) this.instance.delta.y = 0;\n if (this.instance.delta.y > this.instance.limit) this.instance.delta.y = this.instance.limit;\n this.isScrolling = true;\n this.checkScroll();\n this.html.classList.add(this.scrollingClass);\n }\n }, {\n key: \"checkScroll\",\n value: function checkScroll() {\n var _this4 = this;\n\n var forced = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n\n if (forced || this.isScrolling || this.isDraggingScrollbar) {\n if (!this.hasScrollTicking) {\n requestAnimationFrame(function () {\n return _this4.checkScroll();\n });\n this.hasScrollTicking = true;\n }\n\n this.updateScroll();\n var distance = Math.abs(this.instance.delta.y - this.instance.scroll.y);\n\n if (!this.animatingScroll && (distance < 0.5 && this.instance.delta.y != 0 || distance < 0.5 && this.instance.delta.y == 0)) {\n this.stopScrolling();\n }\n\n for (var i = this.sections.length - 1; i >= 0; i--) {\n if (this.sections[i].persistent || this.instance.scroll.y > this.sections[i].offset && this.instance.scroll.y < this.sections[i].limit) {\n this.transform(this.sections[i].el, 0, -this.instance.scroll.y);\n\n if (!this.sections[i].inView) {\n this.sections[i].inView = true;\n this.sections[i].el.style.opacity = 1;\n this.sections[i].el.style.pointerEvents = 'all';\n this.sections[i].el.setAttribute(\"data-\".concat(this.name, \"-section-inview\"), '');\n }\n } else {\n if (this.sections[i].inView) {\n this.sections[i].inView = false;\n this.sections[i].el.style.opacity = 0;\n this.sections[i].el.style.pointerEvents = 'none';\n this.sections[i].el.removeAttribute(\"data-\".concat(this.name, \"-section-inview\"));\n }\n\n this.transform(this.sections[i].el, 0, 0);\n }\n }\n\n if (this.getDirection) {\n this.addDirection();\n }\n\n if (this.getSpeed) {\n this.addSpeed();\n this.timestamp = Date.now();\n }\n\n this.detectElements();\n this.transformElements();\n var scrollBarTranslation = this.instance.scroll.y / this.instance.limit * this.scrollBarLimit;\n this.transform(this.scrollbarThumb, 0, scrollBarTranslation);\n\n _get(_getPrototypeOf(_default.prototype), \"checkScroll\", this).call(this);\n\n this.hasScrollTicking = false;\n }\n }\n }, {\n key: \"resize\",\n value: function resize() {\n this.windowHeight = window.innerHeight;\n this.windowMiddle = this.windowHeight / 2;\n this.update();\n }\n }, {\n key: \"updateDelta\",\n value: function updateDelta(e) {\n this.instance.delta.y -= e.deltaY * this.multiplier;\n if (this.instance.delta.y < 0) this.instance.delta.y = 0;\n if (this.instance.delta.y > this.instance.limit) this.instance.delta.y = this.instance.limit;\n }\n }, {\n key: \"updateScroll\",\n value: function updateScroll(e) {\n if (this.isScrolling || this.isDraggingScrollbar) {\n this.instance.scroll.y = lerp(this.instance.scroll.y, this.instance.delta.y, this.lerp);\n } else {\n if (this.instance.scroll.y > this.instance.limit) {\n this.setScroll(this.instance.scroll.x, this.instance.limit);\n } else if (this.instance.scroll.y < 0) {\n this.setScroll(this.instance.scroll.x, 0);\n } else {\n this.setScroll(this.instance.scroll.x, this.instance.delta.y);\n }\n }\n }\n }, {\n key: \"addDirection\",\n value: function addDirection() {\n if (this.instance.delta.y > this.instance.scroll.y) {\n if (this.instance.direction !== 'down') {\n this.instance.direction = 'down';\n }\n } else if (this.instance.delta.y < this.instance.scroll.y) {\n if (this.instance.direction !== 'up') {\n this.instance.direction = 'up';\n }\n }\n }\n }, {\n key: \"addSpeed\",\n value: function addSpeed() {\n if (this.instance.delta.y != this.instance.scroll.y) {\n this.instance.speed = (this.instance.delta.y - this.instance.scroll.y) / Math.max(1, Date.now() - this.timestamp);\n } else {\n this.instance.speed = 0;\n }\n }\n }, {\n key: \"initScrollBar\",\n value: function initScrollBar() {\n this.scrollbar = document.createElement('span');\n this.scrollbarThumb = document.createElement('span');\n this.scrollbar.classList.add(\"\".concat(this.scrollbarClass));\n this.scrollbarThumb.classList.add(\"\".concat(this.scrollbarClass, \"_thumb\"));\n this.scrollbar.append(this.scrollbarThumb);\n\n if (this.scrollbarContainer) {\n this.scrollbarContainer.append(this.scrollbar);\n } else {\n document.body.append(this.scrollbar);\n } // Scrollbar Events\n\n\n this.getScrollBar = this.getScrollBar.bind(this);\n this.releaseScrollBar = this.releaseScrollBar.bind(this);\n this.moveScrollBar = this.moveScrollBar.bind(this);\n this.scrollbarThumb.addEventListener('mousedown', this.getScrollBar);\n window.addEventListener('mouseup', this.releaseScrollBar);\n window.addEventListener('mousemove', this.moveScrollBar); // Set scrollbar values\n\n if (this.instance.limit + this.windowHeight <= this.windowHeight) {\n return;\n }\n\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit + this.scrollbarHeight), \"px\");\n this.scrollBarLimit = this.scrollbarHeight - this.scrollbarThumb.getBoundingClientRect().height;\n }\n }, {\n key: \"reinitScrollBar\",\n value: function reinitScrollBar() {\n if (this.instance.limit + this.windowHeight <= this.windowHeight) {\n return;\n }\n\n this.scrollbarBCR = this.scrollbar.getBoundingClientRect();\n this.scrollbarHeight = this.scrollbarBCR.height;\n this.scrollbarThumb.style.height = \"\".concat(this.scrollbarHeight * this.scrollbarHeight / (this.instance.limit + this.scrollbarHeight), \"px\");\n this.scrollBarLimit = this.scrollbarHeight - this.scrollbarThumb.getBoundingClientRect().height;\n }\n }, {\n key: \"destroyScrollBar\",\n value: function destroyScrollBar() {\n this.scrollbarThumb.removeEventListener('mousedown', this.getScrollBar);\n window.removeEventListener('mouseup', this.releaseScrollBar);\n window.removeEventListener('mousemove', this.moveScrollBar);\n this.scrollbar.remove();\n }\n }, {\n key: \"getScrollBar\",\n value: function getScrollBar(e) {\n this.isDraggingScrollbar = true;\n this.checkScroll();\n this.html.classList.remove(this.scrollingClass);\n this.html.classList.add(this.draggingClass);\n }\n }, {\n key: \"releaseScrollBar\",\n value: function releaseScrollBar(e) {\n this.isDraggingScrollbar = false;\n this.html.classList.add(this.scrollingClass);\n this.html.classList.remove(this.draggingClass);\n }\n }, {\n key: \"moveScrollBar\",\n value: function moveScrollBar(e) {\n var _this5 = this;\n\n if (!this.isTicking && this.isDraggingScrollbar) {\n requestAnimationFrame(function () {\n var y = (e.clientY - _this5.scrollbarBCR.top) * 100 / _this5.scrollbarHeight * _this5.instance.limit / 100;\n\n if (y > 0 && y < _this5.instance.limit) {\n _this5.instance.delta.y = y;\n }\n });\n this.isTicking = true;\n }\n\n this.isTicking = false;\n }\n }, {\n key: \"addElements\",\n value: function addElements() {\n var _this6 = this;\n\n this.els = [];\n this.parallaxElements = [];\n this.sections.forEach(function (section, y) {\n var els = _this6.sections[y].el.querySelectorAll(\"[data-\".concat(_this6.name, \"]\"));\n\n els.forEach(function (el, id) {\n var cl = el.dataset[_this6.name + 'Class'] || _this6[\"class\"];\n var top;\n var repeat = el.dataset[_this6.name + 'Repeat'];\n var call = el.dataset[_this6.name + 'Call'];\n var position = el.dataset[_this6.name + 'Position'];\n var delay = el.dataset[_this6.name + 'Delay'];\n var direction = el.dataset[_this6.name + 'Direction'];\n var sticky = typeof el.dataset[_this6.name + 'Sticky'] === 'string';\n var speed = el.dataset[_this6.name + 'Speed'] ? parseFloat(el.dataset[_this6.name + 'Speed']) / 10 : false;\n var offset = typeof el.dataset[_this6.name + 'Offset'] === 'string' ? el.dataset[_this6.name + 'Offset'].split(',') : _this6.offset;\n var target = el.dataset[_this6.name + 'Target'];\n var targetEl;\n\n if (target !== undefined) {\n targetEl = document.querySelector(\"\".concat(target));\n } else {\n targetEl = el;\n }\n\n if (!_this6.sections[y].inView) {\n top = targetEl.getBoundingClientRect().top - getTranslate(_this6.sections[y].el).y - getTranslate(targetEl).y;\n } else {\n top = targetEl.getBoundingClientRect().top + _this6.instance.scroll.y - getTranslate(targetEl).y;\n }\n\n var bottom = top + targetEl.offsetHeight;\n var middle = (bottom - top) / 2 + top;\n\n if (sticky) {\n var elTop = el.getBoundingClientRect().top;\n var elDistance = elTop - top;\n top += window.innerHeight;\n bottom = elTop + targetEl.offsetHeight - el.offsetHeight - elDistance;\n middle = (bottom - top) / 2 + top;\n }\n\n if (repeat == 'false') {\n repeat = false;\n } else if (repeat != undefined) {\n repeat = true;\n } else {\n repeat = _this6.repeat;\n }\n\n var relativeOffset = [0, 0];\n\n if (offset) {\n for (var i = 0; i < offset.length; i++) {\n if (typeof offset[i] == 'string') {\n if (offset[i].includes('%')) {\n relativeOffset[i] = parseInt(offset[i].replace('%', '') * _this6.windowHeight / 100);\n } else {\n relativeOffset[i] = parseInt(offset[i]);\n }\n } else {\n relativeOffset[i] = offset[i];\n }\n }\n }\n\n var mappedEl = {\n el: el,\n id: id,\n \"class\": cl,\n top: top + relativeOffset[0],\n middle: middle,\n bottom: bottom - relativeOffset[1],\n offset: offset,\n repeat: repeat,\n inView: el.classList.contains(cl) ? true : false,\n call: call,\n speed: speed,\n delay: delay,\n position: position,\n target: targetEl,\n direction: direction,\n sticky: sticky\n };\n\n _this6.els.push(mappedEl);\n\n if (speed !== false || sticky) {\n _this6.parallaxElements.push(mappedEl);\n }\n });\n });\n }\n }, {\n key: \"addSections\",\n value: function addSections() {\n var _this7 = this;\n\n this.sections = [];\n var sections = this.el.querySelectorAll(\"[data-\".concat(this.name, \"-section]\"));\n\n if (sections.length === 0) {\n sections = [this.el];\n }\n\n sections.forEach(function (section, i) {\n var offset = section.getBoundingClientRect().top - window.innerHeight * 1.5 - getTranslate(section).y;\n var limit = offset + section.getBoundingClientRect().height + window.innerHeight * 2;\n var persistent = typeof section.dataset[_this7.name + 'Persistent'] === 'string';\n var mappedSection = {\n el: section,\n offset: offset,\n limit: limit,\n inView: false,\n persistent: persistent\n };\n _this7.sections[i] = mappedSection;\n });\n }\n }, {\n key: \"transform\",\n value: function transform(element, x, y, delay) {\n var transform;\n\n if (!delay) {\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(x, \",\").concat(y, \",0,1)\");\n } else {\n var start = getTranslate(element);\n var lerpX = lerp(start.x, x, delay);\n var lerpY = lerp(start.y, y, delay);\n transform = \"matrix3d(1,0,0.00,0,0.00,1,0.00,0,0,0,1,0,\".concat(lerpX, \",\").concat(lerpY, \",0,1)\");\n }\n\n element.style.webkitTransform = transform;\n element.style.msTransform = transform;\n element.style.transform = transform;\n }\n }, {\n key: \"transformElements\",\n value: function transformElements(isForced) {\n var _this8 = this;\n\n var setAllElements = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var scrollBottom = this.instance.scroll.y + this.windowHeight;\n var scrollMiddle = this.instance.scroll.y + this.windowMiddle;\n this.parallaxElements.forEach(function (current, i) {\n var transformDistance = false;\n\n if (isForced) {\n transformDistance = 0;\n }\n\n if (current.inView || setAllElements) {\n switch (current.position) {\n case 'top':\n transformDistance = _this8.instance.scroll.y * -current.speed;\n break;\n\n case 'elementTop':\n transformDistance = (scrollBottom - current.top) * -current.speed;\n break;\n\n case 'bottom':\n transformDistance = (_this8.instance.limit - scrollBottom + _this8.windowHeight) * current.speed;\n break;\n\n default:\n transformDistance = (scrollMiddle - current.middle) * -current.speed;\n break;\n }\n }\n\n if (current.sticky) {\n if (current.inView) {\n transformDistance = _this8.instance.scroll.y - current.top + window.innerHeight;\n } else {\n if (_this8.instance.scroll.y < current.top - window.innerHeight && _this8.instance.scroll.y < current.top - window.innerHeight / 2) {\n transformDistance = 0;\n } else if (_this8.instance.scroll.y > current.bottom && _this8.instance.scroll.y > current.bottom + 100) {\n transformDistance = current.bottom - current.top + window.innerHeight;\n } else {\n transformDistance = false;\n }\n }\n }\n\n if (transformDistance !== false) {\n if (current.direction === 'horizontal') {\n _this8.transform(current.el, transformDistance, 0, isForced ? false : current.delay);\n } else {\n _this8.transform(current.el, 0, transformDistance, isForced ? false : current.delay);\n }\n }\n });\n }\n /**\n * Scroll to a desired target.\n *\n * @param Available options :\n * targetOption {node, string, \"top\", \"bottom\", int} - The DOM element we want to scroll to\n * offsetOption {int} - An offset to apply on top of given `target` or `sourceElem`'s target\n * duration {int} - Duration of the scroll animation in milliseconds\n * easing {array} - An array of 4 floats between 0 and 1 defining the bezier curve for the animation's easing. See http://greweb.me/bezier-easing-editor/example/\n * @return {void}\n */\n\n }, {\n key: \"scrollTo\",\n value: function scrollTo(targetOption, offsetOption) {\n var _this9 = this;\n\n var duration = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 1000;\n var easing = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : [0.25, 0.00, 0.35, 1.00];\n var disableLerp = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;\n var callback = arguments.length > 5 ? arguments[5] : undefined;\n // TODO - In next breaking update, use an object as 2nd parameter for options (offset, duration, easing, disableLerp, callback)\n var target;\n var offset = offsetOption ? parseInt(offsetOption) : 0;\n easing = src$1.apply(void 0, _toConsumableArray(easing));\n\n if (typeof targetOption === 'string') {\n // Selector or boundaries\n if (targetOption === 'top') {\n target = 0;\n } else if (targetOption === 'bottom') {\n target = this.instance.limit;\n } else {\n target = document.querySelector(targetOption); // If the query fails, abort\n\n if (!target) {\n return;\n }\n }\n } else if (typeof targetOption === 'number') {\n // Absolute coordinate\n target = parseInt(targetOption);\n } else if (targetOption && targetOption.tagName) {\n // DOM Element\n target = targetOption;\n } else {\n console.warn('`targetOption` parameter is not valid');\n return;\n } // We have a target that is not a coordinate yet, get it\n\n\n if (typeof target !== 'number') {\n // Verify the given target belongs to this scroll scope\n var targetInScope = getParents(target).includes(this.el);\n\n if (!targetInScope) {\n // If the target isn't inside our main element, abort any action\n return;\n } // Get target offset from top\n\n\n var targetBCR = target.getBoundingClientRect();\n var offsetTop = targetBCR.top; // Try and find the target's parent section\n\n var targetParents = getParents(target);\n var parentSection = targetParents.find(function (candidate) {\n return _this9.sections.find(function (section) {\n return section.el == candidate;\n });\n });\n var parentSectionOffset = 0;\n\n if (parentSection) {\n parentSectionOffset = getTranslate(parentSection).y; // We got a parent section, store it's current offset to remove it later\n } // Final value of scroll destination : offsetTop + (optional offset given in options) - (parent's section translate)\n\n\n offset = offsetTop + offset - parentSectionOffset;\n } else {\n offset = target + offset;\n } // Actual scrollto\n // ==========================================================================\n // Setup\n\n\n var scrollStart = parseFloat(this.instance.delta.y);\n var scrollTarget = Math.max(0, Math.min(offset, this.instance.limit)); // Make sure our target is in the scroll boundaries\n\n var scrollDiff = scrollTarget - scrollStart;\n\n var render = function render(p) {\n if (disableLerp) _this9.setScroll(_this9.instance.delta.x, scrollStart + scrollDiff * p);else _this9.instance.delta.y = scrollStart + scrollDiff * p;\n }; // Prepare the scroll\n\n\n this.animatingScroll = true; // This boolean allows to prevent `checkScroll()` from calling `stopScrolling` when the animation is slow (i.e. at the beginning of an EaseIn)\n\n this.stopScrolling(); // Stop any movement, allows to kill any other `scrollTo` still happening\n\n this.startScrolling(); // Restart the scroll\n // Start the animation loop\n\n var start = Date.now();\n\n var loop = function loop() {\n var p = (Date.now() - start) / duration; // Animation progress\n\n if (p > 1) {\n // Animation ends\n render(1);\n _this9.animatingScroll = false;\n if (duration == 0) _this9.update();\n if (callback) callback();\n } else {\n _this9.scrollToRaf = requestAnimationFrame(loop);\n render(easing(p));\n }\n };\n\n loop();\n }\n }, {\n key: \"update\",\n value: function update() {\n this.setScrollLimit();\n this.addSections();\n this.addElements();\n this.detectElements();\n this.updateScroll();\n this.transformElements(true);\n this.reinitScrollBar();\n this.checkScroll(true);\n }\n }, {\n key: \"startScroll\",\n value: function startScroll() {\n this.stop = false;\n }\n }, {\n key: \"stopScroll\",\n value: function stopScroll() {\n this.stop = true;\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.instance = _objectSpread2({}, this.instance, {\n scroll: {\n x: x,\n y: y\n },\n delta: {\n x: x,\n y: y\n },\n speed: 0\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(_default.prototype), \"destroy\", this).call(this);\n\n this.stopScrolling();\n this.html.classList.remove(this.smoothClass);\n this.vs.destroy();\n this.destroyScrollBar();\n window.removeEventListener('keydown', this.checkKey, false);\n }\n }]);\n\n return _default;\n}(_default);\n\nvar _default$3 = /*#__PURE__*/function () {\n function _default() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, _default);\n\n this.options = options;\n Object.assign(this, defaults, options);\n this.init();\n }\n\n _createClass(_default, [{\n key: \"init\",\n value: function init() {\n if (!this.smoothMobile) {\n this.isMobile = /Android|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent) || navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1;\n }\n\n if (this.smooth === true && !this.isMobile) {\n this.scroll = new _default$2(this.options);\n } else {\n this.scroll = new _default$1(this.options);\n }\n\n this.scroll.init();\n\n if (window.location.hash) {\n // Get the hash without the '#' and find the matching element\n var id = window.location.hash.slice(1, window.location.hash.length);\n var target = document.getElementById(id); // If found, scroll to the element\n\n if (target) this.scroll.scrollTo(target);\n }\n }\n }, {\n key: \"update\",\n value: function update() {\n this.scroll.update();\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scroll.startScroll();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scroll.stopScroll();\n }\n }, {\n key: \"scrollTo\",\n value: function scrollTo(target, offset, duration, easing, disableLerp, callback) {\n // TODO - In next breaking update, use an object as 2nd parameter for options (offset, duration, easing, disableLerp, callback)\n this.scroll.scrollTo(target, offset, duration, easing, disableLerp, callback);\n }\n }, {\n key: \"setScroll\",\n value: function setScroll(x, y) {\n this.scroll.setScroll(x, y);\n }\n }, {\n key: \"on\",\n value: function on(event, func) {\n this.scroll.setEvents(event, func);\n }\n }, {\n key: \"off\",\n value: function off(event, func) {\n this.scroll.unsetEvents(event, func);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.scroll.destroy();\n }\n }]);\n\n return _default;\n}();\n\nexport default _default$3;\n","import { preloadImages, preloadFonts } from './utils';\nimport LocomotiveScroll from 'locomotive-scroll';\n\nconst backtopEl = document.querySelector('.backtop');\nconst headerEl = document.querySelector('#header');\n\n// Preload images and fonts\nPromise.all([preloadImages('.tiles__line-img'), preloadFonts('rmd7deq')]).then(() => {\n // Remove loader (loading class)\n document.body.classList.remove('loading');\n\n // Initialize the Locomotive scroll\n const scroll = new LocomotiveScroll({\n el: document.querySelector('[data-scroll-container]'),\n smooth: true\n });\n\n backtopEl.addEventListener('click', () => scroll.scrollTo(headerEl));\n});"]}