{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/tiny-slider/src/helpers/addEvents.js","webpack:///./node_modules/@uvocore-front/utils/dist/index.js","webpack:///./node_modules/tiny-slider/src/helpers/addClass.js","webpack:///./node_modules/tiny-slider/src/helpers/removeEvents.js","webpack:///./node_modules/tiny-slider/src/helpers/removeClass.js","webpack:///./node_modules/tiny-slider/src/helpers/setAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/hideElement.js","webpack:///./node_modules/tiny-slider/src/helpers/showElement.js","webpack:///./node_modules/tiny-slider/src/helpers/checkStorageValue.js","webpack:///./node_modules/tiny-slider/src/helpers/setLocalStorage.js","webpack:///./node_modules/tiny-slider/src/helpers/raf.js","webpack:///./node_modules/tiny-slider/src/helpers/classListSupport.js","webpack:///./node_modules/tiny-slider/src/helpers/hasClass.js","webpack:///./node_modules/tiny-slider/src/helpers/getCssRulesLength.js","webpack:///./node_modules/tiny-slider/src/helpers/addCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/forEach.js","webpack:///./node_modules/tiny-slider/src/helpers/removeAttrs.js","webpack:///./node_modules/tiny-slider/src/helpers/getBody.js","webpack:///./node_modules/tiny-slider/src/helpers/setFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/resetFakeBody.js","webpack:///./node_modules/tiny-slider/src/helpers/docElement.js","webpack:///./node_modules/get-intrinsic/index.js","webpack:///./node_modules/tiny-slider/src/helpers/hasAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/whichProperty.js","webpack:///./node_modules/tiny-slider/src/tiny-slider.js","webpack:///./node_modules/tiny-slider/src/helpers/getAttr.js","webpack:///./node_modules/tiny-slider/src/helpers/isNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/passiveOption.js","webpack:///./node_modules/tiny-slider/src/helpers/caf.js","webpack:///./node_modules/tiny-slider/src/helpers/extend.js","webpack:///./assets/all_pages/js/components/Accordion.js","webpack:///./node_modules/function-bind/index.js","webpack:///./assets/all_pages/js/utils/index.js","webpack:///./node_modules/tiny-slider/src/helpers/arrayFromNodeList.js","webpack:///./node_modules/tiny-slider/src/helpers/isVisible.js","webpack:///./node_modules/tiny-slider/src/helpers/getEndProperty.js","webpack:///./node_modules/console-browserify/index.js","webpack:///(webpack)/buildin/global.js","webpack:///./node_modules/util/util.js","webpack:///./node_modules/object-keys/isArguments.js","webpack:///./node_modules/has-symbols/shams.js","webpack:///./node_modules/has-property-descriptors/index.js","webpack:///./node_modules/gopd/index.js","webpack:///./node_modules/tiny-slider/src/helpers/getSlideId.js","webpack:///./node_modules/tiny-slider/src/helpers/calc.js","webpack:///./node_modules/tiny-slider/src/helpers/percentageLayout.js","webpack:///./node_modules/tiny-slider/src/helpers/mediaquerySupport.js","webpack:///./node_modules/tiny-slider/src/helpers/createStyleSheet.js","webpack:///./node_modules/tiny-slider/src/helpers/removeCSSRule.js","webpack:///./node_modules/tiny-slider/src/helpers/toDegree.js","webpack:///./node_modules/tiny-slider/src/helpers/getTouchDirection.js","webpack:///./node_modules/tiny-slider/src/helpers/has3DTransforms.js","webpack:///./node_modules/tiny-slider/src/helpers/events.js","webpack:///./node_modules/tiny-slider/src/helpers/jsTransform.js","webpack:///./assets/all_pages/js/components/sticky-header.js","webpack:///./assets/all_pages/js/components/mobile-nav.js","webpack:///./assets/all_pages/js/components/dropdowns.js","webpack:///./node_modules/process/browser.js","webpack:///./node_modules/util/support/isBufferBrowser.js","webpack:///./node_modules/util/node_modules/inherits/inherits_browser.js","webpack:///./node_modules/assert/assert.js","webpack:///./node_modules/object.assign/polyfill.js","webpack:///./node_modules/object.assign/implementation.js","webpack:///./node_modules/object-keys/index.js","webpack:///./node_modules/object-keys/implementation.js","webpack:///./node_modules/call-bind/callBound.js","webpack:///./node_modules/has-symbols/index.js","webpack:///./node_modules/has-proto/index.js","webpack:///./node_modules/function-bind/implementation.js","webpack:///./node_modules/hasown/index.js","webpack:///./node_modules/call-bind/index.js","webpack:///./node_modules/set-function-length/index.js","webpack:///./node_modules/define-data-property/index.js","webpack:///./assets/components/ImagesLazyLoading/index.js","webpack:///./assets/components/VideoLazyLoading/index.js","webpack:///./assets/cheap-dissertations/js/components/AnimationHIW.js","webpack:///./node_modules/@splidejs/splide/dist/js/splide.esm.js","webpack:///./assets/cheap-dissertations/js/components/SliderSplide/index.js","webpack:///./assets/cheap-dissertations/js/index.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","addEvents","el","obj","preventScrolling","prop","option","indexOf","addEventListener","window","e","default","deployHash","source","withDeployHash","appendTo","document","getElementsByTagName","async","a","u","defer","f","Promise","concat","querySelector","createElement","readyState","test","onload","onreadystatechange","src","appendChild","arguments","length","innerHTML","element","marginValue","thresholdValue","callback","querySelectorAll","rootMargin","threshold","IntersectionObserver","forEach","isIntersecting","unobserve","target","slice","observe","widgetLink","isWidgetLinkHashNeeded","loader","customLoader","insertLoaderTo","loaderPosition","v","fn","y","then","catch","Error","addClass","str","classList","add","className","removeEvents","removeEventListener","removeClass","remove","replace","setAttrs","els","attrs","Array","toString","setAttribute","hideElement","forceHide","style","display","showElement","checkStorageValue","JSON","parse","setLocalStorage","storage","access","setItem","win","raf","requestAnimationFrame","webkitRequestAnimationFrame","mozRequestAnimationFrame","msRequestAnimationFrame","cb","setTimeout","classListSupport","hasClass","contains","getCssRulesLength","sheet","cssRules","rules","addCSSRule","selector","index","insertRule","addRule","arr","scope","removeAttrs","attrLength","j","removeAttribute","getBody","doc","body","fake","setFakeBody","docOverflow","overflow","background","resetFakeBody","offsetHeight","docElement","documentElement","$SyntaxError","SyntaxError","$Function","Function","$TypeError","TypeError","getEvalledConstructor","expressionSyntax","$gOPD","getOwnPropertyDescriptor","throwTypeError","ThrowTypeError","calleeThrows","gOPDthrows","hasSymbols","hasProto","getProto","getPrototypeOf","x","__proto__","needsEval","TypedArray","Uint8Array","undefined","INTRINSICS","AggregateError","ArrayBuffer","iterator","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","eval","EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","Map","Math","Number","parseFloat","parseInt","Proxy","RangeError","ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","Uint8ClampedArray","Uint16Array","Uint32Array","URIError","WeakMap","WeakRef","WeakSet","error","errorProto","LEGACY_ALIASES","hasOwn","$concat","$spliceApply","apply","splice","$replace","$strSlice","$exec","exec","rePropName","reEscapeChar","stringToPath","string","first","last","result","match","number","quote","subString","getBaseIntrinsic","allowMissing","alias","intrinsicName","doEval","gen","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","hasAttr","attr","hasAttribute","whichProperty","props","Props","charAt","toUpperCase","substr","prefix","push","keys","Element","this","parentNode","removeChild","tns","options","container","axis","items","gutter","edgePadding","fixedWidth","autoWidth","viewportMax","slideBy","center","controls","controlsPosition","controlsText","controlsContainer","prevButton","nextButton","nav","navPosition","navContainer","navAsThumbnails","arrowKeys","speed","autoplay","autoplayPosition","autoplayTimeout","autoplayDirection","autoplayText","autoplayHoverPause","autoplayButton","autoplayButtonOutput","autoplayResetOnVisibility","animateIn","animateOut","animateNormal","animateDelay","loop","rewind","autoHeight","responsive","lazyload","lazyloadSelector","touch","mouseDrag","swipeAngle","nested","preventActionWhenRunning","preventScrollOnTouch","freezable","onInit","useLocalStorage","nonce","KEYS","ENTER","SPACE","LEFT","RIGHT","tnsStorage","localStorageAccess","browserInfo","navigator","userAgent","uid","localStorage","getItem","removeItem","item","CALC","PERCENTAGELAYOUT","CSSMQ","TRANSFORM","HAS3DTRANSFORMS","TRANSITIONDURATION","TRANSITIONDELAY","ANIMATIONDURATION","ANIMATIONDELAY","TRANSITIONEND","ANIMATIONEND","supportConsoleWarn","console","warn","tnsList","optionsElements","nodeName","children","carousel","responsiveTem","val","updateOptions","middleWrapper","breakpointZone","horizontal","outerWrapper","innerWrapper","containerParent","containerHTML","outerHTML","slideItems","slideCount","windowWidth","getWindowWidth","isOn","setBreakpointZone","slidePositions","imgsComplete","liveregionCurrent","itemsMax","getOption","viewport","getViewportWidth","floor","fixedWidthViewportWidth","slideItemsOut","cloneCount","bp","tem","ceil","min","max","getItemsMax","hasOption","slideCountNew","hasRightDeadZone","rightBoundary","getRightBoundary","updateIndexBeforeTransform","transformAttr","transformPrefix","transformPostfix","getIndexMax","getStartIndex","indexCached","indexMin","getCurrentSlide","indexMax","moveDirectionExpected","running","events","newContainerClasses","slideId","id","disable","disabled","freeze","getFreeze","frozen","controlsEvents","onControlsClick","getEvent","keyIndex","keyCode","navEvents","onTransitionEnd","getTarget","navIndex","navClicked","targetIndexBase","pages","goTo","navCurrentIndex","animating","stopAutoplay","curElement","activeElement","setFocus","navItems","hoverEvents","stopAutoplayTimer","autoplayHoverPaused","setAutoplayTimer","visibilityEvent","hidden","autoplayVisibilityPaused","docmentKeydownEvent","touchEvents","onPanStart","onPanMove","onPanEnd","dragEvents","hasControls","hasNav","hasAutoplay","hasTouch","hasMouseDrag","slideActiveClass","imgCompleteClass","imgEvents","imgLoaded","img","imgCompleted","preventScroll","prevIsButton","nextIsButton","controlsContainerHTML","prevButtonHTML","nextButtonHTML","navContainerHTML","getPages","pagesCached","getCurrentNavIndex","navCurrentIndexCached","navActiveClass","navStr","navStrCurrent","autoplayTimer","autoplayUserPaused","autoplayButtonHTML","autoplayHtmlStrings","translateInit","rafIndex","initPosition","lastPosition","panStart","getDist","b","resetVariblesWhenDisable","insertBefore","fragmentBefore","createDocumentFragment","fragmentAfter","num","cloneFirst","cloneNode","firstChild","cloneLast","initStructure","left","getComputedStyle","fontSize","slide","marginLeft","getSlideMarginLeft","getTransitionDurationStyle","getInnerWrapperStyles","getContainerWidth","getSlideWidthStyle","getSlideGutterStyle","getAnimationDurationStyle","cssText","width","opts","middleWrapperStr","innerWrapperStr","containerStr","slideStr","itemsBP","fixedWidthBP","speedBP","edgePaddingBP","autoHeightBP","gutterBP","initSheet","initSliderTransform","updateIndex","leftEdge","rightEdge","transformCore","resetDuration","doContainerTransform","getContainerTransformValue","updateContentWrapperHeight","eve","animateSlide","version","getInfo","info","play","startAutoplay","pause","updateSliderHeight","updateInnerWrapperHeight","refresh","destroy","ownerNode","onResize","toggleAutoplay","clearInterval","htmlList","prevEl","previousElementSibling","parentEl","nextElementSibling","firstElementChild","rebuild","condition","ind","getAbsIndex","absIndex","innerWidth","clientWidth","getInsertPosition","pos","gap","getClientWidth","rect","div","getBoundingClientRect","right","ww","edgePaddingTem","gutterTem","fixedWidthTem","speedTem","gutterTemUnit","itemsTem","dividend","getCSSPrefix","substring","toLowerCase","imgs","imgsLoadedCheck","getImageArray","initSliderTransformStyleCheck","doContainerTransformSilent","initTools","initEvents","stylesApplicationCheck","abs","initSliderTransformCore","setSlidePositions","updateSlideStatus","insertAdjacentHTML","getLiveRegionStr","txt","navHtml","hiddenStr","updateNavVisibility","isButton","updateControlsStatus","disableUI","on","resizeTasks","emit","doAutoHeight","doLazyLoad","disableSlider","freezeSlider","additionalUpdates","bpChanged","breakpointZoneTem","needContainerTransform","indChanged","itemsChanged","disableTem","freezeTem","arrowKeysTem","controlsTem","navTem","touchTem","mouseDragTem","autoplayTem","autoplayHoverPauseTem","autoplayResetOnVisibilityTem","indexTem","autoHeightTem","controlsTextTem","centerTem","autoplayTextTem","classN","enableUI","enableSlider","margin","unfreezeSlider","height","html","len","updateLiveRegion","updateGallerySlidePositions","vp","getVisibleSlideRange","start","end","rangestart","rangeend","point","cell","arg","stopPropagation","srcset","imgSelector","complete","navPrev","navCurrent","updateNavStatus","getMaxSlideHeight","slideStart","slideRange","heights","maxHeight","wp","attr2","base","range","getLowerCaseNodeName","isAriaDisabled","getAttribute","disEnableElement","prevDisabled","nextDisabled","disablePrev","disableNext","getCenterGap","denominator","classOut","classIn","isOut","render","sliderMoved","type","strTrans","event","propertyName","targetIndex","indexGap","factor","dir","passEventObject","targetIn","setInterval","updateAutoplayButton","action","focus","isTouchEvent","changedTouches","srcElement","preventDefaultBehavior","preventDefault","returnValue","getMoveDirectionExpected","$","clientX","clientY","panUpdate","err","dist","cancelable","preventClick","indexMoved","moved","rough","displayIndex","getAttr","isNodeList","supportsPassive","passiveOption","passive","caf","cancelAnimationFrame","mozCancelAnimationFrame","clearTimeout","extend","copy","Accordion","faqContainer","headingSelector","contentSelector","faqItemsSelector","contentWrapperSelector","heightContent","openFaqContent","parent","faqItems","_toConsumableArray","heading","implementation","hasParent","stopEl","matches","formatDate","unformattedDate","deliveredDate","today","setTime","getFullYear","getMonth","getDate","valueOf","date","year","month","day","join","dateToYMD","arrayFromNodeList","nl","isVisible","getEndProperty","propIn","propOut","endProp","util","assert","now","getTime","times","global","functions","log","label","time","duration","message","format","stack","inspect","expression","ok","tuple","g","getOwnPropertyDescriptors","descriptors","formatRegExp","isString","objects","args","stringify","_","isNull","isObject","deprecate","msg","process","noDeprecation","warned","throwDeprecation","traceDeprecation","trace","debugEnviron","debugs","ctx","seen","stylize","stylizeNoColor","depth","colors","isBoolean","showHidden","_extend","isUndefined","customInspect","stylizeWithColor","formatValue","styleType","styles","recurseTimes","isFunction","constructor","ret","primitive","simple","isNumber","formatPrimitive","visibleKeys","array","hash","idx","arrayToHash","getOwnPropertyNames","isError","formatError","isRegExp","isDate","output","braces","isArray","toUTCString","formatProperty","formatArray","map","pop","reduce","prev","cur","numLinesEst","reduceToSingleString","set","split","line","ar","re","objectToString","pad","debuglog","env","NODE_DEBUG","pid","isNullOrUndefined","isSymbol","isPrimitive","isBuffer","months","timestamp","getHours","getMinutes","getSeconds","inherits","origin","kCustomPromisifiedSymbol","callbackifyOnRejected","reason","newReason","promisify","original","writable","configurable","promiseResolve","promiseReject","promise","resolve","reject","setPrototypeOf","defineProperties","custom","callbackify","callbackified","maybeCb","self","nextTick","rej","toStr","isArgs","callee","getOwnPropertySymbols","sym","symObj","syms","propertyIsEnumerable","descriptor","$defineProperty","GetIntrinsic","hasPropertyDescriptors","hasArrayLengthDefineBug","getSlideId","tnsId","calc","vals","offsetWidth","percentageLayout","supported","wrapper","outer","count","mediaquerySupport","matchMedia","msMatchMedia","position","rule","styleSheet","createTextNode","currentStyle","createStyleSheet","media","removeCSSRule","deleteRule","removeRule","toDegree","atan2","PI","getTouchDirection","angle","direction","has3DTransforms","tf","has3d","cssTF","getPropertyValue","Events","topics","eventName","off","data","jsTransform","postfix","to","tick","unit","from","positionTick","moveElement","stickyHeaderInit","header","state","isOrderPage","mobileNavIsActive","scrollY","headerSticky","mobileNavigationInit","button","menuBlock","visibility","toggle","innerHeight","menuOnClickHandler","navDropdownInit","cachedSetTimeout","cachedClearTimeout","defaultSetTimout","defaultClearTimeout","runTimeout","fun","currentQueue","queue","draining","queueIndex","cleanUpNextTick","drainQueue","timeout","run","marker","runClearTimeout","Item","noop","title","browser","argv","versions","addListener","once","removeListener","removeAllListeners","prependListener","prependOnceListener","listeners","binding","cwd","chdir","umask","fill","readUInt8","ctor","superCtor","super_","TempCtor","objectAssign","compare","Buffer","_isBuffer","pSlice","functionsHaveNames","pToString","isView","arrbuf","buffer","regex","getName","func","truncate","something","rawname","fail","actual","expected","operator","stackStartFunction","AssertionError","_deepEqual","strict","memos","multiline","lastIndex","ignoreCase","actualIndex","actualVisitedObjects","aIsArgs","isArguments","bIsArgs","ka","objectKeys","kb","sort","objEquiv","expectedException","isPrototypeOf","_throws","shouldThrow","block","_tryBlock","userProvidedMessage","isUnexpectedException","generatedMessage","captureStackTrace","out","fn_name","next_line","equal","notEqual","deepEqual","deepStrictEqual","notDeepEqual","notDeepStrictEqual","strictEqual","notStrictEqual","throws","doesNotThrow","ifError","assign","letters","k","lacksProperEnumerationOrder","preventExtensions","thrower","1","assignHasPendingExceptions","callBound","toObject","$push","$propIsEnumerable","originalGetSymbols","source1","getSymbols","nextKey","propValue","origKeys","keysShim","originalKeys","shim","has","isEnumerable","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","excludedKeys","$applicationCache","$console","$external","$frame","$frameElement","$frames","$innerHeight","$innerWidth","$onmozfullscreenchange","$onmozfullscreenerror","$outerHeight","$outerWidth","$pageXOffset","$pageYOffset","$parent","$scrollLeft","$scrollTop","$scrollX","$scrollY","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","theKeys","skipProto","skipConstructor","equalsConstructorPrototypeIfNotBuggy","callBind","$indexOf","origSymbol","hasSymbolSham","foo","$Object","ERROR_MESSAGE","concatty","slicy","arrLike","offset","joiny","joiner","that","bound","binder","boundLength","boundArgs","Empty","$hasOwn","setFunctionLength","$apply","$call","$reflectApply","$max","originalFunction","applyBind","define","hasDescriptors","gOPD","$floor","loose","functionLengthIsConfigurable","functionLengthIsWritable","gopd","nonEnumerable","nonWritable","nonConfigurable","observeElement","bgImg","video","poster","videoSource","tagName","load","stages","activeStage","runAnimation","animateBlock","nextButtonCLickInit","tabButtons","progressBar","active","next","find","dataset","stage","btn","ev","_defineProperties","STATES","CREATED","MOUNTED","IDLE","MOVING","SCROLLING","DRAGGING","DESTROYED","empty","arrayLike","typeOf","subject","isHTMLElement","ownerDocument","defaultView","HTMLElement","toArray","values","iteratee","includes","toggleClass","elm","classes","append","before","nodes","ref","node","children2","filter","child","ownKeys","forOwn","reverse","merge","omit","elms","value2","tag","display2","parseHtml","DOMParser","parseFromString","prevent","stopImmediatePropagation","query","queryAll","timeOf","timeStamp","approximatelyEqual","epsilon","between","exclusive","minimum","maximum","clamp","sign","replacements","replacement","ids","uniqueId","EventBinder","forEachEvent","targets","events2","eventNS","fragment","namespace","isEventTarget","remover","unbind","listener","dispatch","detail","CustomEvent","bubbles","createEvent","initCustomEvent","dispatchEvent","EventInterface","Splide2","bus","RequestInterval","interval","onInterval","onUpdate","limit","startTime","rate","paused","update","cancel","resume","isPaused","ORIENTATION_MAP","X","Y","ArrowLeft","ARROW","ArrowRight","Direction","Components2","axisOnly","orient","ROLE","ALL_ATTRIBUTES","ARIA_PREFIX","CLASS_ROOT","CLASS_ACTIVE","STATUS_CLASS_PREFIX","STATUS_CLASSES","CLASSES","CLASS_PREFIX","clone","CLASS_SLIDE","arrows","arrow","CLASS_ARROW","pagination","page","CLASS_PAGINATION","spinner","POINTER_UP_EVENTS","LOOP","Slide$1","slideIndex","destroyed","Components","root","isNavigation","updateOnMove","i18n","slideFocus","isClone","initNavigation","splides","Slide2","splide","Slides","getAt","slideX","onMove","curr","isActive","visible","is","trackRect","Elements","track","slideRect","focusableNodes","updateVisibility","cloneStatus","mount","slideLabel","useContainer","isWithin","distance","diff","PATH","SCROLL_LISTENER_OPTIONS","capture","NORMALIZATION_MAP","Spacebar","Right","Left","Up","Down","normalizeKey","TRIGGER_KEYS","ComponentConstructors","Media","breakpoints","reducedMotion","queries","completely","register","options2","queryList","merged","merged2","entry","notify","setup","isMin","mediaQuery","enable","list","isUsingKey","_EventInterface","elements","slides","rootClasses","trackClasses","bar","CLASS_PROGRESS","role","init","getClasses","labelledby","closest","nodeType","parentElement","drag","POINTER_DOWN_EVENTS","_EventInterface2","_Components2$Elements","Slides2","forEach$1","Slide1","excludeClones","matcher","getIn","Controller","toIndex","hasFocus","perPage","images","getLength","isEnough","Layout","vertical","rootRect","_EventInterface3","_Components2$Elements2","styleSlides","cssPadding","resize","force","newRect","cssHeight","cssTrackHeight","cssSlideSize","fixedHeight","isOverflow","padding","heightRatio","listSize","slideSize","withoutGap","Slide","getGap","totalSize","sliderSize","getPadding","Clones","clones","remount","computeCloneCount","isHead","cloneDeep","generate","clones2","fixedSize","Move","Transition","_EventInterface4","_Components2$Layout","_Components2$Directio","_Components2$Elements3","reposition","isBusy","Scroll","jump","translate","toPosition","preventLoop","destination","exceededMax","getEnd","shift","backwards","excess","getLimit","size","getPosition","minDistance","Infinity","trimming","trimSpace","trim","move","dest","shifted","exceededLimit","exceededMin","endIndex","perMove","_EventInterface5","_Components2$Slides","omitEnd","isLoop","isSlide","getNext","getAdjacent","getPrev","currIndex","prevIndex","onResized","computeDestIndex","snapPage","computeMovableDestIndex","toPage","setIndex","waitForTransition","go","control","allowSameIndex","_ref","indicator","scroll","snap","getIndex","toDest","Arrows","created","wrapperClasses","placeholder","enabled","createArrow","CLASS_ARROWS","prev2","arrowPath","nextIndex","prevLabel","nextLabel","Autoplay","hovered","focused","_EventInterface6","_Components2$Elements4","stopped","resetProgress","stop","autoToggle","DATA_ATTRIBUTE","pauseOnHover","pauseOnFocus","listen","Cover","cover","cover2","_EventInterface8","friction","onScrolled","noConstrain","clear","noDistance","onEnd","easingFunc","pow","Drag","basePosition","baseEvent","prevBaseEvent","isFree","dragging","clickPrevented","_EventInterface9","_Components2$Directio2","exceeded","onPointerDown","isTouch","target2","noDrag","onPointerMove","onPointerUp","save","diffCoord","expired","diffTime","hasExceeded","isSliderDirection","thresholds","dragMinThreshold","isObj","mouse","shouldStart","velocity","computeVelocity","flickPower","flickMaxPages","computeDestination","rewindByDrag","onClick","orthogonal","coordOf","getBaseEvent","TouchEvent","isDragging","Keyboard","_EventInterface10","keyboard","onKeydown","_disabled","LazyLoad","_EventInterface11","isSequential","lazyLoad","entries","SRC_DATA_ATTRIBUTE","loadNext","check","preloadPages","onLoad","Pagination","paginationClasses","getDirection","nextPage","paginationDirection","_button","select","li","class","text","pageX","paginationKeyboard","createPagination","Sync","isParent","sync","Wheel","lastTime","onWheel","deltaY","_min","wheelMinThreshold","sleep","wheelSleep","releaseWheel","shouldPrevent","wheel","Live","live","sr","textContent","DEFAULTS","easing","rewindSpeed","Fade","done","endCallback","transition","getSpeed","useScroll","Splide","_Splide","states","_o","_E","defaults","Constructor","protoProps","staticProps","_proto","Extensions","_this","_C","_T","Component","component","_this$event","SliderSplide","sliderName","0","1000","1170","1024","768","640","isMobile"],"mappings":"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","file":"js/cheap-dissertations.min.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 80);\n","import { passiveOption } from './passiveOption.js';\n\nexport function addEvents(el, obj, preventScrolling) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 && !preventScrolling ? passiveOption : false;\n el.addEventListener(prop, obj[prop], option);\n }\n}","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.utils=t():e.utils=t()}(window,(function(){return function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}return n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,\"a\",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p=\"\",n(n.s=0)}([function(e,t,n){e.exports=n(2)},function(e,t,n){},function(e,t,n){\"use strict\";n.r(t);var o=window.deployHash&&\"string\"==typeof window.deployHash&&\"\"!==window.deployHash?window.deployHash:\"\",r=function(e){var t=e.source,n=e.withDeployHash,r=void 0===n||n,i=e.appendTo,c=void 0===i?document.getElementsByTagName(\"head\")[0]:i,d=e.async,a=void 0===d||d,u=e.defer,f=void 0===u||u;return new Promise((function(e,n){if(t&&\"string\"==typeof t){var i=r&&o?\"?v=\".concat(o):\"\",d=t+i;if(document.querySelector('script[src=\"'.concat(d,'\"]')))e();else{var u=document.createElement(\"script\");u.async=a,u.defer=f;var l=function(t,o){(o||!u.readyState||/loaded|complete/.test(u.readyState))&&(u.onload=null,u.onreadystatechange=null,u=void 0,o?n():e())};u.onload=l,u.onreadystatechange=l,u.src=d,c.appendChild(u)}}}))},i=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:\"center\";e&&\"string\"==typeof e&&(document.querySelector(\"\".concat(e)).innerHTML='\\n
\\n
\\n
\\n '))},c=(n(1),i),d=function(e){var t=e.element,n=e.marginValue,o=void 0===n?400:n,r=e.thresholdValue,i=void 0===r?0:r,c=e.callback,d=void 0===c?function(){}:c;if(t&&\"string\"==typeof t){var a=document.querySelectorAll(t),u={rootMargin:\"\".concat(o,\"px 0px \").concat(o,\"px 0px\"),threshold:i},f=new IntersectionObserver((function(e,t){e.forEach((function(e){e.isIntersecting&&(t.unobserve(e.target),d(e.target))}))}),u);a&&[].slice.call(a).forEach((function(e){f.observe(e)}))}},a=function(e){var t=e.widgetLink,n=e.isWidgetLinkHashNeeded,o=void 0===n||n,i=e.loader,d=void 0===i||i,a=e.customLoader,u=void 0===a?void 0:a,f=e.insertLoaderTo,l=void 0===f?void 0:f,s=e.loaderPosition,p=void 0===s?\"center\":s,v=e.fn,y=void 0===v?function(){}:v;t&&\"string\"==typeof t&&r({source:t,withDeployHash:o}).then((function(){d&&u&&\"function\"==typeof u?u(l,p):d&&c(l,p),y()})).catch((function(e){throw new Error(e)}))};n.d(t,\"loadScripts\",(function(){return r})),n.d(t,\"addLoader\",(function(){return c})),n.d(t,\"observeElement\",(function(){return d})),n.d(t,\"getWidget\",(function(){return a}))}])}));\n//# sourceMappingURL=index.js.map","import { classListSupport, hasClass } from './hasClass.js';\nvar addClass = classListSupport ?\n function (el, str) {\n if (!hasClass(el, str)) { el.classList.add(str); }\n } :\n function (el, str) {\n if (!hasClass(el, str)) { el.className += ' ' + str; }\n };\n\nexport { addClass };","import { passiveOption } from './passiveOption.js';\n\nexport function removeEvents(el, obj) {\n for (var prop in obj) {\n var option = ['touchstart', 'touchmove'].indexOf(prop) >= 0 ? passiveOption : false;\n el.removeEventListener(prop, obj[prop], option);\n }\n}","import { classListSupport, hasClass } from './hasClass.js';\nvar removeClass = classListSupport ?\n function (el, str) {\n if (hasClass(el, str)) { el.classList.remove(str); }\n } :\n function (el, str) {\n if (hasClass(el, str)) { el.className = el.className.replace(str, ''); }\n };\n\nexport { removeClass };","import { isNodeList } from \"./isNodeList.js\";\n\nexport function setAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n if (Object.prototype.toString.call(attrs) !== '[object Object]') { return; }\n\n for (var i = els.length; i--;) {\n for(var key in attrs) {\n els[i].setAttribute(key, attrs[key]);\n }\n }\n}","export function hideElement(el, forceHide) {\n if (el.style.display !== 'none') { el.style.display = 'none'; }\n}","export function showElement(el, forceHide) {\n if (el.style.display === 'none') { el.style.display = ''; }\n}","export function checkStorageValue (value) {\n return ['true', 'false'].indexOf(value) >= 0 ? JSON.parse(value) : value;\n}","export function setLocalStorage(storage, key, value, access) {\n if (access) {\n try { storage.setItem(key, value); } catch (e) {}\n }\n return value;\n}","var win = window;\n\nexport var raf = win.requestAnimationFrame\n || win.webkitRequestAnimationFrame\n || win.mozRequestAnimationFrame\n || win.msRequestAnimationFrame\n || function(cb) { return setTimeout(cb, 16); };\n","export var classListSupport = 'classList' in document.createElement('_');","import { classListSupport } from './classListSupport.js';\n\nvar hasClass = classListSupport ?\n function (el, str) { return el.classList.contains(str); } :\n function (el, str) { return el.className.indexOf(str) >= 0; };\n\nexport { classListSupport, hasClass };","export function getCssRulesLength(sheet) {\n var rule = ('insertRule' in sheet) ? sheet.cssRules : sheet.rules;\n return rule.length;\n}","// cross browsers addRule method\nimport { raf } from './raf.js';\nexport function addCSSRule(sheet, selector, rules, index) {\n // return raf(function() {\n 'insertRule' in sheet ?\n sheet.insertRule(selector + '{' + rules + '}', index) :\n sheet.addRule(selector, rules, index);\n // });\n}","// https://toddmotto.com/ditch-the-array-foreach-call-nodelist-hack/\nexport function forEach (arr, callback, scope) {\n for (var i = 0, l = arr.length; i < l; i++) {\n callback.call(scope, arr[i], i);\n }\n}","import { isNodeList } from \"./isNodeList.js\";\n\nexport function removeAttrs(els, attrs) {\n els = (isNodeList(els) || els instanceof Array) ? els : [els];\n attrs = (attrs instanceof Array) ? attrs : [attrs];\n\n var attrLength = attrs.length;\n for (var i = els.length; i--;) {\n for (var j = attrLength; j--;) {\n els[i].removeAttribute(attrs[j]);\n }\n }\n}","export function getBody () {\n var doc = document,\n body = doc.body;\n\n if (!body) {\n body = doc.createElement('body');\n body.fake = true;\n }\n\n return body;\n}","import { docElement } from './docElement.js';\n\nexport function setFakeBody (body) {\n var docOverflow = '';\n if (body.fake) {\n docOverflow = docElement.style.overflow;\n //avoid crashing IE8, if background image is used\n body.style.background = '';\n //Safari 5.13/5.1.4 OSX stops loading if ::-webkit-scrollbar is used and scrollbars are visible\n body.style.overflow = docElement.style.overflow = 'hidden';\n docElement.appendChild(body);\n }\n\n return docOverflow;\n}","import { docElement } from './docElement.js';\n\nexport function resetFakeBody (body, docOverflow) {\n if (body.fake) {\n body.remove();\n docElement.style.overflow = docOverflow;\n // Trigger layout so kinetic scrolling isn't disabled in iOS6+\n // eslint-disable-next-line\n docElement.offsetHeight;\n }\n}","export var docElement = document.documentElement;","'use strict';\n\nvar undefined;\n\nvar $SyntaxError = SyntaxError;\nvar $Function = Function;\nvar $TypeError = TypeError;\n\n// eslint-disable-next-line consistent-return\nvar getEvalledConstructor = function (expressionSyntax) {\n\ttry {\n\t\treturn $Function('\"use strict\"; return (' + expressionSyntax + ').constructor;')();\n\t} catch (e) {}\n};\n\nvar $gOPD = Object.getOwnPropertyDescriptor;\nif ($gOPD) {\n\ttry {\n\t\t$gOPD({}, '');\n\t} catch (e) {\n\t\t$gOPD = null; // this is IE 8, which has a broken gOPD\n\t}\n}\n\nvar throwTypeError = function () {\n\tthrow new $TypeError();\n};\nvar ThrowTypeError = $gOPD\n\t? (function () {\n\t\ttry {\n\t\t\t// eslint-disable-next-line no-unused-expressions, no-caller, no-restricted-properties\n\t\t\targuments.callee; // IE 8 does not throw here\n\t\t\treturn throwTypeError;\n\t\t} catch (calleeThrows) {\n\t\t\ttry {\n\t\t\t\t// IE 8 throws on Object.getOwnPropertyDescriptor(arguments, '')\n\t\t\t\treturn $gOPD(arguments, 'callee').get;\n\t\t\t} catch (gOPDthrows) {\n\t\t\t\treturn throwTypeError;\n\t\t\t}\n\t\t}\n\t}())\n\t: throwTypeError;\n\nvar hasSymbols = require('has-symbols')();\nvar hasProto = require('has-proto')();\n\nvar getProto = Object.getPrototypeOf || (\n\thasProto\n\t\t? function (x) { return x.__proto__; } // eslint-disable-line no-proto\n\t\t: null\n);\n\nvar needsEval = {};\n\nvar TypedArray = typeof Uint8Array === 'undefined' || !getProto ? undefined : getProto(Uint8Array);\n\nvar INTRINSICS = {\n\t'%AggregateError%': typeof AggregateError === 'undefined' ? undefined : AggregateError,\n\t'%Array%': Array,\n\t'%ArrayBuffer%': typeof ArrayBuffer === 'undefined' ? undefined : ArrayBuffer,\n\t'%ArrayIteratorPrototype%': hasSymbols && getProto ? getProto([][Symbol.iterator]()) : undefined,\n\t'%AsyncFromSyncIteratorPrototype%': undefined,\n\t'%AsyncFunction%': needsEval,\n\t'%AsyncGenerator%': needsEval,\n\t'%AsyncGeneratorFunction%': needsEval,\n\t'%AsyncIteratorPrototype%': needsEval,\n\t'%Atomics%': typeof Atomics === 'undefined' ? undefined : Atomics,\n\t'%BigInt%': typeof BigInt === 'undefined' ? undefined : BigInt,\n\t'%BigInt64Array%': typeof BigInt64Array === 'undefined' ? undefined : BigInt64Array,\n\t'%BigUint64Array%': typeof BigUint64Array === 'undefined' ? undefined : BigUint64Array,\n\t'%Boolean%': Boolean,\n\t'%DataView%': typeof DataView === 'undefined' ? undefined : DataView,\n\t'%Date%': Date,\n\t'%decodeURI%': decodeURI,\n\t'%decodeURIComponent%': decodeURIComponent,\n\t'%encodeURI%': encodeURI,\n\t'%encodeURIComponent%': encodeURIComponent,\n\t'%Error%': Error,\n\t'%eval%': eval, // eslint-disable-line no-eval\n\t'%EvalError%': EvalError,\n\t'%Float32Array%': typeof Float32Array === 'undefined' ? undefined : Float32Array,\n\t'%Float64Array%': typeof Float64Array === 'undefined' ? undefined : Float64Array,\n\t'%FinalizationRegistry%': typeof FinalizationRegistry === 'undefined' ? undefined : FinalizationRegistry,\n\t'%Function%': $Function,\n\t'%GeneratorFunction%': needsEval,\n\t'%Int8Array%': typeof Int8Array === 'undefined' ? undefined : Int8Array,\n\t'%Int16Array%': typeof Int16Array === 'undefined' ? undefined : Int16Array,\n\t'%Int32Array%': typeof Int32Array === 'undefined' ? undefined : Int32Array,\n\t'%isFinite%': isFinite,\n\t'%isNaN%': isNaN,\n\t'%IteratorPrototype%': hasSymbols && getProto ? getProto(getProto([][Symbol.iterator]())) : undefined,\n\t'%JSON%': typeof JSON === 'object' ? JSON : undefined,\n\t'%Map%': typeof Map === 'undefined' ? undefined : Map,\n\t'%MapIteratorPrototype%': typeof Map === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Map()[Symbol.iterator]()),\n\t'%Math%': Math,\n\t'%Number%': Number,\n\t'%Object%': Object,\n\t'%parseFloat%': parseFloat,\n\t'%parseInt%': parseInt,\n\t'%Promise%': typeof Promise === 'undefined' ? undefined : Promise,\n\t'%Proxy%': typeof Proxy === 'undefined' ? undefined : Proxy,\n\t'%RangeError%': RangeError,\n\t'%ReferenceError%': ReferenceError,\n\t'%Reflect%': typeof Reflect === 'undefined' ? undefined : Reflect,\n\t'%RegExp%': RegExp,\n\t'%Set%': typeof Set === 'undefined' ? undefined : Set,\n\t'%SetIteratorPrototype%': typeof Set === 'undefined' || !hasSymbols || !getProto ? undefined : getProto(new Set()[Symbol.iterator]()),\n\t'%SharedArrayBuffer%': typeof SharedArrayBuffer === 'undefined' ? undefined : SharedArrayBuffer,\n\t'%String%': String,\n\t'%StringIteratorPrototype%': hasSymbols && getProto ? getProto(''[Symbol.iterator]()) : undefined,\n\t'%Symbol%': hasSymbols ? Symbol : undefined,\n\t'%SyntaxError%': $SyntaxError,\n\t'%ThrowTypeError%': ThrowTypeError,\n\t'%TypedArray%': TypedArray,\n\t'%TypeError%': $TypeError,\n\t'%Uint8Array%': typeof Uint8Array === 'undefined' ? undefined : Uint8Array,\n\t'%Uint8ClampedArray%': typeof Uint8ClampedArray === 'undefined' ? undefined : Uint8ClampedArray,\n\t'%Uint16Array%': typeof Uint16Array === 'undefined' ? undefined : Uint16Array,\n\t'%Uint32Array%': typeof Uint32Array === 'undefined' ? undefined : Uint32Array,\n\t'%URIError%': URIError,\n\t'%WeakMap%': typeof WeakMap === 'undefined' ? undefined : WeakMap,\n\t'%WeakRef%': typeof WeakRef === 'undefined' ? undefined : WeakRef,\n\t'%WeakSet%': typeof WeakSet === 'undefined' ? undefined : WeakSet\n};\n\nif (getProto) {\n\ttry {\n\t\tnull.error; // eslint-disable-line no-unused-expressions\n\t} catch (e) {\n\t\t// https://github.com/tc39/proposal-shadowrealm/pull/384#issuecomment-1364264229\n\t\tvar errorProto = getProto(getProto(e));\n\t\tINTRINSICS['%Error.prototype%'] = errorProto;\n\t}\n}\n\nvar doEval = function doEval(name) {\n\tvar value;\n\tif (name === '%AsyncFunction%') {\n\t\tvalue = getEvalledConstructor('async function () {}');\n\t} else if (name === '%GeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('function* () {}');\n\t} else if (name === '%AsyncGeneratorFunction%') {\n\t\tvalue = getEvalledConstructor('async function* () {}');\n\t} else if (name === '%AsyncGenerator%') {\n\t\tvar fn = doEval('%AsyncGeneratorFunction%');\n\t\tif (fn) {\n\t\t\tvalue = fn.prototype;\n\t\t}\n\t} else if (name === '%AsyncIteratorPrototype%') {\n\t\tvar gen = doEval('%AsyncGenerator%');\n\t\tif (gen && getProto) {\n\t\t\tvalue = getProto(gen.prototype);\n\t\t}\n\t}\n\n\tINTRINSICS[name] = value;\n\n\treturn value;\n};\n\nvar LEGACY_ALIASES = {\n\t'%ArrayBufferPrototype%': ['ArrayBuffer', 'prototype'],\n\t'%ArrayPrototype%': ['Array', 'prototype'],\n\t'%ArrayProto_entries%': ['Array', 'prototype', 'entries'],\n\t'%ArrayProto_forEach%': ['Array', 'prototype', 'forEach'],\n\t'%ArrayProto_keys%': ['Array', 'prototype', 'keys'],\n\t'%ArrayProto_values%': ['Array', 'prototype', 'values'],\n\t'%AsyncFunctionPrototype%': ['AsyncFunction', 'prototype'],\n\t'%AsyncGenerator%': ['AsyncGeneratorFunction', 'prototype'],\n\t'%AsyncGeneratorPrototype%': ['AsyncGeneratorFunction', 'prototype', 'prototype'],\n\t'%BooleanPrototype%': ['Boolean', 'prototype'],\n\t'%DataViewPrototype%': ['DataView', 'prototype'],\n\t'%DatePrototype%': ['Date', 'prototype'],\n\t'%ErrorPrototype%': ['Error', 'prototype'],\n\t'%EvalErrorPrototype%': ['EvalError', 'prototype'],\n\t'%Float32ArrayPrototype%': ['Float32Array', 'prototype'],\n\t'%Float64ArrayPrototype%': ['Float64Array', 'prototype'],\n\t'%FunctionPrototype%': ['Function', 'prototype'],\n\t'%Generator%': ['GeneratorFunction', 'prototype'],\n\t'%GeneratorPrototype%': ['GeneratorFunction', 'prototype', 'prototype'],\n\t'%Int8ArrayPrototype%': ['Int8Array', 'prototype'],\n\t'%Int16ArrayPrototype%': ['Int16Array', 'prototype'],\n\t'%Int32ArrayPrototype%': ['Int32Array', 'prototype'],\n\t'%JSONParse%': ['JSON', 'parse'],\n\t'%JSONStringify%': ['JSON', 'stringify'],\n\t'%MapPrototype%': ['Map', 'prototype'],\n\t'%NumberPrototype%': ['Number', 'prototype'],\n\t'%ObjectPrototype%': ['Object', 'prototype'],\n\t'%ObjProto_toString%': ['Object', 'prototype', 'toString'],\n\t'%ObjProto_valueOf%': ['Object', 'prototype', 'valueOf'],\n\t'%PromisePrototype%': ['Promise', 'prototype'],\n\t'%PromiseProto_then%': ['Promise', 'prototype', 'then'],\n\t'%Promise_all%': ['Promise', 'all'],\n\t'%Promise_reject%': ['Promise', 'reject'],\n\t'%Promise_resolve%': ['Promise', 'resolve'],\n\t'%RangeErrorPrototype%': ['RangeError', 'prototype'],\n\t'%ReferenceErrorPrototype%': ['ReferenceError', 'prototype'],\n\t'%RegExpPrototype%': ['RegExp', 'prototype'],\n\t'%SetPrototype%': ['Set', 'prototype'],\n\t'%SharedArrayBufferPrototype%': ['SharedArrayBuffer', 'prototype'],\n\t'%StringPrototype%': ['String', 'prototype'],\n\t'%SymbolPrototype%': ['Symbol', 'prototype'],\n\t'%SyntaxErrorPrototype%': ['SyntaxError', 'prototype'],\n\t'%TypedArrayPrototype%': ['TypedArray', 'prototype'],\n\t'%TypeErrorPrototype%': ['TypeError', 'prototype'],\n\t'%Uint8ArrayPrototype%': ['Uint8Array', 'prototype'],\n\t'%Uint8ClampedArrayPrototype%': ['Uint8ClampedArray', 'prototype'],\n\t'%Uint16ArrayPrototype%': ['Uint16Array', 'prototype'],\n\t'%Uint32ArrayPrototype%': ['Uint32Array', 'prototype'],\n\t'%URIErrorPrototype%': ['URIError', 'prototype'],\n\t'%WeakMapPrototype%': ['WeakMap', 'prototype'],\n\t'%WeakSetPrototype%': ['WeakSet', 'prototype']\n};\n\nvar bind = require('function-bind');\nvar hasOwn = require('hasown');\nvar $concat = bind.call(Function.call, Array.prototype.concat);\nvar $spliceApply = bind.call(Function.apply, Array.prototype.splice);\nvar $replace = bind.call(Function.call, String.prototype.replace);\nvar $strSlice = bind.call(Function.call, String.prototype.slice);\nvar $exec = bind.call(Function.call, RegExp.prototype.exec);\n\n/* adapted from https://github.com/lodash/lodash/blob/4.17.15/dist/lodash.js#L6735-L6744 */\nvar rePropName = /[^%.[\\]]+|\\[(?:(-?\\d+(?:\\.\\d+)?)|([\"'])((?:(?!\\2)[^\\\\]|\\\\.)*?)\\2)\\]|(?=(?:\\.|\\[\\])(?:\\.|\\[\\]|%$))/g;\nvar reEscapeChar = /\\\\(\\\\)?/g; /** Used to match backslashes in property paths. */\nvar stringToPath = function stringToPath(string) {\n\tvar first = $strSlice(string, 0, 1);\n\tvar last = $strSlice(string, -1);\n\tif (first === '%' && last !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected closing `%`');\n\t} else if (last === '%' && first !== '%') {\n\t\tthrow new $SyntaxError('invalid intrinsic syntax, expected opening `%`');\n\t}\n\tvar result = [];\n\t$replace(string, rePropName, function (match, number, quote, subString) {\n\t\tresult[result.length] = quote ? $replace(subString, reEscapeChar, '$1') : number || match;\n\t});\n\treturn result;\n};\n/* end adaptation */\n\nvar getBaseIntrinsic = function getBaseIntrinsic(name, allowMissing) {\n\tvar intrinsicName = name;\n\tvar alias;\n\tif (hasOwn(LEGACY_ALIASES, intrinsicName)) {\n\t\talias = LEGACY_ALIASES[intrinsicName];\n\t\tintrinsicName = '%' + alias[0] + '%';\n\t}\n\n\tif (hasOwn(INTRINSICS, intrinsicName)) {\n\t\tvar value = INTRINSICS[intrinsicName];\n\t\tif (value === needsEval) {\n\t\t\tvalue = doEval(intrinsicName);\n\t\t}\n\t\tif (typeof value === 'undefined' && !allowMissing) {\n\t\t\tthrow new $TypeError('intrinsic ' + name + ' exists, but is not available. Please file an issue!');\n\t\t}\n\n\t\treturn {\n\t\t\talias: alias,\n\t\t\tname: intrinsicName,\n\t\t\tvalue: value\n\t\t};\n\t}\n\n\tthrow new $SyntaxError('intrinsic ' + name + ' does not exist!');\n};\n\nmodule.exports = function GetIntrinsic(name, allowMissing) {\n\tif (typeof name !== 'string' || name.length === 0) {\n\t\tthrow new $TypeError('intrinsic name must be a non-empty string');\n\t}\n\tif (arguments.length > 1 && typeof allowMissing !== 'boolean') {\n\t\tthrow new $TypeError('\"allowMissing\" argument must be a boolean');\n\t}\n\n\tif ($exec(/^%?[^%]*%?$/, name) === null) {\n\t\tthrow new $SyntaxError('`%` may not be present anywhere but at the beginning and end of the intrinsic name');\n\t}\n\tvar parts = stringToPath(name);\n\tvar intrinsicBaseName = parts.length > 0 ? parts[0] : '';\n\n\tvar intrinsic = getBaseIntrinsic('%' + intrinsicBaseName + '%', allowMissing);\n\tvar intrinsicRealName = intrinsic.name;\n\tvar value = intrinsic.value;\n\tvar skipFurtherCaching = false;\n\n\tvar alias = intrinsic.alias;\n\tif (alias) {\n\t\tintrinsicBaseName = alias[0];\n\t\t$spliceApply(parts, $concat([0, 1], alias));\n\t}\n\n\tfor (var i = 1, isOwn = true; i < parts.length; i += 1) {\n\t\tvar part = parts[i];\n\t\tvar first = $strSlice(part, 0, 1);\n\t\tvar last = $strSlice(part, -1);\n\t\tif (\n\t\t\t(\n\t\t\t\t(first === '\"' || first === \"'\" || first === '`')\n\t\t\t\t|| (last === '\"' || last === \"'\" || last === '`')\n\t\t\t)\n\t\t\t&& first !== last\n\t\t) {\n\t\t\tthrow new $SyntaxError('property names with quotes must have matching quotes');\n\t\t}\n\t\tif (part === 'constructor' || !isOwn) {\n\t\t\tskipFurtherCaching = true;\n\t\t}\n\n\t\tintrinsicBaseName += '.' + part;\n\t\tintrinsicRealName = '%' + intrinsicBaseName + '%';\n\n\t\tif (hasOwn(INTRINSICS, intrinsicRealName)) {\n\t\t\tvalue = INTRINSICS[intrinsicRealName];\n\t\t} else if (value != null) {\n\t\t\tif (!(part in value)) {\n\t\t\t\tif (!allowMissing) {\n\t\t\t\t\tthrow new $TypeError('base intrinsic for ' + name + ' exists, but the property is not available.');\n\t\t\t\t}\n\t\t\t\treturn void undefined;\n\t\t\t}\n\t\t\tif ($gOPD && (i + 1) >= parts.length) {\n\t\t\t\tvar desc = $gOPD(value, part);\n\t\t\t\tisOwn = !!desc;\n\n\t\t\t\t// By convention, when a data property is converted to an accessor\n\t\t\t\t// property to emulate a data property that does not suffer from\n\t\t\t\t// the override mistake, that accessor's getter is marked with\n\t\t\t\t// an `originalValue` property. Here, when we detect this, we\n\t\t\t\t// uphold the illusion by pretending to see that original data\n\t\t\t\t// property, i.e., returning the value rather than the getter\n\t\t\t\t// itself.\n\t\t\t\tif (isOwn && 'get' in desc && !('originalValue' in desc.get)) {\n\t\t\t\t\tvalue = desc.get;\n\t\t\t\t} else {\n\t\t\t\t\tvalue = value[part];\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tisOwn = hasOwn(value, part);\n\t\t\t\tvalue = value[part];\n\t\t\t}\n\n\t\t\tif (isOwn && !skipFurtherCaching) {\n\t\t\t\tINTRINSICS[intrinsicRealName] = value;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n","export function hasAttr(el, attr) {\n return el.hasAttribute(attr);\n}","export function whichProperty(props){\n if (typeof props === 'string') {\n var arr = [props],\n Props = props.charAt(0).toUpperCase() + props.substr(1),\n prefixes = ['Webkit', 'Moz', 'ms', 'O'];\n \n prefixes.forEach(function(prefix) {\n if (prefix !== 'ms' || props === 'transform') {\n arr.push(prefix + Props);\n }\n });\n\n props = arr;\n }\n\n var el = document.createElement('fakeelement'),\n len = props.length;\n for(var i = 0; i < props.length; i++){\n var prop = props[i];\n if( el.style[prop] !== undefined ){ return prop; }\n }\n\n return false; // explicit for ie9-\n}\n","// Object.keys\nif (!Object.keys) {\n Object.keys = function(object) {\n var keys = [];\n for (var name in object) {\n if (Object.prototype.hasOwnProperty.call(object, name)) {\n keys.push(name);\n }\n }\n return keys;\n };\n}\n\n// ChildNode.remove\nif(!(\"remove\" in Element.prototype)){\n Element.prototype.remove = function(){\n if(this.parentNode) {\n this.parentNode.removeChild(this);\n }\n };\n}\n\nimport { raf } from './helpers/raf.js';\nimport { caf } from './helpers/caf.js';\nimport { extend } from './helpers/extend.js';\nimport { checkStorageValue } from './helpers/checkStorageValue.js';\nimport { setLocalStorage } from './helpers/setLocalStorage.js';\nimport { getSlideId } from './helpers/getSlideId.js';\nimport { calc } from './helpers/calc.js';\nimport { percentageLayout } from './helpers/percentageLayout.js';\nimport { mediaquerySupport } from './helpers/mediaquerySupport.js';\nimport { createStyleSheet } from './helpers/createStyleSheet.js';\nimport { addCSSRule } from './helpers/addCSSRule.js';\nimport { removeCSSRule } from './helpers/removeCSSRule.js';\nimport { getCssRulesLength } from './helpers/getCssRulesLength.js';\nimport { toDegree } from './helpers/toDegree.js';\nimport { getTouchDirection } from './helpers/getTouchDirection.js';\nimport { forEach } from './helpers/forEach.js';\nimport { hasClass } from './helpers/hasClass.js';\nimport { addClass } from './helpers/addClass.js';\nimport { removeClass } from './helpers/removeClass.js';\nimport { hasAttr } from './helpers/hasAttr.js';\nimport { getAttr } from './helpers/getAttr.js';\nimport { setAttrs } from './helpers/setAttrs.js';\nimport { removeAttrs } from './helpers/removeAttrs.js';\nimport { arrayFromNodeList } from './helpers/arrayFromNodeList.js';\nimport { hideElement } from './helpers/hideElement.js';\nimport { showElement } from './helpers/showElement.js';\nimport { isVisible } from './helpers/isVisible.js';\nimport { whichProperty } from './helpers/whichProperty.js';\nimport { has3DTransforms } from './helpers/has3DTransforms.js';\nimport { getEndProperty } from './helpers/getEndProperty.js';\nimport { addEvents } from './helpers/addEvents.js';\nimport { removeEvents } from './helpers/removeEvents.js';\nimport { Events } from './helpers/events.js';\nimport { jsTransform } from './helpers/jsTransform.js';\n\nexport var tns = function(options) {\n options = extend({\n container: '.slider',\n mode: 'carousel',\n axis: 'horizontal',\n items: 1,\n gutter: 0,\n edgePadding: 0,\n fixedWidth: false,\n autoWidth: false,\n viewportMax: false,\n slideBy: 1,\n center: false,\n controls: true,\n controlsPosition: 'top',\n controlsText: ['prev', 'next'],\n controlsContainer: false,\n prevButton: false,\n nextButton: false,\n nav: true,\n navPosition: 'top',\n navContainer: false,\n navAsThumbnails: false,\n arrowKeys: false,\n speed: 300,\n autoplay: false,\n autoplayPosition: 'top',\n autoplayTimeout: 5000,\n autoplayDirection: 'forward',\n autoplayText: ['start', 'stop'],\n autoplayHoverPause: false,\n autoplayButton: false,\n autoplayButtonOutput: true,\n autoplayResetOnVisibility: true,\n animateIn: 'tns-fadeIn',\n animateOut: 'tns-fadeOut',\n animateNormal: 'tns-normal',\n animateDelay: false,\n loop: true,\n rewind: false,\n autoHeight: false,\n responsive: false,\n lazyload: false,\n lazyloadSelector: '.tns-lazy-img',\n touch: true,\n mouseDrag: false,\n swipeAngle: 15,\n nested: false,\n preventActionWhenRunning: false,\n preventScrollOnTouch: false,\n freezable: true,\n onInit: false,\n useLocalStorage: true,\n nonce: false\n }, options || {});\n\n var doc = document,\n win = window,\n KEYS = {\n ENTER: 13,\n SPACE: 32,\n LEFT: 37,\n RIGHT: 39\n },\n tnsStorage = {},\n localStorageAccess = options.useLocalStorage;\n\n if (localStorageAccess) {\n // check browser version and local storage access\n var browserInfo = navigator.userAgent;\n var uid = new Date;\n\n try {\n tnsStorage = win.localStorage;\n if (tnsStorage) {\n tnsStorage.setItem(uid, uid);\n localStorageAccess = tnsStorage.getItem(uid) == uid;\n tnsStorage.removeItem(uid);\n } else {\n localStorageAccess = false;\n }\n if (!localStorageAccess) { tnsStorage = {}; }\n } catch(e) {\n localStorageAccess = false;\n }\n\n if (localStorageAccess) {\n // remove storage when browser version changes\n if (tnsStorage['tnsApp'] && tnsStorage['tnsApp'] !== browserInfo) {\n ['tC', 'tPL', 'tMQ', 'tTf', 't3D', 'tTDu', 'tTDe', 'tADu', 'tADe', 'tTE', 'tAE'].forEach(function(item) { tnsStorage.removeItem(item); });\n }\n // update browserInfo\n localStorage['tnsApp'] = browserInfo;\n }\n }\n\n var CALC = tnsStorage['tC'] ? checkStorageValue(tnsStorage['tC']) : setLocalStorage(tnsStorage, 'tC', calc(), localStorageAccess),\n PERCENTAGELAYOUT = tnsStorage['tPL'] ? checkStorageValue(tnsStorage['tPL']) : setLocalStorage(tnsStorage, 'tPL', percentageLayout(), localStorageAccess),\n CSSMQ = tnsStorage['tMQ'] ? checkStorageValue(tnsStorage['tMQ']) : setLocalStorage(tnsStorage, 'tMQ', mediaquerySupport(), localStorageAccess),\n TRANSFORM = tnsStorage['tTf'] ? checkStorageValue(tnsStorage['tTf']) : setLocalStorage(tnsStorage, 'tTf', whichProperty('transform'), localStorageAccess),\n HAS3DTRANSFORMS = tnsStorage['t3D'] ? checkStorageValue(tnsStorage['t3D']) : setLocalStorage(tnsStorage, 't3D', has3DTransforms(TRANSFORM), localStorageAccess),\n TRANSITIONDURATION = tnsStorage['tTDu'] ? checkStorageValue(tnsStorage['tTDu']) : setLocalStorage(tnsStorage, 'tTDu', whichProperty('transitionDuration'), localStorageAccess),\n TRANSITIONDELAY = tnsStorage['tTDe'] ? checkStorageValue(tnsStorage['tTDe']) : setLocalStorage(tnsStorage, 'tTDe', whichProperty('transitionDelay'), localStorageAccess),\n ANIMATIONDURATION = tnsStorage['tADu'] ? checkStorageValue(tnsStorage['tADu']) : setLocalStorage(tnsStorage, 'tADu', whichProperty('animationDuration'), localStorageAccess),\n ANIMATIONDELAY = tnsStorage['tADe'] ? checkStorageValue(tnsStorage['tADe']) : setLocalStorage(tnsStorage, 'tADe', whichProperty('animationDelay'), localStorageAccess),\n TRANSITIONEND = tnsStorage['tTE'] ? checkStorageValue(tnsStorage['tTE']) : setLocalStorage(tnsStorage, 'tTE', getEndProperty(TRANSITIONDURATION, 'Transition'), localStorageAccess),\n ANIMATIONEND = tnsStorage['tAE'] ? checkStorageValue(tnsStorage['tAE']) : setLocalStorage(tnsStorage, 'tAE', getEndProperty(ANIMATIONDURATION, 'Animation'), localStorageAccess);\n\n // get element nodes from selectors\n var supportConsoleWarn = win.console && typeof win.console.warn === \"function\",\n tnsList = ['container', 'controlsContainer', 'prevButton', 'nextButton', 'navContainer', 'autoplayButton'],\n optionsElements = {};\n\n tnsList.forEach(function(item) {\n if (typeof options[item] === 'string') {\n var str = options[item],\n el = doc.querySelector(str);\n optionsElements[item] = str;\n\n if (el && el.nodeName) {\n options[item] = el;\n } else {\n if (supportConsoleWarn) { console.warn('Can\\'t find', options[item]); }\n return;\n }\n }\n });\n\n // make sure at least 1 slide\n if (options.container.children.length < 1) {\n if (supportConsoleWarn) { console.warn('No slides found in', options.container); }\n return;\n }\n\n // update options\n var responsive = options.responsive,\n nested = options.nested,\n carousel = options.mode === 'carousel' ? true : false;\n\n if (responsive) {\n // apply responsive[0] to options and remove it\n if (0 in responsive) {\n options = extend(options, responsive[0]);\n delete responsive[0];\n }\n\n var responsiveTem = {};\n for (var key in responsive) {\n var val = responsive[key];\n // update responsive\n // from: 300: 2\n // to:\n // 300: {\n // items: 2\n // }\n val = typeof val === 'number' ? {items: val} : val;\n responsiveTem[key] = val;\n }\n responsive = responsiveTem;\n responsiveTem = null;\n }\n\n // update options\n function updateOptions (obj) {\n for (var key in obj) {\n if (!carousel) {\n if (key === 'slideBy') { obj[key] = 'page'; }\n if (key === 'edgePadding') { obj[key] = false; }\n if (key === 'autoHeight') { obj[key] = false; }\n }\n\n // update responsive options\n if (key === 'responsive') { updateOptions(obj[key]); }\n }\n }\n if (!carousel) { updateOptions(options); }\n\n\n // === define and set variables ===\n if (!carousel) {\n options.axis = 'horizontal';\n options.slideBy = 'page';\n options.edgePadding = false;\n\n var animateIn = options.animateIn,\n animateOut = options.animateOut,\n animateDelay = options.animateDelay,\n animateNormal = options.animateNormal;\n }\n\n var horizontal = options.axis === 'horizontal' ? true : false,\n outerWrapper = doc.createElement('div'),\n innerWrapper = doc.createElement('div'),\n middleWrapper,\n container = options.container,\n containerParent = container.parentNode,\n containerHTML = container.outerHTML,\n slideItems = container.children,\n slideCount = slideItems.length,\n breakpointZone,\n windowWidth = getWindowWidth(),\n isOn = false;\n if (responsive) { setBreakpointZone(); }\n if (carousel) { container.className += ' tns-vpfix'; }\n\n // fixedWidth: viewport > rightBoundary > indexMax\n var autoWidth = options.autoWidth,\n fixedWidth = getOption('fixedWidth'),\n edgePadding = getOption('edgePadding'),\n gutter = getOption('gutter'),\n viewport = getViewportWidth(),\n center = getOption('center'),\n items = !autoWidth ? Math.floor(getOption('items')) : 1,\n slideBy = getOption('slideBy'),\n viewportMax = options.viewportMax || options.fixedWidthViewportWidth,\n arrowKeys = getOption('arrowKeys'),\n speed = getOption('speed'),\n rewind = options.rewind,\n loop = rewind ? false : options.loop,\n autoHeight = getOption('autoHeight'),\n controls = getOption('controls'),\n controlsText = getOption('controlsText'),\n nav = getOption('nav'),\n touch = getOption('touch'),\n mouseDrag = getOption('mouseDrag'),\n autoplay = getOption('autoplay'),\n autoplayTimeout = getOption('autoplayTimeout'),\n autoplayText = getOption('autoplayText'),\n autoplayHoverPause = getOption('autoplayHoverPause'),\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility'),\n sheet = createStyleSheet(null, getOption('nonce')),\n lazyload = options.lazyload,\n lazyloadSelector = options.lazyloadSelector,\n slidePositions, // collection of slide positions\n slideItemsOut = [],\n cloneCount = loop ? getCloneCountForLoop() : 0,\n slideCountNew = !carousel ? slideCount + cloneCount : slideCount + cloneCount * 2,\n hasRightDeadZone = (fixedWidth || autoWidth) && !loop ? true : false,\n rightBoundary = fixedWidth ? getRightBoundary() : null,\n updateIndexBeforeTransform = (!carousel || !loop) ? true : false,\n // transform\n transformAttr = horizontal ? 'left' : 'top',\n transformPrefix = '',\n transformPostfix = '',\n // index\n getIndexMax = (function () {\n if (fixedWidth) {\n return function() { return center && !loop ? slideCount - 1 : Math.ceil(- rightBoundary / (fixedWidth + gutter)); };\n } else if (autoWidth) {\n return function() {\n for (var i = 0; i < slideCountNew; i++) {\n if (slidePositions[i] >= - rightBoundary) { return i; }\n }\n };\n } else {\n return function() {\n if (center && carousel && !loop) {\n return slideCount - 1;\n } else {\n return loop || carousel ? Math.max(0, slideCountNew - Math.ceil(items)) : slideCountNew - 1;\n }\n };\n }\n })(),\n index = getStartIndex(getOption('startIndex')),\n indexCached = index,\n displayIndex = getCurrentSlide(),\n indexMin = 0,\n indexMax = !autoWidth ? getIndexMax() : null,\n // resize\n resizeTimer,\n preventActionWhenRunning = options.preventActionWhenRunning,\n swipeAngle = options.swipeAngle,\n moveDirectionExpected = swipeAngle ? '?' : true,\n running = false,\n onInit = options.onInit,\n events = new Events(),\n // id, class\n newContainerClasses = ' tns-slider tns-' + options.mode,\n slideId = container.id || getSlideId(),\n disable = getOption('disable'),\n disabled = false,\n freezable = options.freezable,\n freeze = freezable && !autoWidth ? getFreeze() : false,\n frozen = false,\n controlsEvents = {\n 'click': onControlsClick,\n 'keydown': onControlsKeydown\n },\n navEvents = {\n 'click': onNavClick,\n 'keydown': onNavKeydown\n },\n hoverEvents = {\n 'mouseover': mouseoverPause,\n 'mouseout': mouseoutRestart\n },\n visibilityEvent = {'visibilitychange': onVisibilityChange},\n docmentKeydownEvent = {'keydown': onDocumentKeydown},\n touchEvents = {\n 'touchstart': onPanStart,\n 'touchmove': onPanMove,\n 'touchend': onPanEnd,\n 'touchcancel': onPanEnd\n }, dragEvents = {\n 'mousedown': onPanStart,\n 'mousemove': onPanMove,\n 'mouseup': onPanEnd,\n 'mouseleave': onPanEnd\n },\n hasControls = hasOption('controls'),\n hasNav = hasOption('nav'),\n navAsThumbnails = autoWidth ? true : options.navAsThumbnails,\n hasAutoplay = hasOption('autoplay'),\n hasTouch = hasOption('touch'),\n hasMouseDrag = hasOption('mouseDrag'),\n slideActiveClass = 'tns-slide-active',\n slideClonedClass = 'tns-slide-cloned',\n imgCompleteClass = 'tns-complete',\n imgEvents = {\n 'load': onImgLoaded,\n 'error': onImgFailed\n },\n imgsComplete,\n liveregionCurrent,\n preventScroll = options.preventScrollOnTouch === 'force' ? true : false;\n\n // controls\n if (hasControls) {\n var controlsContainer = options.controlsContainer,\n controlsContainerHTML = options.controlsContainer ? options.controlsContainer.outerHTML : '',\n prevButton = options.prevButton,\n nextButton = options.nextButton,\n prevButtonHTML = options.prevButton ? options.prevButton.outerHTML : '',\n nextButtonHTML = options.nextButton ? options.nextButton.outerHTML : '',\n prevIsButton,\n nextIsButton;\n }\n\n // nav\n if (hasNav) {\n var navContainer = options.navContainer,\n navContainerHTML = options.navContainer ? options.navContainer.outerHTML : '',\n navItems,\n pages = autoWidth ? slideCount : getPages(),\n pagesCached = 0,\n navClicked = -1,\n navCurrentIndex = getCurrentNavIndex(),\n navCurrentIndexCached = navCurrentIndex,\n navActiveClass = 'tns-nav-active',\n navStr = 'Carousel Page ',\n navStrCurrent = ' (Current Slide)';\n }\n\n // autoplay\n if (hasAutoplay) {\n var autoplayDirection = options.autoplayDirection === 'forward' ? 1 : -1,\n autoplayButton = options.autoplayButton,\n autoplayButtonHTML = options.autoplayButton ? options.autoplayButton.outerHTML : '',\n autoplayHtmlStrings = ['', ' animation'],\n autoplayTimer,\n animating,\n autoplayHoverPaused,\n autoplayUserPaused,\n autoplayVisibilityPaused;\n }\n\n if (hasTouch || hasMouseDrag) {\n var initPosition = {},\n lastPosition = {},\n translateInit,\n disX,\n disY,\n panStart = false,\n rafIndex,\n getDist = horizontal ?\n function(a, b) { return a.x - b.x; } :\n function(a, b) { return a.y - b.y; };\n }\n\n // disable slider when slidecount <= items\n if (!autoWidth) { resetVariblesWhenDisable(disable || freeze); }\n\n if (TRANSFORM) {\n transformAttr = TRANSFORM;\n transformPrefix = 'translate';\n\n if (HAS3DTRANSFORMS) {\n transformPrefix += horizontal ? '3d(' : '3d(0px, ';\n transformPostfix = horizontal ? ', 0px, 0px)' : ', 0px)';\n } else {\n transformPrefix += horizontal ? 'X(' : 'Y(';\n transformPostfix = ')';\n }\n\n }\n\n if (carousel) { container.className = container.className.replace('tns-vpfix', ''); }\n initStructure();\n initSheet();\n initSliderTransform();\n\n // === COMMON FUNCTIONS === //\n function resetVariblesWhenDisable (condition) {\n if (condition) {\n controls = nav = touch = mouseDrag = arrowKeys = autoplay = autoplayHoverPause = autoplayResetOnVisibility = false;\n }\n }\n\n function getCurrentSlide () {\n var tem = carousel ? index - cloneCount : index;\n while (tem < 0) { tem += slideCount; }\n return tem%slideCount + 1;\n }\n\n function getStartIndex (ind) {\n ind = ind ? Math.max(0, Math.min(loop ? slideCount - 1 : slideCount - items, ind)) : 0;\n return carousel ? ind + cloneCount : ind;\n }\n\n function getAbsIndex (i) {\n if (i == null) { i = index; }\n\n if (carousel) { i -= cloneCount; }\n while (i < 0) { i += slideCount; }\n\n return Math.floor(i%slideCount);\n }\n\n function getCurrentNavIndex () {\n var absIndex = getAbsIndex(),\n result;\n\n result = navAsThumbnails ? absIndex :\n fixedWidth || autoWidth ? Math.ceil((absIndex + 1) * pages / slideCount - 1) :\n Math.floor(absIndex / items);\n\n // set active nav to the last one when reaches the right edge\n if (!loop && carousel && index === indexMax) { result = pages - 1; }\n\n return result;\n }\n\n function getItemsMax () {\n // fixedWidth or autoWidth while viewportMax is not available\n if (autoWidth || (fixedWidth && !viewportMax)) {\n return slideCount - 1;\n // most cases\n } else {\n var str = fixedWidth ? 'fixedWidth' : 'items',\n arr = [];\n\n if (fixedWidth || options[str] < slideCount) { arr.push(options[str]); }\n\n if (responsive) {\n for (var bp in responsive) {\n var tem = responsive[bp][str];\n if (tem && (fixedWidth || tem < slideCount)) { arr.push(tem); }\n }\n }\n\n if (!arr.length) { arr.push(0); }\n\n return Math.ceil(fixedWidth ? viewportMax / Math.min.apply(null, arr) : Math.max.apply(null, arr));\n }\n }\n\n function getCloneCountForLoop () {\n var itemsMax = getItemsMax(),\n result = carousel ? Math.ceil((itemsMax * 5 - slideCount)/2) : (itemsMax * 4 - slideCount);\n result = Math.max(itemsMax, result);\n\n return hasOption('edgePadding') ? result + 1 : result;\n }\n\n function getWindowWidth () {\n return win.innerWidth || doc.documentElement.clientWidth || doc.body.clientWidth;\n }\n\n function getInsertPosition (pos) {\n return pos === 'top' ? 'afterbegin' : 'beforeend';\n }\n\n function getClientWidth (el) {\n if (el == null) { return; }\n var div = doc.createElement('div'), rect, width;\n el.appendChild(div);\n rect = div.getBoundingClientRect();\n width = rect.right - rect.left;\n div.remove();\n return width || getClientWidth(el.parentNode);\n }\n\n function getViewportWidth () {\n var gap = edgePadding ? edgePadding * 2 - gutter : 0;\n return getClientWidth(containerParent) - gap;\n }\n\n function hasOption (item) {\n if (options[item]) {\n return true;\n } else {\n if (responsive) {\n for (var bp in responsive) {\n if (responsive[bp][item]) { return true; }\n }\n }\n return false;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n function getOption (item, ww) {\n if (ww == null) { ww = windowWidth; }\n\n if (item === 'items' && fixedWidth) {\n return Math.floor((viewport + gutter) / (fixedWidth + gutter)) || 1;\n\n } else {\n var result = options[item];\n\n if (responsive) {\n for (var bp in responsive) {\n // bp: convert string to number\n if (ww >= parseInt(bp)) {\n if (item in responsive[bp]) { result = responsive[bp][item]; }\n }\n }\n }\n\n if (item === 'slideBy' && result === 'page') { result = getOption('items'); }\n if (!carousel && (item === 'slideBy' || item === 'items')) { result = Math.floor(result); }\n\n return result;\n }\n }\n\n function getSlideMarginLeft (i) {\n return CALC ?\n CALC + '(' + i * 100 + '% / ' + slideCountNew + ')' :\n i * 100 / slideCountNew + '%';\n }\n\n function getInnerWrapperStyles (edgePaddingTem, gutterTem, fixedWidthTem, speedTem, autoHeightBP) {\n var str = '';\n\n if (edgePaddingTem !== undefined) {\n var gap = edgePaddingTem;\n if (gutterTem) { gap -= gutterTem; }\n str = horizontal ?\n 'margin: 0 ' + gap + 'px 0 ' + edgePaddingTem + 'px;' :\n 'margin: ' + edgePaddingTem + 'px 0 ' + gap + 'px 0;';\n } else if (gutterTem && !fixedWidthTem) {\n var gutterTemUnit = '-' + gutterTem + 'px',\n dir = horizontal ? gutterTemUnit + ' 0 0' : '0 ' + gutterTemUnit + ' 0';\n str = 'margin: 0 ' + dir + ';'\n }\n\n if (!carousel && autoHeightBP && TRANSITIONDURATION && speedTem) { str += getTransitionDurationStyle(speedTem); }\n return str;\n }\n\n function getContainerWidth (fixedWidthTem, gutterTem, itemsTem) {\n if (fixedWidthTem) {\n return (fixedWidthTem + gutterTem) * slideCountNew + 'px';\n } else {\n return CALC ?\n CALC + '(' + slideCountNew * 100 + '% / ' + itemsTem + ')' :\n slideCountNew * 100 / itemsTem + '%';\n }\n }\n\n function getSlideWidthStyle (fixedWidthTem, gutterTem, itemsTem) {\n var width;\n\n if (fixedWidthTem) {\n width = (fixedWidthTem + gutterTem) + 'px';\n } else {\n if (!carousel) { itemsTem = Math.floor(itemsTem); }\n var dividend = carousel ? slideCountNew : itemsTem;\n width = CALC ?\n CALC + '(100% / ' + dividend + ')' :\n 100 / dividend + '%';\n }\n\n width = 'width:' + width;\n\n // inner slider: overwrite outer slider styles\n return nested !== 'inner' ? width + ';' : width + ' !important;';\n }\n\n function getSlideGutterStyle (gutterTem) {\n var str = '';\n\n // gutter maybe interger || 0\n // so can't use 'if (gutter)'\n if (gutterTem !== false) {\n var prop = horizontal ? 'padding-' : 'margin-',\n dir = horizontal ? 'right' : 'bottom';\n str = prop + dir + ': ' + gutterTem + 'px;';\n }\n\n return str;\n }\n\n function getCSSPrefix (name, num) {\n var prefix = name.substring(0, name.length - num).toLowerCase();\n if (prefix) { prefix = '-' + prefix + '-'; }\n\n return prefix;\n }\n\n function getTransitionDurationStyle (speed) {\n return getCSSPrefix(TRANSITIONDURATION, 18) + 'transition-duration:' + speed / 1000 + 's;';\n }\n\n function getAnimationDurationStyle (speed) {\n return getCSSPrefix(ANIMATIONDURATION, 17) + 'animation-duration:' + speed / 1000 + 's;';\n }\n\n function initStructure () {\n var classOuter = 'tns-outer',\n classInner = 'tns-inner',\n hasGutter = hasOption('gutter');\n\n outerWrapper.className = classOuter;\n innerWrapper.className = classInner;\n outerWrapper.id = slideId + '-ow';\n innerWrapper.id = slideId + '-iw';\n\n // set container properties\n if (container.id === '') { container.id = slideId; }\n newContainerClasses += PERCENTAGELAYOUT || autoWidth ? ' tns-subpixel' : ' tns-no-subpixel';\n newContainerClasses += CALC ? ' tns-calc' : ' tns-no-calc';\n if (autoWidth) { newContainerClasses += ' tns-autowidth'; }\n newContainerClasses += ' tns-' + options.axis;\n container.className += newContainerClasses;\n\n // add constrain layer for carousel\n if (carousel) {\n middleWrapper = doc.createElement('div');\n middleWrapper.id = slideId + '-mw';\n middleWrapper.className = 'tns-ovh';\n\n outerWrapper.appendChild(middleWrapper);\n middleWrapper.appendChild(innerWrapper);\n } else {\n outerWrapper.appendChild(innerWrapper);\n }\n\n if (autoHeight) {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.className += ' tns-ah';\n }\n\n containerParent.insertBefore(outerWrapper, container);\n innerWrapper.appendChild(container);\n\n // add id, class, aria attributes\n // before clone slides\n forEach(slideItems, function(item, i) {\n addClass(item, 'tns-item');\n if (!item.id) { item.id = slideId + '-item' + i; }\n if (!carousel && animateNormal) { addClass(item, animateNormal); }\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n });\n\n // ## clone slides\n // carousel: n + slides + n\n // gallery: slides + n\n if (cloneCount) {\n var fragmentBefore = doc.createDocumentFragment(),\n fragmentAfter = doc.createDocumentFragment();\n\n for (var j = cloneCount; j--;) {\n var num = j%slideCount,\n cloneFirst = slideItems[num].cloneNode(true);\n addClass(cloneFirst, slideClonedClass);\n removeAttrs(cloneFirst, 'id');\n fragmentAfter.insertBefore(cloneFirst, fragmentAfter.firstChild);\n\n if (carousel) {\n var cloneLast = slideItems[slideCount - 1 - num].cloneNode(true);\n addClass(cloneLast, slideClonedClass);\n removeAttrs(cloneLast, 'id');\n fragmentBefore.appendChild(cloneLast);\n }\n }\n\n container.insertBefore(fragmentBefore, container.firstChild);\n container.appendChild(fragmentAfter);\n slideItems = container.children;\n }\n\n }\n\n function initSliderTransform () {\n // ## images loaded/failed\n if (hasOption('autoHeight') || autoWidth || !horizontal) {\n var imgs = container.querySelectorAll('img');\n\n // add img load event listener\n forEach(imgs, function(img) {\n var src = img.src;\n\n if (!lazyload) {\n // not data img\n if (src && src.indexOf('data:image') < 0) {\n img.src = '';\n addEvents(img, imgEvents);\n addClass(img, 'loading');\n\n img.src = src;\n // data img\n } else {\n imgLoaded(img);\n }\n }\n });\n\n // set imgsComplete\n raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), function() { imgsComplete = true; }); });\n\n // reset imgs for auto height: check visible imgs only\n if (hasOption('autoHeight')) { imgs = getImageArray(index, Math.min(index + items - 1, slideCountNew - 1)); }\n\n lazyload ? initSliderTransformStyleCheck() : raf(function(){ imgsLoadedCheck(arrayFromNodeList(imgs), initSliderTransformStyleCheck); });\n\n } else {\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n }\n\n function initSliderTransformStyleCheck () {\n if (autoWidth && slideCount > 1) {\n // check styles application\n var num = loop ? index : slideCount - 1;\n\n (function stylesApplicationCheck() {\n var left = slideItems[num].getBoundingClientRect().left;\n var right = slideItems[num - 1].getBoundingClientRect().right;\n\n (Math.abs(left - right) <= 1) ?\n initSliderTransformCore() :\n setTimeout(function(){ stylesApplicationCheck() }, 16);\n })();\n\n } else {\n initSliderTransformCore();\n }\n }\n\n\n function initSliderTransformCore () {\n // run Fn()s which are rely on image loading\n if (!horizontal || autoWidth) {\n setSlidePositions();\n\n if (autoWidth) {\n rightBoundary = getRightBoundary();\n if (freezable) { freeze = getFreeze(); }\n indexMax = getIndexMax(); // <= slidePositions, rightBoundary <=\n resetVariblesWhenDisable(disable || freeze);\n } else {\n updateContentWrapperHeight();\n }\n }\n\n // set container transform property\n if (carousel) { doContainerTransformSilent(); }\n\n // update slider tools and events\n initTools();\n initEvents();\n }\n\n function initSheet () {\n // gallery:\n // set animation classes and left value for gallery slider\n if (!carousel) {\n for (var i = index, l = index + Math.min(slideCount, items); i < l; i++) {\n var item = slideItems[i];\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // #### LAYOUT\n\n // ## INLINE-BLOCK VS FLOAT\n\n // ## PercentageLayout:\n // slides: inline-block\n // remove blank space between slides by set font-size: 0\n\n // ## Non PercentageLayout:\n // slides: float\n // margin-right: -100%\n // margin-left: ~\n\n // Resource: https://docs.google.com/spreadsheets/d/147up245wwTXeQYve3BRSAD4oVcvQmuGsFteJOeA5xNQ/edit?usp=sharing\n if (horizontal) {\n if (PERCENTAGELAYOUT || autoWidth) {\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', 'font-size:' + win.getComputedStyle(slideItems[0]).fontSize + ';', getCssRulesLength(sheet));\n addCSSRule(sheet, '#' + slideId, 'font-size:0;', getCssRulesLength(sheet));\n } else if (carousel) {\n forEach(slideItems, function (slide, i) {\n slide.style.marginLeft = getSlideMarginLeft(i);\n });\n }\n }\n\n\n // ## BASIC STYLES\n if (CSSMQ) {\n // middle wrapper style\n if (TRANSITIONDURATION) {\n var str = middleWrapper && options.autoHeight ? getTransitionDurationStyle(options.speed) : '';\n addCSSRule(sheet, '#' + slideId + '-mw', str, getCssRulesLength(sheet));\n }\n\n // inner wrapper styles\n str = getInnerWrapperStyles(options.edgePadding, options.gutter, options.fixedWidth, options.speed, options.autoHeight);\n addCSSRule(sheet, '#' + slideId + '-iw', str, getCssRulesLength(sheet));\n\n // container styles\n if (carousel) {\n str = horizontal && !autoWidth ? 'width:' + getContainerWidth(options.fixedWidth, options.gutter, options.items) + ';' : '';\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n addCSSRule(sheet, '#' + slideId, str, getCssRulesLength(sheet));\n }\n\n // slide styles\n str = horizontal && !autoWidth ? getSlideWidthStyle(options.fixedWidth, options.gutter, options.items) : '';\n if (options.gutter) { str += getSlideGutterStyle(options.gutter); }\n // set gallery items transition-duration\n if (!carousel) {\n if (TRANSITIONDURATION) { str += getTransitionDurationStyle(speed); }\n if (ANIMATIONDURATION) { str += getAnimationDurationStyle(speed); }\n }\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n\n // non CSS mediaqueries: IE8\n // ## update inner wrapper, container, slides if needed\n // set inline styles for inner wrapper & container\n // insert stylesheet (one line) for slides only (since slides are many)\n } else {\n // middle wrapper styles\n update_carousel_transition_duration();\n\n // inner wrapper styles\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, autoHeight);\n\n // container styles\n if (carousel && horizontal && !autoWidth) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = horizontal && !autoWidth ? getSlideWidthStyle(fixedWidth, gutter, items) : '';\n if (gutter) { str += getSlideGutterStyle(gutter); }\n\n // append to the last line\n if (str) { addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet)); }\n }\n\n // ## MEDIAQUERIES\n if (responsive && CSSMQ) {\n for (var bp in responsive) {\n // bp: convert string to number\n bp = parseInt(bp);\n\n var opts = responsive[bp],\n str = '',\n middleWrapperStr = '',\n innerWrapperStr = '',\n containerStr = '',\n slideStr = '',\n itemsBP = !autoWidth ? getOption('items', bp) : null,\n fixedWidthBP = getOption('fixedWidth', bp),\n speedBP = getOption('speed', bp),\n edgePaddingBP = getOption('edgePadding', bp),\n autoHeightBP = getOption('autoHeight', bp),\n gutterBP = getOption('gutter', bp);\n\n // middle wrapper string\n if (TRANSITIONDURATION && middleWrapper && getOption('autoHeight', bp) && 'speed' in opts) {\n middleWrapperStr = '#' + slideId + '-mw{' + getTransitionDurationStyle(speedBP) + '}';\n }\n\n // inner wrapper string\n if ('edgePadding' in opts || 'gutter' in opts) {\n innerWrapperStr = '#' + slideId + '-iw{' + getInnerWrapperStyles(edgePaddingBP, gutterBP, fixedWidthBP, speedBP, autoHeightBP) + '}';\n }\n\n // container string\n if (carousel && horizontal && !autoWidth && ('fixedWidth' in opts || 'items' in opts || (fixedWidth && 'gutter' in opts))) {\n containerStr = 'width:' + getContainerWidth(fixedWidthBP, gutterBP, itemsBP) + ';';\n }\n if (TRANSITIONDURATION && 'speed' in opts) {\n containerStr += getTransitionDurationStyle(speedBP);\n }\n if (containerStr) {\n containerStr = '#' + slideId + '{' + containerStr + '}';\n }\n\n // slide string\n if ('fixedWidth' in opts || (fixedWidth && 'gutter' in opts) || !carousel && 'items' in opts) {\n slideStr += getSlideWidthStyle(fixedWidthBP, gutterBP, itemsBP);\n }\n if ('gutter' in opts) {\n slideStr += getSlideGutterStyle(gutterBP);\n }\n // set gallery items transition-duration\n if (!carousel && 'speed' in opts) {\n if (TRANSITIONDURATION) { slideStr += getTransitionDurationStyle(speedBP); }\n if (ANIMATIONDURATION) { slideStr += getAnimationDurationStyle(speedBP); }\n }\n if (slideStr) { slideStr = '#' + slideId + ' > .tns-item{' + slideStr + '}'; }\n\n // add up\n str = middleWrapperStr + innerWrapperStr + containerStr + slideStr;\n\n if (str) {\n sheet.insertRule('@media (min-width: ' + bp / 16 + 'em) {' + str + '}', sheet.cssRules.length);\n }\n }\n }\n }\n\n function initTools () {\n // == slides ==\n updateSlideStatus();\n\n // == live region ==\n outerWrapper.insertAdjacentHTML('afterbegin', '
slide ' + getLiveRegionStr() + ' of ' + slideCount + '
');\n liveregionCurrent = outerWrapper.querySelector('.tns-liveregion .current');\n\n // == autoplayInit ==\n if (hasAutoplay) {\n var txt = autoplay ? 'stop' : 'start';\n if (autoplayButton) {\n setAttrs(autoplayButton, {'data-action': txt});\n } else if (options.autoplayButtonOutput) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.autoplayPosition), '');\n autoplayButton = outerWrapper.querySelector('[data-action]');\n }\n\n // add event\n if (autoplayButton) {\n addEvents(autoplayButton, {'click': toggleAutoplay});\n }\n\n if (autoplay) {\n startAutoplay();\n if (autoplayHoverPause) { addEvents(container, hoverEvents); }\n if (autoplayResetOnVisibility) { addEvents(container, visibilityEvent); }\n }\n }\n\n // == navInit ==\n if (hasNav) {\n var initIndex = !carousel ? 0 : cloneCount;\n // customized nav\n // will not hide the navs in case they're thumbnails\n if (navContainer) {\n setAttrs(navContainer, {'aria-label': 'Carousel Pagination'});\n navItems = navContainer.children;\n forEach(navItems, function(item, i) {\n setAttrs(item, {\n 'data-nav': i,\n 'tabindex': '-1',\n 'aria-label': navStr + (i + 1),\n 'aria-controls': slideId,\n });\n });\n\n // generated nav\n } else {\n var navHtml = '',\n hiddenStr = navAsThumbnails ? '' : 'style=\"display:none\"';\n for (var i = 0; i < slideCount; i++) {\n // hide nav items by default\n navHtml += '';\n }\n navHtml = '
' + navHtml + '
';\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.navPosition), navHtml);\n\n navContainer = outerWrapper.querySelector('.tns-nav');\n navItems = navContainer.children;\n }\n\n updateNavVisibility();\n\n // add transition\n if (TRANSITIONDURATION) {\n var prefix = TRANSITIONDURATION.substring(0, TRANSITIONDURATION.length - 18).toLowerCase(),\n str = 'transition: all ' + speed / 1000 + 's';\n\n if (prefix) {\n str = '-' + prefix + '-' + str;\n }\n\n addCSSRule(sheet, '[aria-controls^=' + slideId + '-item]', str, getCssRulesLength(sheet));\n }\n\n setAttrs(navItems[navCurrentIndex], {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navItems[navCurrentIndex], 'tabindex');\n addClass(navItems[navCurrentIndex], navActiveClass);\n\n // add events\n addEvents(navContainer, navEvents);\n }\n\n\n\n // == controlsInit ==\n if (hasControls) {\n if (!controlsContainer && (!prevButton || !nextButton)) {\n outerWrapper.insertAdjacentHTML(getInsertPosition(options.controlsPosition), '
');\n\n controlsContainer = outerWrapper.querySelector('.tns-controls');\n }\n\n if (!prevButton || !nextButton) {\n prevButton = controlsContainer.children[0];\n nextButton = controlsContainer.children[1];\n }\n\n if (options.controlsContainer) {\n setAttrs(controlsContainer, {\n 'aria-label': 'Carousel Navigation',\n 'tabindex': '0'\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs([prevButton, nextButton], {\n 'aria-controls': slideId,\n 'tabindex': '-1',\n });\n }\n\n if (options.controlsContainer || (options.prevButton && options.nextButton)) {\n setAttrs(prevButton, {'data-controls' : 'prev'});\n setAttrs(nextButton, {'data-controls' : 'next'});\n }\n\n prevIsButton = isButton(prevButton);\n nextIsButton = isButton(nextButton);\n\n updateControlsStatus();\n\n // add events\n if (controlsContainer) {\n addEvents(controlsContainer, controlsEvents);\n } else {\n addEvents(prevButton, controlsEvents);\n addEvents(nextButton, controlsEvents);\n }\n }\n\n // hide tools if needed\n disableUI();\n }\n\n function initEvents () {\n // add events\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n addEvents(container, eve);\n }\n\n if (touch) { addEvents(container, touchEvents, options.preventScrollOnTouch); }\n if (mouseDrag) { addEvents(container, dragEvents); }\n if (arrowKeys) { addEvents(doc, docmentKeydownEvent); }\n\n if (nested === 'inner') {\n events.on('outerResized', function () {\n resizeTasks();\n events.emit('innerLoaded', info());\n });\n } else if (responsive || fixedWidth || autoWidth || autoHeight || !horizontal) {\n addEvents(win, {'resize': onResize});\n }\n\n if (autoHeight) {\n if (nested === 'outer') {\n events.on('innerLoaded', doAutoHeight);\n } else if (!disable) { doAutoHeight(); }\n }\n\n doLazyLoad();\n if (disable) { disableSlider(); } else if (freeze) { freezeSlider(); }\n\n events.on('indexChanged', additionalUpdates);\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n if (typeof onInit === 'function') { onInit(info()); }\n isOn = true;\n }\n\n function destroy () {\n // sheet\n sheet.disabled = true;\n if (sheet.ownerNode) { sheet.ownerNode.remove(); }\n\n // remove win event listeners\n removeEvents(win, {'resize': onResize});\n\n // arrowKeys, controls, nav\n if (arrowKeys) { removeEvents(doc, docmentKeydownEvent); }\n if (controlsContainer) { removeEvents(controlsContainer, controlsEvents); }\n if (navContainer) { removeEvents(navContainer, navEvents); }\n\n // autoplay\n removeEvents(container, hoverEvents);\n removeEvents(container, visibilityEvent);\n if (autoplayButton) { removeEvents(autoplayButton, {'click': toggleAutoplay}); }\n if (autoplay) { clearInterval(autoplayTimer); }\n\n // container\n if (carousel && TRANSITIONEND) {\n var eve = {};\n eve[TRANSITIONEND] = onTransitionEnd;\n removeEvents(container, eve);\n }\n if (touch) { removeEvents(container, touchEvents); }\n if (mouseDrag) { removeEvents(container, dragEvents); }\n\n // cache Object values in options && reset HTML\n var htmlList = [containerHTML, controlsContainerHTML, prevButtonHTML, nextButtonHTML, navContainerHTML, autoplayButtonHTML];\n\n tnsList.forEach(function(item, i) {\n var el = item === 'container' ? outerWrapper : options[item];\n\n if (typeof el === 'object' && el) {\n var prevEl = el.previousElementSibling ? el.previousElementSibling : false,\n parentEl = el.parentNode;\n el.outerHTML = htmlList[i];\n options[item] = prevEl ? prevEl.nextElementSibling : parentEl.firstElementChild;\n }\n });\n\n\n // reset variables\n tnsList = animateIn = animateOut = animateDelay = animateNormal = horizontal = outerWrapper = innerWrapper = container = containerParent = containerHTML = slideItems = slideCount = breakpointZone = windowWidth = autoWidth = fixedWidth = edgePadding = gutter = viewport = items = slideBy = viewportMax = arrowKeys = speed = rewind = loop = autoHeight = sheet = lazyload = slidePositions = slideItemsOut = cloneCount = slideCountNew = hasRightDeadZone = rightBoundary = updateIndexBeforeTransform = transformAttr = transformPrefix = transformPostfix = getIndexMax = index = indexCached = indexMin = indexMax = resizeTimer = swipeAngle = moveDirectionExpected = running = onInit = events = newContainerClasses = slideId = disable = disabled = freezable = freeze = frozen = controlsEvents = navEvents = hoverEvents = visibilityEvent = docmentKeydownEvent = touchEvents = dragEvents = hasControls = hasNav = navAsThumbnails = hasAutoplay = hasTouch = hasMouseDrag = slideActiveClass = imgCompleteClass = imgEvents = imgsComplete = controls = controlsText = controlsContainer = controlsContainerHTML = prevButton = nextButton = prevIsButton = nextIsButton = nav = navContainer = navContainerHTML = navItems = pages = pagesCached = navClicked = navCurrentIndex = navCurrentIndexCached = navActiveClass = navStr = navStrCurrent = autoplay = autoplayTimeout = autoplayDirection = autoplayText = autoplayHoverPause = autoplayButton = autoplayButtonHTML = autoplayResetOnVisibility = autoplayHtmlStrings = autoplayTimer = animating = autoplayHoverPaused = autoplayUserPaused = autoplayVisibilityPaused = initPosition = lastPosition = translateInit = disX = disY = panStart = rafIndex = getDist = touch = mouseDrag = null;\n // check variables\n // [animateIn, animateOut, animateDelay, animateNormal, horizontal, outerWrapper, innerWrapper, container, containerParent, containerHTML, slideItems, slideCount, breakpointZone, windowWidth, autoWidth, fixedWidth, edgePadding, gutter, viewport, items, slideBy, viewportMax, arrowKeys, speed, rewind, loop, autoHeight, sheet, lazyload, slidePositions, slideItemsOut, cloneCount, slideCountNew, hasRightDeadZone, rightBoundary, updateIndexBeforeTransform, transformAttr, transformPrefix, transformPostfix, getIndexMax, index, indexCached, indexMin, indexMax, resizeTimer, swipeAngle, moveDirectionExpected, running, onInit, events, newContainerClasses, slideId, disable, disabled, freezable, freeze, frozen, controlsEvents, navEvents, hoverEvents, visibilityEvent, docmentKeydownEvent, touchEvents, dragEvents, hasControls, hasNav, navAsThumbnails, hasAutoplay, hasTouch, hasMouseDrag, slideActiveClass, imgCompleteClass, imgEvents, imgsComplete, controls, controlsText, controlsContainer, controlsContainerHTML, prevButton, nextButton, prevIsButton, nextIsButton, nav, navContainer, navContainerHTML, navItems, pages, pagesCached, navClicked, navCurrentIndex, navCurrentIndexCached, navActiveClass, navStr, navStrCurrent, autoplay, autoplayTimeout, autoplayDirection, autoplayText, autoplayHoverPause, autoplayButton, autoplayButtonHTML, autoplayResetOnVisibility, autoplayHtmlStrings, autoplayTimer, animating, autoplayHoverPaused, autoplayUserPaused, autoplayVisibilityPaused, initPosition, lastPosition, translateInit, disX, disY, panStart, rafIndex, getDist, touch, mouseDrag ].forEach(function(item) { if (item !== null) { console.log(item); } });\n\n for (var a in this) {\n if (a !== 'rebuild') { this[a] = null; }\n }\n isOn = false;\n }\n\n// === ON RESIZE ===\n // responsive || fixedWidth || autoWidth || !horizontal\n function onResize (e) {\n raf(function(){ resizeTasks(getEvent(e)); });\n }\n\n function resizeTasks (e) {\n if (!isOn) { return; }\n if (nested === 'outer') { events.emit('outerResized', info(e)); }\n windowWidth = getWindowWidth();\n var bpChanged,\n breakpointZoneTem = breakpointZone,\n needContainerTransform = false;\n\n if (responsive) {\n setBreakpointZone();\n bpChanged = breakpointZoneTem !== breakpointZone;\n // if (hasRightDeadZone) { needContainerTransform = true; } // *?\n if (bpChanged) { events.emit('newBreakpointStart', info(e)); }\n }\n\n var indChanged,\n itemsChanged,\n itemsTem = items,\n disableTem = disable,\n freezeTem = freeze,\n arrowKeysTem = arrowKeys,\n controlsTem = controls,\n navTem = nav,\n touchTem = touch,\n mouseDragTem = mouseDrag,\n autoplayTem = autoplay,\n autoplayHoverPauseTem = autoplayHoverPause,\n autoplayResetOnVisibilityTem = autoplayResetOnVisibility,\n indexTem = index;\n\n if (bpChanged) {\n var fixedWidthTem = fixedWidth,\n autoHeightTem = autoHeight,\n controlsTextTem = controlsText,\n centerTem = center,\n autoplayTextTem = autoplayText;\n\n if (!CSSMQ) {\n var gutterTem = gutter,\n edgePaddingTem = edgePadding;\n }\n }\n\n // get option:\n // fixed width: viewport, fixedWidth, gutter => items\n // others: window width => all variables\n // all: items => slideBy\n arrowKeys = getOption('arrowKeys');\n controls = getOption('controls');\n nav = getOption('nav');\n touch = getOption('touch');\n center = getOption('center');\n mouseDrag = getOption('mouseDrag');\n autoplay = getOption('autoplay');\n autoplayHoverPause = getOption('autoplayHoverPause');\n autoplayResetOnVisibility = getOption('autoplayResetOnVisibility');\n\n if (bpChanged) {\n disable = getOption('disable');\n fixedWidth = getOption('fixedWidth');\n speed = getOption('speed');\n autoHeight = getOption('autoHeight');\n controlsText = getOption('controlsText');\n autoplayText = getOption('autoplayText');\n autoplayTimeout = getOption('autoplayTimeout');\n\n if (!CSSMQ) {\n edgePadding = getOption('edgePadding');\n gutter = getOption('gutter');\n }\n }\n // update options\n resetVariblesWhenDisable(disable);\n\n viewport = getViewportWidth(); // <= edgePadding, gutter\n if ((!horizontal || autoWidth) && !disable) {\n setSlidePositions();\n if (!horizontal) {\n updateContentWrapperHeight(); // <= setSlidePositions\n needContainerTransform = true;\n }\n }\n if (fixedWidth || autoWidth) {\n rightBoundary = getRightBoundary(); // autoWidth: <= viewport, slidePositions, gutter\n // fixedWidth: <= viewport, fixedWidth, gutter\n indexMax = getIndexMax(); // autoWidth: <= rightBoundary, slidePositions\n // fixedWidth: <= rightBoundary, fixedWidth, gutter\n }\n\n if (bpChanged || fixedWidth) {\n items = getOption('items');\n slideBy = getOption('slideBy');\n itemsChanged = items !== itemsTem;\n\n if (itemsChanged) {\n if (!fixedWidth && !autoWidth) { indexMax = getIndexMax(); } // <= items\n // check index before transform in case\n // slider reach the right edge then items become bigger\n updateIndex();\n }\n }\n\n if (bpChanged) {\n if (disable !== disableTem) {\n if (disable) {\n disableSlider();\n } else {\n enableSlider(); // <= slidePositions, rightBoundary, indexMax\n }\n }\n }\n\n if (freezable && (bpChanged || fixedWidth || autoWidth)) {\n freeze = getFreeze(); // <= autoWidth: slidePositions, gutter, viewport, rightBoundary\n // <= fixedWidth: fixedWidth, gutter, rightBoundary\n // <= others: items\n\n if (freeze !== freezeTem) {\n if (freeze) {\n doContainerTransform(getContainerTransformValue(getStartIndex(0)));\n freezeSlider();\n } else {\n unfreezeSlider();\n needContainerTransform = true;\n }\n }\n }\n\n resetVariblesWhenDisable(disable || freeze); // controls, nav, touch, mouseDrag, arrowKeys, autoplay, autoplayHoverPause, autoplayResetOnVisibility\n if (!autoplay) { autoplayHoverPause = autoplayResetOnVisibility = false; }\n\n if (arrowKeys !== arrowKeysTem) {\n arrowKeys ?\n addEvents(doc, docmentKeydownEvent) :\n removeEvents(doc, docmentKeydownEvent);\n }\n if (controls !== controlsTem) {\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n } else {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n if (nav !== navTem) {\n if (nav) {\n showElement(navContainer);\n updateNavVisibility();\n } else {\n hideElement(navContainer)\n }\n }\n if (touch !== touchTem) {\n touch ?\n addEvents(container, touchEvents, options.preventScrollOnTouch) :\n removeEvents(container, touchEvents);\n }\n if (mouseDrag !== mouseDragTem) {\n mouseDrag ?\n addEvents(container, dragEvents) :\n removeEvents(container, dragEvents);\n }\n if (autoplay !== autoplayTem) {\n if (autoplay) {\n if (autoplayButton) { showElement(autoplayButton); }\n if (!animating && !autoplayUserPaused) { startAutoplay(); }\n } else {\n if (autoplayButton) { hideElement(autoplayButton); }\n if (animating) { stopAutoplay(); }\n }\n }\n if (autoplayHoverPause !== autoplayHoverPauseTem) {\n autoplayHoverPause ?\n addEvents(container, hoverEvents) :\n removeEvents(container, hoverEvents);\n }\n if (autoplayResetOnVisibility !== autoplayResetOnVisibilityTem) {\n autoplayResetOnVisibility ?\n addEvents(doc, visibilityEvent) :\n removeEvents(doc, visibilityEvent);\n }\n\n if (bpChanged) {\n if (fixedWidth !== fixedWidthTem || center !== centerTem) { needContainerTransform = true; }\n\n if (autoHeight !== autoHeightTem) {\n if (!autoHeight) { innerWrapper.style.height = ''; }\n }\n\n if (controls && controlsText !== controlsTextTem) {\n prevButton.innerHTML = controlsText[0];\n nextButton.innerHTML = controlsText[1];\n }\n\n if (autoplayButton && autoplayText !== autoplayTextTem) {\n var i = autoplay ? 1 : 0,\n html = autoplayButton.innerHTML,\n len = html.length - autoplayTextTem[i].length;\n if (html.substring(len) === autoplayTextTem[i]) {\n autoplayButton.innerHTML = html.substring(0, len) + autoplayText[i];\n }\n }\n } else {\n if (center && (fixedWidth || autoWidth)) { needContainerTransform = true; }\n }\n\n if (itemsChanged || fixedWidth && !autoWidth) {\n pages = getPages();\n updateNavVisibility();\n }\n\n indChanged = index !== indexTem;\n if (indChanged) {\n events.emit('indexChanged', info());\n needContainerTransform = true;\n } else if (itemsChanged) {\n if (!indChanged) { additionalUpdates(); }\n } else if (fixedWidth || autoWidth) {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n }\n\n if (itemsChanged && !carousel) { updateGallerySlidePositions(); }\n\n if (!disable && !freeze) {\n // non-mediaqueries: IE8\n if (bpChanged && !CSSMQ) {\n // middle wrapper styles\n\n // inner wrapper styles\n if (edgePadding !== edgePaddingTem || gutter !== gutterTem) {\n innerWrapper.style.cssText = getInnerWrapperStyles(edgePadding, gutter, fixedWidth, speed, autoHeight);\n }\n\n if (horizontal) {\n // container styles\n if (carousel) {\n container.style.width = getContainerWidth(fixedWidth, gutter, items);\n }\n\n // slide styles\n var str = getSlideWidthStyle(fixedWidth, gutter, items) +\n getSlideGutterStyle(gutter);\n\n // remove the last line and\n // add new styles\n removeCSSRule(sheet, getCssRulesLength(sheet) - 1);\n addCSSRule(sheet, '#' + slideId + ' > .tns-item', str, getCssRulesLength(sheet));\n }\n }\n\n // auto height\n if (autoHeight) { doAutoHeight(); }\n\n if (needContainerTransform) {\n doContainerTransformSilent();\n indexCached = index;\n }\n }\n\n if (bpChanged) { events.emit('newBreakpointEnd', info(e)); }\n }\n\n\n\n\n\n // === INITIALIZATION FUNCTIONS === //\n function getFreeze () {\n if (!fixedWidth && !autoWidth) {\n var a = center ? items - (items - 1) / 2 : items;\n return slideCount <= a;\n }\n\n var width = fixedWidth ? (fixedWidth + gutter) * slideCount : slidePositions[slideCount],\n vp = edgePadding ? viewport + edgePadding * 2 : viewport + gutter;\n\n if (center) {\n vp -= fixedWidth ? (viewport - fixedWidth) / 2 : (viewport - (slidePositions[index + 1] - slidePositions[index] - gutter)) / 2;\n }\n\n return width <= vp;\n }\n\n function setBreakpointZone () {\n breakpointZone = 0;\n for (var bp in responsive) {\n bp = parseInt(bp); // convert string to number\n if (windowWidth >= bp) { breakpointZone = bp; }\n }\n }\n\n // (slideBy, indexMin, indexMax) => index\n var updateIndex = (function () {\n return loop ?\n carousel ?\n // loop + carousel\n function () {\n var leftEdge = indexMin,\n rightEdge = indexMax;\n\n leftEdge += slideBy;\n rightEdge -= slideBy;\n\n // adjust edges when has edge paddings\n // or fixed-width slider with extra space on the right side\n if (edgePadding) {\n leftEdge += 1;\n rightEdge -= 1;\n } else if (fixedWidth) {\n if ((viewport + gutter)%(fixedWidth + gutter)) { rightEdge -= 1; }\n }\n\n if (cloneCount) {\n if (index > rightEdge) {\n index -= slideCount;\n } else if (index < leftEdge) {\n index += slideCount;\n }\n }\n } :\n // loop + gallery\n function() {\n if (index > indexMax) {\n while (index >= indexMin + slideCount) { index -= slideCount; }\n } else if (index < indexMin) {\n while (index <= indexMax - slideCount) { index += slideCount; }\n }\n } :\n // non-loop\n function() {\n index = Math.max(indexMin, Math.min(indexMax, index));\n };\n })();\n\n function disableUI () {\n if (!autoplay && autoplayButton) { hideElement(autoplayButton); }\n if (!nav && navContainer) { hideElement(navContainer); }\n if (!controls) {\n if (controlsContainer) {\n hideElement(controlsContainer);\n } else {\n if (prevButton) { hideElement(prevButton); }\n if (nextButton) { hideElement(nextButton); }\n }\n }\n }\n\n function enableUI () {\n if (autoplay && autoplayButton) { showElement(autoplayButton); }\n if (nav && navContainer) { showElement(navContainer); }\n if (controls) {\n if (controlsContainer) {\n showElement(controlsContainer);\n } else {\n if (prevButton) { showElement(prevButton); }\n if (nextButton) { showElement(nextButton); }\n }\n }\n }\n\n function freezeSlider () {\n if (frozen) { return; }\n\n // remove edge padding from inner wrapper\n if (edgePadding) { innerWrapper.style.margin = '0px'; }\n\n // add class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { addClass(slideItems[i], str); }\n addClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n disableUI();\n\n frozen = true;\n }\n\n function unfreezeSlider () {\n if (!frozen) { return; }\n\n // restore edge padding for inner wrapper\n // for mordern browsers\n if (edgePadding && CSSMQ) { innerWrapper.style.margin = ''; }\n\n // remove class tns-transparent to cloned slides\n if (cloneCount) {\n var str = 'tns-transparent';\n for (var i = cloneCount; i--;) {\n if (carousel) { removeClass(slideItems[i], str); }\n removeClass(slideItems[slideCountNew - i - 1], str);\n }\n }\n\n // update tools\n enableUI();\n\n frozen = false;\n }\n\n function disableSlider () {\n if (disabled) { return; }\n\n sheet.disabled = true;\n container.className = container.className.replace(newContainerClasses.substring(1), '');\n removeAttrs(container, ['style']);\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { hideElement(slideItems[j]); }\n hideElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // vertical slider\n if (!horizontal || !carousel) { removeAttrs(innerWrapper, ['style']); }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i];\n removeAttrs(item, ['style']);\n removeClass(item, animateIn);\n removeClass(item, animateNormal);\n }\n }\n\n // update tools\n disableUI();\n\n disabled = true;\n }\n\n function enableSlider () {\n if (!disabled) { return; }\n\n sheet.disabled = false;\n container.className += newContainerClasses;\n doContainerTransformSilent();\n\n if (loop) {\n for (var j = cloneCount; j--;) {\n if (carousel) { showElement(slideItems[j]); }\n showElement(slideItems[slideCountNew - j - 1]);\n }\n }\n\n // gallery\n if (!carousel) {\n for (var i = index, l = index + slideCount; i < l; i++) {\n var item = slideItems[i],\n classN = i < index + items ? animateIn : animateNormal;\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, classN);\n }\n }\n\n // update tools\n enableUI();\n\n disabled = false;\n }\n\n function updateLiveRegion () {\n var str = getLiveRegionStr();\n if (liveregionCurrent.innerHTML !== str) { liveregionCurrent.innerHTML = str; }\n }\n\n function getLiveRegionStr () {\n var arr = getVisibleSlideRange(),\n start = arr[0] + 1,\n end = arr[1] + 1;\n return start === end ? start + '' : start + ' to ' + end;\n }\n\n function getVisibleSlideRange (val) {\n if (val == null) { val = getContainerTransformValue(); }\n var start = index, end, rangestart, rangeend;\n\n // get range start, range end for autoWidth and fixedWidth\n if (center || edgePadding) {\n if (autoWidth || fixedWidth) {\n rangestart = - (parseFloat(val) + edgePadding);\n rangeend = rangestart + viewport + edgePadding * 2;\n }\n } else {\n if (autoWidth) {\n rangestart = slidePositions[index];\n rangeend = rangestart + viewport;\n }\n }\n\n // get start, end\n // - check auto width\n if (autoWidth) {\n slidePositions.forEach(function(point, i) {\n if (i < slideCountNew) {\n if ((center || edgePadding) && point <= rangestart + 0.5) { start = i; }\n if (rangeend - point >= 0.5) { end = i; }\n }\n });\n\n // - check percentage width, fixed width\n } else {\n\n if (fixedWidth) {\n var cell = fixedWidth + gutter;\n if (center || edgePadding) {\n start = Math.floor(rangestart/cell);\n end = Math.ceil(rangeend/cell - 1);\n } else {\n end = start + Math.ceil(viewport/cell) - 1;\n }\n\n } else {\n if (center || edgePadding) {\n var a = items - 1;\n if (center) {\n start -= a / 2;\n end = index + a / 2;\n } else {\n end = index + a;\n }\n\n if (edgePadding) {\n var b = edgePadding * items / viewport;\n start -= b;\n end += b;\n }\n\n start = Math.floor(start);\n end = Math.ceil(end);\n } else {\n end = start + items - 1;\n }\n }\n\n start = Math.max(start, 0);\n end = Math.min(end, slideCountNew - 1);\n }\n\n return [start, end];\n }\n\n function doLazyLoad () {\n if (lazyload && !disable) {\n var arg = getVisibleSlideRange();\n arg.push(lazyloadSelector);\n\n getImageArray.apply(null, arg).forEach(function (img) {\n if (!hasClass(img, imgCompleteClass)) {\n // stop propagation transitionend event to container\n var eve = {};\n eve[TRANSITIONEND] = function (e) { e.stopPropagation(); };\n addEvents(img, eve);\n\n addEvents(img, imgEvents);\n\n // update src\n img.src = getAttr(img, 'data-src');\n\n // update srcset\n var srcset = getAttr(img, 'data-srcset');\n if (srcset) { img.srcset = srcset; }\n\n addClass(img, 'loading');\n }\n });\n }\n }\n\n function onImgLoaded (e) {\n imgLoaded(getTarget(e));\n }\n\n function onImgFailed (e) {\n imgFailed(getTarget(e));\n }\n\n function imgLoaded (img) {\n addClass(img, 'loaded');\n imgCompleted(img);\n }\n\n function imgFailed (img) {\n addClass(img, 'failed');\n imgCompleted(img);\n }\n\n function imgCompleted (img) {\n addClass(img, imgCompleteClass);\n removeClass(img, 'loading');\n removeEvents(img, imgEvents);\n }\n\n function getImageArray (start, end, imgSelector) {\n var imgs = [];\n if (!imgSelector) { imgSelector = 'img'; }\n\n while (start <= end) {\n forEach(slideItems[start].querySelectorAll(imgSelector), function (img) { imgs.push(img); });\n start++;\n }\n\n return imgs;\n }\n\n // check if all visible images are loaded\n // and update container height if it's done\n function doAutoHeight () {\n var imgs = getImageArray.apply(null, getVisibleSlideRange());\n raf(function(){ imgsLoadedCheck(imgs, updateInnerWrapperHeight); });\n }\n\n function imgsLoadedCheck (imgs, cb) {\n // execute callback function if all images are complete\n if (imgsComplete) { return cb(); }\n\n // check image classes\n imgs.forEach(function (img, index) {\n if (!lazyload && img.complete) { imgCompleted(img); } // Check image.complete\n if (hasClass(img, imgCompleteClass)) { imgs.splice(index, 1); }\n });\n\n // execute callback function if selected images are all complete\n if (!imgs.length) { return cb(); }\n\n // otherwise execute this functiona again\n raf(function(){ imgsLoadedCheck(imgs, cb); });\n }\n\n function additionalUpdates () {\n doLazyLoad();\n updateSlideStatus();\n updateLiveRegion();\n updateControlsStatus();\n updateNavStatus();\n }\n\n\n function update_carousel_transition_duration () {\n if (carousel && autoHeight) {\n middleWrapper.style[TRANSITIONDURATION] = speed / 1000 + 's';\n }\n }\n\n function getMaxSlideHeight (slideStart, slideRange) {\n var heights = [];\n for (var i = slideStart, l = Math.min(slideStart + slideRange, slideCountNew); i < l; i++) {\n heights.push(slideItems[i].offsetHeight);\n }\n\n return Math.max.apply(null, heights);\n }\n\n // update inner wrapper height\n // 1. get the max-height of the visible slides\n // 2. set transitionDuration to speed\n // 3. update inner wrapper height to max-height\n // 4. set transitionDuration to 0s after transition done\n function updateInnerWrapperHeight () {\n var maxHeight = autoHeight ? getMaxSlideHeight(index, items) : getMaxSlideHeight(cloneCount, slideCount),\n wp = middleWrapper ? middleWrapper : innerWrapper;\n\n if (wp.style.height !== maxHeight) { wp.style.height = maxHeight + 'px'; }\n }\n\n // get the distance from the top edge of the first slide to each slide\n // (init) => slidePositions\n function setSlidePositions () {\n slidePositions = [0];\n var attr = horizontal ? 'left' : 'top',\n attr2 = horizontal ? 'right' : 'bottom',\n base = slideItems[0].getBoundingClientRect()[attr];\n\n forEach(slideItems, function(item, i) {\n // skip the first slide\n if (i) { slidePositions.push(item.getBoundingClientRect()[attr] - base); }\n // add the end edge\n if (i === slideCountNew - 1) { slidePositions.push(item.getBoundingClientRect()[attr2] - base); }\n });\n }\n\n // update slide\n function updateSlideStatus () {\n var range = getVisibleSlideRange(),\n start = range[0],\n end = range[1];\n\n forEach(slideItems, function(item, i) {\n // show slides\n if (i >= start && i <= end) {\n if (hasAttr(item, 'aria-hidden')) {\n removeAttrs(item, ['aria-hidden', 'tabindex']);\n addClass(item, slideActiveClass);\n }\n // hide slides\n } else {\n if (!hasAttr(item, 'aria-hidden')) {\n setAttrs(item, {\n 'aria-hidden': 'true',\n 'tabindex': '-1'\n });\n removeClass(item, slideActiveClass);\n }\n }\n });\n }\n\n // gallery: update slide position\n function updateGallerySlidePositions () {\n var l = index + Math.min(slideCount, items);\n for (var i = slideCountNew; i--;) {\n var item = slideItems[i];\n\n if (i >= index && i < l) {\n // add transitions to visible slides when adjusting their positions\n addClass(item, 'tns-moving');\n\n item.style.left = (i - index) * 100 / items + '%';\n addClass(item, animateIn);\n removeClass(item, animateNormal);\n } else if (item.style.left) {\n item.style.left = '';\n addClass(item, animateNormal);\n removeClass(item, animateIn);\n }\n\n // remove outlet animation\n removeClass(item, animateOut);\n }\n\n // removing '.tns-moving'\n setTimeout(function() {\n forEach(slideItems, function(el) {\n removeClass(el, 'tns-moving');\n });\n }, 300);\n }\n\n // set tabindex on Nav\n function updateNavStatus () {\n // get current nav\n if (nav) {\n navCurrentIndex = navClicked >= 0 ? navClicked : getCurrentNavIndex();\n navClicked = -1;\n\n if (navCurrentIndex !== navCurrentIndexCached) {\n var navPrev = navItems[navCurrentIndexCached],\n navCurrent = navItems[navCurrentIndex];\n\n setAttrs(navPrev, {\n 'tabindex': '-1',\n 'aria-label': navStr + (navCurrentIndexCached + 1)\n });\n removeClass(navPrev, navActiveClass);\n\n setAttrs(navCurrent, {'aria-label': navStr + (navCurrentIndex + 1) + navStrCurrent});\n removeAttrs(navCurrent, 'tabindex');\n addClass(navCurrent, navActiveClass);\n\n navCurrentIndexCached = navCurrentIndex;\n }\n }\n }\n\n function getLowerCaseNodeName (el) {\n return el.nodeName.toLowerCase();\n }\n\n function isButton (el) {\n return getLowerCaseNodeName(el) === 'button';\n }\n\n function isAriaDisabled (el) {\n return el.getAttribute('aria-disabled') === 'true';\n }\n\n function disEnableElement (isButton, el, val) {\n if (isButton) {\n el.disabled = val;\n } else {\n el.setAttribute('aria-disabled', val.toString());\n }\n }\n\n // set 'disabled' to true on controls when reach the edges\n function updateControlsStatus () {\n if (!controls || rewind || loop) { return; }\n\n var prevDisabled = (prevIsButton) ? prevButton.disabled : isAriaDisabled(prevButton),\n nextDisabled = (nextIsButton) ? nextButton.disabled : isAriaDisabled(nextButton),\n disablePrev = (index <= indexMin) ? true : false,\n disableNext = (!rewind && index >= indexMax) ? true : false;\n\n if (disablePrev && !prevDisabled) {\n disEnableElement(prevIsButton, prevButton, true);\n }\n if (!disablePrev && prevDisabled) {\n disEnableElement(prevIsButton, prevButton, false);\n }\n if (disableNext && !nextDisabled) {\n disEnableElement(nextIsButton, nextButton, true);\n }\n if (!disableNext && nextDisabled) {\n disEnableElement(nextIsButton, nextButton, false);\n }\n }\n\n // set duration\n function resetDuration (el, str) {\n if (TRANSITIONDURATION) { el.style[TRANSITIONDURATION] = str; }\n }\n\n function getSliderWidth () {\n return fixedWidth ? (fixedWidth + gutter) * slideCountNew : slidePositions[slideCountNew];\n }\n\n function getCenterGap (num) {\n if (num == null) { num = index; }\n\n var gap = edgePadding ? gutter : 0;\n return autoWidth ? ((viewport - gap) - (slidePositions[num + 1] - slidePositions[num] - gutter))/2 :\n fixedWidth ? (viewport - fixedWidth) / 2 :\n (items - 1) / 2;\n }\n\n function getRightBoundary () {\n var gap = edgePadding ? gutter : 0,\n result = (viewport + gap) - getSliderWidth();\n\n if (center && !loop) {\n result = fixedWidth ? - (fixedWidth + gutter) * (slideCountNew - 1) - getCenterGap() :\n getCenterGap(slideCountNew - 1) - slidePositions[slideCountNew - 1];\n }\n if (result > 0) { result = 0; }\n\n return result;\n }\n\n function getContainerTransformValue (num) {\n if (num == null) { num = index; }\n\n var val;\n if (horizontal && !autoWidth) {\n if (fixedWidth) {\n val = - (fixedWidth + gutter) * num;\n if (center) { val += getCenterGap(); }\n } else {\n var denominator = TRANSFORM ? slideCountNew : items;\n if (center) { num -= getCenterGap(); }\n val = - num * 100 / denominator;\n }\n } else {\n val = - slidePositions[num];\n if (center && autoWidth) {\n val += getCenterGap();\n }\n }\n\n if (hasRightDeadZone) { val = Math.max(val, rightBoundary); }\n\n val += (horizontal && !autoWidth && !fixedWidth) ? '%' : 'px';\n\n return val;\n }\n\n function doContainerTransformSilent (val) {\n resetDuration(container, '0s');\n doContainerTransform(val);\n }\n\n function doContainerTransform (val) {\n if (val == null) { val = getContainerTransformValue(); }\n container.style[transformAttr] = transformPrefix + val + transformPostfix;\n }\n\n function animateSlide (number, classOut, classIn, isOut) {\n var l = number + items;\n if (!loop) { l = Math.min(l, slideCountNew); }\n\n for (var i = number; i < l; i++) {\n var item = slideItems[i];\n\n // set item positions\n if (!isOut) { item.style.left = (i - index) * 100 / items + '%'; }\n\n if (animateDelay && TRANSITIONDELAY) {\n item.style[TRANSITIONDELAY] = item.style[ANIMATIONDELAY] = animateDelay * (i - number) / 1000 + 's';\n }\n removeClass(item, classOut);\n addClass(item, classIn);\n\n if (isOut) { slideItemsOut.push(item); }\n }\n }\n\n // make transfer after click/drag:\n // 1. change 'transform' property for mordern browsers\n // 2. change 'left' property for legacy browsers\n var transformCore = (function () {\n return carousel ?\n function () {\n resetDuration(container, '');\n if (TRANSITIONDURATION || !speed) {\n // for morden browsers with non-zero duration or\n // zero duration for all browsers\n doContainerTransform();\n // run fallback function manually\n // when duration is 0 / container is hidden\n if (!speed || !isVisible(container)) { onTransitionEnd(); }\n\n } else {\n // for old browser with non-zero duration\n jsTransform(container, transformAttr, transformPrefix, transformPostfix, getContainerTransformValue(), speed, onTransitionEnd);\n }\n\n if (!horizontal) { updateContentWrapperHeight(); }\n } :\n function () {\n slideItemsOut = [];\n\n var eve = {};\n eve[TRANSITIONEND] = eve[ANIMATIONEND] = onTransitionEnd;\n removeEvents(slideItems[indexCached], eve);\n addEvents(slideItems[index], eve);\n\n animateSlide(indexCached, animateIn, animateOut, true);\n animateSlide(index, animateNormal, animateIn);\n\n // run fallback function manually\n // when transition or animation not supported / duration is 0\n if (!TRANSITIONEND || !ANIMATIONEND || !speed || !isVisible(container)) { onTransitionEnd(); }\n };\n })();\n\n function render (e, sliderMoved) {\n if (updateIndexBeforeTransform) { updateIndex(); }\n\n // render when slider was moved (touch or drag) even though index may not change\n if (index !== indexCached || sliderMoved) {\n // events\n events.emit('indexChanged', info());\n events.emit('transitionStart', info());\n if (autoHeight) { doAutoHeight(); }\n\n // pause autoplay when click or keydown from user\n if (animating && e && ['click', 'keydown'].indexOf(e.type) >= 0) { stopAutoplay(); }\n\n running = true;\n transformCore();\n }\n }\n\n /*\n * Transfer prefixed properties to the same format\n * CSS: -Webkit-Transform => webkittransform\n * JS: WebkitTransform => webkittransform\n * @param {string} str - property\n *\n */\n function strTrans (str) {\n return str.toLowerCase().replace(/-/g, '');\n }\n\n // AFTER TRANSFORM\n // Things need to be done after a transfer:\n // 1. check index\n // 2. add classes to visible slide\n // 3. disable controls buttons when reach the first/last slide in non-loop slider\n // 4. update nav status\n // 5. lazyload images\n // 6. update container height\n function onTransitionEnd (event) {\n // check running on gallery mode\n // make sure trantionend/animationend events run only once\n if (carousel || running) {\n events.emit('transitionEnd', info(event));\n\n if (!carousel && slideItemsOut.length > 0) {\n for (var i = 0; i < slideItemsOut.length; i++) {\n var item = slideItemsOut[i];\n // set item positions\n item.style.left = '';\n\n if (ANIMATIONDELAY && TRANSITIONDELAY) {\n item.style[ANIMATIONDELAY] = '';\n item.style[TRANSITIONDELAY] = '';\n }\n removeClass(item, animateOut);\n addClass(item, animateNormal);\n }\n }\n\n /* update slides, nav, controls after checking ...\n * => legacy browsers who don't support 'event'\n * have to check event first, otherwise event.target will cause an error\n * => or 'gallery' mode:\n * + event target is slide item\n * => or 'carousel' mode:\n * + event target is container,\n * + event.property is the same with transform attribute\n */\n if (!event ||\n !carousel && event.target.parentNode === container ||\n event.target === container && strTrans(event.propertyName) === strTrans(transformAttr)) {\n\n if (!updateIndexBeforeTransform) {\n var indexTem = index;\n updateIndex();\n if (index !== indexTem) {\n events.emit('indexChanged', info());\n\n doContainerTransformSilent();\n }\n }\n\n if (nested === 'inner') { events.emit('innerLoaded', info()); }\n running = false;\n indexCached = index;\n }\n }\n\n }\n\n // # ACTIONS\n function goTo (targetIndex, e) {\n if (freeze) { return; }\n\n // prev slideBy\n if (targetIndex === 'prev') {\n onControlsClick(e, -1);\n\n // next slideBy\n } else if (targetIndex === 'next') {\n onControlsClick(e, 1);\n\n // go to exact slide\n } else {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n var absIndex = getAbsIndex(),\n indexGap = 0;\n\n if (targetIndex === 'first') {\n indexGap = - absIndex;\n } else if (targetIndex === 'last') {\n indexGap = carousel ? slideCount - items - absIndex : slideCount - 1 - absIndex;\n } else {\n if (typeof targetIndex !== 'number') { targetIndex = parseInt(targetIndex); }\n\n if (!isNaN(targetIndex)) {\n // from directly called goTo function\n if (!e) { targetIndex = Math.max(0, Math.min(slideCount - 1, targetIndex)); }\n\n indexGap = targetIndex - absIndex;\n }\n }\n\n // gallery: make sure new page won't overlap with current page\n if (!carousel && indexGap && Math.abs(indexGap) < items) {\n var factor = indexGap > 0 ? 1 : -1;\n indexGap += (index + indexGap - slideCount) >= indexMin ? slideCount * factor : slideCount * 2 * factor * -1;\n }\n\n index += indexGap;\n\n // make sure index is in range\n if (carousel && loop) {\n if (index < indexMin) { index += slideCount; }\n if (index > indexMax) { index -= slideCount; }\n }\n\n // if index is changed, start rendering\n if (getAbsIndex(index) !== getAbsIndex(indexCached)) {\n render(e);\n }\n\n }\n }\n\n // on controls click\n function onControlsClick (e, dir) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n var passEventObject;\n\n if (!dir) {\n e = getEvent(e);\n var target = getTarget(e);\n\n while (target !== controlsContainer && [prevButton, nextButton].indexOf(target) < 0) { target = target.parentNode; }\n\n var targetIn = [prevButton, nextButton].indexOf(target);\n if (targetIn >= 0) {\n passEventObject = true;\n dir = targetIn === 0 ? -1 : 1;\n }\n }\n\n if (rewind) {\n if (index === indexMin && dir === -1) {\n goTo('last', e);\n return;\n } else if (index === indexMax && dir === 1) {\n goTo('first', e);\n return;\n }\n }\n\n if (dir) {\n index += slideBy * dir;\n if (autoWidth) { index = Math.floor(index); }\n // pass e when click control buttons or keydown\n render((passEventObject || (e && e.type === 'keydown')) ? e : null);\n }\n }\n\n // on nav click\n function onNavClick (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n e = getEvent(e);\n var target = getTarget(e), navIndex;\n\n // find the clicked nav item\n while (target !== navContainer && !hasAttr(target, 'data-nav')) { target = target.parentNode; }\n if (hasAttr(target, 'data-nav')) {\n var navIndex = navClicked = Number(getAttr(target, 'data-nav')),\n targetIndexBase = fixedWidth || autoWidth ? navIndex * slideCount / pages : navIndex * items,\n targetIndex = navAsThumbnails ? navIndex : Math.min(Math.ceil(targetIndexBase), slideCount - 1);\n goTo(targetIndex, e);\n\n if (navCurrentIndex === navIndex) {\n if (animating) { stopAutoplay(); }\n navClicked = -1; // reset navClicked\n }\n }\n }\n\n // autoplay functions\n function setAutoplayTimer () {\n autoplayTimer = setInterval(function () {\n onControlsClick(null, autoplayDirection);\n }, autoplayTimeout);\n\n animating = true;\n }\n\n function stopAutoplayTimer () {\n clearInterval(autoplayTimer);\n animating = false;\n }\n\n function updateAutoplayButton (action, txt) {\n setAttrs(autoplayButton, {'data-action': action});\n autoplayButton.innerHTML = autoplayHtmlStrings[0] + action + autoplayHtmlStrings[1] + txt;\n }\n\n function startAutoplay () {\n setAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('stop', autoplayText[1]); }\n }\n\n function stopAutoplay () {\n stopAutoplayTimer();\n if (autoplayButton) { updateAutoplayButton('start', autoplayText[0]); }\n }\n\n // programaitcally play/pause the slider\n function play () {\n if (autoplay && !animating) {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n function pause () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n }\n }\n\n function toggleAutoplay () {\n if (animating) {\n stopAutoplay();\n autoplayUserPaused = true;\n } else {\n startAutoplay();\n autoplayUserPaused = false;\n }\n }\n\n function onVisibilityChange () {\n if (doc.hidden) {\n if (animating) {\n stopAutoplayTimer();\n autoplayVisibilityPaused = true;\n }\n } else if (autoplayVisibilityPaused) {\n setAutoplayTimer();\n autoplayVisibilityPaused = false;\n }\n }\n\n function mouseoverPause () {\n if (animating) {\n stopAutoplayTimer();\n autoplayHoverPaused = true;\n }\n }\n\n function mouseoutRestart () {\n if (autoplayHoverPaused) {\n setAutoplayTimer();\n autoplayHoverPaused = false;\n }\n }\n\n // keydown events on document\n function onDocumentKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n onControlsClick(e, keyIndex === 0 ? -1 : 1);\n }\n }\n\n // on key control\n function onControlsKeydown (e) {\n e = getEvent(e);\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT].indexOf(e.keyCode);\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (!prevButton.disabled) { onControlsClick(e, -1); }\n } else if (!nextButton.disabled) {\n onControlsClick(e, 1);\n }\n }\n }\n\n // set focus\n function setFocus (el) {\n el.focus();\n }\n\n // on key nav\n function onNavKeydown (e) {\n e = getEvent(e);\n var curElement = doc.activeElement;\n if (!hasAttr(curElement, 'data-nav')) { return; }\n\n // var code = e.keyCode,\n var keyIndex = [KEYS.LEFT, KEYS.RIGHT, KEYS.ENTER, KEYS.SPACE].indexOf(e.keyCode),\n navIndex = Number(getAttr(curElement, 'data-nav'));\n\n if (keyIndex >= 0) {\n if (keyIndex === 0) {\n if (navIndex > 0) { setFocus(navItems[navIndex - 1]); }\n } else if (keyIndex === 1) {\n if (navIndex < pages - 1) { setFocus(navItems[navIndex + 1]); }\n } else {\n navClicked = navIndex;\n goTo(navIndex, e);\n }\n }\n }\n\n function getEvent (e) {\n e = e || win.event;\n return isTouchEvent(e) ? e.changedTouches[0] : e;\n }\n function getTarget (e) {\n return e.target || win.event.srcElement;\n }\n\n function isTouchEvent (e) {\n return e.type.indexOf('touch') >= 0;\n }\n\n function preventDefaultBehavior (e) {\n e.preventDefault ? e.preventDefault() : e.returnValue = false;\n }\n\n function getMoveDirectionExpected () {\n return getTouchDirection(toDegree(lastPosition.y - initPosition.y, lastPosition.x - initPosition.x), swipeAngle) === options.axis;\n }\n\n function onPanStart (e) {\n if (running) {\n if (preventActionWhenRunning) { return; } else { onTransitionEnd(); }\n }\n\n if (autoplay && animating) { stopAutoplayTimer(); }\n\n panStart = true;\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n\n var $ = getEvent(e);\n events.emit(isTouchEvent(e) ? 'touchStart' : 'dragStart', info(e));\n\n if (!isTouchEvent(e) && ['img', 'a'].indexOf(getLowerCaseNodeName(getTarget(e))) >= 0) {\n preventDefaultBehavior(e);\n }\n\n lastPosition.x = initPosition.x = $.clientX;\n lastPosition.y = initPosition.y = $.clientY;\n if (carousel) {\n translateInit = parseFloat(container.style[transformAttr].replace(transformPrefix, ''));\n resetDuration(container, '0s');\n }\n }\n\n function onPanMove (e) {\n if (panStart) {\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n\n if (carousel) {\n if (!rafIndex) { rafIndex = raf(function(){ panUpdate(e); }); }\n } else {\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) { preventScroll = true; }\n }\n\n if ((typeof e.cancelable !== 'boolean' || e.cancelable) && preventScroll) {\n e.preventDefault();\n }\n }\n }\n\n function panUpdate (e) {\n if (!moveDirectionExpected) {\n panStart = false;\n return;\n }\n caf(rafIndex);\n if (panStart) { rafIndex = raf(function(){ panUpdate(e); }); }\n\n if (moveDirectionExpected === '?') { moveDirectionExpected = getMoveDirectionExpected(); }\n if (moveDirectionExpected) {\n if (!preventScroll && isTouchEvent(e)) { preventScroll = true; }\n\n try {\n if (e.type) { events.emit(isTouchEvent(e) ? 'touchMove' : 'dragMove', info(e)); }\n } catch(err) {}\n\n var x = translateInit,\n dist = getDist(lastPosition, initPosition);\n if (!horizontal || fixedWidth || autoWidth) {\n x += dist;\n x += 'px';\n } else {\n var percentageX = TRANSFORM ? dist * items * 100 / ((viewport + gutter) * slideCountNew): dist * 100 / (viewport + gutter);\n x += percentageX;\n x += '%';\n }\n\n container.style[transformAttr] = transformPrefix + x + transformPostfix;\n }\n }\n\n function onPanEnd (e) {\n if (panStart) {\n if (rafIndex) {\n caf(rafIndex);\n rafIndex = null;\n }\n if (carousel) { resetDuration(container, ''); }\n panStart = false;\n\n var $ = getEvent(e);\n lastPosition.x = $.clientX;\n lastPosition.y = $.clientY;\n var dist = getDist(lastPosition, initPosition);\n\n if (Math.abs(dist)) {\n // drag vs click\n if (!isTouchEvent(e)) {\n // prevent \"click\"\n var target = getTarget(e);\n addEvents(target, {'click': function preventClick (e) {\n preventDefaultBehavior(e);\n removeEvents(target, {'click': preventClick});\n }});\n }\n\n if (carousel) {\n rafIndex = raf(function() {\n if (horizontal && !autoWidth) {\n var indexMoved = - dist * items / (viewport + gutter);\n indexMoved = dist > 0 ? Math.floor(indexMoved) : Math.ceil(indexMoved);\n index += indexMoved;\n } else {\n var moved = - (translateInit + dist);\n if (moved <= 0) {\n index = indexMin;\n } else if (moved >= slidePositions[slideCountNew - 1]) {\n index = indexMax;\n } else {\n var i = 0;\n while (i < slideCountNew && moved >= slidePositions[i]) {\n index = i;\n if (moved > slidePositions[i] && dist < 0) { index += 1; }\n i++;\n }\n }\n }\n\n render(e, dist);\n events.emit(isTouchEvent(e) ? 'touchEnd' : 'dragEnd', info(e));\n });\n } else {\n if (moveDirectionExpected) {\n onControlsClick(e, dist > 0 ? -1 : 1);\n }\n }\n }\n }\n\n // reset\n if (options.preventScrollOnTouch === 'auto') { preventScroll = false; }\n if (swipeAngle) { moveDirectionExpected = '?'; }\n if (autoplay && !animating) { setAutoplayTimer(); }\n }\n\n // === RESIZE FUNCTIONS === //\n // (slidePositions, index, items) => vertical_conentWrapper.height\n function updateContentWrapperHeight () {\n var wp = middleWrapper ? middleWrapper : innerWrapper;\n wp.style.height = slidePositions[index + items] - slidePositions[index] + 'px';\n }\n\n function getPages () {\n var rough = fixedWidth ? (fixedWidth + gutter) * slideCount / viewport : slideCount / items;\n return Math.min(Math.ceil(rough), slideCount);\n }\n\n /*\n * 1. update visible nav items list\n * 2. add \"hidden\" attributes to previous visible nav items\n * 3. remove \"hidden\" attrubutes to new visible nav items\n */\n function updateNavVisibility () {\n if (!nav || navAsThumbnails) { return; }\n\n if (pages !== pagesCached) {\n var min = pagesCached,\n max = pages,\n fn = showElement;\n\n if (pagesCached > pages) {\n min = pages;\n max = pagesCached;\n fn = hideElement;\n }\n\n while (min < max) {\n fn(navItems[min]);\n min++;\n }\n\n // cache pages\n pagesCached = pages;\n }\n }\n\n function info (e) {\n return {\n container: container,\n slideItems: slideItems,\n navContainer: navContainer,\n navItems: navItems,\n controlsContainer: controlsContainer,\n hasControls: hasControls,\n prevButton: prevButton,\n nextButton: nextButton,\n items: items,\n slideBy: slideBy,\n cloneCount: cloneCount,\n slideCount: slideCount,\n slideCountNew: slideCountNew,\n index: index,\n indexCached: indexCached,\n displayIndex: getCurrentSlide(),\n navCurrentIndex: navCurrentIndex,\n navCurrentIndexCached: navCurrentIndexCached,\n pages: pages,\n pagesCached: pagesCached,\n sheet: sheet,\n isOn: isOn,\n event: e || {},\n };\n }\n\n return {\n version: '2.9.4',\n getInfo: info,\n events: events,\n goTo: goTo,\n play: play,\n pause: pause,\n isOn: isOn,\n updateSliderHeight: updateInnerWrapperHeight,\n refresh: initSliderTransform,\n destroy: destroy,\n rebuild: function() {\n return tns(extend(options, optionsElements));\n }\n };\n};\n","export function getAttr(el, attr) {\n return el.getAttribute(attr);\n}","export function isNodeList(el) {\n // Only NodeList has the \"item()\" function\n return typeof el.item !== \"undefined\"; \n}","// Test via a getter in the options object to see if the passive property is accessed\nvar supportsPassive = false;\ntry {\n var opts = Object.defineProperty({}, 'passive', {\n get: function() {\n supportsPassive = true;\n }\n });\n window.addEventListener(\"test\", null, opts);\n} catch (e) {}\nexport var passiveOption = supportsPassive ? { passive: true } : false;","var win = window;\n\nexport var caf = win.cancelAnimationFrame\n || win.mozCancelAnimationFrame\n || function(id){ clearTimeout(id); };\n","export function extend() {\n var obj, name, copy,\n target = arguments[0] || {},\n i = 1,\n length = arguments.length;\n\n for (; i < length; i++) {\n if ((obj = arguments[i]) !== null) {\n for (name in obj) {\n copy = obj[name];\n\n if (target === copy) {\n continue;\n } else if (copy !== undefined) {\n target[name] = copy;\n }\n }\n }\n }\n return target;\n}","/**\n * FAQ component\n */\n\nconst Accordion = (options = {\n faqContainer: document.querySelector('.accordion'),\n headingSelector: '.accordion__item-head',\n contentSelector: '.accordion__item-text',\n faqItemsSelector: '.accordion__item',\n contentWrapperSelector: '.accordion__item-hidden',\n}) => {\n const heightContent = (item) => {\n return item.querySelector(options.contentSelector).offsetHeight;\n };\n\n const openFaqContent = (event) => {\n const parent = event.target.parentNode;\n\n if (parent.classList.contains('open')) {\n parent.classList.remove('open');\n parent.querySelector(options.contentWrapperSelector).style.height = '0px';\n } else {\n parent.classList.add('open');\n parent.querySelector(options.contentWrapperSelector).style.height = `${heightContent(parent)}px`;\n }\n };\n\n if (options.faqContainer) {\n const faqItems = document.querySelectorAll(options.faqItemsSelector);\n [...faqItems].forEach((i) => {\n const heading = i.querySelector(options.headingSelector);\n if (heading.parentNode.classList.contains('open')) {\n heading.parentNode.querySelector(options.contentWrapperSelector).style.height = `${heightContent(heading.parentNode)}px`;\n }\n heading.addEventListener('click', openFaqContent, false);\n });\n }\n};\n\nexport default Accordion;\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","export function hasParent(el, parent, stopEl) {\n if (el.parentNode === document.documentElement || el.parentNode.matches(stopEl)) return false;\n\n if (el.parentNode.matches(parent)) {\n return true;\n } else {\n hasParent(el.parentNode, parent);\n }\n};\n\n\nexport function formatDate(unformattedDate) {\n var deliveredDate = new Date,\n today = new Date,\n MILLISECONDS_IN_ONE_DAY = 24 * 60 * 60 * 1000;\n\n deliveredDate.setTime(Date.parse(unformattedDate));\n today = new Date(today.getFullYear(), today.getMonth(), today.getDate()).valueOf();\n\n if (deliveredDate < today - MILLISECONDS_IN_ONE_DAY) {\n return dateToYMD(deliveredDate);\n } else if (deliveredDate < today) {\n return 'Yesterday';\n } else {\n return 'Today';\n }\n}\n\n\nfunction dateToYMD(date) {\n const d = new Date(date);\n const year = d.getFullYear();\n\n let month = `${(d.getMonth() + 1)}`;\n let day = `${d.getDate()}`;\n\n\n if (month.length < 2) month = `0${month}`;\n if (day.length < 2) day = `0${day}`;\n\n return [year, month, day].join('-');\n}\n\nexport function is_touch_device() {\n var prefixes = ' -webkit- -moz- -o- -ms- '.split(' ');\n var mq = function (query) {\n return window.matchMedia(query).matches;\n }\n\n if (('ontouchstart' in window) || window.DocumentTouch && document instanceof DocumentTouch) {\n return true;\n }\n\n var query = ['(', prefixes.join('touch-enabled),('), 'heartz', ')'].join('');\n return mq(query);\n}\n\nexport const getCookie = (name) => {\n const matches = document.cookie.match(new RegExp(\n `(?:^|; )${`${name}`.replace(/([\\.$?*|{}\\(\\)\\[\\]\\\\\\/\\+^])/g, '\\\\$1')}=([^;]*)`,\n ));\n return matches ? decodeURIComponent(matches[1]) : undefined;\n};\n","export function arrayFromNodeList (nl) {\n var arr = [];\n for (var i = 0, l = nl.length; i < l; i++) {\n arr.push(nl[i]);\n }\n return arr;\n}","export function isVisible(el) {\n return window.getComputedStyle(el).display !== 'none';\n}","// get transitionend, animationend based on transitionDuration\n// @propin: string\n// @propOut: string, first-letter uppercase\n// Usage: getEndProperty('WebkitTransitionDuration', 'Transition') => webkitTransitionEnd\nexport function getEndProperty(propIn, propOut) {\n var endProp = false;\n if (/^Webkit/.test(propIn)) {\n endProp = 'webkit' + propOut + 'End';\n } else if (/^O/.test(propIn)) {\n endProp = 'o' + propOut + 'End';\n } else if (propIn) {\n endProp = propOut.toLowerCase() + 'end';\n }\n return endProp;\n}","/*global window, global*/\nvar util = require(\"util\")\nvar assert = require(\"assert\")\nfunction now() { return new Date().getTime() }\n\nvar slice = Array.prototype.slice\nvar console\nvar times = {}\n\nif (typeof global !== \"undefined\" && global.console) {\n console = global.console\n} else if (typeof window !== \"undefined\" && window.console) {\n console = window.console\n} else {\n console = {}\n}\n\nvar functions = [\n [log, \"log\"],\n [info, \"info\"],\n [warn, \"warn\"],\n [error, \"error\"],\n [time, \"time\"],\n [timeEnd, \"timeEnd\"],\n [trace, \"trace\"],\n [dir, \"dir\"],\n [consoleAssert, \"assert\"]\n]\n\nfor (var i = 0; i < functions.length; i++) {\n var tuple = functions[i]\n var f = tuple[0]\n var name = tuple[1]\n\n if (!console[name]) {\n console[name] = f\n }\n}\n\nmodule.exports = console\n\nfunction log() {}\n\nfunction info() {\n console.log.apply(console, arguments)\n}\n\nfunction warn() {\n console.log.apply(console, arguments)\n}\n\nfunction error() {\n console.warn.apply(console, arguments)\n}\n\nfunction time(label) {\n times[label] = now()\n}\n\nfunction timeEnd(label) {\n var time = times[label]\n if (!time) {\n throw new Error(\"No such label: \" + label)\n }\n\n delete times[label]\n var duration = now() - time\n console.log(label + \": \" + duration + \"ms\")\n}\n\nfunction trace() {\n var err = new Error()\n err.name = \"Trace\"\n err.message = util.format.apply(null, arguments)\n console.error(err.stack)\n}\n\nfunction dir(object) {\n console.log(util.inspect(object) + \"\\n\")\n}\n\nfunction consoleAssert(expression) {\n if (!expression) {\n var arr = slice.call(arguments, 1)\n assert.ok(false, util.format.apply(null, arr))\n }\n}\n","var g;\n\n// This works in non-strict mode\ng = (function() {\n\treturn this;\n})();\n\ntry {\n\t// This works if eval is allowed (see CSP)\n\tg = g || new Function(\"return this\")();\n} catch (e) {\n\t// This works if the window reference is available\n\tif (typeof window === \"object\") g = window;\n}\n\n// g can still be undefined, but nothing to do about it...\n// We return undefined, instead of nothing here, so it's\n// easier to handle this case. if(!global) { ...}\n\nmodule.exports = g;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\nvar getOwnPropertyDescriptors = Object.getOwnPropertyDescriptors ||\n function getOwnPropertyDescriptors(obj) {\n var keys = Object.keys(obj);\n var descriptors = {};\n for (var i = 0; i < keys.length; i++) {\n descriptors[keys[i]] = Object.getOwnPropertyDescriptor(obj, keys[i]);\n }\n return descriptors;\n };\n\nvar formatRegExp = /%[sdj%]/g;\nexports.format = function(f) {\n if (!isString(f)) {\n var objects = [];\n for (var i = 0; i < arguments.length; i++) {\n objects.push(inspect(arguments[i]));\n }\n return objects.join(' ');\n }\n\n var i = 1;\n var args = arguments;\n var len = args.length;\n var str = String(f).replace(formatRegExp, function(x) {\n if (x === '%%') return '%';\n if (i >= len) return x;\n switch (x) {\n case '%s': return String(args[i++]);\n case '%d': return Number(args[i++]);\n case '%j':\n try {\n return JSON.stringify(args[i++]);\n } catch (_) {\n return '[Circular]';\n }\n default:\n return x;\n }\n });\n for (var x = args[i]; i < len; x = args[++i]) {\n if (isNull(x) || !isObject(x)) {\n str += ' ' + x;\n } else {\n str += ' ' + inspect(x);\n }\n }\n return str;\n};\n\n\n// Mark that a method should not be used.\n// Returns a modified function which warns once by default.\n// If --no-deprecation is set, then it is a no-op.\nexports.deprecate = function(fn, msg) {\n if (typeof process !== 'undefined' && process.noDeprecation === true) {\n return fn;\n }\n\n // Allow for deprecating things in the process of starting up.\n if (typeof process === 'undefined') {\n return function() {\n return exports.deprecate(fn, msg).apply(this, arguments);\n };\n }\n\n var warned = false;\n function deprecated() {\n if (!warned) {\n if (process.throwDeprecation) {\n throw new Error(msg);\n } else if (process.traceDeprecation) {\n console.trace(msg);\n } else {\n console.error(msg);\n }\n warned = true;\n }\n return fn.apply(this, arguments);\n }\n\n return deprecated;\n};\n\n\nvar debugs = {};\nvar debugEnviron;\nexports.debuglog = function(set) {\n if (isUndefined(debugEnviron))\n debugEnviron = process.env.NODE_DEBUG || '';\n set = set.toUpperCase();\n if (!debugs[set]) {\n if (new RegExp('\\\\b' + set + '\\\\b', 'i').test(debugEnviron)) {\n var pid = process.pid;\n debugs[set] = function() {\n var msg = exports.format.apply(exports, arguments);\n console.error('%s %d: %s', set, pid, msg);\n };\n } else {\n debugs[set] = function() {};\n }\n }\n return debugs[set];\n};\n\n\n/**\n * Echos the value of a value. Trys to print the value out\n * in the best way possible given the different types.\n *\n * @param {Object} obj The object to print out.\n * @param {Object} opts Optional options object that alters the output.\n */\n/* legacy: obj, showHidden, depth, colors*/\nfunction inspect(obj, opts) {\n // default options\n var ctx = {\n seen: [],\n stylize: stylizeNoColor\n };\n // legacy...\n if (arguments.length >= 3) ctx.depth = arguments[2];\n if (arguments.length >= 4) ctx.colors = arguments[3];\n if (isBoolean(opts)) {\n // legacy...\n ctx.showHidden = opts;\n } else if (opts) {\n // got an \"options\" object\n exports._extend(ctx, opts);\n }\n // set default options\n if (isUndefined(ctx.showHidden)) ctx.showHidden = false;\n if (isUndefined(ctx.depth)) ctx.depth = 2;\n if (isUndefined(ctx.colors)) ctx.colors = false;\n if (isUndefined(ctx.customInspect)) ctx.customInspect = true;\n if (ctx.colors) ctx.stylize = stylizeWithColor;\n return formatValue(ctx, obj, ctx.depth);\n}\nexports.inspect = inspect;\n\n\n// http://en.wikipedia.org/wiki/ANSI_escape_code#graphics\ninspect.colors = {\n 'bold' : [1, 22],\n 'italic' : [3, 23],\n 'underline' : [4, 24],\n 'inverse' : [7, 27],\n 'white' : [37, 39],\n 'grey' : [90, 39],\n 'black' : [30, 39],\n 'blue' : [34, 39],\n 'cyan' : [36, 39],\n 'green' : [32, 39],\n 'magenta' : [35, 39],\n 'red' : [31, 39],\n 'yellow' : [33, 39]\n};\n\n// Don't use 'blue' not visible on cmd.exe\ninspect.styles = {\n 'special': 'cyan',\n 'number': 'yellow',\n 'boolean': 'yellow',\n 'undefined': 'grey',\n 'null': 'bold',\n 'string': 'green',\n 'date': 'magenta',\n // \"name\": intentionally not styling\n 'regexp': 'red'\n};\n\n\nfunction stylizeWithColor(str, styleType) {\n var style = inspect.styles[styleType];\n\n if (style) {\n return '\\u001b[' + inspect.colors[style][0] + 'm' + str +\n '\\u001b[' + inspect.colors[style][1] + 'm';\n } else {\n return str;\n }\n}\n\n\nfunction stylizeNoColor(str, styleType) {\n return str;\n}\n\n\nfunction arrayToHash(array) {\n var hash = {};\n\n array.forEach(function(val, idx) {\n hash[val] = true;\n });\n\n return hash;\n}\n\n\nfunction formatValue(ctx, value, recurseTimes) {\n // Provide a hook for user-specified inspect functions.\n // Check that value is an object with an inspect function on it\n if (ctx.customInspect &&\n value &&\n isFunction(value.inspect) &&\n // Filter out the util module, it's inspect function is special\n value.inspect !== exports.inspect &&\n // Also filter out any prototype objects using the circular check.\n !(value.constructor && value.constructor.prototype === value)) {\n var ret = value.inspect(recurseTimes, ctx);\n if (!isString(ret)) {\n ret = formatValue(ctx, ret, recurseTimes);\n }\n return ret;\n }\n\n // Primitive types cannot have properties\n var primitive = formatPrimitive(ctx, value);\n if (primitive) {\n return primitive;\n }\n\n // Look up the keys of the object.\n var keys = Object.keys(value);\n var visibleKeys = arrayToHash(keys);\n\n if (ctx.showHidden) {\n keys = Object.getOwnPropertyNames(value);\n }\n\n // IE doesn't make error fields non-enumerable\n // http://msdn.microsoft.com/en-us/library/ie/dww52sbt(v=vs.94).aspx\n if (isError(value)\n && (keys.indexOf('message') >= 0 || keys.indexOf('description') >= 0)) {\n return formatError(value);\n }\n\n // Some type of object without properties can be shortcutted.\n if (keys.length === 0) {\n if (isFunction(value)) {\n var name = value.name ? ': ' + value.name : '';\n return ctx.stylize('[Function' + name + ']', 'special');\n }\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n }\n if (isDate(value)) {\n return ctx.stylize(Date.prototype.toString.call(value), 'date');\n }\n if (isError(value)) {\n return formatError(value);\n }\n }\n\n var base = '', array = false, braces = ['{', '}'];\n\n // Make Array say that they are Array\n if (isArray(value)) {\n array = true;\n braces = ['[', ']'];\n }\n\n // Make functions say that they are functions\n if (isFunction(value)) {\n var n = value.name ? ': ' + value.name : '';\n base = ' [Function' + n + ']';\n }\n\n // Make RegExps say that they are RegExps\n if (isRegExp(value)) {\n base = ' ' + RegExp.prototype.toString.call(value);\n }\n\n // Make dates with properties first say the date\n if (isDate(value)) {\n base = ' ' + Date.prototype.toUTCString.call(value);\n }\n\n // Make error with message first say the error\n if (isError(value)) {\n base = ' ' + formatError(value);\n }\n\n if (keys.length === 0 && (!array || value.length == 0)) {\n return braces[0] + base + braces[1];\n }\n\n if (recurseTimes < 0) {\n if (isRegExp(value)) {\n return ctx.stylize(RegExp.prototype.toString.call(value), 'regexp');\n } else {\n return ctx.stylize('[Object]', 'special');\n }\n }\n\n ctx.seen.push(value);\n\n var output;\n if (array) {\n output = formatArray(ctx, value, recurseTimes, visibleKeys, keys);\n } else {\n output = keys.map(function(key) {\n return formatProperty(ctx, value, recurseTimes, visibleKeys, key, array);\n });\n }\n\n ctx.seen.pop();\n\n return reduceToSingleString(output, base, braces);\n}\n\n\nfunction formatPrimitive(ctx, value) {\n if (isUndefined(value))\n return ctx.stylize('undefined', 'undefined');\n if (isString(value)) {\n var simple = '\\'' + JSON.stringify(value).replace(/^\"|\"$/g, '')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"') + '\\'';\n return ctx.stylize(simple, 'string');\n }\n if (isNumber(value))\n return ctx.stylize('' + value, 'number');\n if (isBoolean(value))\n return ctx.stylize('' + value, 'boolean');\n // For some reason typeof null is \"object\", so special case here.\n if (isNull(value))\n return ctx.stylize('null', 'null');\n}\n\n\nfunction formatError(value) {\n return '[' + Error.prototype.toString.call(value) + ']';\n}\n\n\nfunction formatArray(ctx, value, recurseTimes, visibleKeys, keys) {\n var output = [];\n for (var i = 0, l = value.length; i < l; ++i) {\n if (hasOwnProperty(value, String(i))) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n String(i), true));\n } else {\n output.push('');\n }\n }\n keys.forEach(function(key) {\n if (!key.match(/^\\d+$/)) {\n output.push(formatProperty(ctx, value, recurseTimes, visibleKeys,\n key, true));\n }\n });\n return output;\n}\n\n\nfunction formatProperty(ctx, value, recurseTimes, visibleKeys, key, array) {\n var name, str, desc;\n desc = Object.getOwnPropertyDescriptor(value, key) || { value: value[key] };\n if (desc.get) {\n if (desc.set) {\n str = ctx.stylize('[Getter/Setter]', 'special');\n } else {\n str = ctx.stylize('[Getter]', 'special');\n }\n } else {\n if (desc.set) {\n str = ctx.stylize('[Setter]', 'special');\n }\n }\n if (!hasOwnProperty(visibleKeys, key)) {\n name = '[' + key + ']';\n }\n if (!str) {\n if (ctx.seen.indexOf(desc.value) < 0) {\n if (isNull(recurseTimes)) {\n str = formatValue(ctx, desc.value, null);\n } else {\n str = formatValue(ctx, desc.value, recurseTimes - 1);\n }\n if (str.indexOf('\\n') > -1) {\n if (array) {\n str = str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n').substr(2);\n } else {\n str = '\\n' + str.split('\\n').map(function(line) {\n return ' ' + line;\n }).join('\\n');\n }\n }\n } else {\n str = ctx.stylize('[Circular]', 'special');\n }\n }\n if (isUndefined(name)) {\n if (array && key.match(/^\\d+$/)) {\n return str;\n }\n name = JSON.stringify('' + key);\n if (name.match(/^\"([a-zA-Z_][a-zA-Z_0-9]*)\"$/)) {\n name = name.substr(1, name.length - 2);\n name = ctx.stylize(name, 'name');\n } else {\n name = name.replace(/'/g, \"\\\\'\")\n .replace(/\\\\\"/g, '\"')\n .replace(/(^\"|\"$)/g, \"'\");\n name = ctx.stylize(name, 'string');\n }\n }\n\n return name + ': ' + str;\n}\n\n\nfunction reduceToSingleString(output, base, braces) {\n var numLinesEst = 0;\n var length = output.reduce(function(prev, cur) {\n numLinesEst++;\n if (cur.indexOf('\\n') >= 0) numLinesEst++;\n return prev + cur.replace(/\\u001b\\[\\d\\d?m/g, '').length + 1;\n }, 0);\n\n if (length > 60) {\n return braces[0] +\n (base === '' ? '' : base + '\\n ') +\n ' ' +\n output.join(',\\n ') +\n ' ' +\n braces[1];\n }\n\n return braces[0] + base + ' ' + output.join(', ') + ' ' + braces[1];\n}\n\n\n// NOTE: These type checking functions intentionally don't use `instanceof`\n// because it is fragile and can be easily faked with `Object.create()`.\nfunction isArray(ar) {\n return Array.isArray(ar);\n}\nexports.isArray = isArray;\n\nfunction isBoolean(arg) {\n return typeof arg === 'boolean';\n}\nexports.isBoolean = isBoolean;\n\nfunction isNull(arg) {\n return arg === null;\n}\nexports.isNull = isNull;\n\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\nexports.isNullOrUndefined = isNullOrUndefined;\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\nexports.isNumber = isNumber;\n\nfunction isString(arg) {\n return typeof arg === 'string';\n}\nexports.isString = isString;\n\nfunction isSymbol(arg) {\n return typeof arg === 'symbol';\n}\nexports.isSymbol = isSymbol;\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\nexports.isUndefined = isUndefined;\n\nfunction isRegExp(re) {\n return isObject(re) && objectToString(re) === '[object RegExp]';\n}\nexports.isRegExp = isRegExp;\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\nexports.isObject = isObject;\n\nfunction isDate(d) {\n return isObject(d) && objectToString(d) === '[object Date]';\n}\nexports.isDate = isDate;\n\nfunction isError(e) {\n return isObject(e) &&\n (objectToString(e) === '[object Error]' || e instanceof Error);\n}\nexports.isError = isError;\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\nexports.isFunction = isFunction;\n\nfunction isPrimitive(arg) {\n return arg === null ||\n typeof arg === 'boolean' ||\n typeof arg === 'number' ||\n typeof arg === 'string' ||\n typeof arg === 'symbol' || // ES6 symbol\n typeof arg === 'undefined';\n}\nexports.isPrimitive = isPrimitive;\n\nexports.isBuffer = require('./support/isBuffer');\n\nfunction objectToString(o) {\n return Object.prototype.toString.call(o);\n}\n\n\nfunction pad(n) {\n return n < 10 ? '0' + n.toString(10) : n.toString(10);\n}\n\n\nvar months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep',\n 'Oct', 'Nov', 'Dec'];\n\n// 26 Feb 16:19:34\nfunction timestamp() {\n var d = new Date();\n var time = [pad(d.getHours()),\n pad(d.getMinutes()),\n pad(d.getSeconds())].join(':');\n return [d.getDate(), months[d.getMonth()], time].join(' ');\n}\n\n\n// log is just a thin wrapper to console.log that prepends a timestamp\nexports.log = function() {\n console.log('%s - %s', timestamp(), exports.format.apply(exports, arguments));\n};\n\n\n/**\n * Inherit the prototype methods from one constructor into another.\n *\n * The Function.prototype.inherits from lang.js rewritten as a standalone\n * function (not on Function.prototype). NOTE: If this file is to be loaded\n * during bootstrapping this function needs to be rewritten using some native\n * functions as prototype setup using normal JavaScript does not work as\n * expected during bootstrapping (see mirror.js in r114903).\n *\n * @param {function} ctor Constructor function which needs to inherit the\n * prototype.\n * @param {function} superCtor Constructor function to inherit prototype from.\n */\nexports.inherits = require('inherits');\n\nexports._extend = function(origin, add) {\n // Don't do anything if add isn't an object\n if (!add || !isObject(add)) return origin;\n\n var keys = Object.keys(add);\n var i = keys.length;\n while (i--) {\n origin[keys[i]] = add[keys[i]];\n }\n return origin;\n};\n\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nvar kCustomPromisifiedSymbol = typeof Symbol !== 'undefined' ? Symbol('util.promisify.custom') : undefined;\n\nexports.promisify = function promisify(original) {\n if (typeof original !== 'function')\n throw new TypeError('The \"original\" argument must be of type Function');\n\n if (kCustomPromisifiedSymbol && original[kCustomPromisifiedSymbol]) {\n var fn = original[kCustomPromisifiedSymbol];\n if (typeof fn !== 'function') {\n throw new TypeError('The \"util.promisify.custom\" argument must be of type Function');\n }\n Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return fn;\n }\n\n function fn() {\n var promiseResolve, promiseReject;\n var promise = new Promise(function (resolve, reject) {\n promiseResolve = resolve;\n promiseReject = reject;\n });\n\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n args.push(function (err, value) {\n if (err) {\n promiseReject(err);\n } else {\n promiseResolve(value);\n }\n });\n\n try {\n original.apply(this, args);\n } catch (err) {\n promiseReject(err);\n }\n\n return promise;\n }\n\n Object.setPrototypeOf(fn, Object.getPrototypeOf(original));\n\n if (kCustomPromisifiedSymbol) Object.defineProperty(fn, kCustomPromisifiedSymbol, {\n value: fn, enumerable: false, writable: false, configurable: true\n });\n return Object.defineProperties(\n fn,\n getOwnPropertyDescriptors(original)\n );\n}\n\nexports.promisify.custom = kCustomPromisifiedSymbol\n\nfunction callbackifyOnRejected(reason, cb) {\n // `!reason` guard inspired by bluebird (Ref: https://goo.gl/t5IS6M).\n // Because `null` is a special error value in callbacks which means \"no error\n // occurred\", we error-wrap so the callback consumer can distinguish between\n // \"the promise rejected with null\" or \"the promise fulfilled with undefined\".\n if (!reason) {\n var newReason = new Error('Promise was rejected with a falsy value');\n newReason.reason = reason;\n reason = newReason;\n }\n return cb(reason);\n}\n\nfunction callbackify(original) {\n if (typeof original !== 'function') {\n throw new TypeError('The \"original\" argument must be of type Function');\n }\n\n // We DO NOT return the promise as it gives the user a false sense that\n // the promise is actually somehow related to the callback's execution\n // and that the callback throwing will reject the promise.\n function callbackified() {\n var args = [];\n for (var i = 0; i < arguments.length; i++) {\n args.push(arguments[i]);\n }\n\n var maybeCb = args.pop();\n if (typeof maybeCb !== 'function') {\n throw new TypeError('The last argument must be of type Function');\n }\n var self = this;\n var cb = function() {\n return maybeCb.apply(self, arguments);\n };\n // In true node style we process the callback on `nextTick` with all the\n // implications (stack, `uncaughtException`, `async_hooks`)\n original.apply(this, args)\n .then(function(ret) { process.nextTick(cb, null, ret) },\n function(rej) { process.nextTick(callbackifyOnRejected, rej, cb) });\n }\n\n Object.setPrototypeOf(callbackified, Object.getPrototypeOf(original));\n Object.defineProperties(callbackified,\n getOwnPropertyDescriptors(original));\n return callbackified;\n}\nexports.callbackify = callbackify;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","'use strict';\n\n/* eslint complexity: [2, 18], max-statements: [2, 33] */\nmodule.exports = function hasSymbols() {\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\n\n\tvar obj = {};\n\tvar sym = Symbol('test');\n\tvar symObj = Object(sym);\n\tif (typeof sym === 'string') { return false; }\n\n\tif (Object.prototype.toString.call(sym) !== '[object Symbol]') { return false; }\n\tif (Object.prototype.toString.call(symObj) !== '[object Symbol]') { return false; }\n\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\n\t// if (sym instanceof Symbol) { return false; }\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\n\t// if (!(symObj instanceof Symbol)) { return false; }\n\n\t// if (typeof Symbol.prototype.toString !== 'function') { return false; }\n\t// if (String(sym) !== Symbol.prototype.toString.call(sym)) { return false; }\n\n\tvar symVal = 42;\n\tobj[sym] = symVal;\n\tfor (sym in obj) { return false; } // eslint-disable-line no-restricted-syntax, no-unreachable-loop\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\n\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\n\n\tvar syms = Object.getOwnPropertySymbols(obj);\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\n\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\n\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\n\t}\n\n\treturn true;\n};\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\tif ($defineProperty) {\n\t\ttry {\n\t\t\t$defineProperty({}, 'a', { value: 1 });\n\t\t\treturn true;\n\t\t} catch (e) {\n\t\t\t// IE 8 has a broken defineProperty\n\t\t\treturn false;\n\t\t}\n\t}\n\treturn false;\n};\n\nhasPropertyDescriptors.hasArrayLengthDefineBug = function hasArrayLengthDefineBug() {\n\t// node v0.6 has a bug where array lengths can be Set but not Defined\n\tif (!hasPropertyDescriptors()) {\n\t\treturn null;\n\t}\n\ttry {\n\t\treturn $defineProperty([], 'length', { value: 1 }).length !== 1;\n\t} catch (e) {\n\t\t// In Firefox 4-22, defining length on an array throws an exception.\n\t\treturn true;\n\t}\n};\n\nmodule.exports = hasPropertyDescriptors;\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $gOPD = GetIntrinsic('%Object.getOwnPropertyDescriptor%', true);\n\nif ($gOPD) {\n\ttry {\n\t\t$gOPD([], 'length');\n\t} catch (e) {\n\t\t// IE 8 has a broken gOPD\n\t\t$gOPD = null;\n\t}\n}\n\nmodule.exports = $gOPD;\n","export function getSlideId() {\n var id = window.tnsId;\n window.tnsId = !id ? 1 : id + 1;\n \n return 'tns' + window.tnsId;\n}","// get css-calc \n// @return - false | calc | -webkit-calc | -moz-calc\n// @usage - var calc = getCalc(); \nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function calc() {\n var doc = document, \n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'), \n result = false;\n\n body.appendChild(div);\n try {\n var str = '(10px * 10)',\n vals = ['calc' + str, '-moz-calc' + str, '-webkit-calc' + str],\n val;\n for (var i = 0; i < 3; i++) {\n val = vals[i];\n div.style.width = val;\n if (div.offsetWidth === 100) { \n result = val.replace(str, ''); \n break;\n }\n }\n } catch (e) {}\n \n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return result;\n}","// get subpixel support value\n// @return - boolean\nimport { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function percentageLayout() {\n // check subpixel layout supporting\n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n wrapper = doc.createElement('div'),\n outer = doc.createElement('div'),\n str = '',\n count = 70,\n perPage = 3,\n supported = false;\n\n wrapper.className = \"tns-t-subp2\";\n outer.className = \"tns-t-ct\";\n\n for (var i = 0; i < count; i++) {\n str += '
';\n }\n\n outer.innerHTML = str;\n wrapper.appendChild(outer);\n body.appendChild(wrapper);\n\n supported = Math.abs(wrapper.getBoundingClientRect().left - outer.children[count - perPage].getBoundingClientRect().left) < 2;\n\n body.fake ? resetFakeBody(body, docOverflow) : wrapper.remove();\n\n return supported;\n}","import { getBody } from './getBody.js';\nimport { setFakeBody } from './setFakeBody.js';\nimport { resetFakeBody } from './resetFakeBody.js';\n\nexport function mediaquerySupport () {\n if (window.matchMedia || window.msMatchMedia) {\n return true;\n }\n \n var doc = document,\n body = getBody(),\n docOverflow = setFakeBody(body),\n div = doc.createElement('div'),\n style = doc.createElement('style'),\n rule = '@media all and (min-width:1px){.tns-mq-test{position:absolute}}',\n position;\n\n style.type = 'text/css';\n div.className = 'tns-mq-test';\n\n body.appendChild(style);\n body.appendChild(div);\n\n if (style.styleSheet) {\n style.styleSheet.cssText = rule;\n } else {\n style.appendChild(doc.createTextNode(rule));\n }\n\n position = window.getComputedStyle ? window.getComputedStyle(div).position : div.currentStyle['position'];\n\n body.fake ? resetFakeBody(body, docOverflow) : div.remove();\n\n return position === \"absolute\";\n}\n","// create and append style sheet\nexport function createStyleSheet (media, nonce) {\n // Create the \";\n\n if (slider) {\n html += beforeSlider || \"\";\n html += \"
\";\n }\n\n html += beforeTrack || \"\";\n\n if (arrows) {\n html += this.renderArrows();\n }\n\n html += \"
\";\n html += \"<\" + listTag + \" class=\\\"splide__list\\\">\";\n html += this.renderSlides();\n html += \"\";\n html += \"
\";\n html += afterTrack || \"\";\n\n if (slider) {\n html += \"
\";\n html += afterSlider || \"\";\n }\n\n html += \"\";\n return html;\n };\n\n return SplideRenderer;\n}();\n\nexport { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_FOCUS_IN, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_OVERFLOW, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, DEFAULTS, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_END_INDEX_CHANGED, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_OVERFLOW, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, FADE, LOOP, LTR, RTL, RequestInterval, SLIDE, STATUS_CLASSES, Splide, SplideRenderer, State, TTB, Throttle, Splide as default };\n","import Splide from '@splidejs/splide';\nimport './index.scss';\n\nconst SliderSplide = (sliderName, options = {}) => new Splide(sliderName, options);\n\nexport default SliderSplide;\n","import { observeElement, loadScripts } from '@uvocore-front/utils';\nimport { tns } from 'tiny-slider/src/tiny-slider';\n\nimport '../../components/ImagesLazyLoading';\nimport '../../components/VideoLazyLoading';\n\nimport './components/AnimationHIW';\n\nimport Accordion from '../../all_pages/js/components/Accordion';\nimport stickyHeaderInit from '../../all_pages/js/components/sticky-header';\nimport mobileNavigationInit from '../../all_pages/js/components/mobile-nav';\nimport navDropdownInit from '../../all_pages/js/components/dropdowns';\n\nimport SliderSplide from './components/SliderSplide';\n\nobserveElement({\n element: '.section-cheap-writers',\n marginValue: 100,\n callback: () => {\n tns({\n container: '.cheap-writers-slider',\n slideBy: 1,\n autoplayHoverPause: true,\n mouseDrag: true,\n autoplay: false,\n autoplayButtonOutput: false,\n loop: false,\n responsive: {\n 0: {\n controls: false,\n items: 1,\n nav: true,\n },\n 1000: {\n items: 2,\n gutter: 0,\n controls: true,\n },\n 1170: {\n items: 3,\n gutter: 0,\n controls: false,\n nav: false,\n },\n },\n });\n },\n});\n\nobserveElement({\n element: '.testimonials-slider',\n marginValue: 400,\n callback: () => {\n // eslint-disable-next-line no-unused-vars\n tns({\n container: '.testimonials-slider',\n slideBy: 1,\n autoplayHoverPause: true,\n mouseDrag: true,\n autoplay: false,\n autoplayButtonOutput: false,\n loop: false,\n responsive: {\n 0: {\n controls: false,\n gutter: 0,\n items: 1,\n nav: true,\n },\n 1000: {\n items: 2,\n gutter: 30,\n controls: true,\n },\n 1170: {\n items: 3,\n gutter: 30,\n },\n },\n });\n },\n});\n\nobserveElement({\n element: '[data-writers]',\n marginValue: 300,\n callback: () => {\n SliderSplide('[data-writers]', {\n loop: false,\n type: 'slider',\n mediaQuery: 'min',\n gap: '24px',\n arrows: false,\n pagination: true,\n breakpoints: {\n 1024: {\n destroy: true,\n },\n 768: {\n perPage: 2,\n },\n 640: {\n perPage: 1,\n },\n },\n }).mount();\n },\n});\n\nobserveElement({\n element: '.accordion',\n marginValue: 400,\n callback: () => {\n Accordion();\n },\n});\n\nwindow.addEventListener('load', () => {\n stickyHeaderInit();\n mobileNavigationInit();\n\n if (document.querySelector('.nav')) {\n navDropdownInit();\n }\n\n // Add attribute to facebook messenger btn\n const isMobile = /iPhone|iPad|iPod|Android/i.test(navigator.userAgent);\n if (!isMobile) {\n const fbChatBtns = document.querySelectorAll('[data-messenger]');\n\n [...fbChatBtns].forEach((btn) => {\n btn.setAttribute('target', '_blank');\n });\n }\n\n if (isMobile) document.documentElement.classList.add('is-touch-device');\n});\n"],"sourceRoot":""}