@ppg_pl/pallete 2.0.13 → 2.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/my-backdrop_8.cjs.entry.js +3 -2
- package/dist/cjs/my-backdrop_8.cjs.entry.js.map +1 -1
- package/dist/collection/components/api/index.js +1 -0
- package/dist/collection/components/api/index.js.map +1 -1
- package/dist/collection/components/my-colorinfo/my-colorinfo.js +1 -1
- package/dist/collection/components/my-colorinfo/my-colorinfo.js.map +1 -1
- package/dist/collection/components/my-modal/my-modal.css +11 -0
- package/dist/components/index2.js +1 -0
- package/dist/components/index2.js.map +1 -1
- package/dist/components/my-colorinfo2.js +1 -1
- package/dist/components/my-colorinfo2.js.map +1 -1
- package/dist/components/my-modal2.js +1 -1
- package/dist/components/my-modal2.js.map +1 -1
- package/dist/esm/my-backdrop_8.entry.js +3 -2
- package/dist/esm/my-backdrop_8.entry.js.map +1 -1
- package/dist/pallete/p-1bc7e40f.entry.js +2 -0
- package/dist/pallete/p-1bc7e40f.entry.js.map +1 -0
- package/dist/pallete/pallete.esm.js +1 -1
- package/package.json +1 -1
- package/www/build/p-1bc7e40f.entry.js +2 -0
- package/www/build/p-1bc7e40f.entry.js.map +1 -0
- package/www/build/pallete.esm.js +1 -1
- package/dist/pallete/p-919c7427.entry.js +0 -2
- package/dist/pallete/p-919c7427.entry.js.map +0 -1
- package/www/build/p-919c7427.entry.js +0 -2
- package/www/build/p-919c7427.entry.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["myBackdropCss","MyBackdrop","render","setDataLayer","obj","window","dataLayer","push","APIURL","accessToken","API","async","ep","request","fetch","method","headers","Authorization","mode","response","json","error","console","ApiService","myColorboxCss","MyColorBox","this","colorCheck","checkTimeout","setTimeout","event","shop","product","color","name","colorUnCheck","clearTimeout","undefined","darkenColor","red","parseInt","green","blue","h","onMouseEnter","onMouseLeave","class","isActive","isCategoryActive","style","backgroundSize","_a","isImageInsteadHex","backgroundImage","_b","bigImage","background","_c","border","MyColorInfo","goToProduct","currentColor","closeInfoBox","emit","onCloseButtonClick","renderSliderOrImage","imageInsteadHex","src","alt","slides","data","images","getHref","baselink","links","find","link","path","_d","capitalizeFirstLetter","string","charAt","toUpperCase","slice","toLocaleLowerCase","textWhite","hex","maxWidth","infoBoxWidth","isMobile","onClick","getAssetPath","closeImage","number","href","buttonInverse","isObject","val","Array","isArray","hasAttributes","vattrs","requiredAttrs","every","hasOwnProperty","bind","isTextNode","vtext","isElement","nodeType","ownerDocument","isElementArray","createElement","vtag","vchildren","utils","document","createTextNode","element","key","setAttribute","forEach","child","appendChild","shouldApplyToHead","length","applyToHead","head","replaceChild","hasChildren","node","getFirstChild","firstChild","c","i","title","querySelector","meta","namePropKey","property","namePropValue","existingElement","_head","script","base","template","noscript","types","headExists","validTagNames","Object","keys","RenderTypes","isValidNode","indexOf","renderNode","Helmet","_props","children","rendered","n","filter","myComponentCss","MyModalBundle","show","setReadyToCloseHandler","value","readyToClose","detail","observable","closeModalHandler","content","height","width","display","visibility","myLoaderCss","MyLoader","esErrors","Error","_eval","EvalError","range","RangeError","ref","ReferenceError","syntax","SyntaxError","type","TypeError","uri","URIError","shams","hasSymbols","Symbol","getOwnPropertySymbols","iterator","sym","symObj","prototype","toString","call","symVal","getOwnPropertyNames","syms","propertyIsEnumerable","getOwnPropertyDescriptor","descriptor","enumerable","origSymbol","hasSymbols$1","hasNativeSymbols","hasSymbolSham","test","__proto__","foo","$Object","hasProto$1","hasProto","ERROR_MESSAGE","toStr","max","Math","funcType","concatty","a","b","arr","j","slicy","arrLike","offset","joiny","joiner","str","implementation","that","target","apply","args","arguments","bound","binder","result","boundLength","boundArgs","Function","Empty","functionBind","$hasOwn","hasown","$Function","getEvalledConstructor","expressionSyntax","e","$gOPD","throwTypeError","$TypeError","ThrowTypeError","calleeThrows","get","gOPDthrows","require$$0","require$$1","getProto","getPrototypeOf","x","needsEval","TypedArray","Uint8Array","INTRINSICS","AggregateError","ArrayBuffer","Atomics","BigInt","BigInt64Array","BigUint64Array","Boolean","DataView","Date","decodeURI","decodeURIComponent","encodeURI","encodeURIComponent","$Error","eval","$EvalError","Float32Array","Float64Array","FinalizationRegistry","Int8Array","Int16Array","Int32Array","isFinite","isNaN","JSON","Map","Number","parseFloat","Promise","Proxy","$RangeError","$ReferenceError","Reflect","RegExp","Set","SharedArrayBuffer","String","$SyntaxError","Uint8ClampedArray","Uint16Array","Uint32Array","$URIError","WeakMap","WeakRef","WeakSet","doEval","fn","gen","LEGACY_ALIASES","$concat","concat","$spliceApply","splice","$replace","replace","$strSlice","$exec","exec","rePropName","reEscapeChar","stringToPath","first","last","match","quote","subString","getBaseIntrinsic","allowMissing","intrinsicName","alias","hasOwn","getIntrinsic","GetIntrinsic","parts","intrinsicBaseName","intrinsic","intrinsicRealName","skipFurtherCaching","isOwn","part","desc","$defineProperty","esDefineProperty","gopd","defineDataProperty","nonEnumerable","nonWritable","nonConfigurable","loose","configurable","writable","hasPropertyDescriptors","hasArrayLengthDefineBug","hasPropertyDescriptors_1","hasDescriptors","$floor","setFunctionLength","functionLengthIsConfigurable","functionLengthIsWritable","gOPD","define","$apply","$call","$reflectApply","$max","module","exports","callBind","originalFunction","func","applyBind","$indexOf","callBound","callBoundIntrinsic","hasMap","mapSizeDescriptor","mapSize","mapForEach","hasSet","setSizeDescriptor","setSize","setForEach","hasWeakMap","weakMapHas","has","hasWeakSet","weakSetHas","hasWeakRef","weakRefDeref","deref","booleanValueOf","valueOf","objectToString","functionToString","$match","$slice","$toUpperCase","$toLowerCase","toLowerCase","$test","$join","join","$arrSlice","floor","bigIntValueOf","gOPS","symToString","hasShammedSymbols","toStringTag","isEnumerable","gPO","O","addNumericSeparator","num","Infinity","sepRegex","int","intStr","dec","inspectCustom","utilInspect","custom","inspectSymbol","isSymbol","objectInspect","inspect_","options","depth","seen","opts","quoteStyle","maxStringLength","customInspect","indent","numericSeparator","inspectString","bigIntStr","maxDepth","getIndent","inspect","from","noIndent","newOpts","isRegExp","nameOf","arrObjKeys","symString","markBoxed","s","nodeName","attrs","attributes","wrapQuotes","childNodes","xs","singleLineValues","indentedJoin","isError","cause","isMap","mapParts","collectionOf","isSet","setParts","isWeakMap","weakCollectionOf","isWeakSet","isWeakRef","isNumber","isBigInt","isBoolean","isString","global","isDate","ys","isPlainObject","constructor","protoTag","stringTag","constructorTag","tag","defaultStyle","quoteChar","f","m","l","HTMLElement","getAttribute","remaining","trailer","lowbyte","charCodeAt","size","entries","joinedEntries","baseIndent","prev","lineJoiner","isArr","symMap","k","$WeakMap","$Map","$weakMapGet","$weakMapSet","$weakMapHas","$mapGet","$mapSet","$mapHas","listGetNode","list","curr","next","listGet","objects","listSet","listHas","sideChannel","getSideChannel","$wm","$m","$o","channel","assert","set","percentTwenties","Format","RFC1738","RFC3986","formats","default","formatters","hexTable","array","compactQueue","queue","item","pop","prop","compacted","arrayToObject","source","plainObjects","create","merge","allowPrototypes","mergeTarget","targetItem","reduce","acc","assign","assignSingleSource","decode","decoder","charset","strWithoutPlus","unescape","limit","encode","defaultEncoder","kind","format","escape","$0","out","segment","compact","o","refs","isBuffer","combine","maybeMap","mapped","arrayPrefixGenerators","brackets","prefix","comma","indices","repeat","pushToArray","valueOrArray","toISO","toISOString","defaultFormat","defaults","addQueryPrefix","allowDots","allowEmptyArrays","arrayFormat","charsetSentinel","delimiter","encodeDotInKeys","encoder","encodeValuesOnly","formatter","serializeDate","date","skipNulls","strictNullHandling","isNonNullishPrimitive","v","sentinel","stringify","object","generateArrayPrefix","commaRoundTrip","sort","tmpSc","step","findFlag","pos","keyValue","values","objKeys","encodedPrefix","adjustedPrefix","encodedKey","keyPrefix","valueSideChannel","normalizeStringifyOptions","stringify_1","joined","allowSparse","arrayLimit","decodeDotInKeys","duplicates","ignoreQueryPrefix","interpretNumericEntities","parameterLimit","parseArrays","numberStr","fromCharCode","parseArrayValue","split","isoSentinel","parseValues","parseQueryStringValues","cleanStr","skipIndex","bracketEqualsPos","encodedVal","existing","parseObject","chain","valuesParsed","leaf","root","cleanRoot","decodedRoot","index","parseKeys","parseQueryStringKeys","givenKey","parent","normalizeParseOptions","parse","tempObj","newObj","lib","fetchProductColorsQuery","id","page","qs","fields","products","Product_id","_eq","fetchCategoryColorsQuery","Category","Category_id","fetchColorByNumber","colorNumber","_contains","myModalCss","MyModal","boxDesktopWidth","boxMobileWidth","desktopPadding","mobilePadding","mediumBreakpoint","clearInterval","colorTimerInterval","colorTimer","setInterval","timer","chunks","y","chunksNum","calculateBoxCount","modalWidth","modalEl","clientWidth","padding","boxWidth","calc","boxesCount","preloader","displayForMobile","innerWidth","fetchProductData","shopResponse","getData","Shop","Shop_id","fetchProductColors","loading","colors","map","pagination","fetchCategoryColors","onPage","selectedCategory","currentIndex","handleCategoryClick","showRange","clearSearchText","setInfoBoxWidth","newValue","watchPropHandler","close","handleReadyToClose","readyToCLose","closeInfoBoxHandler","handleResize","componentWillLoad","componentWillRender","modalLogo","modalDescription","productId","category_name","filter_count","ceil","_","preventDefault","mySearchCss","debounce","wait","timeout","executedFunction","later","MySearch","fetchColorsByName","text","searchColors","debouncedInputChangeValue","searchText","onInputChangeValue","fetchColorsByNameHandle","clearSearchTextHandler","placeholder","onInput","searchIcon","extend","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","querySelectorAll","getElementById","createEvent","initEvent","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","search","getDocument","doc","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","getComputedStyle","getPropertyValue","Image","screen","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","getWindow","win","makeReactive","proto","defineProperty","Dom7","items","super","arrayFlat","res","el","arrayFilter","arrayUnique","uniqueArray","qsa","selector","context","$","html","trim","toCreate","tempParent","innerHTML","addClass","classes","classNames","classList","add","removeClass","remove","toggleClass","className","toggle","hasClass","contains","attr","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","parents","handleEvent","events","dom7Listeners","proxyListener","dom7LiveListeners","off","handlers","handler","dom7proxy","trigger","evt","bubbles","cancelable","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","styles","offsetWidth","outerHeight","offsetHeight","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","each","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","previousSibling","eq","returnIndex","append","els","newChild","tempDiv","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","parentNode","closest","foundElements","found","removeChild","Methods","methodName","deleteProps","nextTick","delay","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isNode","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","swiper","targetPosition","side","startPosition","translate","startTime","time","params","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","progress","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","support","calcSupport","smoothScroll","documentElement","touch","DocumentTouch","passiveListener","checkPassiveListener","supportsPassive","gestures","checkGestures","getSupport","deviceCached","calcDevice","platform","ua","device","ios","android","screenWidth","screenHeight","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","isWebView","getBrowser","Resize","observer","animationFrame","resizeHandler","destroyed","initialized","createObserver","ResizeObserver","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","observe","removeObserver","unobserve","orientationChangeHandler","resizeObserver","Observer","extendParams","observers","attach","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","childList","characterData","init","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","destroy","disconnect","eventsEmitter","priority","self","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","updateSize","clientHeight","isHorizontal","isVertical","updateSlides","getDirectionLabel","marginRight","getDirectionPropertyValue","label","swiperSize","rtlTranslate","rtl","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","centeredSlides","cssMode","gridEnabled","grid","rows","initSlides","slideSize","shouldResetSlideSize","slidesPerView","breakpoints","slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","swiperSlideSize","abs","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","backFaceHiddenClass","containerModifierClass","hasClassBackfaceClassAdded","maxBackfaceHiddenSlides","updateAutoHeight","activeSlides","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideOffset","slideProgress","minTranslate","originalSlideProgress","slideBefore","slideAfter","isVisible","originalProgress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","behavior","onTranslateToWrapperTransitionEnd","transitionEmit","direction","transitionStart","slideTo","initial","indexAsNumber","isValidNumber","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","t","_immediateVirtual","_swiperImmediateVirtual","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","rewind","slidePrev","normalize","normalizedSnapGrid","prevSnap","prevSnapIndex","prevIndex","lastIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","slideToIndex","loopCreate","$selector","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","loopedSlidesLimit","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","touchEventsTarget","cursor","unsetGrabCursor","grabCursor","closestElement","__closestFrom","assignedSlot","getRootNode","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","isTouchEvent","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","eventPath","composedPath","shadowRoot","noSwipingSelector","isTargetShadow","noSwiping","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","freeMode","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","touchAngle","atan2","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","onTouchEnd","touchEndTime","timeDiff","pathTree","lastClickTime","currentPos","stopIndex","groupSize","rewindFirstIndex","rewindLastIndex","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","attachEvents","detachEvents","events$1","isGridEnabled","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","emitContainerClasses","fill","wasModuleEnabled","isModuleEnabled","disable","enable","directionChanged","needsReLoop","changeDirection","isEnabled","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","prepareClasses","resultClasses","addClasses","suffixes","autoheight","centered","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","currentSrc","wasLocked","lastSlideIndex","lastSlideRightEdge","checkOverflow$1","initialSlide","createElements","url","uniqueNavElements","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","extendedDefaults","Swiper","swipers","newParams","modules","__modules__","mod","swiperParams","passedParams","eventName","velocity","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","setProgress","cls","getSlideClasses","slideEl","updates","view","exact","spv","breakLoop","slideInView","translateValue","translated","newDirection","needUpdate","currentDirection","changeLanguageDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","static","newDefaults","installModule","prototypeGroup","protoMethod","use","createElementIfNotDefined","checkProps","Navigation","hideOnClick","disabledClass","hiddenClass","lockClass","navigationDisabledClass","$nextEl","$prevEl","getEl","toggleEl","disabled","tagName","onPrevClick","onNextClick","_s","targetEl","clickable","isHidden","Controller","controller","control","inverse","by","LinearSpline","binarySearch","maxIndex","minIndex","guess","i1","i3","interpolate","x2","getInterpolateFunction","spline","_t","controlled","controlledTranslate","setControlledTranslate","setControlledTransition","removeSpline","mySliderCss","JcSwiper","colorInteraction","initSwiper","thumbs","swiper2","componentDidLoad","directus_files_id"],"sources":["./src/components/my-backdrop/my-backdrop.scss?tag=my-backdrop","./src/components/my-backdrop/my-backdrop.tsx","./src/gtmUtils.ts","./src/components/api/index.ts","./src/components/my-colorbox/my-colorbox.scss?tag=my-colorbox","./src/components/my-colorbox/my-colorbox.tsx","./src/components/my-colorinfo/my-colorinfo.tsx","./node_modules/@stencil/helmet/dist/util.js","./node_modules/@stencil/helmet/dist/dom.js","./node_modules/@stencil/helmet/dist/render.js","./node_modules/@stencil/helmet/dist/stencil-helmet.js","./src/components/my-component/my-component.scss?tag=my-component&encapsulation=scoped","./src/components/my-component/my-component.tsx","./src/components/my-loader/my-loader.scss?tag=my-loader&encapsulation=scoped","./src/components/my-loader/my-loader.tsx","./node_modules/es-errors/index.js","./node_modules/es-errors/eval.js","./node_modules/es-errors/range.js","./node_modules/es-errors/ref.js","./node_modules/es-errors/syntax.js","./node_modules/es-errors/type.js","./node_modules/es-errors/uri.js","./node_modules/has-symbols/shams.js","./node_modules/has-symbols/index.js","./node_modules/has-proto/index.js","./node_modules/function-bind/implementation.js","./node_modules/function-bind/index.js","./node_modules/hasown/index.js","./node_modules/get-intrinsic/index.js","./node_modules/es-define-property/index.js","./node_modules/gopd/index.js","./node_modules/define-data-property/index.js","./node_modules/has-property-descriptors/index.js","./node_modules/set-function-length/index.js","./node_modules/call-bind/index.js","./node_modules/call-bind/callBound.js","./node_modules/object-inspect/index.js","./node_modules/side-channel/index.js","./node_modules/qs/lib/formats.js","./node_modules/qs/lib/utils.js","./node_modules/qs/lib/stringify.js","./node_modules/qs/lib/parse.js","./node_modules/qs/lib/index.js","./src/components/api/services.ts","./src/components/my-modal/my-modal.scss?tag=my-modal","./src/components/my-modal/my-modal.tsx","./src/components/my-search/my-search.scss?tag=my-search&encapsulation=scoped","./src/components/my-search/my-search.tsx","./node_modules/ssr-window/ssr-window.esm.js","./node_modules/dom7/dom7.esm.js","./node_modules/swiper/shared/dom.js","./node_modules/swiper/shared/utils.js","./node_modules/swiper/shared/get-support.js","./node_modules/swiper/shared/get-device.js","./node_modules/swiper/shared/get-browser.js","./node_modules/swiper/core/modules/resize/resize.js","./node_modules/swiper/core/modules/observer/observer.js","./node_modules/swiper/core/events-emitter.js","./node_modules/swiper/core/update/updateSize.js","./node_modules/swiper/core/update/updateSlides.js","./node_modules/swiper/core/update/updateAutoHeight.js","./node_modules/swiper/core/update/updateSlidesOffset.js","./node_modules/swiper/core/update/updateSlidesProgress.js","./node_modules/swiper/core/update/updateProgress.js","./node_modules/swiper/core/update/updateSlidesClasses.js","./node_modules/swiper/core/update/updateActiveIndex.js","./node_modules/swiper/core/update/updateClickedSlide.js","./node_modules/swiper/core/update/index.js","./node_modules/swiper/core/translate/getTranslate.js","./node_modules/swiper/core/translate/setTranslate.js","./node_modules/swiper/core/translate/minTranslate.js","./node_modules/swiper/core/translate/maxTranslate.js","./node_modules/swiper/core/translate/translateTo.js","./node_modules/swiper/core/translate/index.js","./node_modules/swiper/core/transition/setTransition.js","./node_modules/swiper/core/transition/transitionEmit.js","./node_modules/swiper/core/transition/transitionStart.js","./node_modules/swiper/core/transition/transitionEnd.js","./node_modules/swiper/core/transition/index.js","./node_modules/swiper/core/slide/slideTo.js","./node_modules/swiper/core/slide/slideToLoop.js","./node_modules/swiper/core/slide/slideNext.js","./node_modules/swiper/core/slide/slidePrev.js","./node_modules/swiper/core/slide/slideReset.js","./node_modules/swiper/core/slide/slideToClosest.js","./node_modules/swiper/core/slide/slideToClickedSlide.js","./node_modules/swiper/core/slide/index.js","./node_modules/swiper/core/loop/loopCreate.js","./node_modules/swiper/core/loop/loopFix.js","./node_modules/swiper/core/loop/loopDestroy.js","./node_modules/swiper/core/loop/index.js","./node_modules/swiper/core/grab-cursor/setGrabCursor.js","./node_modules/swiper/core/grab-cursor/unsetGrabCursor.js","./node_modules/swiper/core/grab-cursor/index.js","./node_modules/swiper/core/events/onTouchStart.js","./node_modules/swiper/core/events/onTouchMove.js","./node_modules/swiper/core/events/onTouchEnd.js","./node_modules/swiper/core/events/onResize.js","./node_modules/swiper/core/events/onClick.js","./node_modules/swiper/core/events/onScroll.js","./node_modules/swiper/core/events/index.js","./node_modules/swiper/core/breakpoints/setBreakpoint.js","./node_modules/swiper/core/breakpoints/getBreakpoint.js","./node_modules/swiper/core/breakpoints/index.js","./node_modules/swiper/core/classes/addClasses.js","./node_modules/swiper/core/classes/removeClasses.js","./node_modules/swiper/core/classes/index.js","./node_modules/swiper/core/images/loadImage.js","./node_modules/swiper/core/images/preloadImages.js","./node_modules/swiper/core/images/index.js","./node_modules/swiper/core/check-overflow/index.js","./node_modules/swiper/core/defaults.js","./node_modules/swiper/core/moduleExtendParams.js","./node_modules/swiper/core/core.js","./node_modules/swiper/shared/create-element-if-not-defined.js","./node_modules/swiper/modules/navigation/navigation.js","./node_modules/swiper/modules/controller/controller.js","./src/components/my-slider/my-slider.scss?tag=my-slider","./src/components/my-slider/index.tsx"],"sourcesContent":["@import '../../global/app.scss';\n\nmy-backdrop {\n width: 100%;\n height: 100%;\n background-color: $backdrop_black;\n position: fixed;\n z-index: 100;\n left: 0;\n top: 0;\n}\n","import { Component } from '@stencil/core';\n\n@Component({\n tag: 'my-backdrop',\n styleUrl: 'my-backdrop.scss',\n})\nexport class MyBackdrop {\n render() {\n return null;\n }\n}\n","export const setDataLayer = (obj: Record<string, string>) => {\n return window.dataLayer.push(obj);\n};\n","// DEV/\n// export const APIURL = 'http://57.128.200.45:8055';\n// export const accessToken = '_baZ127gfvFIFmZ5umrrTBUUm6D7ve6p';\n\n// PROD\n\nexport const APIURL = 'https://color-selector.pl'; //'https://pallete-colors-backend.herokuapp.com';\nexport const accessToken = 'uBKzhiNM4rkdZSe_PQvKJp9pE-DSTmtu'; //'_baZ127gfvFIFmZ5umrrTBUUm6D7ve6p'\n\nclass API {\n async getData(ep: string) {\n try {\n const request = await fetch(`${APIURL}/${ep}`, {\n method: 'GET',\n\n headers: {\n 'Authorization': `Bearer ${accessToken}`,\n 'Content-Type': 'application/json',\n },\n mode: 'no-cors',\n });\n const response = await request.json();\n\n return response;\n } catch (error) {\n console.error(error);\n }\n }\n}\n\nexport const ApiService = new API();\n","@import '../../global/app.scss';\n\n.my-color-box {\n width: 125px;\n height: 125px;\n display: block;\n margin-bottom: 5px;\n cursor: pointer;\n display: flex;\n flex-direction: column;\n justify-content: flex-end;\n position: relative;\n\n @media (max-width: $medium) {\n width: 65px;\n height: 65px;\n }\n .color-name {\n width: 100%;\n background-color: $white;\n padding: 15px 0px 10px;\n border-top-left-radius: 15px;\n border-top-right-radius: 15px;\n opacity: 0;\n transition: 0.3s opacity ease-in-out;\n font-size: 10px;\n color: $black;\n text-transform: lowercase;\n }\n &.active {\n .color-name {\n opacity: 1;\n }\n }\n\n &.categoryactive {\n width: 120px;\n height: 115px;\n .color-name {\n opacity: 1;\n }\n\n @media (max-width: $medium) {\n width: 72px;\n height: 72px;\n }\n }\n &:hover {\n .color-name {\n opacity: 1;\n }\n }\n}\n","import { Component, Prop, h } from '@stencil/core';\nimport { setDataLayer } from '../../gtmUtils';\nimport { ColorBoxyIsImageInsteadHex } from '../../types';\nimport { APIURL, accessToken } from '../api';\n\n@Component({\n tag: 'my-colorbox',\n styleUrl: 'my-colorbox.scss',\n})\nexport class MyColorBox {\n private checkTimeout: ReturnType<typeof setTimeout> | undefined;\n\n @Prop() color: string;\n @Prop() name: string;\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() isActive?: boolean;\n @Prop() isCategoryActive?: boolean;\n @Prop() isImageInsteadHex?: ColorBoxyIsImageInsteadHex;\n\n colorCheck = () => {\n this.checkTimeout = setTimeout(() => {\n setDataLayer({\n event: 'ColorCheck',\n shop: this.shop,\n product: this.product,\n color: this.name,\n });\n }, 2000);\n };\n\n colorUnCheck = () => {\n if (this.checkTimeout) clearTimeout(this.checkTimeout);\n this.checkTimeout = undefined;\n };\n\n darkenColor = (color: string) => {\n const red = parseInt(color[1] + color[2], 16) - 20;\n const green = parseInt(color[3] + color[4], 16) - 20;\n const blue = parseInt(color[5] + color[6], 16) - 20;\n return `rgb(${red},${green},${blue})`;\n };\n\n render() {\n return (\n <div\n onMouseEnter={() => this.colorCheck()}\n onMouseLeave={() => this.colorUnCheck()}\n class={`my-color-box ${this.isActive ? 'active' : ''} ${this.isCategoryActive ? 'categoryactive' : ''}`}\n style={{\n backgroundSize: this.isImageInsteadHex?.isImageInsteadHex ? 'cover' : '',\n backgroundImage: this.isImageInsteadHex?.isImageInsteadHex ? `url(${APIURL}/assets/${this.isImageInsteadHex.bigImage}?access_token=${accessToken})` : '',\n background: this.isImageInsteadHex?.isImageInsteadHex ? this.isImageInsteadHex.bigImage : this.color,\n border: this.isCategoryActive ? `5px solid ${this.darkenColor(this.color)}` : '',\n }}\n >\n <div class=\"color-name\">{this.name}</div>\n </div>\n );\n }\n}\n","import { Component, Prop, h, getAssetPath, Event, EventEmitter } from '@stencil/core';\nimport { setDataLayer } from '../../gtmUtils';\nimport { Color, Link, Product } from '../../types';\nimport { APIURL, accessToken } from '../api';\n\n@Component({\n tag: 'my-colorinfo',\n})\nexport class MyColorInfo {\n @Prop() currentColor: Color;\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() baselink: string;\n @Prop() data: Product | null = null;\n @Prop() isMobile: boolean = false;\n @Prop() infoBoxWidth: number | null;\n @Prop() closeImage = 'close.png';\n\n @Event() closeInfoBox: EventEmitter;\n\n goToProduct = () => {\n this.currentColor &&\n setDataLayer({\n event: 'GoToProduct',\n shop: this.shop,\n product: this.product,\n color: this.currentColor?.name,\n });\n this.closeInfoBox.emit();\n };\n\n onCloseButtonClick = () => {\n this.closeInfoBox.emit();\n };\n\n renderSliderOrImage = () => {\n if (this.currentColor.imageInsteadHex) {\n return <img class={'color-big-image'} src={`${APIURL}/assets/${this.currentColor.bigImage}?access_token=${accessToken}`} alt=\"color-image\" />;\n } else {\n return <my-slider color={this.currentColor.name} shop={this.shop} product={this.product} slides={this.data?.images}></my-slider>;\n }\n };\n\n getHref = () => {\n if (this.baselink) {\n return `${this.baselink}/${this?.currentColor.links?.find((link: Link) => link?.shop === this.shop)?.path}`;\n } else {\n return this?.currentColor.links?.find((link: Link) => link?.shop === this.shop)?.path;\n }\n };\n\n capitalizeFirstLetter = (string: string) => {\n return string.charAt(0).toUpperCase() + string.slice(1).toLocaleLowerCase();\n };\n\n render() {\n return (\n <div\n class={`boxes__box-content ${this.currentColor.textWhite ? 'boxes__box-content__white' : ''}`}\n style={{\n background: this.currentColor.imageInsteadHex ? 'white' : this.currentColor.hex,\n maxWidth: `${this.infoBoxWidth && this.infoBoxWidth - 4}px`,\n }}\n >\n {this.isMobile && <img class={'closebtn'} onClick={this.onCloseButtonClick} src={getAssetPath(`./assets/${this.closeImage}`)} alt=\"closebtn\" />}\n <div\n class=\"boxes__box-content__info\"\n style={{\n maxWidth: this.isMobile ? `${this.infoBoxWidth && this.infoBoxWidth - 35}px` : ``,\n }}\n >\n {!this.isMobile && <img class={'closebtn'} onClick={this.onCloseButtonClick} src={getAssetPath(`./assets/${this.closeImage}`)} alt=\"closebtn\" />}\n <h2>{this.capitalizeFirstLetter(this.currentColor.name)}</h2>\n {!this.isMobile && <h4>{this.currentColor.number}</h4>}\n\n <div class=\"boxes__box-content__info__value\">\n {/* <div class=\"boxes__box-content__info__value-image\">\n {this.currentColor?.image! && <img src={`${APIURL}/assets/${this.currentColor.image}?access_token=${accessToken}`} alt=\"color-image\" />}\n </div> */}\n <div class=\"boxes__box-content__info__value-product\">\n {/* <div>\n {!this.isMobile && <p>Produkt:</p>}\n {this.isMobile && <h2>{this.currentColor?.name}</h2>} <p>{this.product}</p>\n </div> */}\n\n {this.isMobile && <div class={'divider'}></div>}\n {this.currentColor && this.currentColor.links?.find((link: Link) => link?.shop === this.shop) && (\n <a\n onClick={this.goToProduct}\n href={this.getHref()}\n class={`button ${this.currentColor.imageInsteadHex ? 'brown' : this.currentColor.buttonInverse ? 'inverse' : ''}`}\n >\n wybierz kolor\n </a>\n )}\n </div>\n </div>\n </div>\n <div class=\"boxes__box-content__slider\">{this.renderSliderOrImage()}</div>\n </div>\n );\n }\n}\n","const isObject = (val) => !Array.isArray(val) && val !== null && typeof val === 'object';\nexport const hasAttributes = ({ vattrs }, requiredAttrs = []) => isObject(vattrs) && requiredAttrs.every(vattrs.hasOwnProperty.bind(vattrs));\nexport const isTextNode = ({ vtext }) => typeof vtext === 'string';\n// Can't use instanceof HTMLElement because MockHTMLElement during pre-rendering isn't\nexport const isElement = (val) => typeof val === 'object' && val.nodeType === 1 && typeof val.ownerDocument === 'object';\nexport const isElementArray = (val) => Array.isArray(val) && val.every(isElement);\n","import { isElement, isElementArray } from './util';\nexport const createElement = ({ vtag, vattrs, vchildren, vtext }, utils) => {\n if (vtext != null) {\n return document.createTextNode(vtext);\n }\n const element = document.createElement(vtag);\n if (vattrs != null) {\n for (const key in vattrs) {\n element.setAttribute(key, vattrs[key]);\n }\n }\n if (vchildren != null) {\n utils.forEach(vchildren, (child) => {\n element.appendChild(createElement(child, utils));\n });\n }\n return element;\n};\nexport const shouldApplyToHead = (val) => isElement(val) || (isElementArray(val) && val.length === 2);\nexport const applyToHead = (element) => {\n if (Array.isArray(element)) {\n return document.head.replaceChild(element[0], element[1]);\n }\n return document.head.appendChild(element);\n};\n","import { hasAttributes, isTextNode } from './util';\nimport { createElement } from './dom';\nconst hasChildren = (node) => Array.isArray(node.vchildren);\nconst getFirstChild = (vchildren, utils) => {\n let firstChild = null;\n utils.forEach(vchildren || [], (c, i) => {\n if (i === 0) {\n firstChild = c;\n return;\n }\n });\n return firstChild;\n};\nfunction title(node, head, utils) {\n const firstChild = getFirstChild(node.vchildren || [], utils);\n if (firstChild && isTextNode(firstChild)) {\n return [createElement(node, utils), head.querySelector('title')];\n }\n}\nfunction meta(node, head, utils) {\n var _a, _b, _c;\n const namePropKey = ((_a = node.vattrs) === null || _a === void 0 ? void 0 : _a.property) ? 'property' : 'name';\n const namePropValue = ((_b = node.vattrs) === null || _b === void 0 ? void 0 : _b.property) || ((_c = node.vattrs) === null || _c === void 0 ? void 0 : _c.name);\n const existingElement = head.querySelector(`meta[${namePropKey}=\"${namePropValue}\"]`);\n if (existingElement !== null) {\n return [createElement(node, utils), existingElement];\n }\n else {\n return createElement(node, utils);\n }\n}\nfunction link(node, _head, utils) {\n if (!hasChildren(node)) {\n return createElement(node, utils);\n }\n}\nfunction style(node, _head, utils) {\n const firstChild = getFirstChild(node.vchildren || [], utils);\n if (firstChild && isTextNode(firstChild)) {\n return createElement(node, utils);\n }\n}\nfunction script(node, _head, utils) {\n if (hasChildren(node) || hasAttributes(node)) {\n return createElement(node, utils);\n }\n}\nfunction base(node, _head, utils) {\n if (!hasChildren(node) && hasAttributes(node)) {\n return createElement(node, utils);\n }\n}\nconst template = createElement;\nconst noscript = createElement; // SSR only\nconst types = {\n title,\n meta,\n link,\n style,\n script,\n base,\n template,\n noscript,\n};\nexport default types;\n","import RenderTypes from './render';\nimport { shouldApplyToHead, applyToHead } from './dom';\nconst headExists = document && document.head;\nconst validTagNames = Object.keys(RenderTypes);\nconst isValidNode = (node) => validTagNames.indexOf(node.vtag) > -1;\nconst renderNode = (node, utils) => RenderTypes[node.vtag](node, document.head, utils);\nexport const Helmet = (_props, children, utils) => {\n if (!headExists) {\n return null;\n }\n const rendered = [];\n const validChildren = [];\n utils.forEach(children, (n) => {\n if (isValidNode(n)) {\n validChildren.push(n);\n rendered.push(renderNode(n, utils));\n }\n });\n // Build an HTMLElement for each provided virtual child\n rendered\n .filter(shouldApplyToHead)\n .forEach(applyToHead);\n return null;\n};\nexport default Helmet;\n",".pallete-wrapper {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n}\n","import Helmet from '@stencil/helmet';\nimport { Component, Prop, Method, Element, State, Listen, h } from '@stencil/core';\n\n@Component({\n tag: 'my-component',\n styleUrl: 'my-component.scss',\n scoped: true,\n})\nexport class MyModalBundle {\n @Element() modalEl: HTMLElement;\n\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() baselink: string;\n\n @State() show = false;\n @State() readyToClose = false;\n\n @Method()\n async open() {\n this.show = true;\n }\n\n @Method()\n async close() {\n this.show = false;\n }\n\n @Listen('readyToCLose')\n setReadyToCloseHandler(value: CustomEvent) {\n this.readyToClose = value.detail.observable;\n }\n\n @Listen('close')\n closeModalHandler() {\n this.show = false;\n this.readyToClose = false;\n }\n\n render() {\n let content = null;\n if (this.show) {\n content = [<my-backdrop></my-backdrop>, <my-modal shop={this.shop} product={this.product} baselink={this.baselink}></my-modal>];\n }\n return (\n <div\n onClick={() => {\n if (this.readyToClose) {\n this.closeModalHandler();\n }\n }}\n >\n <Helmet>\n <script>\n {`(function (w, d, s, l, i) {\n w[l] = w[l] || [];\n w[l].push({ 'gtm.start': new Date().getTime(), 'event': 'gtm.js' });\n var f = d.getElementsByTagName(s)[0],\n j = d.createElement(s),\n dl = l != 'dataLayer' ? '&l=' + l : '';\n j.async = true;\n j.src = 'https://www.googletagmanager.com/gtm.js?id=' + i + dl;\n f.parentNode.insertBefore(j, f);\n })(window, document, 'script', 'dataLayer', 'GTM-PMTKHDX');`}\n </script>\n </Helmet>\n <div class=\"pallete-wrapper\">{content}</div>\n <noscript>\n <iframe src=\"https://www.googletagmanager.com/ns.html?id=GTM-PMTKHDX\" height=\"0\" width=\"0\" style={{ display: 'none', visibility: 'hidden' }}></iframe>\n </noscript>\n </div>\n );\n }\n}\n","$color: #b8cf40, #ee4b5e, #ea0f47, #d42840, #8b2850;\n\n@mixin anim($i) {\n $y: ($i + 5) * 3;\n\n @keyframes right-#{$i} {\n 0% {\n transform: translateY(#{-$y}px);\n }\n 100% {\n transform: translateY(#{$y}px);\n }\n }\n}\n\n.container {\n display: flex;\n justify-content: center;\n align-items: center;\n height: 190px;\n overflow: hidden;\n}\n\n.item {\n width: 20px;\n height: 20px;\n margin: 3px;\n list-style-type: none;\n transition: 0.5s all ease;\n}\n\n@for $i from 1 through 5 {\n .item:nth-child(#{$i}) {\n @include anim($i);\n animation: right-#{$i} 1s infinite alternate;\n background-color: nth($color, $i);\n animation-delay: 20ms * $i;\n }\n}\n","import { Component, h } from '@stencil/core';\n\n@Component({\n tag: 'my-loader',\n styleUrl: 'my-loader.scss',\n scoped: true,\n})\nexport class MyLoader {\n render() {\n return (\n <div class=\"container\">\n <div class=\"item\"></div>\n <div class=\"item\"></div>\n <div class=\"item\"></div>\n <div class=\"item\"></div>\n <div class=\"item\"></div>\n </div>\n );\n }\n}\n","'use strict';\n\n/** @type {import('.')} */\nmodule.exports = Error;\n","'use strict';\n\n/** @type {import('./eval')} */\nmodule.exports = EvalError;\n","'use strict';\n\n/** @type {import('./range')} */\nmodule.exports = RangeError;\n","'use strict';\n\n/** @type {import('./ref')} */\nmodule.exports = ReferenceError;\n","'use strict';\n\n/** @type {import('./syntax')} */\nmodule.exports = SyntaxError;\n","'use strict';\n\n/** @type {import('./type')} */\nmodule.exports = TypeError;\n","'use strict';\n\n/** @type {import('./uri')} */\nmodule.exports = URIError;\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 origSymbol = typeof Symbol !== 'undefined' && Symbol;\nvar hasSymbolSham = require('./shams');\n\nmodule.exports = function hasNativeSymbols() {\n\tif (typeof origSymbol !== 'function') { return false; }\n\tif (typeof Symbol !== 'function') { return false; }\n\tif (typeof origSymbol('foo') !== 'symbol') { return false; }\n\tif (typeof Symbol('bar') !== 'symbol') { return false; }\n\n\treturn hasSymbolSham();\n};\n","'use strict';\n\nvar test = {\n\t__proto__: null,\n\tfoo: {}\n};\n\nvar $Object = Object;\n\n/** @type {import('.')} */\nmodule.exports = function hasProto() {\n\t// @ts-expect-error: TS errors on an inherited property for some reason\n\treturn { __proto__: test }.foo === test.foo\n\t\t&& !(test instanceof $Object);\n};\n","'use strict';\n\n/* eslint no-invalid-this: 1 */\n\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\nvar toStr = Object.prototype.toString;\nvar max = Math.max;\nvar funcType = '[object Function]';\n\nvar concatty = function concatty(a, b) {\n var arr = [];\n\n for (var i = 0; i < a.length; i += 1) {\n arr[i] = a[i];\n }\n for (var j = 0; j < b.length; j += 1) {\n arr[j + a.length] = b[j];\n }\n\n return arr;\n};\n\nvar slicy = function slicy(arrLike, offset) {\n var arr = [];\n for (var i = offset || 0, j = 0; i < arrLike.length; i += 1, j += 1) {\n arr[j] = arrLike[i];\n }\n return arr;\n};\n\nvar joiny = function (arr, joiner) {\n var str = '';\n for (var i = 0; i < arr.length; i += 1) {\n str += arr[i];\n if (i + 1 < arr.length) {\n str += joiner;\n }\n }\n return str;\n};\n\nmodule.exports = function bind(that) {\n var target = this;\n if (typeof target !== 'function' || toStr.apply(target) !== funcType) {\n throw new TypeError(ERROR_MESSAGE + target);\n }\n var args = slicy(arguments, 1);\n\n var bound;\n var binder = function () {\n if (this instanceof bound) {\n var result = target.apply(\n this,\n concatty(args, arguments)\n );\n if (Object(result) === result) {\n return result;\n }\n return this;\n }\n return target.apply(\n that,\n concatty(args, arguments)\n );\n\n };\n\n var boundLength = max(0, target.length - args.length);\n var boundArgs = [];\n for (var i = 0; i < boundLength; i++) {\n boundArgs[i] = '$' + i;\n }\n\n bound = Function('binder', 'return function (' + joiny(boundArgs, ',') + '){ return binder.apply(this,arguments); }')(binder);\n\n if (target.prototype) {\n var Empty = function Empty() {};\n Empty.prototype = target.prototype;\n bound.prototype = new Empty();\n Empty.prototype = null;\n }\n\n return bound;\n};\n","'use strict';\n\nvar implementation = require('./implementation');\n\nmodule.exports = Function.prototype.bind || implementation;\n","'use strict';\n\nvar call = Function.prototype.call;\nvar $hasOwn = Object.prototype.hasOwnProperty;\nvar bind = require('function-bind');\n\n/** @type {import('.')} */\nmodule.exports = bind.call(call, $hasOwn);\n","'use strict';\n\nvar undefined;\n\nvar $Error = require('es-errors');\nvar $EvalError = require('es-errors/eval');\nvar $RangeError = require('es-errors/range');\nvar $ReferenceError = require('es-errors/ref');\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\nvar $URIError = require('es-errors/uri');\n\nvar $Function = Function;\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__proto__: null,\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__proto__: null,\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","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\n/** @type {import('.')} */\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true) || false;\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nmodule.exports = $defineProperty;\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","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar $SyntaxError = require('es-errors/syntax');\nvar $TypeError = require('es-errors/type');\n\nvar gopd = require('gopd');\n\n/** @type {import('.')} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor<unknown>} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nvar $defineProperty = require('es-define-property');\n\nvar hasPropertyDescriptors = function hasPropertyDescriptors() {\n\treturn !!$defineProperty;\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 (!$defineProperty) {\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');\nvar define = require('define-data-property');\nvar hasDescriptors = require('has-property-descriptors')();\nvar gOPD = require('gopd');\n\nvar $TypeError = require('es-errors/type');\nvar $floor = GetIntrinsic('%Math.floor%');\n\n/** @type {import('.')} */\nmodule.exports = function setFunctionLength(fn, length) {\n\tif (typeof fn !== 'function') {\n\t\tthrow new $TypeError('`fn` is not a function');\n\t}\n\tif (typeof length !== 'number' || length < 0 || length > 0xFFFFFFFF || $floor(length) !== length) {\n\t\tthrow new $TypeError('`length` must be a positive 32-bit integer');\n\t}\n\n\tvar loose = arguments.length > 2 && !!arguments[2];\n\n\tvar functionLengthIsConfigurable = true;\n\tvar functionLengthIsWritable = true;\n\tif ('length' in fn && gOPD) {\n\t\tvar desc = gOPD(fn, 'length');\n\t\tif (desc && !desc.configurable) {\n\t\t\tfunctionLengthIsConfigurable = false;\n\t\t}\n\t\tif (desc && !desc.writable) {\n\t\t\tfunctionLengthIsWritable = false;\n\t\t}\n\t}\n\n\tif (functionLengthIsConfigurable || functionLengthIsWritable || !loose) {\n\t\tif (hasDescriptors) {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length, true, true);\n\t\t} else {\n\t\t\tdefine(/** @type {Parameters<define>[0]} */ (fn), 'length', length);\n\t\t}\n\t}\n\treturn fn;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = require('es-errors/type');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = require('es-define-property');\nvar $max = GetIntrinsic('%Math.max%');\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","var hasMap = typeof Map === 'function' && Map.prototype;\nvar mapSizeDescriptor = Object.getOwnPropertyDescriptor && hasMap ? Object.getOwnPropertyDescriptor(Map.prototype, 'size') : null;\nvar mapSize = hasMap && mapSizeDescriptor && typeof mapSizeDescriptor.get === 'function' ? mapSizeDescriptor.get : null;\nvar mapForEach = hasMap && Map.prototype.forEach;\nvar hasSet = typeof Set === 'function' && Set.prototype;\nvar setSizeDescriptor = Object.getOwnPropertyDescriptor && hasSet ? Object.getOwnPropertyDescriptor(Set.prototype, 'size') : null;\nvar setSize = hasSet && setSizeDescriptor && typeof setSizeDescriptor.get === 'function' ? setSizeDescriptor.get : null;\nvar setForEach = hasSet && Set.prototype.forEach;\nvar hasWeakMap = typeof WeakMap === 'function' && WeakMap.prototype;\nvar weakMapHas = hasWeakMap ? WeakMap.prototype.has : null;\nvar hasWeakSet = typeof WeakSet === 'function' && WeakSet.prototype;\nvar weakSetHas = hasWeakSet ? WeakSet.prototype.has : null;\nvar hasWeakRef = typeof WeakRef === 'function' && WeakRef.prototype;\nvar weakRefDeref = hasWeakRef ? WeakRef.prototype.deref : null;\nvar booleanValueOf = Boolean.prototype.valueOf;\nvar objectToString = Object.prototype.toString;\nvar functionToString = Function.prototype.toString;\nvar $match = String.prototype.match;\nvar $slice = String.prototype.slice;\nvar $replace = String.prototype.replace;\nvar $toUpperCase = String.prototype.toUpperCase;\nvar $toLowerCase = String.prototype.toLowerCase;\nvar $test = RegExp.prototype.test;\nvar $concat = Array.prototype.concat;\nvar $join = Array.prototype.join;\nvar $arrSlice = Array.prototype.slice;\nvar $floor = Math.floor;\nvar bigIntValueOf = typeof BigInt === 'function' ? BigInt.prototype.valueOf : null;\nvar gOPS = Object.getOwnPropertySymbols;\nvar symToString = typeof Symbol === 'function' && typeof Symbol.iterator === 'symbol' ? Symbol.prototype.toString : null;\nvar hasShammedSymbols = typeof Symbol === 'function' && typeof Symbol.iterator === 'object';\n// ie, `has-tostringtag/shams\nvar toStringTag = typeof Symbol === 'function' && Symbol.toStringTag && (typeof Symbol.toStringTag === hasShammedSymbols ? 'object' : 'symbol')\n ? Symbol.toStringTag\n : null;\nvar isEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar gPO = (typeof Reflect === 'function' ? Reflect.getPrototypeOf : Object.getPrototypeOf) || (\n [].__proto__ === Array.prototype // eslint-disable-line no-proto\n ? function (O) {\n return O.__proto__; // eslint-disable-line no-proto\n }\n : null\n);\n\nfunction addNumericSeparator(num, str) {\n if (\n num === Infinity\n || num === -Infinity\n || num !== num\n || (num && num > -1000 && num < 1000)\n || $test.call(/e/, str)\n ) {\n return str;\n }\n var sepRegex = /[0-9](?=(?:[0-9]{3})+(?![0-9]))/g;\n if (typeof num === 'number') {\n var int = num < 0 ? -$floor(-num) : $floor(num); // trunc(num)\n if (int !== num) {\n var intStr = String(int);\n var dec = $slice.call(str, intStr.length + 1);\n return $replace.call(intStr, sepRegex, '$&_') + '.' + $replace.call($replace.call(dec, /([0-9]{3})/g, '$&_'), /_$/, '');\n }\n }\n return $replace.call(str, sepRegex, '$&_');\n}\n\nvar utilInspect = require('./util.inspect');\nvar inspectCustom = utilInspect.custom;\nvar inspectSymbol = isSymbol(inspectCustom) ? inspectCustom : null;\n\nmodule.exports = function inspect_(obj, options, depth, seen) {\n var opts = options || {};\n\n if (has(opts, 'quoteStyle') && (opts.quoteStyle !== 'single' && opts.quoteStyle !== 'double')) {\n throw new TypeError('option \"quoteStyle\" must be \"single\" or \"double\"');\n }\n if (\n has(opts, 'maxStringLength') && (typeof opts.maxStringLength === 'number'\n ? opts.maxStringLength < 0 && opts.maxStringLength !== Infinity\n : opts.maxStringLength !== null\n )\n ) {\n throw new TypeError('option \"maxStringLength\", if provided, must be a positive integer, Infinity, or `null`');\n }\n var customInspect = has(opts, 'customInspect') ? opts.customInspect : true;\n if (typeof customInspect !== 'boolean' && customInspect !== 'symbol') {\n throw new TypeError('option \"customInspect\", if provided, must be `true`, `false`, or `\\'symbol\\'`');\n }\n\n if (\n has(opts, 'indent')\n && opts.indent !== null\n && opts.indent !== '\\t'\n && !(parseInt(opts.indent, 10) === opts.indent && opts.indent > 0)\n ) {\n throw new TypeError('option \"indent\" must be \"\\\\t\", an integer > 0, or `null`');\n }\n if (has(opts, 'numericSeparator') && typeof opts.numericSeparator !== 'boolean') {\n throw new TypeError('option \"numericSeparator\", if provided, must be `true` or `false`');\n }\n var numericSeparator = opts.numericSeparator;\n\n if (typeof obj === 'undefined') {\n return 'undefined';\n }\n if (obj === null) {\n return 'null';\n }\n if (typeof obj === 'boolean') {\n return obj ? 'true' : 'false';\n }\n\n if (typeof obj === 'string') {\n return inspectString(obj, opts);\n }\n if (typeof obj === 'number') {\n if (obj === 0) {\n return Infinity / obj > 0 ? '0' : '-0';\n }\n var str = String(obj);\n return numericSeparator ? addNumericSeparator(obj, str) : str;\n }\n if (typeof obj === 'bigint') {\n var bigIntStr = String(obj) + 'n';\n return numericSeparator ? addNumericSeparator(obj, bigIntStr) : bigIntStr;\n }\n\n var maxDepth = typeof opts.depth === 'undefined' ? 5 : opts.depth;\n if (typeof depth === 'undefined') { depth = 0; }\n if (depth >= maxDepth && maxDepth > 0 && typeof obj === 'object') {\n return isArray(obj) ? '[Array]' : '[Object]';\n }\n\n var indent = getIndent(opts, depth);\n\n if (typeof seen === 'undefined') {\n seen = [];\n } else if (indexOf(seen, obj) >= 0) {\n return '[Circular]';\n }\n\n function inspect(value, from, noIndent) {\n if (from) {\n seen = $arrSlice.call(seen);\n seen.push(from);\n }\n if (noIndent) {\n var newOpts = {\n depth: opts.depth\n };\n if (has(opts, 'quoteStyle')) {\n newOpts.quoteStyle = opts.quoteStyle;\n }\n return inspect_(value, newOpts, depth + 1, seen);\n }\n return inspect_(value, opts, depth + 1, seen);\n }\n\n if (typeof obj === 'function' && !isRegExp(obj)) { // in older engines, regexes are callable\n var name = nameOf(obj);\n var keys = arrObjKeys(obj, inspect);\n return '[Function' + (name ? ': ' + name : ' (anonymous)') + ']' + (keys.length > 0 ? ' { ' + $join.call(keys, ', ') + ' }' : '');\n }\n if (isSymbol(obj)) {\n var symString = hasShammedSymbols ? $replace.call(String(obj), /^(Symbol\\(.*\\))_[^)]*$/, '$1') : symToString.call(obj);\n return typeof obj === 'object' && !hasShammedSymbols ? markBoxed(symString) : symString;\n }\n if (isElement(obj)) {\n var s = '<' + $toLowerCase.call(String(obj.nodeName));\n var attrs = obj.attributes || [];\n for (var i = 0; i < attrs.length; i++) {\n s += ' ' + attrs[i].name + '=' + wrapQuotes(quote(attrs[i].value), 'double', opts);\n }\n s += '>';\n if (obj.childNodes && obj.childNodes.length) { s += '...'; }\n s += '</' + $toLowerCase.call(String(obj.nodeName)) + '>';\n return s;\n }\n if (isArray(obj)) {\n if (obj.length === 0) { return '[]'; }\n var xs = arrObjKeys(obj, inspect);\n if (indent && !singleLineValues(xs)) {\n return '[' + indentedJoin(xs, indent) + ']';\n }\n return '[ ' + $join.call(xs, ', ') + ' ]';\n }\n if (isError(obj)) {\n var parts = arrObjKeys(obj, inspect);\n if (!('cause' in Error.prototype) && 'cause' in obj && !isEnumerable.call(obj, 'cause')) {\n return '{ [' + String(obj) + '] ' + $join.call($concat.call('[cause]: ' + inspect(obj.cause), parts), ', ') + ' }';\n }\n if (parts.length === 0) { return '[' + String(obj) + ']'; }\n return '{ [' + String(obj) + '] ' + $join.call(parts, ', ') + ' }';\n }\n if (typeof obj === 'object' && customInspect) {\n if (inspectSymbol && typeof obj[inspectSymbol] === 'function' && utilInspect) {\n return utilInspect(obj, { depth: maxDepth - depth });\n } else if (customInspect !== 'symbol' && typeof obj.inspect === 'function') {\n return obj.inspect();\n }\n }\n if (isMap(obj)) {\n var mapParts = [];\n if (mapForEach) {\n mapForEach.call(obj, function (value, key) {\n mapParts.push(inspect(key, obj, true) + ' => ' + inspect(value, obj));\n });\n }\n return collectionOf('Map', mapSize.call(obj), mapParts, indent);\n }\n if (isSet(obj)) {\n var setParts = [];\n if (setForEach) {\n setForEach.call(obj, function (value) {\n setParts.push(inspect(value, obj));\n });\n }\n return collectionOf('Set', setSize.call(obj), setParts, indent);\n }\n if (isWeakMap(obj)) {\n return weakCollectionOf('WeakMap');\n }\n if (isWeakSet(obj)) {\n return weakCollectionOf('WeakSet');\n }\n if (isWeakRef(obj)) {\n return weakCollectionOf('WeakRef');\n }\n if (isNumber(obj)) {\n return markBoxed(inspect(Number(obj)));\n }\n if (isBigInt(obj)) {\n return markBoxed(inspect(bigIntValueOf.call(obj)));\n }\n if (isBoolean(obj)) {\n return markBoxed(booleanValueOf.call(obj));\n }\n if (isString(obj)) {\n return markBoxed(inspect(String(obj)));\n }\n // note: in IE 8, sometimes `global !== window` but both are the prototypes of each other\n /* eslint-env browser */\n if (typeof window !== 'undefined' && obj === window) {\n return '{ [object Window] }';\n }\n if (obj === global) {\n return '{ [object globalThis] }';\n }\n if (!isDate(obj) && !isRegExp(obj)) {\n var ys = arrObjKeys(obj, inspect);\n var isPlainObject = gPO ? gPO(obj) === Object.prototype : obj instanceof Object || obj.constructor === Object;\n var protoTag = obj instanceof Object ? '' : 'null prototype';\n var stringTag = !isPlainObject && toStringTag && Object(obj) === obj && toStringTag in obj ? $slice.call(toStr(obj), 8, -1) : protoTag ? 'Object' : '';\n var constructorTag = isPlainObject || typeof obj.constructor !== 'function' ? '' : obj.constructor.name ? obj.constructor.name + ' ' : '';\n var tag = constructorTag + (stringTag || protoTag ? '[' + $join.call($concat.call([], stringTag || [], protoTag || []), ': ') + '] ' : '');\n if (ys.length === 0) { return tag + '{}'; }\n if (indent) {\n return tag + '{' + indentedJoin(ys, indent) + '}';\n }\n return tag + '{ ' + $join.call(ys, ', ') + ' }';\n }\n return String(obj);\n};\n\nfunction wrapQuotes(s, defaultStyle, opts) {\n var quoteChar = (opts.quoteStyle || defaultStyle) === 'double' ? '\"' : \"'\";\n return quoteChar + s + quoteChar;\n}\n\nfunction quote(s) {\n return $replace.call(String(s), /\"/g, '"');\n}\n\nfunction isArray(obj) { return toStr(obj) === '[object Array]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isDate(obj) { return toStr(obj) === '[object Date]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isRegExp(obj) { return toStr(obj) === '[object RegExp]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isError(obj) { return toStr(obj) === '[object Error]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isString(obj) { return toStr(obj) === '[object String]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isNumber(obj) { return toStr(obj) === '[object Number]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\nfunction isBoolean(obj) { return toStr(obj) === '[object Boolean]' && (!toStringTag || !(typeof obj === 'object' && toStringTag in obj)); }\n\n// Symbol and BigInt do have Symbol.toStringTag by spec, so that can't be used to eliminate false positives\nfunction isSymbol(obj) {\n if (hasShammedSymbols) {\n return obj && typeof obj === 'object' && obj instanceof Symbol;\n }\n if (typeof obj === 'symbol') {\n return true;\n }\n if (!obj || typeof obj !== 'object' || !symToString) {\n return false;\n }\n try {\n symToString.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isBigInt(obj) {\n if (!obj || typeof obj !== 'object' || !bigIntValueOf) {\n return false;\n }\n try {\n bigIntValueOf.call(obj);\n return true;\n } catch (e) {}\n return false;\n}\n\nvar hasOwn = Object.prototype.hasOwnProperty || function (key) { return key in this; };\nfunction has(obj, key) {\n return hasOwn.call(obj, key);\n}\n\nfunction toStr(obj) {\n return objectToString.call(obj);\n}\n\nfunction nameOf(f) {\n if (f.name) { return f.name; }\n var m = $match.call(functionToString.call(f), /^function\\s*([\\w$]+)/);\n if (m) { return m[1]; }\n return null;\n}\n\nfunction indexOf(xs, x) {\n if (xs.indexOf) { return xs.indexOf(x); }\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) { return i; }\n }\n return -1;\n}\n\nfunction isMap(x) {\n if (!mapSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n mapSize.call(x);\n try {\n setSize.call(x);\n } catch (s) {\n return true;\n }\n return x instanceof Map; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakMap(x) {\n if (!weakMapHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakMapHas.call(x, weakMapHas);\n try {\n weakSetHas.call(x, weakSetHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakMap; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakRef(x) {\n if (!weakRefDeref || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakRefDeref.call(x);\n return true;\n } catch (e) {}\n return false;\n}\n\nfunction isSet(x) {\n if (!setSize || !x || typeof x !== 'object') {\n return false;\n }\n try {\n setSize.call(x);\n try {\n mapSize.call(x);\n } catch (m) {\n return true;\n }\n return x instanceof Set; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isWeakSet(x) {\n if (!weakSetHas || !x || typeof x !== 'object') {\n return false;\n }\n try {\n weakSetHas.call(x, weakSetHas);\n try {\n weakMapHas.call(x, weakMapHas);\n } catch (s) {\n return true;\n }\n return x instanceof WeakSet; // core-js workaround, pre-v2.5.0\n } catch (e) {}\n return false;\n}\n\nfunction isElement(x) {\n if (!x || typeof x !== 'object') { return false; }\n if (typeof HTMLElement !== 'undefined' && x instanceof HTMLElement) {\n return true;\n }\n return typeof x.nodeName === 'string' && typeof x.getAttribute === 'function';\n}\n\nfunction inspectString(str, opts) {\n if (str.length > opts.maxStringLength) {\n var remaining = str.length - opts.maxStringLength;\n var trailer = '... ' + remaining + ' more character' + (remaining > 1 ? 's' : '');\n return inspectString($slice.call(str, 0, opts.maxStringLength), opts) + trailer;\n }\n // eslint-disable-next-line no-control-regex\n var s = $replace.call($replace.call(str, /(['\\\\])/g, '\\\\$1'), /[\\x00-\\x1f]/g, lowbyte);\n return wrapQuotes(s, 'single', opts);\n}\n\nfunction lowbyte(c) {\n var n = c.charCodeAt(0);\n var x = {\n 8: 'b',\n 9: 't',\n 10: 'n',\n 12: 'f',\n 13: 'r'\n }[n];\n if (x) { return '\\\\' + x; }\n return '\\\\x' + (n < 0x10 ? '0' : '') + $toUpperCase.call(n.toString(16));\n}\n\nfunction markBoxed(str) {\n return 'Object(' + str + ')';\n}\n\nfunction weakCollectionOf(type) {\n return type + ' { ? }';\n}\n\nfunction collectionOf(type, size, entries, indent) {\n var joinedEntries = indent ? indentedJoin(entries, indent) : $join.call(entries, ', ');\n return type + ' (' + size + ') {' + joinedEntries + '}';\n}\n\nfunction singleLineValues(xs) {\n for (var i = 0; i < xs.length; i++) {\n if (indexOf(xs[i], '\\n') >= 0) {\n return false;\n }\n }\n return true;\n}\n\nfunction getIndent(opts, depth) {\n var baseIndent;\n if (opts.indent === '\\t') {\n baseIndent = '\\t';\n } else if (typeof opts.indent === 'number' && opts.indent > 0) {\n baseIndent = $join.call(Array(opts.indent + 1), ' ');\n } else {\n return null;\n }\n return {\n base: baseIndent,\n prev: $join.call(Array(depth + 1), baseIndent)\n };\n}\n\nfunction indentedJoin(xs, indent) {\n if (xs.length === 0) { return ''; }\n var lineJoiner = '\\n' + indent.prev + indent.base;\n return lineJoiner + $join.call(xs, ',' + lineJoiner) + '\\n' + indent.prev;\n}\n\nfunction arrObjKeys(obj, inspect) {\n var isArr = isArray(obj);\n var xs = [];\n if (isArr) {\n xs.length = obj.length;\n for (var i = 0; i < obj.length; i++) {\n xs[i] = has(obj, i) ? inspect(obj[i], obj) : '';\n }\n }\n var syms = typeof gOPS === 'function' ? gOPS(obj) : [];\n var symMap;\n if (hasShammedSymbols) {\n symMap = {};\n for (var k = 0; k < syms.length; k++) {\n symMap['$' + syms[k]] = syms[k];\n }\n }\n\n for (var key in obj) { // eslint-disable-line no-restricted-syntax\n if (!has(obj, key)) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (isArr && String(Number(key)) === key && key < obj.length) { continue; } // eslint-disable-line no-restricted-syntax, no-continue\n if (hasShammedSymbols && symMap['$' + key] instanceof Symbol) {\n // this is to prevent shammed Symbols, which are stored as strings, from being included in the string key section\n continue; // eslint-disable-line no-restricted-syntax, no-continue\n } else if ($test.call(/[^\\w$]/, key)) {\n xs.push(inspect(key, obj) + ': ' + inspect(obj[key], obj));\n } else {\n xs.push(key + ': ' + inspect(obj[key], obj));\n }\n }\n if (typeof gOPS === 'function') {\n for (var j = 0; j < syms.length; j++) {\n if (isEnumerable.call(obj, syms[j])) {\n xs.push('[' + inspect(syms[j]) + ']: ' + inspect(obj[syms[j]], obj));\n }\n }\n }\n return xs;\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\nvar callBound = require('call-bind/callBound');\nvar inspect = require('object-inspect');\n\nvar $TypeError = require('es-errors/type');\nvar $WeakMap = GetIntrinsic('%WeakMap%', true);\nvar $Map = GetIntrinsic('%Map%', true);\n\nvar $weakMapGet = callBound('WeakMap.prototype.get', true);\nvar $weakMapSet = callBound('WeakMap.prototype.set', true);\nvar $weakMapHas = callBound('WeakMap.prototype.has', true);\nvar $mapGet = callBound('Map.prototype.get', true);\nvar $mapSet = callBound('Map.prototype.set', true);\nvar $mapHas = callBound('Map.prototype.has', true);\n\n/*\n* This function traverses the list returning the node corresponding to the given key.\n*\n* That node is also moved to the head of the list, so that if it's accessed again we don't need to traverse the whole list. By doing so, all the recently used nodes can be accessed relatively quickly.\n*/\n/** @type {import('.').listGetNode} */\nvar listGetNode = function (list, key) { // eslint-disable-line consistent-return\n\t/** @type {typeof list | NonNullable<(typeof list)['next']>} */\n\tvar prev = list;\n\t/** @type {(typeof list)['next']} */\n\tvar curr;\n\tfor (; (curr = prev.next) !== null; prev = curr) {\n\t\tif (curr.key === key) {\n\t\t\tprev.next = curr.next;\n\t\t\t// eslint-disable-next-line no-extra-parens\n\t\t\tcurr.next = /** @type {NonNullable<typeof list.next>} */ (list.next);\n\t\t\tlist.next = curr; // eslint-disable-line no-param-reassign\n\t\t\treturn curr;\n\t\t}\n\t}\n};\n\n/** @type {import('.').listGet} */\nvar listGet = function (objects, key) {\n\tvar node = listGetNode(objects, key);\n\treturn node && node.value;\n};\n/** @type {import('.').listSet} */\nvar listSet = function (objects, key, value) {\n\tvar node = listGetNode(objects, key);\n\tif (node) {\n\t\tnode.value = value;\n\t} else {\n\t\t// Prepend the new node to the beginning of the list\n\t\tobjects.next = /** @type {import('.').ListNode<typeof value>} */ ({ // eslint-disable-line no-param-reassign, no-extra-parens\n\t\t\tkey: key,\n\t\t\tnext: objects.next,\n\t\t\tvalue: value\n\t\t});\n\t}\n};\n/** @type {import('.').listHas} */\nvar listHas = function (objects, key) {\n\treturn !!listGetNode(objects, key);\n};\n\n/** @type {import('.')} */\nmodule.exports = function getSideChannel() {\n\t/** @type {WeakMap<object, unknown>} */ var $wm;\n\t/** @type {Map<object, unknown>} */ var $m;\n\t/** @type {import('.').RootNode<unknown>} */ var $o;\n\n\t/** @type {import('.').Channel} */\n\tvar channel = {\n\t\tassert: function (key) {\n\t\t\tif (!channel.has(key)) {\n\t\t\t\tthrow new $TypeError('Side channel does not contain ' + inspect(key));\n\t\t\t}\n\t\t},\n\t\tget: function (key) { // eslint-disable-line consistent-return\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapGet($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapGet($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listGet($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\thas: function (key) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif ($wm) {\n\t\t\t\t\treturn $weakMapHas($wm, key);\n\t\t\t\t}\n\t\t\t} else if ($Map) {\n\t\t\t\tif ($m) {\n\t\t\t\t\treturn $mapHas($m, key);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif ($o) { // eslint-disable-line no-lonely-if\n\t\t\t\t\treturn listHas($o, key);\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t},\n\t\tset: function (key, value) {\n\t\t\tif ($WeakMap && key && (typeof key === 'object' || typeof key === 'function')) {\n\t\t\t\tif (!$wm) {\n\t\t\t\t\t$wm = new $WeakMap();\n\t\t\t\t}\n\t\t\t\t$weakMapSet($wm, key, value);\n\t\t\t} else if ($Map) {\n\t\t\t\tif (!$m) {\n\t\t\t\t\t$m = new $Map();\n\t\t\t\t}\n\t\t\t\t$mapSet($m, key, value);\n\t\t\t} else {\n\t\t\t\tif (!$o) {\n\t\t\t\t\t// Initialize the linked list as an empty node, so that we don't have to special-case handling of the first node: we can always refer to it as (previous node).next, instead of something like (list).head\n\t\t\t\t\t$o = { key: {}, next: null };\n\t\t\t\t}\n\t\t\t\tlistSet($o, key, value);\n\t\t\t}\n\t\t}\n\t};\n\treturn channel;\n};\n","'use strict';\n\nvar replace = String.prototype.replace;\nvar percentTwenties = /%20/g;\n\nvar Format = {\n RFC1738: 'RFC1738',\n RFC3986: 'RFC3986'\n};\n\nmodule.exports = {\n 'default': Format.RFC3986,\n formatters: {\n RFC1738: function (value) {\n return replace.call(value, percentTwenties, '+');\n },\n RFC3986: function (value) {\n return String(value);\n }\n },\n RFC1738: Format.RFC1738,\n RFC3986: Format.RFC3986\n};\n","'use strict';\n\nvar formats = require('./formats');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar hexTable = (function () {\n var array = [];\n for (var i = 0; i < 256; ++i) {\n array.push('%' + ((i < 16 ? '0' : '') + i.toString(16)).toUpperCase());\n }\n\n return array;\n}());\n\nvar compactQueue = function compactQueue(queue) {\n while (queue.length > 1) {\n var item = queue.pop();\n var obj = item.obj[item.prop];\n\n if (isArray(obj)) {\n var compacted = [];\n\n for (var j = 0; j < obj.length; ++j) {\n if (typeof obj[j] !== 'undefined') {\n compacted.push(obj[j]);\n }\n }\n\n item.obj[item.prop] = compacted;\n }\n }\n};\n\nvar arrayToObject = function arrayToObject(source, options) {\n var obj = options && options.plainObjects ? Object.create(null) : {};\n for (var i = 0; i < source.length; ++i) {\n if (typeof source[i] !== 'undefined') {\n obj[i] = source[i];\n }\n }\n\n return obj;\n};\n\nvar merge = function merge(target, source, options) {\n /* eslint no-param-reassign: 0 */\n if (!source) {\n return target;\n }\n\n if (typeof source !== 'object') {\n if (isArray(target)) {\n target.push(source);\n } else if (target && typeof target === 'object') {\n if ((options && (options.plainObjects || options.allowPrototypes)) || !has.call(Object.prototype, source)) {\n target[source] = true;\n }\n } else {\n return [target, source];\n }\n\n return target;\n }\n\n if (!target || typeof target !== 'object') {\n return [target].concat(source);\n }\n\n var mergeTarget = target;\n if (isArray(target) && !isArray(source)) {\n mergeTarget = arrayToObject(target, options);\n }\n\n if (isArray(target) && isArray(source)) {\n source.forEach(function (item, i) {\n if (has.call(target, i)) {\n var targetItem = target[i];\n if (targetItem && typeof targetItem === 'object' && item && typeof item === 'object') {\n target[i] = merge(targetItem, item, options);\n } else {\n target.push(item);\n }\n } else {\n target[i] = item;\n }\n });\n return target;\n }\n\n return Object.keys(source).reduce(function (acc, key) {\n var value = source[key];\n\n if (has.call(acc, key)) {\n acc[key] = merge(acc[key], value, options);\n } else {\n acc[key] = value;\n }\n return acc;\n }, mergeTarget);\n};\n\nvar assign = function assignSingleSource(target, source) {\n return Object.keys(source).reduce(function (acc, key) {\n acc[key] = source[key];\n return acc;\n }, target);\n};\n\nvar decode = function (str, decoder, charset) {\n var strWithoutPlus = str.replace(/\\+/g, ' ');\n if (charset === 'iso-8859-1') {\n // unescape never throws, no try...catch needed:\n return strWithoutPlus.replace(/%[0-9a-f]{2}/gi, unescape);\n }\n // utf-8\n try {\n return decodeURIComponent(strWithoutPlus);\n } catch (e) {\n return strWithoutPlus;\n }\n};\n\nvar limit = 1024;\n\n/* eslint operator-linebreak: [2, \"before\"] */\n\nvar encode = function encode(str, defaultEncoder, charset, kind, format) {\n // This code was originally written by Brian White (mscdex) for the io.js core querystring library.\n // It has been adapted here for stricter adherence to RFC 3986\n if (str.length === 0) {\n return str;\n }\n\n var string = str;\n if (typeof str === 'symbol') {\n string = Symbol.prototype.toString.call(str);\n } else if (typeof str !== 'string') {\n string = String(str);\n }\n\n if (charset === 'iso-8859-1') {\n return escape(string).replace(/%u[0-9a-f]{4}/gi, function ($0) {\n return '%26%23' + parseInt($0.slice(2), 16) + '%3B';\n });\n }\n\n var out = '';\n for (var j = 0; j < string.length; j += limit) {\n var segment = string.length >= limit ? string.slice(j, j + limit) : string;\n var arr = [];\n\n for (var i = 0; i < segment.length; ++i) {\n var c = segment.charCodeAt(i);\n if (\n c === 0x2D // -\n || c === 0x2E // .\n || c === 0x5F // _\n || c === 0x7E // ~\n || (c >= 0x30 && c <= 0x39) // 0-9\n || (c >= 0x41 && c <= 0x5A) // a-z\n || (c >= 0x61 && c <= 0x7A) // A-Z\n || (format === formats.RFC1738 && (c === 0x28 || c === 0x29)) // ( )\n ) {\n arr[arr.length] = segment.charAt(i);\n continue;\n }\n\n if (c < 0x80) {\n arr[arr.length] = hexTable[c];\n continue;\n }\n\n if (c < 0x800) {\n arr[arr.length] = hexTable[0xC0 | (c >> 6)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n if (c < 0xD800 || c >= 0xE000) {\n arr[arr.length] = hexTable[0xE0 | (c >> 12)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n continue;\n }\n\n i += 1;\n c = 0x10000 + (((c & 0x3FF) << 10) | (segment.charCodeAt(i) & 0x3FF));\n\n arr[arr.length] = hexTable[0xF0 | (c >> 18)]\n + hexTable[0x80 | ((c >> 12) & 0x3F)]\n + hexTable[0x80 | ((c >> 6) & 0x3F)]\n + hexTable[0x80 | (c & 0x3F)];\n }\n\n out += arr.join('');\n }\n\n return out;\n};\n\nvar compact = function compact(value) {\n var queue = [{ obj: { o: value }, prop: 'o' }];\n var refs = [];\n\n for (var i = 0; i < queue.length; ++i) {\n var item = queue[i];\n var obj = item.obj[item.prop];\n\n var keys = Object.keys(obj);\n for (var j = 0; j < keys.length; ++j) {\n var key = keys[j];\n var val = obj[key];\n if (typeof val === 'object' && val !== null && refs.indexOf(val) === -1) {\n queue.push({ obj: obj, prop: key });\n refs.push(val);\n }\n }\n }\n\n compactQueue(queue);\n\n return value;\n};\n\nvar isRegExp = function isRegExp(obj) {\n return Object.prototype.toString.call(obj) === '[object RegExp]';\n};\n\nvar isBuffer = function isBuffer(obj) {\n if (!obj || typeof obj !== 'object') {\n return false;\n }\n\n return !!(obj.constructor && obj.constructor.isBuffer && obj.constructor.isBuffer(obj));\n};\n\nvar combine = function combine(a, b) {\n return [].concat(a, b);\n};\n\nvar maybeMap = function maybeMap(val, fn) {\n if (isArray(val)) {\n var mapped = [];\n for (var i = 0; i < val.length; i += 1) {\n mapped.push(fn(val[i]));\n }\n return mapped;\n }\n return fn(val);\n};\n\nmodule.exports = {\n arrayToObject: arrayToObject,\n assign: assign,\n combine: combine,\n compact: compact,\n decode: decode,\n encode: encode,\n isBuffer: isBuffer,\n isRegExp: isRegExp,\n maybeMap: maybeMap,\n merge: merge\n};\n","'use strict';\n\nvar getSideChannel = require('side-channel');\nvar utils = require('./utils');\nvar formats = require('./formats');\nvar has = Object.prototype.hasOwnProperty;\n\nvar arrayPrefixGenerators = {\n brackets: function brackets(prefix) {\n return prefix + '[]';\n },\n comma: 'comma',\n indices: function indices(prefix, key) {\n return prefix + '[' + key + ']';\n },\n repeat: function repeat(prefix) {\n return prefix;\n }\n};\n\nvar isArray = Array.isArray;\nvar push = Array.prototype.push;\nvar pushToArray = function (arr, valueOrArray) {\n push.apply(arr, isArray(valueOrArray) ? valueOrArray : [valueOrArray]);\n};\n\nvar toISO = Date.prototype.toISOString;\n\nvar defaultFormat = formats['default'];\nvar defaults = {\n addQueryPrefix: false,\n allowDots: false,\n allowEmptyArrays: false,\n arrayFormat: 'indices',\n charset: 'utf-8',\n charsetSentinel: false,\n delimiter: '&',\n encode: true,\n encodeDotInKeys: false,\n encoder: utils.encode,\n encodeValuesOnly: false,\n format: defaultFormat,\n formatter: formats.formatters[defaultFormat],\n // deprecated\n indices: false,\n serializeDate: function serializeDate(date) {\n return toISO.call(date);\n },\n skipNulls: false,\n strictNullHandling: false\n};\n\nvar isNonNullishPrimitive = function isNonNullishPrimitive(v) {\n return typeof v === 'string'\n || typeof v === 'number'\n || typeof v === 'boolean'\n || typeof v === 'symbol'\n || typeof v === 'bigint';\n};\n\nvar sentinel = {};\n\nvar stringify = function stringify(\n object,\n prefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n sideChannel\n) {\n var obj = object;\n\n var tmpSc = sideChannel;\n var step = 0;\n var findFlag = false;\n while ((tmpSc = tmpSc.get(sentinel)) !== void undefined && !findFlag) {\n // Where object last appeared in the ref tree\n var pos = tmpSc.get(object);\n step += 1;\n if (typeof pos !== 'undefined') {\n if (pos === step) {\n throw new RangeError('Cyclic object value');\n } else {\n findFlag = true; // Break while\n }\n }\n if (typeof tmpSc.get(sentinel) === 'undefined') {\n step = 0;\n }\n }\n\n if (typeof filter === 'function') {\n obj = filter(prefix, obj);\n } else if (obj instanceof Date) {\n obj = serializeDate(obj);\n } else if (generateArrayPrefix === 'comma' && isArray(obj)) {\n obj = utils.maybeMap(obj, function (value) {\n if (value instanceof Date) {\n return serializeDate(value);\n }\n return value;\n });\n }\n\n if (obj === null) {\n if (strictNullHandling) {\n return encoder && !encodeValuesOnly ? encoder(prefix, defaults.encoder, charset, 'key', format) : prefix;\n }\n\n obj = '';\n }\n\n if (isNonNullishPrimitive(obj) || utils.isBuffer(obj)) {\n if (encoder) {\n var keyValue = encodeValuesOnly ? prefix : encoder(prefix, defaults.encoder, charset, 'key', format);\n return [formatter(keyValue) + '=' + formatter(encoder(obj, defaults.encoder, charset, 'value', format))];\n }\n return [formatter(prefix) + '=' + formatter(String(obj))];\n }\n\n var values = [];\n\n if (typeof obj === 'undefined') {\n return values;\n }\n\n var objKeys;\n if (generateArrayPrefix === 'comma' && isArray(obj)) {\n // we need to join elements in\n if (encodeValuesOnly && encoder) {\n obj = utils.maybeMap(obj, encoder);\n }\n objKeys = [{ value: obj.length > 0 ? obj.join(',') || null : void undefined }];\n } else if (isArray(filter)) {\n objKeys = filter;\n } else {\n var keys = Object.keys(obj);\n objKeys = sort ? keys.sort(sort) : keys;\n }\n\n var encodedPrefix = encodeDotInKeys ? prefix.replace(/\\./g, '%2E') : prefix;\n\n var adjustedPrefix = commaRoundTrip && isArray(obj) && obj.length === 1 ? encodedPrefix + '[]' : encodedPrefix;\n\n if (allowEmptyArrays && isArray(obj) && obj.length === 0) {\n return adjustedPrefix + '[]';\n }\n\n for (var j = 0; j < objKeys.length; ++j) {\n var key = objKeys[j];\n var value = typeof key === 'object' && typeof key.value !== 'undefined' ? key.value : obj[key];\n\n if (skipNulls && value === null) {\n continue;\n }\n\n var encodedKey = allowDots && encodeDotInKeys ? key.replace(/\\./g, '%2E') : key;\n var keyPrefix = isArray(obj)\n ? typeof generateArrayPrefix === 'function' ? generateArrayPrefix(adjustedPrefix, encodedKey) : adjustedPrefix\n : adjustedPrefix + (allowDots ? '.' + encodedKey : '[' + encodedKey + ']');\n\n sideChannel.set(object, step);\n var valueSideChannel = getSideChannel();\n valueSideChannel.set(sentinel, sideChannel);\n pushToArray(values, stringify(\n value,\n keyPrefix,\n generateArrayPrefix,\n commaRoundTrip,\n allowEmptyArrays,\n strictNullHandling,\n skipNulls,\n encodeDotInKeys,\n generateArrayPrefix === 'comma' && encodeValuesOnly && isArray(obj) ? null : encoder,\n filter,\n sort,\n allowDots,\n serializeDate,\n format,\n formatter,\n encodeValuesOnly,\n charset,\n valueSideChannel\n ));\n }\n\n return values;\n};\n\nvar normalizeStringifyOptions = function normalizeStringifyOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.encodeDotInKeys !== 'undefined' && typeof opts.encodeDotInKeys !== 'boolean') {\n throw new TypeError('`encodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.encoder !== null && typeof opts.encoder !== 'undefined' && typeof opts.encoder !== 'function') {\n throw new TypeError('Encoder has to be a function.');\n }\n\n var charset = opts.charset || defaults.charset;\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n\n var format = formats['default'];\n if (typeof opts.format !== 'undefined') {\n if (!has.call(formats.formatters, opts.format)) {\n throw new TypeError('Unknown format option provided.');\n }\n format = opts.format;\n }\n var formatter = formats.formatters[format];\n\n var filter = defaults.filter;\n if (typeof opts.filter === 'function' || isArray(opts.filter)) {\n filter = opts.filter;\n }\n\n var arrayFormat;\n if (opts.arrayFormat in arrayPrefixGenerators) {\n arrayFormat = opts.arrayFormat;\n } else if ('indices' in opts) {\n arrayFormat = opts.indices ? 'indices' : 'repeat';\n } else {\n arrayFormat = defaults.arrayFormat;\n }\n\n if ('commaRoundTrip' in opts && typeof opts.commaRoundTrip !== 'boolean') {\n throw new TypeError('`commaRoundTrip` must be a boolean, or absent');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.encodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n addQueryPrefix: typeof opts.addQueryPrefix === 'boolean' ? opts.addQueryPrefix : defaults.addQueryPrefix,\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n arrayFormat: arrayFormat,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n commaRoundTrip: opts.commaRoundTrip,\n delimiter: typeof opts.delimiter === 'undefined' ? defaults.delimiter : opts.delimiter,\n encode: typeof opts.encode === 'boolean' ? opts.encode : defaults.encode,\n encodeDotInKeys: typeof opts.encodeDotInKeys === 'boolean' ? opts.encodeDotInKeys : defaults.encodeDotInKeys,\n encoder: typeof opts.encoder === 'function' ? opts.encoder : defaults.encoder,\n encodeValuesOnly: typeof opts.encodeValuesOnly === 'boolean' ? opts.encodeValuesOnly : defaults.encodeValuesOnly,\n filter: filter,\n format: format,\n formatter: formatter,\n serializeDate: typeof opts.serializeDate === 'function' ? opts.serializeDate : defaults.serializeDate,\n skipNulls: typeof opts.skipNulls === 'boolean' ? opts.skipNulls : defaults.skipNulls,\n sort: typeof opts.sort === 'function' ? opts.sort : null,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (object, opts) {\n var obj = object;\n var options = normalizeStringifyOptions(opts);\n\n var objKeys;\n var filter;\n\n if (typeof options.filter === 'function') {\n filter = options.filter;\n obj = filter('', obj);\n } else if (isArray(options.filter)) {\n filter = options.filter;\n objKeys = filter;\n }\n\n var keys = [];\n\n if (typeof obj !== 'object' || obj === null) {\n return '';\n }\n\n var generateArrayPrefix = arrayPrefixGenerators[options.arrayFormat];\n var commaRoundTrip = generateArrayPrefix === 'comma' && options.commaRoundTrip;\n\n if (!objKeys) {\n objKeys = Object.keys(obj);\n }\n\n if (options.sort) {\n objKeys.sort(options.sort);\n }\n\n var sideChannel = getSideChannel();\n for (var i = 0; i < objKeys.length; ++i) {\n var key = objKeys[i];\n\n if (options.skipNulls && obj[key] === null) {\n continue;\n }\n pushToArray(keys, stringify(\n obj[key],\n key,\n generateArrayPrefix,\n commaRoundTrip,\n options.allowEmptyArrays,\n options.strictNullHandling,\n options.skipNulls,\n options.encodeDotInKeys,\n options.encode ? options.encoder : null,\n options.filter,\n options.sort,\n options.allowDots,\n options.serializeDate,\n options.format,\n options.formatter,\n options.encodeValuesOnly,\n options.charset,\n sideChannel\n ));\n }\n\n var joined = keys.join(options.delimiter);\n var prefix = options.addQueryPrefix === true ? '?' : '';\n\n if (options.charsetSentinel) {\n if (options.charset === 'iso-8859-1') {\n // encodeURIComponent('✓'), the \"numeric entity\" representation of a checkmark\n prefix += 'utf8=%26%2310003%3B&';\n } else {\n // encodeURIComponent('✓')\n prefix += 'utf8=%E2%9C%93&';\n }\n }\n\n return joined.length > 0 ? prefix + joined : '';\n};\n","'use strict';\n\nvar utils = require('./utils');\n\nvar has = Object.prototype.hasOwnProperty;\nvar isArray = Array.isArray;\n\nvar defaults = {\n allowDots: false,\n allowEmptyArrays: false,\n allowPrototypes: false,\n allowSparse: false,\n arrayLimit: 20,\n charset: 'utf-8',\n charsetSentinel: false,\n comma: false,\n decodeDotInKeys: false,\n decoder: utils.decode,\n delimiter: '&',\n depth: 5,\n duplicates: 'combine',\n ignoreQueryPrefix: false,\n interpretNumericEntities: false,\n parameterLimit: 1000,\n parseArrays: true,\n plainObjects: false,\n strictNullHandling: false\n};\n\nvar interpretNumericEntities = function (str) {\n return str.replace(/&#(\\d+);/g, function ($0, numberStr) {\n return String.fromCharCode(parseInt(numberStr, 10));\n });\n};\n\nvar parseArrayValue = function (val, options) {\n if (val && typeof val === 'string' && options.comma && val.indexOf(',') > -1) {\n return val.split(',');\n }\n\n return val;\n};\n\n// This is what browsers will submit when the ✓ character occurs in an\n// application/x-www-form-urlencoded body and the encoding of the page containing\n// the form is iso-8859-1, or when the submitted form has an accept-charset\n// attribute of iso-8859-1. Presumably also with other charsets that do not contain\n// the ✓ character, such as us-ascii.\nvar isoSentinel = 'utf8=%26%2310003%3B'; // encodeURIComponent('✓')\n\n// These are the percent-encoded utf-8 octets representing a checkmark, indicating that the request actually is utf-8 encoded.\nvar charsetSentinel = 'utf8=%E2%9C%93'; // encodeURIComponent('✓')\n\nvar parseValues = function parseQueryStringValues(str, options) {\n var obj = { __proto__: null };\n\n var cleanStr = options.ignoreQueryPrefix ? str.replace(/^\\?/, '') : str;\n var limit = options.parameterLimit === Infinity ? undefined : options.parameterLimit;\n var parts = cleanStr.split(options.delimiter, limit);\n var skipIndex = -1; // Keep track of where the utf8 sentinel was found\n var i;\n\n var charset = options.charset;\n if (options.charsetSentinel) {\n for (i = 0; i < parts.length; ++i) {\n if (parts[i].indexOf('utf8=') === 0) {\n if (parts[i] === charsetSentinel) {\n charset = 'utf-8';\n } else if (parts[i] === isoSentinel) {\n charset = 'iso-8859-1';\n }\n skipIndex = i;\n i = parts.length; // The eslint settings do not allow break;\n }\n }\n }\n\n for (i = 0; i < parts.length; ++i) {\n if (i === skipIndex) {\n continue;\n }\n var part = parts[i];\n\n var bracketEqualsPos = part.indexOf(']=');\n var pos = bracketEqualsPos === -1 ? part.indexOf('=') : bracketEqualsPos + 1;\n\n var key, val;\n if (pos === -1) {\n key = options.decoder(part, defaults.decoder, charset, 'key');\n val = options.strictNullHandling ? null : '';\n } else {\n key = options.decoder(part.slice(0, pos), defaults.decoder, charset, 'key');\n val = utils.maybeMap(\n parseArrayValue(part.slice(pos + 1), options),\n function (encodedVal) {\n return options.decoder(encodedVal, defaults.decoder, charset, 'value');\n }\n );\n }\n\n if (val && options.interpretNumericEntities && charset === 'iso-8859-1') {\n val = interpretNumericEntities(val);\n }\n\n if (part.indexOf('[]=') > -1) {\n val = isArray(val) ? [val] : val;\n }\n\n var existing = has.call(obj, key);\n if (existing && options.duplicates === 'combine') {\n obj[key] = utils.combine(obj[key], val);\n } else if (!existing || options.duplicates === 'last') {\n obj[key] = val;\n }\n }\n\n return obj;\n};\n\nvar parseObject = function (chain, val, options, valuesParsed) {\n var leaf = valuesParsed ? val : parseArrayValue(val, options);\n\n for (var i = chain.length - 1; i >= 0; --i) {\n var obj;\n var root = chain[i];\n\n if (root === '[]' && options.parseArrays) {\n obj = options.allowEmptyArrays && leaf === '' ? [] : [].concat(leaf);\n } else {\n obj = options.plainObjects ? Object.create(null) : {};\n var cleanRoot = root.charAt(0) === '[' && root.charAt(root.length - 1) === ']' ? root.slice(1, -1) : root;\n var decodedRoot = options.decodeDotInKeys ? cleanRoot.replace(/%2E/g, '.') : cleanRoot;\n var index = parseInt(decodedRoot, 10);\n if (!options.parseArrays && decodedRoot === '') {\n obj = { 0: leaf };\n } else if (\n !isNaN(index)\n && root !== decodedRoot\n && String(index) === decodedRoot\n && index >= 0\n && (options.parseArrays && index <= options.arrayLimit)\n ) {\n obj = [];\n obj[index] = leaf;\n } else if (decodedRoot !== '__proto__') {\n obj[decodedRoot] = leaf;\n }\n }\n\n leaf = obj;\n }\n\n return leaf;\n};\n\nvar parseKeys = function parseQueryStringKeys(givenKey, val, options, valuesParsed) {\n if (!givenKey) {\n return;\n }\n\n // Transform dot notation to bracket notation\n var key = options.allowDots ? givenKey.replace(/\\.([^.[]+)/g, '[$1]') : givenKey;\n\n // The regex chunks\n\n var brackets = /(\\[[^[\\]]*])/;\n var child = /(\\[[^[\\]]*])/g;\n\n // Get the parent\n\n var segment = options.depth > 0 && brackets.exec(key);\n var parent = segment ? key.slice(0, segment.index) : key;\n\n // Stash the parent if it exists\n\n var keys = [];\n if (parent) {\n // If we aren't using plain objects, optionally prefix keys that would overwrite object prototype properties\n if (!options.plainObjects && has.call(Object.prototype, parent)) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n\n keys.push(parent);\n }\n\n // Loop through children appending to the array until we hit depth\n\n var i = 0;\n while (options.depth > 0 && (segment = child.exec(key)) !== null && i < options.depth) {\n i += 1;\n if (!options.plainObjects && has.call(Object.prototype, segment[1].slice(1, -1))) {\n if (!options.allowPrototypes) {\n return;\n }\n }\n keys.push(segment[1]);\n }\n\n // If there's a remainder, just add whatever is left\n\n if (segment) {\n keys.push('[' + key.slice(segment.index) + ']');\n }\n\n return parseObject(keys, val, options, valuesParsed);\n};\n\nvar normalizeParseOptions = function normalizeParseOptions(opts) {\n if (!opts) {\n return defaults;\n }\n\n if (typeof opts.allowEmptyArrays !== 'undefined' && typeof opts.allowEmptyArrays !== 'boolean') {\n throw new TypeError('`allowEmptyArrays` option can only be `true` or `false`, when provided');\n }\n\n if (typeof opts.decodeDotInKeys !== 'undefined' && typeof opts.decodeDotInKeys !== 'boolean') {\n throw new TypeError('`decodeDotInKeys` option can only be `true` or `false`, when provided');\n }\n\n if (opts.decoder !== null && typeof opts.decoder !== 'undefined' && typeof opts.decoder !== 'function') {\n throw new TypeError('Decoder has to be a function.');\n }\n\n if (typeof opts.charset !== 'undefined' && opts.charset !== 'utf-8' && opts.charset !== 'iso-8859-1') {\n throw new TypeError('The charset option must be either utf-8, iso-8859-1, or undefined');\n }\n var charset = typeof opts.charset === 'undefined' ? defaults.charset : opts.charset;\n\n var duplicates = typeof opts.duplicates === 'undefined' ? defaults.duplicates : opts.duplicates;\n\n if (duplicates !== 'combine' && duplicates !== 'first' && duplicates !== 'last') {\n throw new TypeError('The duplicates option must be either combine, first, or last');\n }\n\n var allowDots = typeof opts.allowDots === 'undefined' ? opts.decodeDotInKeys === true ? true : defaults.allowDots : !!opts.allowDots;\n\n return {\n allowDots: allowDots,\n allowEmptyArrays: typeof opts.allowEmptyArrays === 'boolean' ? !!opts.allowEmptyArrays : defaults.allowEmptyArrays,\n allowPrototypes: typeof opts.allowPrototypes === 'boolean' ? opts.allowPrototypes : defaults.allowPrototypes,\n allowSparse: typeof opts.allowSparse === 'boolean' ? opts.allowSparse : defaults.allowSparse,\n arrayLimit: typeof opts.arrayLimit === 'number' ? opts.arrayLimit : defaults.arrayLimit,\n charset: charset,\n charsetSentinel: typeof opts.charsetSentinel === 'boolean' ? opts.charsetSentinel : defaults.charsetSentinel,\n comma: typeof opts.comma === 'boolean' ? opts.comma : defaults.comma,\n decodeDotInKeys: typeof opts.decodeDotInKeys === 'boolean' ? opts.decodeDotInKeys : defaults.decodeDotInKeys,\n decoder: typeof opts.decoder === 'function' ? opts.decoder : defaults.decoder,\n delimiter: typeof opts.delimiter === 'string' || utils.isRegExp(opts.delimiter) ? opts.delimiter : defaults.delimiter,\n // eslint-disable-next-line no-implicit-coercion, no-extra-parens\n depth: (typeof opts.depth === 'number' || opts.depth === false) ? +opts.depth : defaults.depth,\n duplicates: duplicates,\n ignoreQueryPrefix: opts.ignoreQueryPrefix === true,\n interpretNumericEntities: typeof opts.interpretNumericEntities === 'boolean' ? opts.interpretNumericEntities : defaults.interpretNumericEntities,\n parameterLimit: typeof opts.parameterLimit === 'number' ? opts.parameterLimit : defaults.parameterLimit,\n parseArrays: opts.parseArrays !== false,\n plainObjects: typeof opts.plainObjects === 'boolean' ? opts.plainObjects : defaults.plainObjects,\n strictNullHandling: typeof opts.strictNullHandling === 'boolean' ? opts.strictNullHandling : defaults.strictNullHandling\n };\n};\n\nmodule.exports = function (str, opts) {\n var options = normalizeParseOptions(opts);\n\n if (str === '' || str === null || typeof str === 'undefined') {\n return options.plainObjects ? Object.create(null) : {};\n }\n\n var tempObj = typeof str === 'string' ? parseValues(str, options) : str;\n var obj = options.plainObjects ? Object.create(null) : {};\n\n // Iterate over the keys and setup the new object\n\n var keys = Object.keys(tempObj);\n for (var i = 0; i < keys.length; ++i) {\n var key = keys[i];\n var newObj = parseKeys(key, tempObj[key], options, typeof str === 'string');\n obj = utils.merge(obj, newObj, options);\n }\n\n if (options.allowSparse === true) {\n return obj;\n }\n\n return utils.compact(obj);\n};\n","'use strict';\n\nvar stringify = require('./stringify');\nvar parse = require('./parse');\nvar formats = require('./formats');\n\nmodule.exports = {\n formats: formats,\n parse: parse,\n stringify: stringify\n};\n","import qs from 'qs';\n\nexport const limit = 100;\n\nexport const fetchProductColorsQuery = (id: string, page?: number) =>\n qs.stringify(\n {\n fields: ['*', 'products.*'].join(','),\n filter: {\n products: {\n Product_id: {\n _eq: id,\n },\n },\n },\n\n meta: '*',\n page: page || 1,\n limit,\n },\n {\n encodeValuesOnly: true,\n },\n );\n\nexport const fetchCategoryColorsQuery = (id: number, page?: number) =>\n qs.stringify(\n {\n fields: ['*', 'Category.*', 'products.*'].join(','),\n filter: {\n Category: {\n Category_id: {\n _eq: id,\n },\n },\n },\n meta: '*',\n page: page || 1,\n limit,\n },\n {\n encodeValuesOnly: true,\n },\n );\n\nexport const fetchColorByNumber = (id: number, colorNumber: string) =>\n qs.stringify(\n {\n fields: ['*', 'Category.*'].join(','),\n filter: {\n Category: {\n Category_id: {\n _eq: id,\n },\n },\n number: {\n _contains: colorNumber,\n },\n },\n meta: '*',\n },\n\n {\n encodeValuesOnly: true,\n },\n );\n","@import '../../global/app.scss';\n\n.my-modal {\n box-shadow: 1px 1px 1px $white_shadow;\n background-color: $white;\n position: fixed;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n max-width: 1555px;\n width: 90%;\n z-index: 1000;\n text-align: center;\n padding: 35px 40px;\n max-height: calc(100vh - 100px);\n overflow-y: auto;\n\n @media (max-width: $medium) {\n padding: 80px 20px 20px;\n }\n &::-webkit-scrollbar {\n display: none;\n }\n\n .loader {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 300px;\n }\n\n > img {\n max-width: 300px;\n object-fit: cover;\n @media (max-width: $small) {\n max-width: 200px;\n }\n }\n\n &__close {\n position: absolute;\n right: 20px;\n top: 20px;\n background: transparent;\n border: none;\n > img {\n width: 45px;\n height: 45px;\n object-fit: cover;\n cursor: pointer;\n }\n @media (max-width: $medium) {\n top: 65px;\n }\n }\n\n &__see-more {\n font-size: 22px;\n margin-bottom: 27px;\n display: flex;\n justify-content: center;\n align-items: center;\n @media (max-width: $medium) {\n font-size: 18px;\n }\n img {\n width: 45px;\n height: 45px;\n @media (max-width: $medium) {\n display: none;\n }\n }\n }\n\n &__wrapper {\n display: flex;\n flex-direction: column;\n position: relative;\n\n .boxes {\n display: flex;\n flex-direction: column;\n flex-wrap: wrap;\n\n &__list {\n display: flex;\n flex-wrap: wrap;\n gap: 5px 5px;\n @media (max-width: $medium) {\n justify-content: center;\n }\n }\n\n &__box-content {\n width: 100%;\n margin-bottom: 5px;\n height: 500px;\n text-align: left;\n display: flex;\n flex-direction: row;\n justify-content: space-between;\n position: relative;\n .closebtn {\n position: absolute;\n right: 10px;\n top: 10px;\n width: 53px;\n height: 53px;\n cursor: pointer;\n object-fit: cover;\n z-index: 9999;\n }\n @media (max-width: $medium) {\n flex-direction: column-reverse;\n height: auto;\n }\n @media (max-width: $small) {\n margin: 0 auto;\n }\n &__info {\n width: 40%;\n padding: 50px 40px;\n position: relative;\n @media (max-width: $medium) {\n width: 100%;\n padding: 15px;\n min-height: 100px;\n }\n\n @media (max-width: $small) {\n min-height: auto;\n }\n\n h2 {\n font-size: 35px;\n font-weight: normal;\n\n margin-bottom: 30px;\n color: $black;\n\n @media (max-width: $small) {\n font-size: 16px;\n text-align: center;\n margin-bottom: 15px;\n margin-top: 5px;\n }\n }\n h4 {\n margin-top: 0px;\n margin-bottom: 15px;\n font-size: 16px;\n color: $grey;\n }\n .divider {\n border: 1px solid $grey;\n opacity: 0.2;\n margin-bottom: 20px;\n @media (max-width: $small) {\n margin: 10px 0px;\n display: none;\n }\n }\n\n &__value {\n display: flex;\n flex-direction: row;\n justify-content: flex-start;\n @media (max-width: $medium) {\n justify-content: flex-start;\n }\n\n @media (max-width: $small) {\n flex-direction: column;\n }\n\n &-image {\n @media (max-width: $small) {\n margin: 0 auto;\n margin-bottom: 10px;\n }\n img {\n width: 114px;\n object-fit: cover;\n @media (max-width: $medium) {\n width: 75px;\n }\n }\n }\n\n &-product {\n color: $black;\n margin-left: 10px;\n h2 {\n @media (max-width: $medium) {\n font-size: 26px;\n margin: 0;\n margin-right: 10px;\n }\n @media (max-width: $small) {\n font-size: 16px;\n }\n }\n p {\n font-size: 20px;\n margin-top: 0px;\n margin-bottom: 0px;\n &:last-of-type {\n margin-bottom: 20px;\n @media (max-width: $medium) {\n margin-bottom: 0;\n }\n }\n @media (max-width: $small) {\n font-size: 10px;\n }\n }\n\n > div {\n @media (max-width: $medium) {\n display: flex;\n justify-content: flex-start;\n align-items: center;\n }\n @media (max-width: $small) {\n flex-direction: column;\n }\n }\n }\n }\n }\n &__slider {\n width: 60%;\n min-width: 60%;\n max-width: 60%;\n position: relative;\n @media (max-width: $medium) {\n width: 100%;\n display: block;\n min-width: 100%;\n max-width: 100%;\n }\n .color-big-image {\n width: 100%;\n height: 100%;\n object-fit: cover;\n @media (max-width: $medium) {\n height: 300px;\n }\n }\n }\n &__white {\n * {\n color: $white;\n }\n h2 {\n color: $white;\n }\n }\n }\n }\n\n .pagination {\n margin: 10px 0px;\n font-size: 16px;\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: center;\n > span {\n margin: 0 3px;\n cursor: pointer;\n min-width: 20px;\n padding: 5px;\n box-shadow: 1px 1px 1px #ccc;\n }\n .current {\n background-color: wheat;\n }\n }\n }\n .categories {\n padding-bottom: 20px;\n margin-bottom: 20px;\n border-bottom: 1px solid #dfdfdf;\n display: flex;\n flex-direction: column;\n align-items: flex-start;\n\n &__container {\n display: flex;\n flex-wrap: nowrap;\n gap: 5px 5px;\n overflow-x: auto;\n width: 100%;\n\n @media (max-width: $medium) {\n padding-bottom: 5px;\n }\n }\n &__slide-information {\n display: flex;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n span {\n color: $grey;\n font-size: 16px;\n font-weight: normal;\n\n &:first-of-type {\n margin-left: 7px;\n }\n &:last-of-type {\n margin-right: 7px;\n }\n }\n }\n }\n .button,\n a {\n background-color: $white;\n font-size: 16px;\n box-shadow: 0px 10px 20px rgba(0, 0, 0, 0.1);\n\n border-radius: 22px;\n padding: 10px 35px;\n color: $black;\n text-decoration: none;\n display: block;\n text-align: center;\n transition: all 0.7s ease-in-out;\n border: none;\n cursor: pointer;\n\n &:hover {\n color: $white;\n background-color: $black;\n }\n &.brown {\n background-color: $brown;\n color: $white;\n &:hover {\n color: $white;\n background-color: $black;\n }\n }\n &.inverse {\n background-color: $black;\n color: $white;\n &:hover {\n color: $black;\n background-color: $white;\n }\n }\n @media (max-width: $medium) {\n max-width: 150px;\n font-size: 13px;\n padding: 12px 25px;\n }\n @media (max-width: $small) {\n margin: 0 auto;\n }\n }\n > .button {\n margin: 10px auto;\n }\n}\n","import { Component, Method, Element, Prop, Event, EventEmitter, h, State, getAssetPath, Listen, Watch } from '@stencil/core';\nimport { APIURL, ApiService, accessToken } from '../api';\nimport { setDataLayer } from '../../gtmUtils';\nimport { Color, PaginationData, Product, ProductCategoryRelation, ProductShopRelation } from '../../types';\nimport { fetchCategoryColorsQuery, fetchColorByNumber, fetchProductColorsQuery, limit } from '../api/services';\n\ndeclare global {\n interface Window {\n dataLayer: Record<string, any>[];\n }\n}\n\n@Component({\n tag: 'my-modal',\n styleUrl: 'my-modal.scss',\n assetsDirs: ['assets'],\n})\nexport class MyModal {\n private boxDesktopWidth = 130;\n private boxMobileWidth = 70;\n private desktopPadding = 75;\n private mobilePadding = 35;\n private mediumBreakpoint = 1024;\n private colorTimerInterval: ReturnType<typeof setInterval> | undefined;\n\n @Event({ bubbles: true, composed: true }) clearSearchText: EventEmitter;\n @Element() modalEl: HTMLElement;\n\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() baselink: string;\n @Prop() closeImage = 'close.png';\n @Prop() arrowDown = 'arrow_down.png';\n\n @State() chunksNum = 12;\n @State() data: Product | null = null;\n @State() preloader = false;\n @State() loading = false;\n @State() colors: PaginationData<Color> | null = null;\n @State() currentColor: Color | null = null;\n @State() currentIndex: number | null = null;\n @State() infoBoxWidth: number | null = null;\n @State() boxWidth: number = this.boxDesktopWidth; // box width with gap\n @State() padding: number = this.desktopPadding;\n @State() isMobile: boolean = false;\n @State() showRange: boolean = false;\n @State() colorCategories: string[] | null = null;\n @State() selectedCategory: any = null;\n @State() page = 1;\n\n @Watch('chunksNum')\n setInfoBoxWidth(newValue: number) {\n this.infoBoxWidth = newValue * this.boxWidth;\n }\n\n @Watch('data')\n watchPropHandler(newValue: Product) {\n if (newValue.Category.length > 0) {\n this.showRange = true;\n this.handleCategoryClick(newValue.Category[0].Category_id.id);\n } else {\n this.fetchProductColors(String(newValue.id));\n }\n }\n\n private clearInterval = () => {\n this.colorTimerInterval && clearInterval(this.colorTimerInterval);\n this.colorTimerInterval = undefined;\n };\n\n private colorTimer = () => {\n if (this.currentColor && this.currentColor.id) {\n this.colorTimerInterval = setInterval(() => {\n this.currentColor?.name &&\n setDataLayer({\n event: 'ColorTimer',\n shop: this.shop,\n product: this.product,\n color: this.currentColor?.name,\n timer: '10',\n });\n }, 10000);\n } else {\n this.clearInterval();\n }\n };\n\n @Method()\n async open() {\n this.modalEl.style.display = 'block';\n }\n @Event() close: EventEmitter;\n closeModalHandler() {\n this.close.emit();\n }\n\n @Event() readyToCLose: EventEmitter;\n handleReadyToClose(value: boolean) {\n this.readyToCLose.emit({ observable: value });\n }\n\n @Listen('closeInfoBox')\n closeInfoBoxHandler() {\n this.currentColor = null;\n this.currentIndex = null;\n }\n\n private chunks = (xs: Color[], y: Color[][] = []): Color[][] => {\n return xs.length === 0 ? y : this.chunks(xs.slice(this.chunksNum), y.concat([xs.slice(0, this.chunksNum)]));\n };\n\n private calculateBoxCount = () => {\n const modalWidth = this.modalEl.children && this.modalEl.children[0] && this.modalEl.children[0]?.clientWidth - this.padding;\n const boxWidth = this.boxWidth;\n\n const calc = Math.floor(modalWidth / boxWidth);\n\n const boxesCount = calc;\n\n if (!this.preloader) this.chunksNum = boxesCount;\n };\n\n private displayForMobile = () => {\n if (window.innerWidth < this.mediumBreakpoint) {\n this.boxWidth = this.boxMobileWidth;\n this.padding = this.mobilePadding;\n this.isMobile = true;\n } else {\n this.isMobile = false;\n this.boxWidth = this.boxDesktopWidth;\n this.padding = this.desktopPadding;\n }\n };\n\n @Listen('resize', { target: 'window' })\n handleResize() {\n this.calculateBoxCount();\n this.displayForMobile();\n }\n\n private fetchProductData = async () => {\n try {\n const shopResponse = await ApiService.getData(`items/Shop?filter[name][_eq]=${this.shop}`);\n const shop = shopResponse?.data[0];\n if (shop.id) {\n const response = await ApiService.getData(`items/Product?filter[name][_eq]=${this.product}&fields=*,images.*,Shop.*,Category.*.*.*.*`);\n const product = response?.data[0];\n\n if (product) {\n if (product.Shop.find((s: ProductShopRelation) => s.Shop_id === shop.id)) {\n this.data = {\n ...response.data[0],\n id: response.data[0].id,\n };\n } else {\n return null;\n }\n }\n }\n } catch (error) {\n console.error(error);\n } finally {\n this.preloader = false;\n }\n };\n\n private fetchProductColors = async (id: string, page?: number) => {\n this.loading = true;\n\n try {\n const response = await ApiService.getData(`items/Color?${fetchProductColorsQuery(id, page)}`);\n\n if (response) {\n this.colors = {\n list:\n response &&\n response.data &&\n response.data.map((item: Color) => ({\n ...item,\n })),\n pagination: response.meta,\n };\n }\n } catch (error) {\n console.error(error);\n } finally {\n this.loading = false;\n }\n };\n\n private fetchCategoryColors = async (id: number, page?: number) => {\n this.loading = true;\n\n try {\n const response = await ApiService.getData(`items/Color?${fetchCategoryColorsQuery(id, page)}`);\n\n if (response) {\n this.colors = {\n list:\n response &&\n response.data &&\n response.data.map((item: Color) => ({\n ...item,\n })),\n pagination: response.meta,\n };\n }\n } catch (error) {\n console.error(error);\n } finally {\n this.loading = false;\n }\n };\n\n @Listen('searchColors')\n async searchColorsHandler(event: CustomEvent) {\n this.loading = true;\n this.currentColor = null;\n // if search is empty set to first category to not showing whole product colors\n if (event.detail === '') {\n this.handleCategoryClick(this.selectedCategory);\n this.loading = true;\n }\n\n try {\n if (this.data && this.data.id && event.detail !== '') {\n const response = await ApiService.getData(`items/Color?${fetchColorByNumber(Number(this.selectedCategory), event.detail)}`);\n if (response) {\n this.colors = {\n list:\n (response &&\n response.data &&\n response.data.map((item: Color) => ({\n ...item,\n }))) ||\n [],\n pagination: response.meta,\n };\n }\n }\n } catch (error) {\n console.error(error);\n } finally {\n this.loading = false;\n }\n }\n\n private onPage = (page: number) => {\n if (this.data) {\n if (this.selectedCategory) {\n this.fetchCategoryColors(this.selectedCategory, page);\n } else {\n this.fetchProductColors(String(this.data.id), page);\n }\n }\n\n this.page = page;\n this.currentColor = null;\n this.currentIndex = null;\n };\n\n componentWillLoad() {\n this.preloader = true;\n this.fetchProductData();\n }\n\n componentWillRender() {\n this.displayForMobile();\n this.calculateBoxCount();\n this.colorTimer();\n }\n\n private handleCategoryClick = (color?: number) => {\n if (this.selectedCategory && color && this.selectedCategory === color && !this.showRange) {\n this.data && this.fetchProductColors(String(this.data.id));\n this.selectedCategory = null;\n } else {\n color && this.fetchCategoryColors(color);\n this.selectedCategory = color;\n }\n this.currentColor = null;\n this.clearSearchText.emit();\n };\n\n render() {\n return (\n <div class={`my-modal`} onMouseEnter={() => this.handleReadyToClose(false)} onMouseLeave={() => this.handleReadyToClose(true)}>\n {this.preloader && (\n <div class={'loader'}>\n <my-loader></my-loader>\n </div>\n )}\n {!this.preloader && (\n <button class=\"my-modal__close\" onClick={() => this.closeModalHandler()}>\n <img src={getAssetPath(`./assets/${this.closeImage}`)} alt=\"closebtn\" />\n </button>\n )}\n {!this.preloader && this.data && this.data.modalLogo && <img src={`${APIURL}/assets/${this.data?.modalLogo}?access_token=${accessToken}`} alt=\"modal-logo\" />}\n {!this.preloader && this.data && (\n <p class=\"my-modal__see-more\">\n {this.data?.modalDescription}\n {/* <img src={getAssetPath(`./assets/${this.arrowDown}`)} alt=\"arrow_down\" /> */}\n </p>\n )}\n {this.showRange && (\n <div class={'categories'}>\n {this.data && <my-search productId={Number(this.data?.id)} isMobile={this.isMobile}></my-search>}\n\n <div class={'categories__container'} style={{ maxWidth: `${this.infoBoxWidth}px` }}>\n {this.data?.Category.map((c: ProductCategoryRelation) => (\n <my-colorbox\n key={c.id}\n onClick={() => this.handleCategoryClick(c.Category_id.id)}\n color={c.Category_id.hex}\n name={c.Category_id.category_name}\n shop={this.shop}\n product={this.product}\n isCategoryActive={this.selectedCategory === c.Category_id.id}\n isImageInsteadHex={{\n isImageInsteadHex: c?.imageInsteadHex || false,\n bigImage: c?.bigImage || '',\n }}\n ></my-colorbox>\n ))}\n </div>\n {this.isMobile && (\n <div class={'categories__slide-information'} style={{ width: `${this.infoBoxWidth}px` }}>\n <span>Przewiń w lewo</span>\n <span>Przewiń w prawo</span>\n </div>\n )}\n </div>\n )}\n <div class={'my-modal__wrapper'}>\n {this.loading && <my-loader></my-loader>}\n {!this.loading && this.colors && (\n <div class={'container_boxes'}>\n {this.colors.list.length > 0 ? (\n this.chunks(this.colors.list).map((color: Color[], index: number) => {\n return (\n <div key={index} class=\"boxes\">\n <div class=\"boxes__list\">\n {color.map((c: Color) => (\n <my-colorbox\n key={c.id}\n onClick={() => [\n this.currentColor?.id ? (this.currentColor?.id === c.id ? (this.currentColor = null) : (this.currentColor = c)) : (this.currentColor = c),\n (this.currentIndex = index),\n setDataLayer({\n event: 'ColorClick',\n shop: this.shop,\n product: this.product,\n color: c.name,\n }),\n this.currentColor?.id && this.clearInterval(),\n ]}\n color={c.hex}\n name={c.name}\n isActive={this.currentColor?.id === c.id}\n shop={this.shop}\n product={this.product}\n isImageInsteadHex={{\n isImageInsteadHex: c.imageInsteadHex,\n bigImage: c.bigImage,\n }}\n ></my-colorbox>\n ))}\n </div>\n\n {this.currentColor?.id && index === this.currentIndex && (\n <my-colorinfo\n currentColor={this.currentColor}\n shop={this.shop}\n product={this.product}\n data={this.data}\n isMobile={this.isMobile}\n infoBoxWidth={this.infoBoxWidth}\n baselink={this.baselink}\n ></my-colorinfo>\n )}\n </div>\n );\n })\n ) : (\n <p>Brak wyników</p>\n )}\n {this.colors.pagination.filter_count > limit && (\n <div class={'pagination'}>\n {Array.from({ length: Math.ceil(this.colors.pagination.filter_count / limit) }).map((_, i) => (\n <span\n class={i + 1 === this.page ? 'current' : ''}\n onClick={e => {\n e.preventDefault();\n this.onPage(i + 1);\n }}\n key={`#${i + 1}`}\n >\n {i + 1}\n </span>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!this.preloader && this.isMobile && (\n <button class=\"button\" onClick={() => this.closeModalHandler()}>\n Zamknij\n </button>\n )}\n </div>\n );\n }\n}\n","@import '../../global/app.scss';\n\n.search {\n position: relative;\n width: 400px;\n @media (max-width: $small) {\n width: 100%;\n }\n input {\n margin-bottom: 12px;\n font-size: 16px;\n padding: 19px;\n border-radius: 27.35px;\n border: 1px solid #dfdfdf;\n width: 100%;\n }\n\n button {\n position: absolute;\n border: none;\n background-color: transparent;\n right: -20px;\n top: 0;\n width: 50px;\n height: calc(100% - 12px);\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n }\n}\n","import { Component, Prop, h, State, Listen, getAssetPath, EventEmitter, Event, Watch } from '@stencil/core';\n\nfunction debounce(func: Function, wait: number) {\n let timeout: ReturnType<typeof setTimeout>;\n return function executedFunction(...args: any[]) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n };\n}\n\n@Component({\n tag: 'my-search',\n styleUrl: 'my-search.scss',\n assetsDirs: ['assets'],\n scoped: true,\n})\nexport class MySearch {\n @Prop() productId: number;\n @Prop() isMobile: boolean;\n @Prop() searchIcon = 'search.svg';\n @State() searchText: string | null = null;\n @Event() searchColors: EventEmitter;\n\n fetchColorsByName = (text: string) => {\n this.searchColors.emit(text);\n };\n\n private debouncedInputChangeValue = debounce((value: string) => {\n this.fetchColorsByName(value);\n this.searchText = value;\n }, 300);\n\n private onInputChangeValue(event: Event) {\n const value = (event.target as HTMLInputElement).value;\n this.debouncedInputChangeValue(value);\n }\n\n @Watch('searchText')\n fetchColorsByNameHandle(newValue: string) {\n this.fetchColorsByName(newValue);\n }\n\n @Listen('clearSearchText', { target: 'document' })\n clearSearchTextHandler() {\n this.searchText = null;\n }\n\n render() {\n return (\n <div class={'search'}>\n <input\n placeholder={this.isMobile ? 'Wyszukaj kolor' : 'Wyszukaj kolor po nazwie bądź numerze'}\n value={this.searchText || ''}\n type=\"text\"\n onInput={this.onInputChangeValue.bind(this)}\n />\n\n <button\n onClick={() => {\n this.searchText && this.fetchColorsByName(this.searchText);\n\n this.searchText = '';\n }}\n >\n <img src={getAssetPath(`./assets/${this.searchIcon}`)} alt=\"arrow_down\" />\n </button>\n </div>\n );\n }\n}\n","/**\n * SSR Window 4.0.2\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: December 13, 2021\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target = {}, src = {}) {\n Object.keys(src).forEach((key) => {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nconst ssrDocument = {\n body: {},\n addEventListener() { },\n removeEventListener() { },\n activeElement: {\n blur() { },\n nodeName: '',\n },\n querySelector() {\n return null;\n },\n querySelectorAll() {\n return [];\n },\n getElementById() {\n return null;\n },\n createEvent() {\n return {\n initEvent() { },\n };\n },\n createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute() { },\n getElementsByTagName() {\n return [];\n },\n };\n },\n createElementNS() {\n return {};\n },\n importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n const doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nconst ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState() { },\n pushState() { },\n go() { },\n back() { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener() { },\n removeEventListener() { },\n getComputedStyle() {\n return {\n getPropertyValue() {\n return '';\n },\n };\n },\n Image() { },\n Date() { },\n screen: {},\n setTimeout() { },\n clearTimeout() { },\n matchMedia() {\n return {};\n },\n requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n const win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 4.0.6\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2023, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: February 2, 2023\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n const proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get() {\n return proto;\n },\n\n set(value) {\n proto.__proto__ = value;\n }\n\n });\n}\n\nclass Dom7 extends Array {\n constructor(items) {\n if (typeof items === 'number') {\n super(items);\n } else {\n super(...(items || []));\n makeReactive(this);\n }\n }\n\n}\n\nfunction arrayFlat(arr = []) {\n const res = [];\n arr.forEach(el => {\n if (Array.isArray(el)) {\n res.push(...arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n const uniqueArray = [];\n\n for (let i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, (match, group) => group.toUpperCase());\n}\n\n// eslint-disable-next-line\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n const a = [];\n const res = context.querySelectorAll(selector);\n\n for (let i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n const window = getWindow();\n const document = getDocument();\n let arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n const html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n let toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n const tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (let i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\n// eslint-disable-next-line\n\nfunction addClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.add(...classNames);\n });\n return this;\n}\n\nfunction removeClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n el.classList.remove(...classNames);\n });\n return this;\n}\n\nfunction toggleClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n this.forEach(el => {\n classNames.forEach(className => {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass(...classes) {\n const classNames = arrayFlat(classes.map(c => c.split(' ')));\n return arrayFilter(this, el => {\n return classNames.filter(className => el.classList.contains(className)).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (const attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (let i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (const propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n let el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n const dataKey = el.getAttribute(`data-${key}`);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n const el = this[0];\n if (!el) return undefined;\n const dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (const dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (let i = 0; i < el.attributes.length; i += 1) {\n const attr = el.attributes[i];\n\n if (attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(attr.name.split('data-')[1])] = attr.value;\n }\n }\n }\n\n for (const key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n const el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n const values = [];\n\n for (let i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (Array.isArray(value) && el.multiple && el.nodeName.toLowerCase() === 'select') {\n for (let j = 0; j < el.options.length; j += 1) {\n el.options[j].selected = value.indexOf(el.options[j].value) >= 0;\n }\n } else {\n el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? `${duration}ms` : duration;\n }\n\n return this;\n}\n\nfunction on(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n const target = e.target;\n if (!target) return;\n const eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n const parents = $(target).parents(); // eslint-disable-line\n\n for (let k = 0; k < parents.length; k += 1) {\n if ($(parents[k]).is(targetSelector)) listener.apply(parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n const eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n const events = eventType.split(' ');\n let j;\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n const event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[event]) el.dom7LiveListeners[event] = [];\n el.dom7LiveListeners[event].push({\n listener,\n proxyListener: handleLiveEvent\n });\n el.addEventListener(event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off(...args) {\n let [eventType, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventType, listener, capture] = args;\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n const events = eventType.split(' ');\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n let handlers;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (let k = handlers.length - 1; k >= 0; k -= 1) {\n const handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once(...args) {\n const dom = this;\n let [eventName, targetSelector, listener, capture] = args;\n\n if (typeof args[1] === 'function') {\n [eventName, listener, capture] = args;\n targetSelector = undefined;\n }\n\n function onceHandler(...eventArgs) {\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger(...args) {\n const window = getWindow();\n const events = args[0].split(' ');\n const eventData = args[1];\n\n for (let i = 0; i < events.length; i += 1) {\n const event = events[i];\n\n for (let j = 0; j < this.length; j += 1) {\n const el = this[j];\n\n if (window.CustomEvent) {\n const evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter((data, dataIndex) => dataIndex > 0);\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionStart(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionstart', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionstart', fireCallBack);\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n const dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetWidth + parseFloat(styles.getPropertyValue('margin-right')) + parseFloat(styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n const window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n const styles = this.styles();\n return this[0].offsetHeight + parseFloat(styles.getPropertyValue('margin-top')) + parseFloat(styles.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n const box = el.getBoundingClientRect();\n const body = document.body;\n const clientTop = el.clientTop || body.clientTop || 0;\n const clientLeft = el.clientLeft || body.clientLeft || 0;\n const scrollTop = el === window ? window.scrollY : el.scrollTop;\n const scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (let i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n const window = getWindow();\n\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n const window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n const window = getWindow();\n let i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (const prop in props) {\n this[i].style[prop] = props[prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach((el, index) => {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n const result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (let i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n const window = getWindow();\n const document = getDocument();\n const el = this[0];\n let compareWith;\n let i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n let child = this[0];\n let i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n const length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n const returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append(...els) {\n let newChild;\n const document = getDocument();\n\n for (let k = 0; k < els.length; k += 1) {\n newChild = els[k];\n\n for (let i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (let j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n const document = getDocument();\n let i;\n let j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n const tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n const before = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (let j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n const after = $(selector);\n\n for (let i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (let j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n const nextEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n const next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(next).is(selector)) nextEls.push(next);\n } else nextEls.push(next);\n\n el = next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n const el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n const prevEls = [];\n let el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n const prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(prev).is(selector)) prevEls.push(prev);\n } else prevEls.push(prev);\n\n el = prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n const parents = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n let parent = this[i].parentNode; // eslint-disable-line\n\n while (parent) {\n if (selector) {\n if ($(parent).is(selector)) parents.push(parent);\n } else {\n parents.push(parent);\n }\n\n parent = parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n let closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n const foundElements = [];\n\n for (let i = 0; i < this.length; i += 1) {\n const found = this[i].querySelectorAll(selector);\n\n for (let j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n const children = []; // eslint-disable-line\n\n for (let i = 0; i < this.length; i += 1) {\n const childNodes = this[i].children;\n\n for (let j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (let i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add(...els) {\n const dom = this;\n let i;\n let j;\n\n for (i = 0; i < els.length; i += 1) {\n const toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (let i = 0; i < this.length; i += 1) {\n const el = this[i];\n\n if (el.nodeType === 1) {\n for (let j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\n// eslint-disable-next-line\n\nfunction scrollTo(...args) {\n const window = getWindow();\n let [left, top, duration, easing, callback] = args;\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n [left, top, duration, callback, easing] = args;\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n const el = this;\n let currentTop;\n let currentLeft;\n let maxTop;\n let maxLeft;\n let newTop;\n let newLeft;\n let scrollTop; // eslint-disable-line\n\n let scrollLeft; // eslint-disable-line\n\n let animateTop = top > 0 || top === 0;\n let animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n let startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time = new Date().getTime()) {\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n let done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop(...args) {\n let [top, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [top, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft(...args) {\n let [left, duration, easing, callback] = args;\n\n if (args.length === 3 && typeof easing === 'function') {\n [left, duration, callback, easing] = args;\n }\n\n const dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\n// eslint-disable-next-line\n\nfunction animate(initialProps, initialParams) {\n const window = getWindow();\n const els = this;\n const a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n\n easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n\n stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n\n done(complete) {\n a.animating = false;\n a.elements.each(el => {\n const element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n const que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n\n animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n const elements = []; // Define & Cache Initials & Units\n\n a.elements.each((el, index) => {\n let initialFullValue;\n let initialValue;\n let unit;\n let finalValue;\n let finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(prop => {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue,\n initialValue,\n unit,\n finalValue,\n finalFullValue,\n currentValue: initialValue\n };\n });\n });\n let startTime = null;\n let time;\n let elementsDone = 0;\n let propsDone = 0;\n let done;\n let began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n let progress;\n let easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(element => {\n const el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(prop => {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n const {\n initialValue,\n finalValue,\n unit\n } = el[prop];\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n const currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n let animateInstance;\n\n for (let i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n const els = this;\n\n for (let i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nconst noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler(...args) {\n if (typeof args[0] === 'undefined') {\n for (let i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on(name, ...args);\n }\n\n return eventHandler;\n}\n\nconst click = shortcut('click');\nconst blur = shortcut('blur');\nconst focus = shortcut('focus');\nconst focusin = shortcut('focusin');\nconst focusout = shortcut('focusout');\nconst keyup = shortcut('keyup');\nconst keydown = shortcut('keydown');\nconst keypress = shortcut('keypress');\nconst submit = shortcut('submit');\nconst change = shortcut('change');\nconst mousedown = shortcut('mousedown');\nconst mousemove = shortcut('mousemove');\nconst mouseup = shortcut('mouseup');\nconst mouseenter = shortcut('mouseenter');\nconst mouseleave = shortcut('mouseleave');\nconst mouseout = shortcut('mouseout');\nconst mouseover = shortcut('mouseover');\nconst touchstart = shortcut('touchstart');\nconst touchend = shortcut('touchend');\nconst touchmove = shortcut('touchmove');\nconst resize = shortcut('resize');\nconst scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, transitionStart, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nconst Methods = {\n addClass,\n removeClass,\n hasClass,\n toggleClass,\n attr,\n removeAttr,\n transform,\n transition,\n on,\n off,\n trigger,\n transitionEnd,\n outerWidth,\n outerHeight,\n styles,\n offset,\n css,\n each,\n html,\n text,\n is,\n index,\n eq,\n append,\n prepend,\n next,\n nextAll,\n prev,\n prevAll,\n parent,\n parents,\n closest,\n find,\n children,\n filter,\n remove\n};\nObject.keys(Methods).forEach(methodName => {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n const object = obj;\n Object.keys(object).forEach(key => {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay = 0) {\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n const window = getWindow();\n let style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis = 'x') {\n const window = getWindow();\n let matrix;\n let curTransform;\n let transformMatrix;\n const curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(a => a.replace(',', '.')).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend(...args) {\n const to = Object(args[0]);\n const noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (let i = 1; i < args.length; i += 1) {\n const nextSource = args[i];\n\n if (nextSource !== undefined && nextSource !== null && !isNode(nextSource)) {\n const keysArray = Object.keys(Object(nextSource)).filter(key => noExtend.indexOf(key) < 0);\n\n for (let nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n const nextKey = keysArray[nextIndex];\n const desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);\n\n if (desc !== undefined && desc.enumerable) {\n if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {\n to[nextKey] = {};\n\n if (nextSource[nextKey].__swiper__) {\n to[nextKey] = nextSource[nextKey];\n } else {\n extend(to[nextKey], nextSource[nextKey]);\n }\n } else {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n }\n\n return to;\n}\n\nfunction setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n}\n\nfunction animateCSSModeScroll({\n swiper,\n targetPosition,\n side\n}) {\n const window = getWindow();\n const startPosition = -swiper.translate;\n let startTime = null;\n let time;\n const duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n const dir = targetPosition > startPosition ? 'next' : 'prev';\n\n const isOutOfBound = (current, target) => {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n const animate = () => {\n time = new Date().getTime();\n\n if (startTime === null) {\n startTime = time;\n }\n\n const progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n const easeProgress = 0.5 - Math.cos(progress * Math.PI) / 2;\n let currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(() => {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo({\n [side]: currentPosition\n });\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n}\n\nexport { animateCSSModeScroll, deleteProps, nextTick, now, getTranslate, isObject, extend, getComputedStyle, setCSSProperty };","import { getWindow, getDocument } from 'ssr-window';\nlet support;\n\nfunction calcSupport() {\n const window = getWindow();\n const document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n let supportsPassive = false;\n\n try {\n const opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get() {\n supportsPassive = true;\n }\n\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support.js';\nlet deviceCached;\n\nfunction calcDevice({\n userAgent\n} = {}) {\n const support = getSupport();\n const window = getWindow();\n const platform = window.navigator.platform;\n const ua = userAgent || window.navigator.userAgent;\n const device = {\n ios: false,\n android: false\n };\n const screenWidth = window.screen.width;\n const screenHeight = window.screen.height;\n const android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n let ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n const ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n const iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n const windows = platform === 'Win32';\n let macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n const iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(`${screenWidth}x${screenHeight}`) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides = {}) {\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nlet browser;\n\nfunction calcBrowser() {\n const window = getWindow();\n\n function isSafari() {\n const ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nexport default function Resize({\n swiper,\n on,\n emit\n}) {\n const window = getWindow();\n let observer = null;\n let animationFrame = null;\n\n const resizeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n const createObserver = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n observer = new ResizeObserver(entries => {\n animationFrame = window.requestAnimationFrame(() => {\n const {\n width,\n height\n } = swiper;\n let newWidth = width;\n let newHeight = height;\n entries.forEach(({\n contentBoxSize,\n contentRect,\n target\n }) => {\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n resizeHandler();\n }\n });\n });\n observer.observe(swiper.el);\n };\n\n const removeObserver = () => {\n if (animationFrame) {\n window.cancelAnimationFrame(animationFrame);\n }\n\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n const orientationChangeHandler = () => {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', () => {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', () => {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n}","import { getWindow } from 'ssr-window';\nexport default function Observer({\n swiper,\n extendParams,\n on,\n emit\n}) {\n const observers = [];\n const window = getWindow();\n\n const attach = (target, options = {}) => {\n const ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n const observer = new ObserverFunc(mutations => {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n emit('observerUpdate', mutations[0]);\n return;\n }\n\n const observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n const init = () => {\n if (!swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n const containerParents = swiper.$el.parents();\n\n for (let i = 0; i < containerParents.length; i += 1) {\n attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n const destroy = () => {\n observers.forEach(observer => {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n}","/* eslint-disable no-underscore-dangle */\nexport default {\n on(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(event => {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n\n once(events, handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n\n function onceHandler(...args) {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n\n onAny(handler, priority) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (typeof handler !== 'function') return self;\n const method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n\n offAny(handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsAnyListeners) return self;\n const index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n\n off(events, handler) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(event => {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach((eventHandler, index) => {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n\n emit(...args) {\n const self = this;\n if (!self.eventsListeners || self.destroyed) return self;\n if (!self.eventsListeners) return self;\n let events;\n let data;\n let context;\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n const eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(event => {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(eventHandler => {\n eventHandler.apply(context, [event, ...data]);\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(eventHandler => {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n\n};","export default function updateSize() {\n const swiper = this;\n let width;\n let height;\n const $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n Object.assign(swiper, {\n width,\n height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { setCSSProperty } from '../../shared/utils.js';\nexport default function updateSlides() {\n const swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n const params = swiper.params;\n const {\n $wrapperEl,\n size: swiperSize,\n rtlTranslate: rtl,\n wrongRTL\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n const previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n const slides = $wrapperEl.children(`.${swiper.params.slideClass}`);\n const slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n let snapGrid = [];\n const slidesGrid = [];\n const slidesSizesGrid = [];\n let offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n let offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n const previousSnapGridLength = swiper.snapGrid.length;\n const previousSlidesGridLength = swiper.slidesGrid.length;\n let spaceBetween = params.spaceBetween;\n let slidePosition = -offsetBefore;\n let prevSlideSize = 0;\n let index = 0;\n\n if (typeof swiperSize === 'undefined') {\n return;\n }\n\n if (typeof spaceBetween === 'string' && spaceBetween.indexOf('%') >= 0) {\n spaceBetween = parseFloat(spaceBetween.replace('%', '')) / 100 * swiperSize;\n }\n\n swiper.virtualSize = -spaceBetween; // reset margins\n\n if (rtl) slides.css({\n marginLeft: '',\n marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n const gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n let slideSize;\n const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (let i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n const slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, slide, slidesLength, getDirectionLabel);\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = ``;\n }\n\n const slideStyles = getComputedStyle(slide[0]);\n const currentTransform = slide[0].style.transform;\n const currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n const width = getDirectionPropertyValue(slideStyles, 'width');\n const paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n const paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n const marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n const marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n const boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n const {\n clientWidth,\n offsetWidth\n } = slide[0];\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = `${slideSize}px`;\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css({\n [getDirectionLabel('width')]: `${swiper.virtualSize + params.spaceBetween}px`\n });\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n const newSlidesGrid = [];\n\n for (let i = 0; i < snapGrid.length; i += 1) {\n let slidesGridItem = snapGrid[i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n\n if (snapGrid[i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n const key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter((_, slideIndex) => {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css({\n [key]: `${spaceBetween}px`\n });\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n const maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(snap => {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n let allSlidesSize = 0;\n slidesSizesGrid.forEach(slideSizeValue => {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n\n if (allSlidesSize < swiperSize) {\n const allSlidesOffset = (swiperSize - allSlidesSize) / 2;\n snapGrid.forEach((snap, snapIndex) => {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach((snap, snapIndex) => {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n Object.assign(swiper, {\n slides,\n snapGrid,\n slidesGrid,\n slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', `${-snapGrid[0]}px`);\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', `${swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2}px`);\n const addToSnapGrid = -swiper.snapGrid[0];\n const addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(v => v + addToSnapGrid);\n swiper.slidesGrid = swiper.slidesGrid.map(v => v + addToSlidesGrid);\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n\n if (!isVirtual && !params.cssMode && (params.effect === 'slide' || params.effect === 'fade')) {\n const backFaceHiddenClass = `${params.containerModifierClass}backface-hidden`;\n const hasClassBackfaceClassAdded = swiper.$el.hasClass(backFaceHiddenClass);\n\n if (slidesLength <= params.maxBackfaceHiddenSlides) {\n if (!hasClassBackfaceClassAdded) swiper.$el.addClass(backFaceHiddenClass);\n } else if (hasClassBackfaceClassAdded) {\n swiper.$el.removeClass(backFaceHiddenClass);\n }\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateAutoHeight(speed) {\n const swiper = this;\n const activeSlides = [];\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n let newHeight = 0;\n let i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\n }\n\n const getSlideByIndex = index => {\n if (isVirtual) {\n return swiper.slides.filter(el => parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index)[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n (swiper.visibleSlides || $([])).each(slide => {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n const index = swiper.activeIndex + i;\n if (index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n const height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight || newHeight === 0) swiper.$wrapperEl.css('height', `${newHeight}px`);\n}","export default function updateSlidesOffset() {\n const swiper = this;\n const slides = swiper.slides;\n\n for (let i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateSlidesProgress(translate = this && this.translate || 0) {\n const swiper = this;\n const params = swiper.params;\n const {\n slides,\n rtlTranslate: rtl,\n snapGrid\n } = swiper;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n let offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (let i = 0; i < slides.length; i += 1) {\n const slide = slides[i];\n let slideOffset = slide.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n const slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const originalSlideProgress = (offsetCenter - snapGrid[0] + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n const slideBefore = -(offsetCenter - slideOffset);\n const slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n const isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n slide.originalProgress = rtl ? -originalSlideProgress : originalSlideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","export default function updateProgress(translate) {\n const swiper = this;\n\n if (typeof translate === 'undefined') {\n const multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n const params = swiper.params;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n let {\n progress,\n isBeginning,\n isEnd\n } = swiper;\n const wasBeginning = isBeginning;\n const wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n Object.assign(swiper, {\n progress,\n isBeginning,\n isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n const swiper = this;\n const {\n slides,\n params,\n $wrapperEl,\n activeIndex,\n realIndex\n } = swiper;\n const isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(`${params.slideActiveClass} ${params.slideNextClass} ${params.slidePrevClass} ${params.slideDuplicateActiveClass} ${params.slideDuplicateNextClass} ${params.slideDuplicatePrevClass}`);\n let activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(`.${params.slideClass}[data-swiper-slide-index=\"${activeIndex}\"]`);\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${realIndex}\"]`).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n let nextSlide = activeSlide.nextAll(`.${params.slideClass}`).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n let prevSlide = activeSlide.prevAll(`.${params.slideClass}`).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${nextSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(`.${params.slideClass}:not(.${params.slideDuplicateClass})[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass}[data-swiper-slide-index=\"${prevSlide.attr('data-swiper-slide-index')}\"]`).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","export default function updateActiveIndex(newActiveIndex) {\n const swiper = this;\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n const {\n slidesGrid,\n snapGrid,\n params,\n activeIndex: previousIndex,\n realIndex: previousRealIndex,\n snapIndex: previousSnapIndex\n } = swiper;\n let activeIndex = newActiveIndex;\n let snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n const skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n const realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n Object.assign(swiper, {\n snapIndex,\n realIndex,\n previousIndex,\n activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../shared/dom.js';\nexport default function updateClickedSlide(e) {\n const swiper = this;\n const params = swiper.params;\n const slide = $(e).closest(`.${params.slideClass}`)[0];\n let slideFound = false;\n let slideIndex;\n\n if (slide) {\n for (let i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize.js';\nimport updateSlides from './updateSlides.js';\nimport updateAutoHeight from './updateAutoHeight.js';\nimport updateSlidesOffset from './updateSlidesOffset.js';\nimport updateSlidesProgress from './updateSlidesProgress.js';\nimport updateProgress from './updateProgress.js';\nimport updateSlidesClasses from './updateSlidesClasses.js';\nimport updateActiveIndex from './updateActiveIndex.js';\nimport updateClickedSlide from './updateClickedSlide.js';\nexport default {\n updateSize,\n updateSlides,\n updateAutoHeight,\n updateSlidesOffset,\n updateSlidesProgress,\n updateProgress,\n updateSlidesClasses,\n updateActiveIndex,\n updateClickedSlide\n};","import { getTranslate } from '../../shared/utils.js';\nexport default function getSwiperTranslate(axis = this.isHorizontal() ? 'x' : 'y') {\n const swiper = this;\n const {\n params,\n rtlTranslate: rtl,\n translate,\n $wrapperEl\n } = swiper;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n let currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n const swiper = this;\n const {\n rtlTranslate: rtl,\n params,\n $wrapperEl,\n wrapperEl,\n progress\n } = swiper;\n let x = 0;\n let y = 0;\n const z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(`translate3d(${x}px, ${y}px, ${z}px)`);\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function translateTo(translate = 0, speed = this.params.speed, runCallbacks = true, translateBounds = true, internal) {\n const swiper = this;\n const {\n params,\n wrapperEl\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n const minTranslate = swiper.minTranslate();\n const maxTranslate = swiper.maxTranslate();\n let newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: -newTranslate,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate.js';\nimport setTranslate from './setTranslate.js';\nimport minTranslate from './minTranslate.js';\nimport maxTranslate from './maxTranslate.js';\nimport translateTo from './translateTo.js';\nexport default {\n getTranslate,\n setTranslate,\n minTranslate,\n maxTranslate,\n translateTo\n};","export default function setTransition(duration, byController) {\n const swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step\n}) {\n const {\n activeIndex,\n previousIndex\n } = swiper;\n let dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit(`transition${step}`);\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(`slideResetTransition${step}`);\n return;\n }\n\n swiper.emit(`slideChangeTransition${step}`);\n\n if (dir === 'next') {\n swiper.emit(`slideNextTransition${step}`);\n } else {\n swiper.emit(`slidePrevTransition${step}`);\n }\n }\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionStart(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'Start'\n });\n}","import transitionEmit from './transitionEmit.js';\nexport default function transitionEnd(runCallbacks = true, direction) {\n const swiper = this;\n const {\n params\n } = swiper;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper,\n runCallbacks,\n direction,\n step: 'End'\n });\n}","import setTransition from './setTransition.js';\nimport transitionStart from './transitionStart.js';\nimport transitionEnd from './transitionEnd.js';\nexport default {\n setTransition,\n transitionStart,\n transitionEnd\n};","import { animateCSSModeScroll } from '../../shared/utils.js';\nexport default function slideTo(index = 0, speed = this.params.speed, runCallbacks = true, internal, initial) {\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(`The 'index' argument cannot have type other than 'number' or 'string'. [${typeof index}] given.`);\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n const {\n params,\n snapGrid,\n slidesGrid,\n previousIndex,\n activeIndex,\n rtlTranslate: rtl,\n wrapperEl,\n enabled\n } = swiper;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\n return false;\n }\n\n const skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n let snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n const translate = -snapGrid[snapIndex]; // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (let i = 0; i < slidesGrid.length; i += 1) {\n const normalizedTranslate = -Math.floor(translate * 100);\n const normalizedGrid = Math.floor(slidesGrid[i] * 100);\n const normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n if (slideIndex !== (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n } // Update progress\n\n\n swiper.updateProgress(translate);\n let direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n const isH = swiper.isHorizontal();\n const t = rtl ? translate : -translate;\n\n if (speed === 0) {\n const isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(() => {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo({\n [isH ? 'left' : 'top']: t,\n behavior: 'smooth'\n });\n }\n\n return true;\n }\n\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (speed === 0) {\n swiper.transitionEnd(runCallbacks, direction);\n } else if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n\n return true;\n}","export default function slideToLoop(index = 0, speed = this.params.speed, runCallbacks = true, internal) {\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n const indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n const isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(`The passed-in 'index' (string) couldn't be converted to 'number'. [${index}] given.`);\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n const swiper = this;\n let newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n animating,\n enabled,\n params\n } = swiper;\n if (!enabled) return swiper;\n let perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n const increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n if (params.rewind && swiper.isEnd) {\n return swiper.slideTo(0, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n const {\n params,\n animating,\n snapGrid,\n slidesGrid,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n const translate = rtlTranslate ? swiper.translate : -swiper.translate;\n\n function normalize(val) {\n if (val < 0) return -Math.floor(Math.abs(val));\n return Math.floor(val);\n }\n\n const normalizedTranslate = normalize(translate);\n const normalizedSnapGrid = snapGrid.map(val => normalize(val));\n let prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n let prevSnapIndex;\n snapGrid.forEach((snap, snapIndex) => {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n let prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n if (params.rewind && swiper.isBeginning) {\n const lastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n return swiper.slideTo(lastIndex, speed, runCallbacks, internal);\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed = this.params.speed, runCallbacks = true, internal) {\n const swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed = this.params.speed, runCallbacks = true, internal, threshold = 0.5) {\n const swiper = this;\n let index = swiper.activeIndex;\n const skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n const snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n const translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n const currentSnap = swiper.snapGrid[snapIndex];\n const nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n const prevSnap = swiper.snapGrid[snapIndex - 1];\n const currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../shared/dom.js';\nimport { nextTick } from '../../shared/utils.js';\nexport default function slideToClickedSlide() {\n const swiper = this;\n const {\n params,\n $wrapperEl\n } = swiper;\n const slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n let slideToIndex = swiper.clickedIndex;\n let realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(`.${params.slideClass}[data-swiper-slide-index=\"${realIndex}\"]:not(.${params.slideDuplicateClass})`).eq(0).index();\n nextTick(() => {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo.js';\nimport slideToLoop from './slideToLoop.js';\nimport slideNext from './slideNext.js';\nimport slidePrev from './slidePrev.js';\nimport slideReset from './slideReset.js';\nimport slideToClosest from './slideToClosest.js';\nimport slideToClickedSlide from './slideToClickedSlide.js';\nexport default {\n slideTo,\n slideToLoop,\n slideNext,\n slidePrev,\n slideReset,\n slideToClosest,\n slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loopCreate() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n $wrapperEl\n } = swiper; // Remove duplicated slides\n\n const $selector = $wrapperEl.children().length > 0 ? $($wrapperEl.children()[0].parentNode) : $wrapperEl;\n $selector.children(`.${params.slideClass}.${params.slideDuplicateClass}`).remove();\n let slides = $selector.children(`.${params.slideClass}`);\n\n if (params.loopFillGroupWithBlank) {\n const blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (let i = 0; i < blankSlidesNum; i += 1) {\n const blankNode = $(document.createElement('div')).addClass(`${params.slideClass} ${params.slideBlankClass}`);\n $selector.append(blankNode);\n }\n\n slides = $selector.children(`.${params.slideClass}`);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length && swiper.params.loopedSlidesLimit) {\n swiper.loopedSlides = slides.length;\n }\n\n const prependSlides = [];\n const appendSlides = [];\n slides.each((el, index) => {\n const slide = $(el);\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (let i = 0; i < swiper.loopedSlides; i += 1) {\n const index = i - Math.floor(i / slides.length) * slides.length;\n appendSlides.push(slides.eq(index)[0]);\n prependSlides.unshift(slides.eq(slides.length - index - 1)[0]);\n }\n\n for (let i = 0; i < appendSlides.length; i += 1) {\n $selector.append($(appendSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (let i = prependSlides.length - 1; i >= 0; i -= 1) {\n $selector.prepend($(prependSlides[i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n const swiper = this;\n swiper.emit('beforeLoopFix');\n const {\n activeIndex,\n slides,\n loopedSlides,\n allowSlidePrev,\n allowSlideNext,\n snapGrid,\n rtlTranslate: rtl\n } = swiper;\n let newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n const snapTranslate = -snapGrid[activeIndex];\n const diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n const slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n const swiper = this;\n const {\n $wrapperEl,\n params,\n slides\n } = swiper;\n $wrapperEl.children(`.${params.slideClass}.${params.slideDuplicateClass},.${params.slideClass}.${params.slideBlankClass}`).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate.js';\nimport loopFix from './loopFix.js';\nimport loopDestroy from './loopDestroy.js';\nexport default {\n loopCreate,\n loopFix,\n loopDestroy\n};","export default function setGrabCursor(moving) {\n const swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n const el = swiper.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\n el.style.cursor = 'move';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n const swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n}","import setGrabCursor from './setGrabCursor.js';\nimport unsetGrabCursor from './unsetGrabCursor.js';\nexport default {\n setGrabCursor,\n unsetGrabCursor\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js'; // Modified from https://stackoverflow.com/questions/54520554/custom-element-getrootnode-closest-function-crossing-multiple-parent-shadowd\n\nfunction closestElement(selector, base = this) {\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n const found = el.closest(selector);\n\n if (!found && !el.getRootNode) {\n return null;\n }\n\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n}\n\nexport default function onTouchStart(event) {\n const swiper = this;\n const document = getDocument();\n const window = getWindow();\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n enabled\n } = swiper;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n let $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root component\n\n const swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== ''; // eslint-disable-next-line\n\n const eventPath = event.composedPath ? event.composedPath() : event.path;\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && eventPath) {\n $targetEl = $(eventPath[0]);\n }\n\n const noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : `.${params.noSwipingClass}`;\n const isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, $targetEl[0]) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n const startX = touches.currentX;\n const startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n const edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n const edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n let preventDefault = true;\n\n if ($targetEl.is(data.focusableElements)) {\n preventDefault = false;\n\n if ($targetEl[0].nodeName === 'SELECT') {\n data.isTouched = false;\n }\n }\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n const shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && swiper.freeMode && swiper.animating && !params.cssMode) {\n swiper.freeMode.onTouchStart();\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nimport { now } from '../../shared/utils.js';\nexport default function onTouchMove(event) {\n const document = getDocument();\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (!data.isTouched) {\n if (data.startMoving && data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n return;\n }\n\n if (data.isTouchEvent && e.type !== 'touchmove') return;\n const targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n const pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n const pageY = e.type === 'touchmove' ? targetTouch.pageY : e.pageY;\n\n if (e.preventedByNestedSwiper) {\n touches.startX = pageX;\n touches.startY = pageY;\n return;\n }\n\n if (!swiper.allowTouchMove) {\n if (!$(e.target).is(data.focusableElements)) {\n swiper.allowClick = false;\n }\n\n if (data.isTouched) {\n Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n const diffX = touches.currentX - touches.startX;\n const diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(diffX ** 2 + diffY ** 2) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n let touchAngle;\n\n if (swiper.isHorizontal() && touches.currentY === touches.startY || swiper.isVertical() && touches.currentX === touches.startX) {\n data.isScrolling = false;\n } else {\n // eslint-disable-next-line\n if (diffX * diffX + diffY * diffY >= 25) {\n touchAngle = Math.atan2(Math.abs(diffY), Math.abs(diffX)) * 180 / Math.PI;\n data.isScrolling = swiper.isHorizontal() ? touchAngle > params.touchAngle : 90 - touchAngle > params.touchAngle;\n }\n }\n }\n\n if (data.isScrolling) {\n swiper.emit('touchMoveOpposite', e);\n }\n\n if (typeof data.startMoving === 'undefined') {\n if (touches.currentX !== touches.startX || touches.currentY !== touches.startY) {\n data.startMoving = true;\n }\n }\n\n if (data.isScrolling) {\n data.isTouched = false;\n return;\n }\n\n if (!data.startMoving) {\n return;\n }\n\n swiper.allowClick = false;\n\n if (!params.cssMode && e.cancelable) {\n e.preventDefault();\n }\n\n if (params.touchMoveStopPropagation && !params.nested) {\n e.stopPropagation();\n }\n\n if (!data.isMoved) {\n if (params.loop && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n let diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n let disableParentSwiper = true;\n let resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + (-swiper.minTranslate() + data.startTranslate + diff) ** resistanceRatio;\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - (swiper.maxTranslate() - data.startTranslate - diff) ** resistanceRatio;\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode && params.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../shared/utils.js';\nexport default function onTouchEnd(event) {\n const swiper = this;\n const data = swiper.touchEventsData;\n const {\n params,\n touches,\n rtlTranslate: rtl,\n slidesGrid,\n enabled\n } = swiper;\n if (!enabled) return;\n let e = event;\n if (e.originalEvent) e = e.originalEvent;\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchEnd', e);\n }\n\n data.allowTouchCallbacks = false;\n\n if (!data.isTouched) {\n if (data.isMoved && params.grabCursor) {\n swiper.setGrabCursor(false);\n }\n\n data.isMoved = false;\n data.startMoving = false;\n return;\n } // Return Grab Cursor\n\n\n if (params.grabCursor && data.isMoved && data.isTouched && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(false);\n } // Time diff\n\n\n const touchEndTime = now();\n const timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n const pathTree = e.path || e.composedPath && e.composedPath();\n swiper.updateClickedSlide(pathTree && pathTree[0] || e.target);\n swiper.emit('tap click', e);\n\n if (timeDiff < 300 && touchEndTime - data.lastClickTime < 300) {\n swiper.emit('doubleTap doubleClick', e);\n }\n }\n\n data.lastClickTime = now();\n nextTick(() => {\n if (!swiper.destroyed) swiper.allowClick = true;\n });\n\n if (!data.isTouched || !data.isMoved || !swiper.swipeDirection || touches.diff === 0 || data.currentTranslate === data.startTranslate) {\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n return;\n }\n\n data.isTouched = false;\n data.isMoved = false;\n data.startMoving = false;\n let currentPos;\n\n if (params.followFinger) {\n currentPos = rtl ? swiper.translate : -swiper.translate;\n } else {\n currentPos = -data.currentTranslate;\n }\n\n if (params.cssMode) {\n return;\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos\n });\n return;\n } // Find current slide\n\n\n let stopIndex = 0;\n let groupSize = swiper.slidesSizesGrid[0];\n\n for (let i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n const increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n }\n\n let rewindFirstIndex = null;\n let rewindLastIndex = null;\n\n if (params.rewind) {\n if (swiper.isBeginning) {\n rewindLastIndex = swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual ? swiper.virtual.slides.length - 1 : swiper.slides.length - 1;\n } else if (swiper.isEnd) {\n rewindFirstIndex = 0;\n }\n } // Find current slide size\n\n\n const ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n const increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(params.rewind && swiper.isEnd ? rewindFirstIndex : stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) {\n swiper.slideTo(stopIndex + increment);\n } else if (rewindLastIndex !== null && ratio < 0 && Math.abs(ratio) > params.longSwipesRatio) {\n swiper.slideTo(rewindLastIndex);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n const isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(rewindFirstIndex !== null ? rewindFirstIndex : stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(rewindLastIndex !== null ? rewindLastIndex : stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n const swiper = this;\n const {\n params,\n el\n } = swiper;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n const {\n allowSlideNext,\n allowSlidePrev,\n snapGrid\n } = swiper; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n const swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n const swiper = this;\n const {\n wrapperEl,\n rtlTranslate,\n enabled\n } = swiper;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === 0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n let newProgress;\n const translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart.js';\nimport onTouchMove from './onTouchMove.js';\nimport onTouchEnd from './onTouchEnd.js';\nimport onResize from './onResize.js';\nimport onClick from './onClick.js';\nimport onScroll from './onScroll.js';\nlet dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nconst events = (swiper, method) => {\n const document = getDocument();\n const {\n params,\n touchEvents,\n el,\n wrapperEl,\n device,\n support\n } = swiper;\n const capture = !!params.nested;\n const domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n const swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n const passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n};\n\nfunction attachEvents() {\n const swiper = this;\n const document = getDocument();\n const {\n params,\n support\n } = swiper;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n}\n\nfunction detachEvents() {\n const swiper = this;\n events(swiper, 'off');\n}\n\nexport default {\n attachEvents,\n detachEvents\n};","import { extend } from '../../shared/utils.js';\n\nconst isGridEnabled = (swiper, params) => {\n return swiper.grid && params.grid && params.grid.rows > 1;\n};\n\nexport default function setBreakpoint() {\n const swiper = this;\n const {\n activeIndex,\n initialized,\n loopedSlides = 0,\n params,\n $el\n } = swiper;\n const breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n const breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n const breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n const breakpointParams = breakpointOnlyParams || swiper.originalParams;\n const wasMultiRow = isGridEnabled(swiper, params);\n const isMultiRow = isGridEnabled(swiper, breakpointParams);\n const wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(`${params.containerModifierClass}grid ${params.containerModifierClass}grid-column`);\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(`${params.containerModifierClass}grid`);\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(`${params.containerModifierClass}grid-column`);\n }\n\n swiper.emitContainerClasses();\n } // Toggle navigation, pagination, scrollbar\n\n\n ['navigation', 'pagination', 'scrollbar'].forEach(prop => {\n const wasModuleEnabled = params[prop] && params[prop].enabled;\n const isModuleEnabled = breakpointParams[prop] && breakpointParams[prop].enabled;\n\n if (wasModuleEnabled && !isModuleEnabled) {\n swiper[prop].disable();\n }\n\n if (!wasModuleEnabled && isModuleEnabled) {\n swiper[prop].enable();\n }\n });\n const directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n const needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n const isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base = 'window', containerEl) {\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n let breakpoint = false;\n const window = getWindow();\n const currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n const points = Object.keys(breakpoints).map(point => {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n const minRatio = parseFloat(point.substr(1));\n const value = currentHeight * minRatio;\n return {\n value,\n point\n };\n }\n\n return {\n value: point,\n point\n };\n });\n points.sort((a, b) => parseInt(a.value, 10) - parseInt(b.value, 10));\n\n for (let i = 0; i < points.length; i += 1) {\n const {\n point,\n value\n } = points[i];\n\n if (base === 'window') {\n if (window.matchMedia(`(min-width: ${value}px)`).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint.js';\nimport getBreakpoint from './getBreakpoint.js';\nexport default {\n setBreakpoint,\n getBreakpoint\n};","function prepareClasses(entries, prefix) {\n const resultClasses = [];\n entries.forEach(item => {\n if (typeof item === 'object') {\n Object.keys(item).forEach(classNames => {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n const swiper = this;\n const {\n classNames,\n params,\n rtl,\n $el,\n device,\n support\n } = swiper; // prettier-ignore\n\n const suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': !support.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }, {\n 'watch-progress': params.watchSlidesProgress\n }], params.containerModifierClass);\n classNames.push(...suffixes);\n $el.addClass([...classNames].join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n const swiper = this;\n const {\n $el,\n classNames\n } = swiper;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses.js';\nimport removeClasses from './removeClasses.js';\nexport default {\n addClasses,\n removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../shared/dom.js';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n const window = getWindow();\n let image;\n\n function onReady() {\n if (callback) callback();\n }\n\n const isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n const swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (let i = 0; i < swiper.imagesToLoad.length; i += 1) {\n const imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage.js';\nimport preloadImages from './preloadImages.js';\nexport default {\n loadImage,\n preloadImages\n};","function checkOverflow() {\n const swiper = this;\n const {\n isLocked: wasLocked,\n params\n } = swiper;\n const {\n slidesOffsetBefore\n } = params;\n\n if (slidesOffsetBefore) {\n const lastSlideIndex = swiper.slides.length - 1;\n const lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n}\n\nexport default {\n checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopedSlidesLimit: true,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // rewind\n rewind: false,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n maxBackfaceHiddenSlides: 10,\n // NS\n containerModifierClass: 'swiper-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","import { extend } from '../shared/utils.js';\nexport default function moduleExtendParams(params, allModulesParams) {\n return function extendParams(obj = {}) {\n const moduleParamName = Object.keys(obj)[0];\n const moduleParams = obj[moduleParamName];\n\n if (typeof moduleParams !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n}","/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../shared/dom.js';\nimport { extend, now, deleteProps } from '../shared/utils.js';\nimport { getSupport } from '../shared/get-support.js';\nimport { getDevice } from '../shared/get-device.js';\nimport { getBrowser } from '../shared/get-browser.js';\nimport Resize from './modules/resize/resize.js';\nimport Observer from './modules/observer/observer.js';\nimport eventsEmitter from './events-emitter.js';\nimport update from './update/index.js';\nimport translate from './translate/index.js';\nimport transition from './transition/index.js';\nimport slide from './slide/index.js';\nimport loop from './loop/index.js';\nimport grabCursor from './grab-cursor/index.js';\nimport events from './events/index.js';\nimport breakpoints from './breakpoints/index.js';\nimport classes from './classes/index.js';\nimport images from './images/index.js';\nimport checkOverflow from './check-overflow/index.js';\nimport defaults from './defaults.js';\nimport moduleExtendParams from './moduleExtendParams.js';\nconst prototypes = {\n eventsEmitter,\n update,\n translate,\n transition,\n slide,\n loop,\n grabCursor,\n events,\n breakpoints,\n checkOverflow,\n classes,\n images\n};\nconst extendedDefaults = {};\n\nclass Swiper {\n constructor(...args) {\n let el;\n let params;\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n [el, params] = args;\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n const swipers = [];\n $(params.el).each(containerEl => {\n const newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n }); // eslint-disable-next-line no-constructor-return\n\n return swipers;\n } // Swiper Instance\n\n\n const swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n swiper.modules = [...swiper.__modules__];\n\n if (params.modules && Array.isArray(params.modules)) {\n swiper.modules.push(...params.modules);\n }\n\n const allModulesParams = {};\n swiper.modules.forEach(mod => {\n mod({\n swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n const swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(eventName => {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n Object.assign(swiper, {\n enabled: swiper.params.enabled,\n el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n\n // isDirection\n isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n\n isVertical() {\n return swiper.params.direction === 'vertical';\n },\n\n // Indexes\n activeIndex: 0,\n realIndex: 0,\n //\n isBeginning: true,\n isEnd: false,\n // Props\n translate: 0,\n previousTranslate: 0,\n progress: 0,\n velocity: 0,\n animating: false,\n // Locks\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev,\n // Touch Events\n touchEvents: function touchEvents() {\n const touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n const desktop = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n // eslint-disable-next-line no-constructor-return\n\n\n return swiper;\n }\n\n enable() {\n const swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n\n disable() {\n const swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n\n setProgress(progress, speed) {\n const swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n const min = swiper.minTranslate();\n const max = swiper.maxTranslate();\n const current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n emitContainerClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const cls = swiper.el.className.split(' ').filter(className => {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n\n getSlideClasses(slideEl) {\n const swiper = this;\n if (swiper.destroyed) return '';\n return slideEl.className.split(' ').filter(className => {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n }\n\n emitSlidesClasses() {\n const swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n const updates = [];\n swiper.slides.each(slideEl => {\n const classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl,\n classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n }\n\n slidesPerViewDynamic(view = 'current', exact = false) {\n const swiper = this;\n const {\n params,\n slides,\n slidesGrid,\n slidesSizesGrid,\n size: swiperSize,\n activeIndex\n } = swiper;\n let spv = 1;\n\n if (params.centeredSlides) {\n let slideSize = slides[activeIndex].swiperSlideSize;\n let breakLoop;\n\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (let i = activeIndex + 1; i < slides.length; i += 1) {\n const slideInView = exact ? slidesGrid[i] + slidesSizesGrid[i] - slidesGrid[activeIndex] < swiperSize : slidesGrid[i] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (let i = activeIndex - 1; i >= 0; i -= 1) {\n const slideInView = slidesGrid[activeIndex] - slidesGrid[i] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n\n update() {\n const swiper = this;\n if (!swiper || swiper.destroyed) return;\n const {\n snapGrid,\n params\n } = swiper; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n const translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n const newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n let translated;\n\n if (swiper.params.freeMode && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n\n changeDirection(newDirection, needUpdate = true) {\n const swiper = this;\n const currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}${currentDirection}`).addClass(`${swiper.params.containerModifierClass}${newDirection}`);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(slideEl => {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n }\n\n changeLanguageDirection(direction) {\n const swiper = this;\n if (swiper.rtl && direction === 'rtl' || !swiper.rtl && direction === 'ltr') return;\n swiper.rtl = direction === 'rtl';\n swiper.rtlTranslate = swiper.params.direction === 'horizontal' && swiper.rtl;\n\n if (swiper.rtl) {\n swiper.$el.addClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'rtl';\n } else {\n swiper.$el.removeClass(`${swiper.params.containerModifierClass}rtl`);\n swiper.el.dir = 'ltr';\n }\n\n swiper.update();\n }\n\n mount(el) {\n const swiper = this;\n if (swiper.mounted) return true; // Find el\n\n const $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n const getWrapperSelector = () => {\n return `.${(swiper.params.wrapperClass || '').trim().split(' ').join('.')}`;\n };\n\n const getWrapper = () => {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n const res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = options => $el.children(options);\n\n return res;\n }\n\n if (!$el.children) {\n return $($el).children(getWrapperSelector());\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n let $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n const document = getDocument();\n const wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(`.${swiper.params.slideClass}`).each(slideEl => {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(swiper, {\n $el,\n el,\n $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n }\n\n init(el) {\n const swiper = this;\n if (swiper.initialized) return swiper;\n const mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n\n destroy(deleteInstance = true, cleanStyles = true) {\n const swiper = this;\n const {\n params,\n $el,\n $wrapperEl,\n slides\n } = swiper;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(eventName => {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n }\n\n static extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n\n static get extendedDefaults() {\n return extendedDefaults;\n }\n\n static get defaults() {\n return defaults;\n }\n\n static installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n const modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n\n static use(module) {\n if (Array.isArray(module)) {\n module.forEach(m => Swiper.installModule(m));\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n }\n\n}\n\nObject.keys(prototypes).forEach(prototypeGroup => {\n Object.keys(prototypes[prototypeGroup]).forEach(protoMethod => {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","import { getDocument } from 'ssr-window';\nexport default function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n const document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(key => {\n if (!params[key] && params.auto === true) {\n let element = swiper.$el.children(`.${checkProps[key]}`)[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n}","import createElementIfNotDefined from '../../shared/create-element-if-not-defined.js';\nimport $ from '../../shared/dom.js';\nexport default function Navigation({\n swiper,\n extendParams,\n on,\n emit\n}) {\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock',\n navigationDisabledClass: 'swiper-navigation-disabled'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n let $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n const params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n toggleEl($prevEl, swiper.isBeginning && !swiper.params.rewind);\n toggleEl($nextEl, swiper.isEnd && !swiper.params.rewind);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slidePrev();\n emit('navigationPrev');\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop && !swiper.params.rewind) return;\n swiper.slideNext();\n emit('navigationNext');\n }\n\n function init() {\n const params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n const $nextEl = getEl(params.nextEl);\n const $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', () => {\n if (swiper.params.navigation.enabled === false) {\n // eslint-disable-next-line\n disable();\n } else {\n init();\n update();\n }\n });\n on('toEdge fromEdge lock unlock', () => {\n update();\n });\n on('destroy', () => {\n destroy();\n });\n on('enable disable', () => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', (_s, e) => {\n const {\n $nextEl,\n $prevEl\n } = swiper.navigation;\n const targetEl = e.target;\n\n if (swiper.params.navigation.hideOnClick && !$(targetEl).is($prevEl) && !$(targetEl).is($nextEl)) {\n if (swiper.pagination && swiper.params.pagination && swiper.params.pagination.clickable && (swiper.pagination.el === targetEl || swiper.pagination.el.contains(targetEl))) return;\n let isHidden;\n\n if ($nextEl) {\n isHidden = $nextEl.hasClass(swiper.params.navigation.hiddenClass);\n } else if ($prevEl) {\n isHidden = $prevEl.hasClass(swiper.params.navigation.hiddenClass);\n }\n\n if (isHidden === true) {\n emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n\n const enable = () => {\n swiper.$el.removeClass(swiper.params.navigation.navigationDisabledClass);\n init();\n update();\n };\n\n const disable = () => {\n swiper.$el.addClass(swiper.params.navigation.navigationDisabledClass);\n destroy();\n };\n\n Object.assign(swiper.navigation, {\n enable,\n disable,\n update,\n init,\n destroy\n });\n}","/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick } from '../../shared/utils.js';\nexport default function Controller({\n swiper,\n extendParams,\n on\n}) {\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n const binarySearch = function search() {\n let maxIndex;\n let minIndex;\n let guess;\n return (array, val) => {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n let i1;\n let i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n const controlled = swiper.controller.control;\n let multiplier;\n let controlledTranslate;\n const Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n const translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (let i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n const Swiper = swiper.constructor;\n const controlled = swiper.controller.control;\n let i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(() => {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(() => {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', () => {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', () => {\n removeSpline();\n });\n on('resize', () => {\n removeSpline();\n });\n on('observerUpdate', () => {\n removeSpline();\n });\n on('setTranslate', (_s, translate, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', (_s, duration, byController) => {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate,\n setTransition\n });\n}","@import '../../../node_modules/swiper/swiper-bundle.min.css';\n@import '../../global/app.scss';\n\n.slider-wrapper {\n width: 100%;\n position: relative;\n height: 100%;\n display: flex;\n max-width: 1100px;\n flex-direction: row;\n align-items: center;\n justify-content: space-between;\n @media (max-width: $medium) {\n height: 220px;\n }\n\n .swiper {\n margin: 0;\n }\n .swiper-slide img {\n display: block;\n width: 100%;\n height: 100%;\n object-fit: cover;\n }\n .mySwiper2 {\n height: 100%;\n width: 80%;\n position: relative;\n @media (max-width: $medium) {\n width: 100%;\n }\n .swiper-button-prev,\n .swiper-button-next {\n z-index: 20;\n position: absolute;\n bottom: 15px;\n width: 23px;\n top: inherit;\n height: 23px;\n background-color: $white;\n &::after {\n font-size: 11px;\n color: $black;\n font-weight: bold;\n }\n }\n\n .swiper-button-prev {\n right: 40px;\n left: initial;\n }\n }\n .mySwiper {\n width: 20%;\n height: 100%;\n box-sizing: border-box;\n @media (max-width: $medium) {\n display: none;\n }\n .swiper-slide {\n height: 100%;\n cursor: pointer;\n }\n .swiper-slide-thumb-active {\n opacity: 1;\n }\n }\n}\n","import { Component, Prop, Element, h } from '@stencil/core';\nimport Swiper, { Navigation, Controller } from 'swiper';\nimport { setDataLayer } from '../../gtmUtils';\nimport { Image } from '../../types';\nimport { APIURL, accessToken } from '../api';\n\n@Component({\n tag: 'my-slider',\n styleUrl: 'my-slider.scss',\n})\nexport class JcSwiper {\n @Element() modalEl: HTMLElement;\n @Prop() slides: Image[];\n @Prop() shop: string;\n @Prop() product: string;\n @Prop() color: string;\n\n private thumbs: any;\n private swiper2: any;\n\n initSwiper() {\n this.thumbs = new Swiper('.mySwiper', {\n modules: [Navigation, Controller],\n slideToClickedSlide: true,\n loop: true,\n freeMode: true,\n spaceBetween: 5,\n slidesPerView: 3,\n direction: 'vertical',\n touchRatio: 0.2,\n });\n\n this.swiper2 = new Swiper('.mySwiper2', {\n modules: [Navigation, Controller],\n navigation: {\n nextEl: '.swiper-button-next',\n prevEl: '.swiper-button-prev',\n },\n loop: true,\n loopedSlides: 3,\n });\n\n this.swiper2.controller.control = this.thumbs;\n this.thumbs.controller.control = this.swiper2;\n }\n\n componentDidLoad() {\n this.initSwiper();\n }\n\n update() {\n this.thumbs.update();\n this.swiper2.update();\n }\n\n colorInteraction = () => {\n setDataLayer({\n event: 'ColorInteraction',\n shop: this.shop,\n product: this.product,\n color: this.color,\n });\n };\n\n render() {\n return (\n <div class=\"slider-wrapper\">\n <div class=\"swiper mySwiper2\">\n <div class=\"swiper-wrapper\">\n {this.slides &&\n this.slides.length > 0 &&\n this.slides.map((slide: Image) => (\n <div key={slide.id} class=\"swiper-slide\">\n <img src={`${APIURL}/assets/${slide.directus_files_id}?access_token=${accessToken}`} alt=\"room_image\" />\n </div>\n ))}\n </div>\n {this.slides && this.slides.length >= 2 && (\n <div>\n <div onClick={this.colorInteraction} class=\"swiper-button-next\"></div>\n <div onClick={this.colorInteraction} class=\"swiper-button-prev\"></div>\n </div>\n )}\n </div>\n <div class=\"swiper mySwiper\">\n <div class=\"swiper-wrapper\">\n {this.slides &&\n this.slides.length > 0 &&\n this.slides.map((slide: Image) => (\n <div key={slide.id} class=\"swiper-slide\">\n <img src={`${APIURL}/assets/${slide.directus_files_id}?access_token=${accessToken}`} alt=\"room_image\" />\n </div>\n ))}\n </div>\n </div>\n </div>\n );\n }\n}\n"],"mappings":"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"}
|