{"version":3,"sources":["webpack:///./src/cloudfun/components/ContactList.vue","webpack:///./src/cloudfun/components/ContactList.vue?d339","webpack:///./src/cloudfun/components/ContactList.vue?dc72","webpack:///./src/cloudfun/components/ContactList.vue?570e","webpack:///./node_modules/dom7/dom7.esm.js","webpack:///./node_modules/swiper/esm/utils/dom.js","webpack:///./src/cloudfun/components/ProductSlider.vue","webpack:///./src/cloudfun/components/ProductSlider.vue?c05d","webpack:///./src/cloudfun/components/InputBox.vue?0d2d","webpack:///./src/midone/assets/images/placeholders/200x200.jpg","webpack:///./node_modules/swiper/esm/vue/utils.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/objectDestructuringEmpty.js","webpack:///./node_modules/swiper/esm/components/pagination/pagination.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/classCallCheck.js","webpack:///./node_modules/@vue/babel-preset-app/node_modules/@babel/runtime/helpers/esm/createClass.js","webpack:///./src/global-components/ckeditor/upload-adapter-plugin.ts","webpack:///./node_modules/swiper/esm/utils/get-support.js","webpack:///./node_modules/swiper/esm/utils/get-device.js","webpack:///./node_modules/swiper/esm/utils/get-browser.js","webpack:///./node_modules/swiper/esm/modules/resize/resize.js","webpack:///./node_modules/swiper/esm/modules/observer/observer.js","webpack:///./node_modules/swiper/esm/components/core/modular.js","webpack:///./node_modules/swiper/esm/components/core/events-emitter.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSize.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlides.js","webpack:///./node_modules/swiper/esm/components/core/update/updateAutoHeight.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateProgress.js","webpack:///./node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","webpack:///./node_modules/swiper/esm/components/core/update/updateActiveIndex.js","webpack:///./node_modules/swiper/esm/components/core/update/updateClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/update/index.js","webpack:///./node_modules/swiper/esm/components/core/translate/getTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/setTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/minTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/maxTranslate.js","webpack:///./node_modules/swiper/esm/components/core/translate/translateTo.js","webpack:///./node_modules/swiper/esm/components/core/translate/index.js","webpack:///./node_modules/swiper/esm/components/core/transition/setTransition.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionStart.js","webpack:///./node_modules/swiper/esm/components/core/transition/transitionEnd.js","webpack:///./node_modules/swiper/esm/components/core/transition/index.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideTo.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToLoop.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideNext.js","webpack:///./node_modules/swiper/esm/components/core/slide/slidePrev.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideReset.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClosest.js","webpack:///./node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","webpack:///./node_modules/swiper/esm/components/core/slide/index.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopCreate.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopFix.js","webpack:///./node_modules/swiper/esm/components/core/loop/loopDestroy.js","webpack:///./node_modules/swiper/esm/components/core/loop/index.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","webpack:///./node_modules/swiper/esm/components/core/grab-cursor/index.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/appendSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/prependSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/addSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeSlide.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","webpack:///./node_modules/swiper/esm/components/core/manipulation/index.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchStart.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchMove.js","webpack:///./node_modules/swiper/esm/components/core/events/onTouchEnd.js","webpack:///./node_modules/swiper/esm/components/core/events/onResize.js","webpack:///./node_modules/swiper/esm/components/core/events/onClick.js","webpack:///./node_modules/swiper/esm/components/core/events/onScroll.js","webpack:///./node_modules/swiper/esm/components/core/events/index.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","webpack:///./node_modules/swiper/esm/components/core/breakpoints/index.js","webpack:///./node_modules/swiper/esm/components/core/classes/addClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/removeClasses.js","webpack:///./node_modules/swiper/esm/components/core/classes/index.js","webpack:///./node_modules/swiper/esm/components/core/images/loadImage.js","webpack:///./node_modules/swiper/esm/components/core/images/preloadImages.js","webpack:///./node_modules/swiper/esm/components/core/images/index.js","webpack:///./node_modules/swiper/esm/components/core/check-overflow/index.js","webpack:///./node_modules/swiper/esm/components/core/defaults.js","webpack:///./node_modules/swiper/esm/components/core/core-class.js","webpack:///./src/views/product/Main.vue?966c","webpack:///./node_modules/swiper/esm/utils/utils.js","webpack:///./node_modules/swiper/esm/components/navigation/navigation.js","webpack:///./src/cloudfun/components/SliderEditor.vue?c57b","webpack:///./src/cloudfun/components/InputBox.vue","webpack:///./src/cloudfun/components/InputBox.vue?69a3","webpack:///./src/cloudfun/components/InputBox.vue?a68f","webpack:///./node_modules/swiper/esm/vue/params-list.js","webpack:///./node_modules/swiper/esm/vue/get-params.js","webpack:///./node_modules/swiper/esm/vue/init-swiper.js","webpack:///./node_modules/swiper/esm/vue/loop.js","webpack:///./node_modules/swiper/esm/vue/get-changed-params.js","webpack:///./node_modules/swiper/esm/vue/get-children.js","webpack:///./node_modules/swiper/esm/vue/update-swiper.js","webpack:///./node_modules/swiper/esm/vue/virtual.js","webpack:///./node_modules/swiper/esm/vue/swiper.js","webpack:///./src/components/product-modal/Main.vue","webpack:///./src/components/product-modal/Main.vue?7f51","webpack:///./src/components/product-modal/Main.vue?264c","webpack:///./src/cloudfun/components/SliderEditor.vue","webpack:///./src/cloudfun/components/SliderEditor.vue?b8bd","webpack:///./node_modules/swiper/esm/vue/swiper-slide.js","webpack:///./src/views/product/Main.vue","webpack:///./src/views/product/Main.vue?95f7","webpack:///./src/assets/images/linkImg.png","webpack:///./node_modules/swiper/esm/components/mousewheel/mousewheel.js","webpack:///./src/views/product/Main.vue?7cb7","webpack:///./node_modules/swiper/esm/components/autoplay/autoplay.js","webpack:///./src/cloudfun/components/ProductSlider.vue?7a1e","webpack:///./node_modules/ssr-window/ssr-window.esm.js"],"names":["class","read-only","readOnly","items","filter","e","group","groupIndex","key","caption","name","type","onSelectAllButtonClick","checked","itemCount","selectedCount","disabled","item","itemIndex","style","itemWidthPercentage","id","value","selectedValues","onChange","for","index","props","String","modelValue","Array","default","cell","Object","columnCount","Number","Boolean","setup","all","methods","groupItem","this","find","length","forEach","isArray","subItems","includes","push","allSelected","values","map","silent","$emit","setValue","created","undefined","watch","current","render","__scopeId","_inheritsLoose","subClass","superClass","prototype","create","constructor","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","Date","toString","call","_construct","Parent","args","Class","a","apply","Constructor","Function","bind","instance","arguments","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","Map","TypeError","has","get","set","Wrapper","enumerable","writable","configurable","_assertThisInitialized","self","ReferenceError","makeReactive","obj","proto","defineProperty","Dom7","_Array","_this","concat","arrayFlat","arr","res","el","arrayFilter","callback","arrayUnique","uniqueArray","i","qsa","selector","context","querySelectorAll","$","window","document","html","trim","toCreate","tempParent","createElement","innerHTML","childNodes","nodeType","addClass","_len","classes","_key","classNames","c","split","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","attrs","getAttribute","setAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","target","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","j","events","_event","dom7LiveListeners","proxyListener","addEventListener","event","dom7Listeners","off","_len6","_key6","handlers","handler","dom7proxy","removeEventListener","splice","trigger","_len9","_key9","CustomEvent","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","includeMargins","_styles","styles","offsetWidth","parseFloat","getPropertyValue","_styles2","offsetHeight","offset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","getComputedStyle","css","_prop","each","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parentNode","_parent","closest","foundElements","found","children","removeChild","noTrigger","shortcut","eventHandler","Methods","outerWidth","outerHeight","parent","keys","methodName","images","title","icon","width","observer","observeParents","resizeObserver","grabCursor","version","mousewheel","navigation","pagination","lazy","slidesPerView","Math","min","pageSize","spaceBetween","itemSpace","image","src","filePostAction","editingImage","Id","transfer","resize","loading","show-footer","modalVisible","footer","status","content","ref","extensions","accept","limitedWidth","itemWidth","limitedHeight","itemHeight","multiple","action","headers","uploaderFilter","formOptions","save","$slots","_","slotData","use","components","Swiper","SwiperSlide","FileUploader","pid","dafault","titleWidth","titleAlign","field","span","itemRender","placeholder","clearable","onRefresh","onAdd","onEdit","onSave","onRemove","uploader","original","prevent","test","alert","reload","$props","Promise","resolve","setTimeout","previewSrc","files","edit","Uri","ProductId","height","params","insertRows","updateRows","active","upload","then","file","response","payload","archiveID","ContentType","confirm","module","exports","isObject","slice","extend","noExtend","__swiper__","needsNavigation","nextEl","prevEl","needsPagination","needsScrollbar","scrollbar","uniqueClasses","unique","join","_objectDestructuringEmpty","_extends","assign","source","hasOwnProperty","Pagination","update","swiper","rtl","$el","slidesLength","virtual","enabled","slides","total","loop","ceil","loopedSlides","slidesPerGroup","snapGrid","activeIndex","paginationType","snapIndex","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","isHorizontal","dynamicMainBullets","previousIndex","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i","dynamicBulletsLength","bulletsOffset","offsetProp","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","speed","renderCustom","emit","watchOverflow","isLocked","lockClass","paginationHTML","numberOfBullets","freeMode","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","init","uniqueNavElements","clickable","clickableClass","modifierClass","progressbarOppositeClass","preventDefault","slideTo","destroy","hiddenClass","hideOnClick","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","click","targetEl","isHidden","_classCallCheck","_defineProperties","descriptor","_createClass","protoProps","staticProps","loader","xhr","XMLHttpRequest","reject","_sendRequestByAxios","abort","open","responseType","baseUrl","FormData","dispatch","catch","error","console","log","genericErrorText","message","lengthComputable","uploadTotal","uploaded","loaded","send","UploadAdapterPlugin","editor","plugins","createUploadAdapter","browser","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","navigator","maxTouchPoints","passiveListener","supportsPassive","opts","gestures","getSupport","calcDevice","_temp","_ref","userAgent","support","platform","ua","device","ios","android","screenWidth","screen","screenHeight","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","calcBrowser","isSafari","toLowerCase","isEdge","isWebView","getBrowser","ResizeObserver","createObserver","destroyed","initialized","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","orientationChangeHandler","Observer","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","requestAnimationFrame","attributes","childList","characterData","observers","containerParents","observeSlideChildren","$wrapperEl","disconnect","useParams","instanceParams","modules","moduleName","useModules","modulesParams","moduleParams","moduleEventName","priority","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventsArray","updateSize","clientWidth","clientHeight","isVertical","parseInt","isNaN","size","updateSlides","getDirectionLabel","property","getDirectionPropertyValue","node","label","swiperSize","rtlTranslate","wrongRTL","isVirtual","previousSlidesLength","slideClass","slidesGrid","slidesSizesGrid","slidesForMargin","slideEl","slideIndex","cssMode","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","slidePosition","prevSlideSize","slidesNumberEvenToRows","slideSize","replace","virtualSize","marginLeft","marginTop","marginRight","marginBottom","slidesPerColumn","floor","slidesPerColumnFill","max","newSlidesGrid","_$wrapperEl$css","_$wrapperEl$css2","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slideIndexInGroup","columnsInGroup","order","slideStyles","currentTransform","currentWebKitTransform","webkitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","effect","setWrapperSize","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","activeSlides","setTransition","visibleSlides","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","getSwiperTranslate","axis","virtualTranslate","currentTranslate","setTranslate","byController","newProgress","wrapperEl","x","y","z","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","_wrapperEl$scrollTo","isH","scrollTo","behavior","onTranslateToWrapperTransitionEnd","getTranslate","transitionStart","direction","dir","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","val","prevIndex","normalizedSnapGrid","prevSnap","slideReset","slideToClosest","threshold","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","cursor","unsetGrabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","formElements","activeElement","blur","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","velocities","position","time","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","freeModeMomentumBounceRatio","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","base","containerEl","currentWidth","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","_points$i","prepareClasses","prefix","resultClasses","addClasses","suffixes","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","onReady","isPicture","complete","Image","onload","onerror","preloadImages","imagesLoaded","imagesToLoad","updateOnImagesReady","currentSrc","wasLocked","lastSlidePosition","url","wrapperClass","_emitClasses","prototypes","modular","eventsEmitter","manipulation","extendedDefaults","swipers","newParams","moduleParamName","swiperParams","defaults","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","getSlideClasses","updates","spv","breakLoop","translated","translateValue","newDirection","needUpdate","currentDirection","mount","mounted","querySelector","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","m","prototypeGroup","protoMethod","Grid","ContactList","ProductModal","ProductSlider","InputBox","SelectBox","model","grid","printColumns","selectedTab","currentServices","currentCategories","showProductImg","mediaError","categories","service","product","user","JSON","parse","sessionStorage","getItem","Authorization","token","imageData","ProductID","gridOptions","multiselect","toolbarConfig","custom","refresh","printConfig","sheetName","columns","modes","exportConfig","filename","types","mode","align","showHeaderOverflow","showOverflow","sortable","editRender","immediate","slots","promises","query","page","queryAll","insert","delete","modalConfig","showFooter","rules","Name","required","services","validator","itemValue","InfoFormOptions","introduce","pattern","RegExp","mediaUrl","IntroduceOptions","SliderOptions","ContactOptions","contactItems","positionList","member","members","memberID","classicEditor","ContentConfig","extraPlugins","toolbar","shouldNotGroupWhenFull","removePlugins","table","contentToolbar","heading","view","initDocumentEditor","toolbarContainer","ui","element","win","insertProdict","submitFunc","no","previewArchiveID","servicesSelectorOptions","rowId","textField","valueField","addIfNotExists","showHeader","pagerConfig","intialPage","totalCount","pageCount","categorySelectorOptions","memberSelectorOptions","search","sliderWidth","bannerFormOptions","sliderEditor","info","auth","getInfo","subject","getMembers","getAuth","isBuyer","positionData","Vendor_Position","serviceCategoriesData","Service_Categories","productCategoriesData","Product_Categories","uploadAction","hideBatchDropDown","cash","dropdown","beforeSubmit","msg","modal","ValidForm","introduceForm","$refs","infoForm","validate","ErrMap","onGridEdit","productID","$model","entity","imgUri","cloneArchiveID","introduce_2","updateEnable","enable","inputFile","newFile","oldFile","onSliderEdit","PositionId","editingRow","onSliderRemove","onSliderSave","deleteProps","object","nextTick","delay","now","currentStyle","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","MozTransform","OTransform","MsTransform","msTransform","m41","m42","to","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","bindModuleMethods","subKey","classesToSelector","Navigation","toggleEl","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","toEdge","fromEdge","_swiper$navigation3","onHidePanel","tagsInput","readonly","add-on-blur","delete-on-backspace","tags","selectedRows","is-duplicate","tag","onFocus","onBeforeDeletingTag","onBeforeAddingTag","onClear","VueTagsInput","formatText","placement","showSearch","dropdownWidth","dropdownHeight","disallowSelectedRowIds","currentPage","layouts","autoHidden","treeConfig","keyword","findChildRow","findGridRow","getData","autoResize","stripe","canCreate","canUpdate","canDelete","canRead","checkboxConfig","reserve","checkRowKeys","checkMethod","some","strict","setCheckboxRow","computeValue","showPanel","onKeywordChange","onSelectedRowChanged","gridRow","onCheckboxChange","records","reserves","checkingRows","record","selectedRow","onCheckboxAll","unselectedRow","togglePanel","isPanelVisible","hidePanel","paramsList","getParams","rest","allowedParams","plainObj","initSwiper","mountSwiper","paginationEl","scrollbarEl","calcLoopedSlides","slidesPerViewParams","renderLoop","swiperRef","modifiedSlides","duplicateSlide","blankSlide","getChangedParams","oldParams","oldChildren","addKey","oldChildrenKeys","childrenKeys","watchParams","newKeys","oldKeys","newKey","oldKey","getChildren","originalSlots","slidesRef","oldSlidesRef","getSlidesFromElements","els","slotName","vnode","isFragment","updateSwiper","changedParams","needThumbsInit","needControllerInit","needPaginationInit","needScrollbarInit","needNavigationInit","updateParams","currentParams","thumbs","controller","control","updateOnVirtualData","load","renderVirtual","virtualData","from","wrapperTag","a11y","coverflowEffect","cubeEffect","fadeEffect","flipEffect","hashNavigation","history","keyboard","parallax","zoom","emits","Tag","WrapperTag","containerClasses","breakpointChanged","initializedRef","swiperElRef","oldPassedParamsRef","nextElRef","prevElRef","paginationElRef","scrollbarElRef","_getParams","onBeforeBreakpoint","_beforeBreakpoint","_containerClasses","extendWith","cache","renderExternal","renderExternalUpdate","renderSlides","_getParams2","newPassedParams","_getChildren","data-dismiss","href","select","standardEditorData","config","editorConfig","SliderEditor","date","simpleEditorConfig","LinkUrl","Remark","virtualIndex","eventAttached","slideElRef","slideClasses","updateClasses","slideData","isActive","isDuplicate","isPrev","isNext","data-toggle","data-target","alt","onExport","isEditing","isRowSelected","isVendor","image_column","switch","open-label","close-label","operate","column-edit","submit","reset","tab","column-keyword","column-keyword2","column-member","contactAccountIDs","column-enable","column-isCommonContractItem","isCommonContractItem","column-mediaUrl","column-photo-and-remark","autoUpload","html-editer","form-banners","Width","Height","productImageIDs","contact","form-permissions","permissionItems","PermissionValues","filter-name","$panel","filters","option","changeFilterEvent","modal-footer","form","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","shiftKey","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","handle","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","_newEvent","sign","ignoreWheelEvents","clearTimeout","timeout","_recentWheelEvents","shift","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","newEvent","raw","prevEvent","animateSlider","releaseScroll","returnValue","thresholdDelta","thresholdTime","getTime","disable","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onTransitionEnd","onVisibilityChange","visibilityState","disableOnInteraction","beforeTransitionStart","sliderFirstMove","touchEnd","ssrDocument","nodeName","getElementById","createEvent","initEvent","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","origin","pathname","protocol","getDocument","doc","ssrWindow","replaceState","pushState","go","back","matchMedia","cancelAnimationFrame","getWindow"],"mappings":"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","file":"js/chunk-f4ea471c.9a395810.js","sourcesContent":["\n\n\n\n\n","\nimport { computed, defineComponent, PropType, ref } from '@cloudfun/core'\nimport { v1 as uuid } from 'uuid'\n\nexport default defineComponent({\n props: {\n name: String,\n modelValue: { type: Array as PropType, default: () => [] },\n cell: Object,\n columnCount: { type: Number, default: 0 },\n readOnly: Boolean,\n items: { type: Array as PropType, default: () => [] }\n },\n setup (props) {\n const selectedValues = ref([])\n const itemCount = ref({ all: 0 })\n const selectedCount = ref({ all: 0 })\n\n const itemWidthPercentage = computed(() =>\n props.columnCount > 0 ? `${100 / props.columnCount}%` : 'auto'\n )\n\n return {\n selectedValues,\n itemCount,\n selectedCount,\n id: uuid(),\n itemWidthPercentage\n }\n },\n methods: {\n onSelectAllButtonClick (name: string) {\n const groupItem = this.items.find((e) => e.name === name)\n let items = null\n if (groupItem == null) {\n items = this.items\n if (this.selectedValues.length === this.itemCount[name]) {\n this.selectedValues = []\n } else {\n items.forEach((item) => {\n if (item.items && Array.isArray(item.items)) {\n item.items.forEach((subItems: any) => {\n if (!this.selectedValues.includes(subItems.value)) { this.selectedValues.push(subItems.value) }\n })\n } else if (!this.selectedValues.includes(item.value)) { this.selectedValues.push(item.value) }\n })\n }\n } else {\n items = groupItem.items\n var allSelected = true\n items.forEach((item: any) => {\n allSelected &&= this.selectedValues.includes(item.value)\n })\n if (allSelected) {\n var values = groupItem.items.map((e: any) => e.value)\n this.selectedValues = this.selectedValues.filter(\n (e) => !values.includes(e)\n )\n } else {\n items.forEach((item: any) => {\n if (!this.selectedValues.includes(item.value)) { this.selectedValues.push(item.value) }\n })\n }\n }\n this.onChange()\n },\n onChange (e?: Event, silent?: boolean) {\n this.selectedCount = { all: this.selectedValues.length }\n this.selectedValues.forEach(value => {\n this.items.forEach(item => {\n if (item.items) {\n const group = item\n if (group.items.find((e: any) => e.value === value)) {\n this.selectedCount[group.name] = (this.selectedCount[group.name] || 0) + 1\n }\n }\n })\n })\n if (!silent) {\n this.$emit('update:modelValue', this.selectedValues)\n this.$emit('change', this.selectedValues)\n if (this.cell) this.cell.setValue(this.selectedValues)\n }\n }\n },\n created () {\n this.items.forEach(item => {\n if (item.items && Array.isArray(item.items)) {\n const group = item\n this.itemCount[group.name] = group.items.length\n this.itemCount.all += group.items.length\n } else this.itemCount.all++\n })\n this.selectedValues = [...this.modelValue]\n this.onChange(undefined, true)\n },\n watch: {\n items () {\n this.itemCount.all = 0\n this.items.forEach((item) => {\n if (item.items && Array.isArray(item.items)) {\n this.itemCount[item.name] = item.items.length\n this.itemCount.all += item.items.length\n } else this.itemCount.all++\n })\n this.onChange(undefined, true)\n },\n modelValue (current) {\n this.selectedValues = [...current]\n this.onChange(undefined, true)\n }\n }\n})\n","import { render } from \"./ContactList.vue?vue&type=template&id=3bccefb2&scoped=true\"\nimport script from \"./ContactList.vue?vue&type=script&lang=ts\"\nexport * from \"./ContactList.vue?vue&type=script&lang=ts\"\n\nimport \"./ContactList.vue?vue&type=style&index=0&id=3bccefb2&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-3bccefb2\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ContactList.vue?vue&type=style&index=0&id=3bccefb2&scoped=true&lang=css\"","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, 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 var uniqueArray = [];\n\n for (var 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, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var 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 var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf(' 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 (var 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 (var 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 (var 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 (var 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 (var 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 var 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 var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var 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 (var i = 0; i < this.length; i += 1) {\n var 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 var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _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 (var 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 var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var 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 (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var 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 (var 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 (var 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() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var 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 var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var 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 var 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 var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: 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 var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\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 (var k = handlers.length - 1; k >= 0; k -= 1) {\n var 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() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\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() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var 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 var 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 var 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 var _styles = this.styles();\n\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 var 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 var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.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 var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var 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 (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var 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 var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var 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 (var _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(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var 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 (var 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 (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var 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 var child = this[0];\n var 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 var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var 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 (var 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 var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var 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 var before = $(selector);\n\n for (var 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 (var 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 var after = $(selector);\n\n for (var 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 (var 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 var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _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 var 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 var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _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 var parents = []; // eslint-disable-line\n\n for (var 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 var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _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 var 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 var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var 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 (var 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() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var 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 (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var 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\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var 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 var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var 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() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var 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() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var 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\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var 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 easingProgress: function 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 stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (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: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var 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(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (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 var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var 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 if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var 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 var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var 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.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar 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, 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';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName]\n });\n});\nexport default $;","\n\n\n\n\n","import { render } from \"./ProductSlider.vue?vue&type=template&id=303fafac&scoped=true\"\nimport script from \"./ProductSlider.vue?vue&type=script&lang=js\"\nexport * from \"./ProductSlider.vue?vue&type=script&lang=js\"\n\nimport \"./ProductSlider.vue?vue&type=style&index=0&id=303fafac&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-303fafac\"\n\nexport default script","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./InputBox.vue?vue&type=style&index=0&id=98702292&scoped=true&lang=css\"","module.exports = \"data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAYABgAAD//gA+Q1JFQVRPUjogZ2QtanBlZyB2MS4wICh1c2luZyBJSkcgSlBFRyB2NjIpLCBkZWZhdWx0IHF1YWxpdHkK/9sAQwAIBgYHBgUIBwcHCQkICgwUDQwLCwwZEhMPFB0aHx4dGhwcICQuJyAiLCMcHCg3KSwwMTQ0NB8nOT04MjwuMzQy/9sAQwEJCQkMCwwYDQ0YMiEcITIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIy/8AAEQgAyADIAwEiAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIBAwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBkaJSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SVlpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX29/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAECdwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQACEQMRAD8A9MooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACioridLaBpZM7V7DqaqrqTh0FxayQo5wrk5Gff0oAv0VVurzyJFijiaaZhkIDjA9Sada3a3KuChjkQ4dG6igCxRWc2qfekS2ke3U4MoP6gVoKyugZTlWGQfUUALRRVB9RcyOtvavMqHDMDgZ9vWgC/RVZb6FrM3WSIwOc9c+lRRaizSxpNbPCsnCMTnJ9/SgC9RVW6vPIkWKOJppmGQgOMD1Jp1rdi5VwUMciHDo3UUAWKKKKACiiigAooooAKKKKACiiigAooooAKKKKAIri3W4VFckBXDcd8VS1GVbgCyh+eVmGcdEAPU1NqdwbezyrFS7BNw7Z6n8qq22oabax7Iyw9WK8n60AWLf5tXvGPVVRR9CM1DcHy7+6K8E2hc/UcU+eT7DqDXDqxglUBmAztYUW6m9nuLgqVidPKTI5I7mgCezjX+zIkwNrRDP4jmqEZmGkW1zCzboslkB4ZcnORTo75ra0+yPG/2pBsVQvX0NPlD21hBYxn9/KNvHYdzQBJayve3bXCs4t0G1FzgMe5IqUGDTLXDOduSeerE1BZg2N21kxJjf54mP6iqkN9ZtcNc3LM0uTsBXIQdsUAPMbiyiEi7RPdhth7A9v0q5q+Bp7P3RlYfXNMuJBqFiZbXLNE4ZQR1I5/rUU10NSEdtCj8sDLkfdAoAsW/zaveMeqqij6EZoXC624H8cAY/UHFMnk+w6g1w6sYJVAZgM7WFOsy1zdzXm0rGVCR5HJHc0AX6KKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKACiiigAooooAKKKKAP//Z\"","function isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction extend(target, src) {\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n Object.keys(src).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n }).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject(src[key]) && isObject(target[key]) && Object.keys(src[key]).length > 0) {\n if (src[key].__swiper__) target[key] = src[key];else extend(target[key], src[key]);\n } else {\n target[key] = src[key];\n }\n });\n}\n\nfunction needsNavigation(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.navigation && typeof props.navigation.nextEl === 'undefined' && typeof props.navigation.prevEl === 'undefined';\n}\n\nfunction needsPagination(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.pagination && typeof props.pagination.el === 'undefined';\n}\n\nfunction needsScrollbar(props) {\n if (props === void 0) {\n props = {};\n }\n\n return props.scrollbar && typeof props.scrollbar.el === 'undefined';\n}\n\nfunction uniqueClasses(classNames) {\n if (classNames === void 0) {\n classNames = '';\n }\n\n var classes = classNames.split(' ').map(function (c) {\n return c.trim();\n }).filter(function (c) {\n return !!c;\n });\n var unique = [];\n classes.forEach(function (c) {\n if (unique.indexOf(c) < 0) unique.push(c);\n });\n return unique.join(' ');\n}\n\nexport { isObject, extend, needsNavigation, needsPagination, needsScrollbar, uniqueClasses };","export default function _objectDestructuringEmpty(obj) {\n if (obj == null) throw new TypeError(\"Cannot destructure undefined\");\n}","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n $el[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\">\";\n }\n }\n\n $el.html(paginationHTML);\n swiper.pagination.bullets = $el.find(classesToSelector(params.bulletClass));\n }\n\n if (params.type === 'fraction') {\n if (params.renderFraction) {\n paginationHTML = params.renderFraction.call(swiper, params.currentClass, params.totalClass);\n } else {\n paginationHTML = \"\" + ' / ' + (\"\");\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type === 'progressbar') {\n if (params.renderProgressbar) {\n paginationHTML = params.renderProgressbar.call(swiper, params.progressbarFillClass);\n } else {\n paginationHTML = \"\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el) return;\n var $el = $(params.el);\n if ($el.length === 0) return;\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1) {\n $el = swiper.$el.find(params.el);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","export default function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nexport default function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}","/* eslint-disable */\nimport CloudFun, { Model } from \"@cloudfun/core\";\nimport model from '@/models/index'\n\nclass UploadAdapter {\n xhr: XMLHttpRequest;\n loader: any;\n\n constructor(loader: any) {\n // The file loader instance to use during the upload.\n this.xhr = new XMLHttpRequest();\n this.loader = loader;\n }\n\n // Starts the upload process.\n upload() {\n return this.loader.file\n .then((file: any) => new Promise( ( resolve, reject ) => {\n //this._initRequest();\n //this._initListeners( resolve, reject, file );\n //this._sendRequest( file );\n this._sendRequestByAxios( resolve, reject, file );\n } ) );\n }\n\n // Aborts the upload process.\n abort() {\n if ( this.xhr ) this.xhr.abort();\n }\n\n // Initializes the XMLHttpRequest object using the URL passed to the constructor.\n _initRequest() {\n const xhr = this.xhr;\n // Note that your request may look different. It is up to you and your editor\n // integration to choose the right communication channel. This example uses\n // a POST request with JSON as a data structure but your configuration\n // could be different.\n xhr.open( 'POST', `${process.env.VUE_APP_BACKEND_URL}/api/Files?mode=ckeditor`, true );\n //xhr.setRequestHeader('Authorization', `Basic ${CloudFun.user.Token}`)\n xhr.responseType = 'json';\n }\n\n _sendRequestByAxios(resolve: any, reject: any, file: any) {\n\n const baseUrl = `${process.env.VUE_APP_BACKEND_URL}`;\n const data = new FormData();\n data.append('file', file);\n data.append('ProductID', '0');\n data.append('width', '0');\n data.append('upload', '0');\n\n model?.dispatch('image/insert', data)\n .then(function (response: any) {\n if(response.status) {\n resolve({default: `${baseUrl}/api/v1/Image/${response.payload.archiveID}`})\n } else {\n reject('圖片上傳失敗')\n }\n })\n .catch(function (error) {\n console.log(error)\n reject(error)\n });\n }\n\n // Initializes XMLHttpRequest listeners.\n _initListeners(resolve: any, reject: any, file: any) {\n const xhr = this.xhr;\n const loader = this.loader;\n const genericErrorText = `Couldn't upload file: ${ file.name }.`;\n\n xhr.addEventListener('error', () => reject( genericErrorText ));\n xhr.addEventListener('abort', () => reject());\n xhr.addEventListener('load', () => {\n const response = xhr.response;\n\n // This example assumes the XHR server's \"response\" object will come with\n // an \"error\" which has its own \"message\" that can be passed to reject()\n // in the upload promise.\n //\n // Your integration may handle upload errors in a different way so make sure\n // it is done properly. The reject() function must be called when the upload fails.\n if ( !response || response.status !== 200 ) {\n return reject( response.message || genericErrorText );\n }\n\n //console.log(response.payload[0]);\n // If the upload is successful, resolve the upload promise with an object containing\n // at least the \"default\" URL, pointing to the image on the server.\n // This URL will be used to display the image in the content. Learn more in the\n // UploadAdapter#upload documentation.\n resolve({\n default: response.payload[0]\n });\n } );\n\n // Upload progress when it is supported. The file loader has the #uploadTotal and #uploaded\n // properties which are used e.g. to display the upload progress bar in the editor\n // user interface.\n if ( xhr.upload ) {\n xhr.upload.addEventListener('progress', evt => {\n if ( evt.lengthComputable ) {\n loader.uploadTotal = evt.total;\n loader.uploaded = evt.loaded;\n }\n });\n }\n }\n\n //Prepares the data and sends the request.\n _sendRequest(file: any) {\n // Prepare the form data.\n const data = new FormData();\n\n data.append('upload', file);\n\n // Important note: This is the right place to implement security mechanisms\n // like authentication and CSRF protection. For instance, you can use\n // XMLHttpRequest.setRequestHeader() to set the request headers containing\n // the CSRF token generated earlier by your application.\n\n // Send the request.\n this.xhr.send(data);\n }\n}\n\nexport default function UploadAdapterPlugin(editor: any) {\n editor.plugins.get('FileRepository').createUploadAdapter = (loader: any) => {\n return new UploadAdapter(loader);\n };\n}","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\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';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var 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 (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\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';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\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 swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (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 swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.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 swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (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 emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\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 var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $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 extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n var getDirectionLabel = 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 var getDirectionPropertyValue = function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n };\n\n var params = swiper.params;\n var $wrapperEl = swiper.$wrapperEl,\n swiperSize = swiper.size,\n rtl = swiper.rtlTranslate,\n wrongRTL = swiper.wrongRTL;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n var previousSlidesLength = isVirtual ? swiper.virtual.slides.length : swiper.slides.length;\n var slides = $wrapperEl.children(\".\" + swiper.params.slideClass);\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\n\n function slidesForMargin(slideEl, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }\n\n var offsetBefore = params.slidesOffsetBefore;\n\n if (typeof offsetBefore === 'function') {\n offsetBefore = params.slidesOffsetBefore.call(swiper);\n }\n\n var offsetAfter = params.slidesOffsetAfter;\n\n if (typeof offsetAfter === 'function') {\n offsetAfter = params.slidesOffsetAfter.call(swiper);\n }\n\n var previousSnapGridLength = swiper.snapGrid.length;\n var previousSlidesGridLength = swiper.slidesGrid.length;\n var spaceBetween = params.spaceBetween;\n var slidePosition = -offsetBefore;\n var prevSlideSize = 0;\n var 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 marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 && params.spaceBetween && params.spaceBetween + \"px\");\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var 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 var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\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 var newSlidesGrid;\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 var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= 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 var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(slidesForMargin).css((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (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 var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\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 || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var newHeight = 0;\n var i;\n\n if (typeof speed === 'number') {\n swiper.setTransition(speed);\n } else if (speed === true) {\n swiper.setTransition(swiper.params.speed);\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(function (slide) {\n activeSlides.push(slide);\n });\n } else {\n for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) {\n var index = swiper.activeIndex + i;\n if (index > swiper.slides.length) break;\n activeSlides.push(swiper.slides.eq(index)[0]);\n }\n }\n } else {\n activeSlides.push(swiper.slides.eq(swiper.activeIndex)[0]);\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 var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var 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\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var 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 extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || 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 var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var 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 var 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 var 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}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var 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 var 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 var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: 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 '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var 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';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var 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 var newProgress;\n var 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}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var 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 var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\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';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var 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 transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var 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('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var 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('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\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 var 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 var 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 var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var skip = Math.min(swiper.params.slidesPerGroupSkip, slideIndex);\n var snapIndex = skip + Math.floor((slideIndex - skip) / swiper.params.slidesPerGroup);\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if ((activeIndex || params.initialSlide || 0) === (previousIndex || 0) && runCallbacks) {\n swiper.emit('beforeSlideChangeStart');\n }\n\n var translate = -snapGrid[snapIndex]; // Update progress\n\n swiper.updateProgress(translate); // Normalize slideIndex\n\n if (params.normalizeSlideIndex) {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n var normalizedTranslate = -Math.floor(translate * 100);\n var normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\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 var 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 var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\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 (!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\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var 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, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\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 return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate;\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 var 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 var normalizedTranslate = normalize(translate);\n var normalizedSnapGrid = snapGrid.map(function (val) {\n return normalize(val);\n });\n var currentSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate)];\n var prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var 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 var currentSnap = swiper.snapGrid[snapIndex];\n var 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 var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _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 '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var 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(function () {\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(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.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) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var 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\n var _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 var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $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 componenet\n\n var swipingClassHasValue = !!params.noSwipingClass && params.noSwipingClass !== '';\n\n if (swipingClassHasValue && e.target && e.target.shadowRoot && event.path && event.path[0]) {\n $targetEl = $(event.path[0]);\n }\n\n if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[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 var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var 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 extend(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 var preventDefault = true;\n if ($targetEl.is(data.formElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.formElements) && document.activeElement !== $targetEl[0]) {\n document.activeElement.blur();\n }\n\n var shouldPreventDefault = preventDefault && swiper.allowTouchMove && params.touchStartPreventDefault;\n\n if ((params.touchStartForcePreventDefault || shouldPreventDefault) && !$targetEl[0].isContentEditable) {\n e.preventDefault();\n }\n }\n\n swiper.emit('touchStart', e);\n}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate;\n var 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 var targetTouch = e.type === 'touchmove' && e.targetTouches && (e.targetTouches[0] || e.changedTouches[0]);\n var pageX = e.type === 'touchmove' ? targetTouch.pageX : e.pageX;\n var 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 // isMoved = true;\n swiper.allowClick = false;\n\n if (data.isTouched) {\n extend(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.formElements)) {\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 var diffX = touches.currentX - touches.startX;\n var diffY = touches.currentY - touches.startY;\n if (swiper.params.threshold && Math.sqrt(Math.pow(diffX, 2) + Math.pow(diffY, 2)) < swiper.params.threshold) return;\n\n if (typeof data.isScrolling === 'undefined') {\n var 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) {\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 var 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 var disableParentSwiper = true;\n var 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 + Math.pow(-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 - Math.pow(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.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid;\n var 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 var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime; // Tap, doubleTap, Click\n\n if (swiper.allowClick) {\n swiper.updateClickedSlide(e);\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(function () {\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 var 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 (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _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 } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var 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(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var 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(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(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 var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // 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 var swiper = this;\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 var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\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 var newProgress;\n var 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';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\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 var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n\n if (breakpoint && swiper.currentBreakpoint !== breakpoint) {\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\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 }\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var currentWidth = base === 'window' ? window.innerWidth : containerEl.clientWidth;\n var currentHeight = base === 'window' ? window.innerHeight : containerEl.clientHeight;\n var points = Object.keys(breakpoints).map(function (point) {\n if (typeof point === 'string' && point.indexOf('@') === 0) {\n var minRatio = parseFloat(point.substr(1));\n var value = currentHeight * minRatio;\n return {\n value: value,\n point: point\n };\n }\n\n return {\n value: point,\n point: point\n };\n });\n points.sort(function (a, b) {\n return parseInt(a.value, 10) - parseInt(b.value, 10);\n });\n\n for (var i = 0; i < points.length; i += 1) {\n var _points$i = points[i],\n point = _points$i.point,\n value = _points$i.value;\n\n if (value <= currentWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (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 var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var 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 var 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 (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var 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';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\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 // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\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 slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\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: false,\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 watchSlidesVisibility: 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 loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\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 // NS\n containerModifierClass: 'swiper-container-',\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};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\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 = args[0];\n params = args[1];\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 var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var 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\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n if (!(moduleParamName in params && 'enabled' in moduleParams)) return;\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 }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // 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(function (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 extend(swiper, {\n el: el,\n // Classes\n classNames: [],\n // Slides\n slides: $(),\n slidesGrid: [],\n snapGrid: [],\n slidesSizesGrid: [],\n // isDirection\n isHorizontal: function isHorizontal() {\n return swiper.params.direction === 'horizontal';\n },\n isVertical: function isVertical() {\n return swiper.params.direction === 'vertical';\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 var touch = ['touchstart', 'touchmove', 'touchend', 'touchcancel'];\n var desktop = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\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 formElements: 'input, select, option, textarea, button, video, label',\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 }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var 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 (var _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 for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // 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 var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\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 _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var 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(function (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 _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper; // Find Wrapper\n\n var $wrapperEl;\n\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n $wrapperEl = $(el.shadowRoot.querySelector(\".\" + swiper.params.wrapperClass)); // Children needs to return slot items\n\n $wrapperEl.children = function (options) {\n return $el.children(options);\n };\n } else {\n $wrapperEl = $el.children(\".\" + swiper.params.wrapperClass);\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $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 _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var 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) {\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);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit);\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 _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\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(function (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 Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","\n/* eslint-disable */\nimport CloudFun, {\n computed,\n defineComponent,\n ref,\n reactive\n} from \"@cloudfun/core\";\nimport Grid, { GridOptions } from \"@/cloudfun/components/Grid.vue\";\nimport { VxeFormProps } from \"vxe-table\";\nimport ContactList from \"@/cloudfun/components/ContactList.vue\";\nimport ProductModal from \"@/components/product-modal/Main.vue\";\nimport ClassicEditor from \"@/global-components/ckeditor/classic-editor\";\nimport UploadAdapterPlugin from \"@/global-components/ckeditor/upload-adapter-plugin\";\nimport ProductSlider from \"@/cloudfun/components/ProductSlider.vue\";\nimport FileUploader from \"@/cloudfun/components/FileUploader.vue\";\nimport { VueUploadItem } from \"vue-upload-component\";\nimport InputBox, { InputBoxOptions } from \"@/cloudfun/components/InputBox.vue\";\nimport SelectBox, {\n SelectBoxOptions\n} from \"@/cloudfun/components/SelectBox.vue\";\nimport { onMounted } from \"vue\";\nimport router from \"@/router\";\nimport \"@/global-components/ckeditor/styles.css\";\nimport { VXETable } from \"vxe-table\";\nexport default defineComponent({\n components: {\n Grid,\n ContactList,\n ProductModal,\n ProductSlider,\n FileUploader,\n InputBox,\n SelectBox\n },\n setup() {\n const model = CloudFun.current?.model;\n const grid = ref({});\n var printColumns = [{ field: \"Name\" }, { field: \"Description\" }];\n const selectedTab = ref(\"info\");\n const uploader = ref({});\n\n const currentServices = ref([]);\n const currentCategories = ref([]);\n const showProductImg = ref(false);\n const mediaError = ref(false);\n const categories = reactive({\n service: [],\n product: []\n });\n\n const user = JSON.parse(sessionStorage.getItem(\"EmptyNext-user\")!);\n const headers = {\n Authorization: `Bearer ${user?.token}`\n };\n const imageData = { ProductID: 0 };\n\n const gridOptions: GridOptions = {\n id: \"product\",\n title: \"產品\",\n multiselect: false,\n toolbarConfig: {\n custom: false,\n refresh: true\n },\n printConfig: {\n sheetName: \"產品\",\n columns: printColumns,\n modes: [\"current\", \"selected\", \"all\"]\n },\n exportConfig: {\n filename: \"產品\",\n type: \"csv\",\n types: [\"html\", \"csv\"],\n mode: \"all\",\n modes: [\"current\", \"selected\", \"all\"],\n columns: printColumns\n },\n columns: [\n {\n field: \"no\",\n title: \"產品編號\",\n align: \"center\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: false,\n editRender: {\n name: \"$input\",\n immediate: true,\n attrs: { type: \"text\" }\n }\n },\n {\n field: \"name\",\n title: \"產品名稱\",\n align: \"center\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: false,\n editRender: {\n name: \"$input\",\n immediate: true,\n attrs: { type: \"text\" }\n }\n },\n {\n field: \"categories\",\n title: \"產品類別\",\n type: \"html\",\n align: \"center\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: false,\n editRender: {\n name: \"$input\",\n immediate: true,\n attrs: { type: \"text\" }\n }\n },\n {\n field: \"services\",\n title: \"服務類別\",\n align: \"center\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: false,\n editRender: {\n name: \"$input\",\n immediate: true,\n attrs: { type: \"text\" }\n }\n },\n {\n field: \"image\",\n title: \"產品預覽\",\n type: \"html\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: false,\n editRender: {\n name: \"$input\",\n immediate: true,\n attrs: { type: \"text\" }\n }\n },\n // {\n // field: \"previewArchiveID\",\n // title: \"產品預覽\",\n // align: \"center\",\n // slots: { default: \"image_column\" }\n // },\n {\n field: \"enable\",\n title: \"狀態\",\n align: \"center\",\n slots: { default: \"switch\" }\n },\n {\n field: \"operate\",\n title: \"操作\",\n align: \"center\",\n slots: { default: \"operate\" }\n }\n\n // {\n // field: \"edit\",\n // title: \"操作\",\n // width: 110,\n // fixed: \"right\",\n // align: \"center\",\n // showOverflow: true,\n // sortable: false,\n // slots: { default: \"column-edit\" }\n // }\n ],\n promises: {\n query: model\n ? params =>\n model.dispatch(\"product/query\", {\n pageSize: params.pageSize,\n page: params.page\n })\n : undefined,\n queryAll: model ? () => model.dispatch(\"product/query\") : undefined,\n save: model\n ? params => model.dispatch(\"product/save\", params)\n : undefined,\n insert: model\n ? data => model.dispatch(\"product/insert\", data)\n : undefined,\n delete: model ? id => model.dispatch(\"product/delete\", id) : undefined,\n update: model\n ? data => model.dispatch(\"product/update\", data)\n : undefined\n },\n modalConfig: { showFooter: true, width: \"80%\", height: \"80%\" }\n };\n\n const formOptions: VxeFormProps = {\n titleWidth: 60,\n titleAlign: \"right\",\n items: [{ span: 24, slots: { default: \"tab\" } }],\n rules: {\n Name: [{ type: \"string\", required: true }],\n // categories: [{ required: true }],\n services: [{ required: true }],\n categories: [\n {\n type: \"string\",\n validator(el) {\n console.log(\"el\", el);\n if (!el.itemValue || el.itemValue.length === 0)\n return new Error(\"請輸入案件編號\");\n }\n }\n ]\n }\n };\n\n const InfoFormOptions = reactive({\n items: [\n {\n field: \"previewArchive\",\n title: \"產品代表圖\",\n span: 9,\n slots: { default: \"column-photo-and-remark\" }\n },\n {\n className: \"form-col-layout\",\n field: \"name\",\n title: \"產品名稱\",\n span: 15,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"\", clearable: true }\n }\n },\n {\n className: \"form-col-layout\",\n field: \"no\",\n title: \"產品編號\",\n span: 15,\n itemRender: {\n name: \"$input\",\n props: {\n placeholder: \"供應商內部管理使用,不影響平台上架\",\n clearable: true\n }\n }\n },\n\n {\n className: \"form-col-layout\",\n field: \"spec\",\n title: \"產品規格\",\n span: 15,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"\", clearable: true }\n }\n },\n {\n // className: \"form-col-layout\",\n field: \"enable\",\n title: \"上架狀態\",\n span: 7,\n slots: { default: \"column-enable\" }\n // itemRender: {\n // name: \"$switch\",\n // props: { placeholder: \"\" }\n // }\n },\n {\n // className: \"form-col-layout\",\n field: \"isCommonContractItem\",\n title: \"\",\n span: 8,\n slots: { default: \"column-isCommonContractItem\" }\n // itemRender: {\n // name: \"$checkbox\",\n // props: { placeholder: \"\" }\n // }\n },\n {\n className: \"form-col-layout mt-4\",\n field: \"url\",\n title: \"產品官網\",\n span: 12,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"\", clearable: true }\n }\n },\n {\n // className: \"form-col-layout\",\n field: \"mediaUrl\",\n title: \"\",\n span: 12,\n slots: { default: \"column-mediaUrl\" }\n // itemRender: {\n // name: \"$input\",\n // props: { placeholder: \"\", clearable: true }\n // }\n },\n {\n field: \"keyword\",\n title: \"\",\n span: 24,\n required: true,\n slots: { default: \"column-keyword\" }\n },\n {\n field: \"keyword2\",\n title: \"\",\n span: 24,\n slots: { default: \"column-keyword2\" }\n },\n {\n title: \"聯絡窗口\",\n span: 24,\n slots: { default: \"column-member\" }\n },\n {\n field: \"introduce\",\n title: \"產品簡介\",\n span: 24,\n itemRender: { name: \"$textarea\" }\n }\n // {\n // className: \"form-col-layout\",\n // field: \"introduce\",\n // title: \"產品簡介\",\n // span: 24,\n // itemRender: {\n // name: \"$input\",\n // props: { placeholder: \"\", clearable: true },\n // },\n // },\n ],\n rules: {\n name: [{ required: true, message: \"請輸入產品名稱\" }],\n introduce: [{ required: true, message: \"請輸入產品簡介\" }],\n // keyword: [{ required: true, message: \"請選擇服務類別\" }],\n // keywor2: [{ required: true, message: \"請選擇產品類別\" }],\n // categories: [{ required: true }],\n // services: [{ required: true }],\n url: [\n {\n type: \"string\",\n max: 2000,\n pattern: new RegExp(\n \"(https?:\\\\/\\\\/[\\\\w-\\\\.]+(:\\\\d+)?(\\\\/[~\\\\w\\\\/\\\\.]*)?(\\\\?\\\\S*)?(#\\\\S*)?)\"\n )\n }\n ],\n mediaUrl: [\n {\n type: \"string\",\n max: 2000,\n pattern: new RegExp(\n \"(https?:\\\\/\\\\/[\\\\w-\\\\.]+(:\\\\d+)?(\\\\/[~\\\\w\\\\/\\\\.]*)?(\\\\?\\\\S*)?(#\\\\S*)?)\"\n )\n }\n ]\n }\n });\n\n const IntroduceOptions = reactive({\n items: [{ span: 24, slots: { default: \"html-editer\" } }]\n // rules: {\n // introduce_2: [{ required: true }]\n // }\n });\n\n const SliderOptions = reactive({\n items: [{ span: 24, slots: { default: \"form-banners\" } }],\n rules: {}\n });\n\n const ContactOptions = reactive({\n items: [{ span: 24, slots: { default: \"contact\" } }],\n rules: {}\n });\n\n const contactItems = computed(() => {\n const items: any[] = [];\n if (positionList.value) {\n positionList.value.forEach((e: any) => {\n if (e.value != 1) {\n const member = members.value\n ? members.value\n .filter((i: any) => i.position == e.value)\n .map((j: any) => {\n return { name: j.name, value: j.memberID };\n })\n : [];\n items.push({ name: e.text, items: member, order: e.value });\n }\n });\n }\n return items.sort((a: any, b: any) => a.order - b.order);\n });\n\n const classicEditor = ClassicEditor;\n const ContentConfig = {\n extraPlugins: [UploadAdapterPlugin],\n toolbar: {\n shouldNotGroupWhenFull: true,\n items: [\n \"heading\",\n \"|\",\n \"fontFamily\",\n \"fontSize\",\n \"fontColor\",\n \"fontBackgroundColor\",\n \"|\",\n \"bold\",\n \"italic\",\n \"underline\",\n \"alignment\",\n \"bulletedList\",\n \"numberedList\",\n \"outdent\",\n \"indent\",\n \"highlight\",\n \"imageInsert\",\n \"insertTable\",\n \"|\",\n \"link\",\n \"blockQuote\",\n \"mediaEmbed\",\n // 'codeBlock',\n \"|\",\n \"|\",\n \"undo\",\n \"redo\"\n ]\n },\n removePlugins: [\"Markdown\"],\n image: {\n toolbar: [\n \"imageTextAlternative\",\n \"imageStyle:full\",\n \"imageStyle:side\",\n \"linkImage\"\n ]\n },\n table: {\n contentToolbar: [\n \"tableColumn\",\n \"tableRow\",\n \"mergeTableCells\",\n \"tableCellProperties\",\n \"tableProperties\"\n ]\n },\n heading: {\n options: [\n {\n model: \"paragraph\",\n title: \"Paragraph\",\n class: \"ck-heading_paragraph\"\n },\n {\n model: \"heading1\",\n view: { name: \"h1\", classes: \"font-bold text-xl\" },\n title: \"Heading 1\",\n class: \"ck-heading_heading1\"\n },\n {\n model: \"heading2\",\n view: { name: \"h2\", classes: \"font-bold text-base\" },\n title: \"Heading 2\",\n class: \"ck-heading_heading2\"\n }\n ]\n }\n };\n\n const initDocumentEditor = (editor: any) => {\n const toolbarContainer = document.querySelector(\n \".document-editor__toolbar\"\n );\n if (toolbarContainer)\n toolbarContainer.appendChild(editor.ui.view.toolbar.element);\n const win: any = window;\n win.editor = editor;\n };\n\n const insertProdict = (row: any, submitFunc: any) => {\n // row.services = ['測試1', '測試2']\n // row.categories = ['測試3', '測試4']\n //row.productImageIDs = []\n //row.contactAccountIDs = []\n //console.log(row)\n if (!row.services || row.services.length == 0) row.services = [];\n if (!row.categories || row.categories.length == 0) row.categories = [];\n if (!row.no) row.no = \"\";\n if (!row.previewArchiveID) row.previewArchiveID = \"\";\n submitFunc();\n // model?.dispatch('product/insert', row).then(response => {\n // console.log(response)\n // grid.value.refresh()\n // \t// if(response.status) {\n // \t// \treturn response.payload;\n // \t// } else {\n // \t// \tCloudFun.send(\"error\", {\n // \t// \tsubject: \"新增失敗\",\n // \t// \tcontent: response.message,\n // \t// \t});\n // \t// }\n // }).catch((error) => {\n // \tCloudFun.send(\"error\", {\n // \t\tsubject: \"新增失敗\",\n // \t\tcontent: error.message,\n // \t});\n // });\n };\n\n // const servicesSelectorOptions: InputBoxOptions = {\n // rowId: \"id\",\n // transfer: true,\n // placeholder: \"請輸入產品類別\",\n // textField: \"name\",\n // valueField: \"id\",\n // addIfNotExists: true,\n // columns: [\n // {\n // field: \"name\",\n // title: \"名稱\",\n // showHeaderOverflow: true,\n // showOverflow: true,\n // sortable: true\n // }\n // ],\n // multiselect: true,\n // showHeader: true,\n // promises: {\n // find: value =>\n // new Promise((resolve, reject) => {\n // resolve(currentCategories.value);\n // }), // eslint-disable-line\n // query: params => new Promise((resolve, reject) => {}),\n // insert: value => {\n // var data = value.name;\n // return new Promise((resolve, reject) => {\n // resolve({ id: data, name: data });\n // });\n // }\n // }\n // };\n\n const servicesSelectorOptions: SelectBoxOptions = {\n rowId: \"id\",\n transfer: true,\n placeholder: \"選擇\",\n textField: \"text\",\n valueField: \"value\",\n addIfNotExists: false,\n columns: [\n {\n field: \"text\",\n title: \"名稱\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: true\n }\n ],\n multiselect: true,\n showHeader: true,\n pagerConfig: { pageSize: 100 },\n promises: {\n find: value =>\n new Promise((resolve, reject) => {\n console.log(\"value\", value);\n console.log(\n \"🚀 ~ file: Main.vue ~ line 1140 ~ newPromise ~ service\",\n categories\n );\n const el: any = categories.service.find(\n (item: any) => item.value === value\n );\n console.log(\"el\", el);\n if (el) resolve({ id: el.value, text: el.text, value: el.value });\n }), // eslint-disable-line\n query: params =>\n new Promise((resolve, reject) => {\n const payload = {\n data: categories.service,\n intialPage: 1,\n page: 0,\n pageSize: categories.service.length,\n totalCount: categories.service.length,\n pageCount: 0\n };\n resolve(payload);\n // model!.dispatch(\"system/serviceCategories\").then(result => {\n // console.log(\"service payload\", result.payload.Service_Categories);\n // const payload = {\n // data: result.payload.Service_Categories,\n // intialPage: 1,\n // page: 0,\n // pageSize: result.payload.Service_Categories.length,\n // totalCount: result.payload.Service_Categories.length,\n // pageCount: 0\n // };\n // resolve(payload);\n // });\n })\n // query: params =>\n // model!.dispatch(\"system/serviceCategories\", {\n // pageSize: params.pageSize,\n // page: params.page,\n // search: \"null\"\n // }) // eslint-disable-line\n }\n };\n\n const categorySelectorOptions: SelectBoxOptions = {\n rowId: \"id\",\n transfer: true,\n placeholder: \"選擇\",\n textField: \"text\",\n valueField: \"value\",\n addIfNotExists: false,\n columns: [\n {\n field: \"text\",\n title: \"名稱\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: true\n }\n ],\n multiselect: true,\n showHeader: true,\n pagerConfig: { pageSize: 100 },\n promises: {\n find: value =>\n new Promise((resolve, reject) => {\n const el: any = categories.product.find(\n (item: any) => item.value === value\n );\n console.log(\"el\", el);\n if (el) resolve({ id: el.value, text: el.text, value: el.value });\n }), // eslint-disable-line\n query: params =>\n new Promise((resolve, reject) => {\n // model!.dispatch(\"system/productCategories\").then(result => {\n // console.log(\"service payload\", result.payload.Product_Categories);\n const payload = {\n data: categories.product,\n intialPage: 1,\n page: 0,\n pageSize: categories.product.length,\n totalCount: categories.product.length,\n pageCount: 0\n };\n resolve(payload);\n // });\n })\n // query: params =>\n // model!.dispatch(\"system/serviceCategories\", {\n // pageSize: params.pageSize,\n // page: params.page,\n // search: \"null\"\n // }) // eslint-disable-line\n }\n };\n\n // const categorySelectorOptions: InputBoxOptions = {\n // rowId: \"id\",\n // transfer: true,\n // placeholder: \"請輸入服務類別\",\n // textField: \"name\",\n // valueField: \"id\",\n // addIfNotExists: true,\n // columns: [\n // {\n // field: \"name\",\n // title: \"名稱\",\n // showHeaderOverflow: true,\n // showOverflow: true,\n // sortable: true\n // }\n // ],\n // multiselect: true,\n // showHeader: true,\n // promises: {\n // find: value =>\n // new Promise((resolve, reject) => {\n // resolve(currentServices.value);\n // }), // eslint-disable-line\n // query: params => new Promise((resolve, reject) => {}),\n // insert: value => {\n // var data = value.name;\n // return new Promise((resolve, reject) => {\n // resolve({ id: data, name: data });\n // });\n // }\n // }\n // };\n\n const memberSelectorOptions: SelectBoxOptions = {\n rowId: \"memberID\",\n transfer: true,\n placeholder: \"選擇\",\n textField: \"name\",\n valueField: \"memberID\",\n columns: [\n {\n field: \"name\",\n title: \"名稱\",\n showHeaderOverflow: true,\n showOverflow: true,\n sortable: true\n }\n ],\n multiselect: true,\n showHeader: true,\n promises: {\n find: value => model!.dispatch(\"member/find\", value), // eslint-disable-line\n query: params =>\n model!.dispatch(\"member/query\", {\n pageSize: params.pageSize,\n page: params.page,\n search: \"null\"\n }) // eslint-disable-line\n }\n };\n\n const sliderWidth = ref(\"700px\");\n const bannerFormOptions = {\n titleWidth: 80,\n titleAlign: \"right\",\n items: [\n // {\n // field: \"width\",\n // title: \"寬度\",\n // span: 24,\n // itemRender: {\n // name: \"$input\",\n // props: {\n // type: \"number\",\n // placeholder: \"請輸入網址\",\n // clearable: true\n // }\n // }\n // },\n // {\n // field: \"height\",\n // title: \"高度\",\n // span: 24,\n // itemRender: {\n // name: \"$input\",\n // props: {\n // type: \"number\",\n // placeholder: \"請輸入文字\",\n // clearable: true\n // }\n // }\n // }\n ],\n rules: {}\n };\n\n const sliderEditor = ref({});\n const info = ref({});\n const auth = ref({});\n\n const getInfo = () => {\n return model\n ?.dispatch(\"user/find\")\n .then(response => {\n if (response.status) {\n return response.payload;\n } else {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: response.message\n });\n }\n })\n .catch(error => {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: error.message\n });\n });\n };\n\n const getMembers = () => {\n return model\n ?.dispatch(\"member/query\", { pageSize: 999, page: 1, search: \"null\" })\n .then(response => {\n if (response) {\n return response.data;\n } else {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: response.message\n });\n }\n })\n .catch(error => {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: error.message\n });\n });\n };\n\n const positionList = ref([]);\n const members = ref([]);\n\n const getAuth = () => {\n return model\n ?.dispatch(\"user/auth\")\n .then(response => {\n if (response.status) {\n return response.payload;\n } else {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: response.message\n });\n }\n })\n .catch(error => {\n CloudFun.send(\"error\", {\n subject: \"讀取失敗\",\n content: error.message\n });\n });\n };\n\n onMounted(async () => {\n auth.value = await getAuth();\n if (!auth.value.isBuyer) router.push(\"/company-not-vendor\");\n info.value = await getInfo();\n //console.log(info.value);\n var positionData = await model?.dispatch(\"option/find\", [\n \"Vendor_Position\"\n ]);\n if (positionData) {\n positionList.value = positionData.Vendor_Position;\n members.value = await getMembers();\n }\n var serviceCategoriesData = await model?.dispatch(\"option/find\", [\n \"Service_Categories\"\n ]);\n\n if (serviceCategoriesData) {\n categories.service = serviceCategoriesData.Service_Categories;\n }\n\n var productCategoriesData = await model?.dispatch(\"option/find\", [\n \"Product_Categories\"\n ]);\n\n if (productCategoriesData) {\n categories.product = productCategoriesData.Product_Categories;\n }\n });\n\n return {\n grid,\n initDocumentEditor,\n gridOptions,\n formOptions,\n contactItems,\n selectedTab,\n InfoFormOptions,\n IntroduceOptions,\n ContentConfig,\n classicEditor,\n uploader,\n insertProdict,\n uploadAction: `${process.env.VUE_APP_BACKEND_URL}/api/v1/Image`,\n headers,\n imageData,\n servicesSelectorOptions,\n categorySelectorOptions,\n currentServices,\n currentCategories,\n bannerFormOptions,\n sliderWidth,\n SliderOptions,\n sliderEditor,\n showProductImg,\n memberSelectorOptions,\n info,\n ContactOptions,\n auth,\n mediaError,\n categories\n };\n },\n methods: {\n hideBatchDropDown() {\n cash(\"#batch-dropdown\").dropdown(\"hide\");\n },\n async uploaderFilter(\n current: VueUploadItem,\n original: VueUploadItem,\n prevent: any\n ) {\n if (!current || !current.name) return prevent();\n if (!/\\.(png|gif|jpg|jpeg)$/i.test(current.name)) {\n alert(\"未支援此種圖片格式\");\n return prevent();\n }\n },\n beforeSubmit(row: any, submitFunc: any) {\n console.log(\"🚀 ~ file: Main.vue:1502 ~ beforeSubmit ~ row:\", row);\n\n let msg = \"\";\n if (!row.categories || row.categories.length === 0) {\n msg += \"請選擇服務類別\";\n }\n\n if (!row.services || row.services.length === 0) {\n if (msg.length > 0) msg += \"\\n\";\n msg += \"請選擇產品類別\";\n }\n\n if (msg.length > 0) {\n VXETable.modal.alert({ content: msg, title: \"錯誤\", status: \"error\" });\n return;\n }\n\n this.ValidForm(row, submitFunc);\n },\n ValidForm(row: any, submitFunc: any) {\n const introduceForm: any = this.$refs.introduceForm;\n const infoForm: any = this.$refs.infoForm;\n\n infoForm.validate((ErrMap: any) => {\n if (!ErrMap) {\n introduceForm.validate((ErrMap: any) => {\n if (!ErrMap) {\n this.insertProdict(row, submitFunc);\n } else {\n }\n });\n } else {\n }\n });\n },\n async onGridEdit(row: any, callback: any) {\n const entity = row.productID\n ? await this.$model.dispatch(\"product/find\", row.productID)\n : undefined;\n if (entity) {\n console.log(\"entity\", entity);\n Object.assign(row, entity);\n if (row.previewArchiveID) {\n row.imgUri = `${this.uploadAction}/${entity.previewArchiveID}`;\n row.cloneArchiveID = row.previewArchiveID;\n }\n if (!row.introduce_2) row.introduce_2 = \"\";\n if (row.services && row.services.length) {\n this.currentServices = row.services.map((el: any) => {\n return { id: el, text: el, value: el };\n });\n }\n if (row.categories && row.categories.length) {\n this.currentCategories = row.categories.map((el: any) => {\n return { id: el, text: el, value: el };\n });\n }\n this.showProductImg = true;\n }\n callback();\n },\n async updateEnable(row: any) {\n const entity = row.productID\n ? await this.$model.dispatch(\"product/find\", row.productID)\n : undefined;\n if (entity) {\n entity.enable = row.enable;\n entity.productID = row.productID;\n\n this.$model\n .dispatch(\"product/update\", entity)\n .then(() => {\n this.grid.refresh();\n })\n .catch(error => {\n CloudFun.send(\"error\", {\n subject: \"更新失敗\",\n content: error.message\n });\n });\n }\n },\n inputFile: function(newFile: any, oldFile: any) {\n if (newFile && oldFile && !newFile.active && oldFile.active) {\n console.log(\"newFile response\", newFile.response);\n if (newFile.xhr) {\n console.log(\"status\", newFile.xhr.status);\n }\n }\n },\n // imageupdate: function(value: any) {\n // console.log(value)\n // //data.previewArchiveID = value?.archiveID;\n // }\n onSliderEdit(image: any, callback: any) {\n image.PositionId = this.grid.editingRow.Id;\n callback();\n },\n async onSliderRemove(image: any, callback: any) {\n await this.$model.dispatch(\"banner/delete\", image.Id);\n callback();\n },\n async onSliderSave(params: any, callback: any) {\n //var ref = this.sliderEditor;\n //console.log('ref', ref.reload)\n //ref.reload()\n // await this.$model.dispatch('banner/save', params).then(\n // () => {\n // this.$model.dispatch('bannerPosition/find', this.grid.editingRow.Id).then(\n // (entity) => {\n // //this.$refs.sliderEditor.reload(entity.Banners)\n // },\n // reason => { CloudFun.send('error', { subject: '重載失敗', content: reason }) }\n // )\n // },\n // reason => { CloudFun.send('error', { subject: '保存失敗', content: reason }) }\n // )\n callback();\n }\n }\n});\n","import { getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (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) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var 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) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var 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(function (a) {\n return a.replace(',', '.');\n }).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 extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null) {\n var keysArray = Object.keys(Object(nextSource)).filter(function (key) {\n return noExtend.indexOf(key) < 0;\n });\n\n for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {\n var nextKey = keysArray[nextIndex];\n var 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 bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n $prevEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n $nextEl[swiper.params.watchOverflow && swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\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 }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n click: function click(swiper, e) {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n var 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 var 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 swiper.emit('navigationShow');\n } else {\n swiper.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};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./SliderEditor.vue?vue&type=style&index=0&id=b15a2d4e&scoped=true&lang=css\"","\n\n\n\n\n","\n/* eslint-disable */\nimport {\n defineComponent,\n ref,\n Sorting,\n Condition,\n PropType,\n onMounted,\n} from \"@cloudfun/core\";\nimport { VxeGridPropTypes, VxePulldownInstance } from \"vxe-table\";\nimport Grid, { GridOptions, TreeConfig } from \"@/cloudfun/components/Grid.vue\";\nimport VueTagsInput from \"@sipec/vue3-tags-input\";\n\nexport type InputBoxOptions = {\n /** 資料主鍵 */\n rowId: string;\n /** 文字欄位 */\n textField: string;\n /** 值欄位 */\n valueField: string;\n /** 格式化文字 */\n formatText?: (row: any) => Promise;\n /** 所有欄位 */\n columns: VxeGridPropTypes.Columns;\n /** 提示文字 */\n placeholder?: string;\n /** 展開方向 */\n placement?: \"top\" | \"bottom\";\n /** 是否複選 */\n multiselect?: boolean;\n /** 是否唯讀 */\n readonly?: boolean;\n /** 顯示搜尋框 */\n showSearch?: boolean;\n /** 顯示表頭 */\n showHeader?: boolean;\n /** 下拉寬度 */\n dropdownWidth?: number | string;\n /** 下拉高度 */\n dropdownHeight?: number | string;\n /** 當資料不存在時新增資料 */\n addIfNotExists?: boolean;\n /** 不能選擇的資料行 */\n disallowSelectedRowIds?: any[];\n /** 分頁設定 */\n pagerConfig?: VxeGridPropTypes.PagerConfig;\n /** 樹狀結構設定 */\n treeConfig?: TreeConfig;\n /** 可提供的承諾 */\n promises: {\n /** 以傳入值尋找資料 */\n find: (value: any) => Promise;\n /** 查詢資料 */\n query: (params: {\n page: number;\n pageSize: number;\n keyword?: string;\n sortings?: Sorting[];\n condition?: Condition;\n }) => Promise<{ data: any[]; totalCount: number }>;\n /** 新增資料 */\n insert?: (row: any) => Promise;\n };\n /** 是否轉移至最上層 */\n transfer?: boolean;\n};\n\nexport default defineComponent({\n components: {\n Grid,\n VueTagsInput,\n },\n props: {\n /** 綁定值 */\n modelValue: { type: [String, Number, Array] as PropType },\n /** 資料主鍵 */\n rowId: { type: String, required: true },\n /** 文字欄位 */\n textField: { type: String, required: true },\n /** 值欄位 */\n valueField: { type: String, required: true },\n /** 格式化文字 */\n formatText: { type: Function as PropType<(rows: any) => Promise> },\n /** 所有欄位 */\n columns: { type: Array as PropType, required: true },\n /** 提示文字 */\n placeholder: String,\n /** 展開方向 */\n placement: { type: String as PropType<\"top\" | \"bottom\">, default: \"bottom\" },\n /** 是否複選 */\n multiselect: { type: Boolean, default: false },\n /** 是否唯讀 */\n readonly: { type: Boolean, default: false },\n /** 顯示搜尋框 */\n showSearch: { type: Boolean, default: true },\n /** 顯示表頭 */\n showHeader: { type: Boolean, default: undefined },\n /** 下拉寬度 */\n dropdownWidth: { type: [Number, String] },\n /** 下拉高度 */\n dropdownHeight: { type: [Number, String], default: 282 },\n /** 當資料不存在時新增資料 */\n addIfNotExists: Boolean,\n /** 不能選擇的資料行 */\n disallowSelectedRowIds: { type: Array as PropType, default: [] },\n /** 分頁設定 */\n pagerConfig: {\n type: Object as PropType,\n default: {\n size: \"mini\",\n currentPage: 1,\n pageSize: 5,\n layouts: [\"PrevPage\", \"Jump\", \"PageCount\", \"NextPage\"],\n autoHidden: true,\n className: \"border-b-2 rounded-b\",\n },\n },\n /** 樹狀結構設定 */\n treeConfig: { type: Object as PropType },\n /** 可提供的承諾 */\n promises: {\n type: Object as PropType<{\n /** 以傳入值尋找資料 */\n find: (value: any) => Promise;\n /** 查詢資料 */\n query: (params: {\n page: number;\n pageSize: number;\n keyword?: string;\n sortings?: Sorting[];\n condition?: Condition;\n }) => Promise<{ data: any[]; totalCount: number }>;\n /** 新增資料 */\n insert?: (row: any) => Promise;\n }>,\n required: true,\n },\n /** 是否轉移至最上層 */\n transfer: Boolean,\n },\n setup(props) {\n const instance = ref({} as VxePulldownInstance);\n const selectedRows = ref([]);\n const tagsInput = ref({});\n const tag = ref(\"\");\n const grid = ref({});\n const text = ref(\"\");\n const value = ref(props.modelValue);\n const keyword = ref(\"\");\n\n onMounted(async () => {\n if (props.modelValue) {\n const values = Array.isArray(props.modelValue)\n ? props.modelValue\n : [props.modelValue];\n for (const value of values) {\n selectedRows.value.push({\n id:value, text:value,value:value\n })\n // await props.promises\n // .find(value)\n // .then(async (row) => {\n // console.log(row)\n // selectedRows.value.push({\n // id: row[props.rowId],\n // text: ,\n // value: row[props.valueField],\n // });\n // })\n // .catch((error) =>\n // console.log(\"SelectBox: Failure to find model value: \", error)\n // );\n }\n value.value = selectedRows.value[0]?.value;\n if (!props.multiselect) {\n if (props.showSearch) keyword.value = selectedRows.value[0]?.text;\n else text.value = selectedRows.value[0]?.text;\n }\n }\n });\n\n const findChildRow = (rowId: any, children: any[]) => {\n for (const row of children) {\n if (row[props.rowId] === rowId) return row;\n if (props.treeConfig?.children && row[props.treeConfig.children]) {\n const child: any = findChildRow(\n rowId,\n row[props.treeConfig.children]\n );\n if (child) return child;\n }\n }\n };\n\n const findGridRow = (rowId: any) => {\n if (!grid.value.getData) return undefined;\n const data = grid.value.getData();\n return findChildRow(rowId, data);\n };\n\n const gridOptions: GridOptions = {\n rowId: props.rowId,\n size: \"mini\",\n height: \"auto\",\n autoResize: true,\n multiselect: props.multiselect,\n columns: props.columns,\n showHeader:\n props.showHeader !== undefined\n ? props.showHeader\n : props.columns.length > 1,\n pagerConfig: props.pagerConfig,\n treeConfig: props.treeConfig,\n stripe: props.treeConfig === undefined,\n promises: { query: props.promises.query },\n canCreate: false,\n canUpdate: false,\n canDelete: false,\n canRead: false,\n checkboxConfig: {\n reserve: true,\n checkRowKeys: props.modelValue ? Array.isArray(props.modelValue) ? props.modelValue : typeof props.modelValue === 'string' ? [props.modelValue] : [props.modelValue] : undefined,\n checkMethod: ({ row }) =>\n !props.readonly &&\n !props.disallowSelectedRowIds.some((id) => id === row[props.rowId]),\n strict: props.readonly,\n },\n };\n\n return {\n instance,\n selectedRows,\n tagsInput,\n tag,\n grid,\n gridOptions,\n findGridRow,\n text,\n value,\n keyword,\n };\n },\n watch: {\n async modelValue(current, original) {\n if (current != this.value) {\n this.selectedRows = [];\n if (current) {\n const values = Array.isArray(current) ? current : [current];\n for (const value of values) {\n await this.promises\n .find(value)\n .then(async (row) => {\n if (this.grid.setCheckboxRow) this.grid.setCheckboxRow(row, true);\n this.selectedRows.push({\n id: row[this.rowId],\n text: this.formatText\n ? await this.formatText(row)\n : row[this.textField],\n value: row[this.valueField],\n });\n })\n .catch((error) =>\n console.log(\"SelectBox: Failure to find model value: \", error)\n );\n }\n }\n if (this.multiselect) {\n this.gridOptions.checkboxConfig!.checkRowKeys = Array.isArray(current) ? current : [current];\n if (this.grid.reload) this.grid.reload();\n } else {\n this.value = this.selectedRows[0]?.value;\n if (this.showSearch) this.keyword = this.selectedRows[0]?.text;\n else this.text = this.selectedRows[0]?.text;\n }\n }\n },\n },\n methods: {\n computeValue() {\n if (this.multiselect) return this.selectedRows.map((e) => e.row ? e.row[this.valueField] : e.value);\n else {\n if (this.showSearch) {\n this.keyword = this.selectedRows[0]?.text;\n if (this.grid.refresh && this.keyword !== this.grid.keyword) {\n this.grid.keyword = this.keyword;\n this.grid.refresh();\n }\n } else this.text = this.selectedRows[0]?.text;\n }\n return this.selectedRows[0]?.value;\n },\n async onFocus() {\n await this.instance.showPanel();\n this.computeValue();\n },\n async onHidePanel() {\n if (!this.multiselect && this.showSearch && this.grid.keyword) {\n const data = this.grid.getData();\n if (data.length === 1) {\n const row = data[0];\n this.selectedRows = [\n {\n id: row[this.rowId],\n text: this.formatText\n ? await this.formatText(row)\n : row[this.textField],\n value: row[this.valueField],\n row: row,\n },\n ];\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n }\n if (!this.selectedRows.length) this.keyword = \"\";\n }\n },\n onKeywordChange() {\n if (!this.multiselect && this.showSearch) {\n this.grid.keyword = this.keyword;\n if (this.selectedRows.length) {\n this.selectedRows = [];\n this.value = undefined;\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n }\n }\n if (this.grid.refresh) this.grid.refresh();\n },\n async onSelectedRowChanged(gridRow: any) {\n if (this.readonly || this.multiselect) return;\n if (this.selectedRows.some((e) => e.id === gridRow[this.rowId])) return;\n if (this.disallowSelectedRowIds?.includes(gridRow[this.rowId]))\n this.$emit(\"disallowSelect\", gridRow);\n const row = {\n id: gridRow[this.rowId],\n text: this.formatText\n ? await this.formatText(gridRow)\n : gridRow[this.textField],\n value: gridRow[this.valueField],\n row: gridRow,\n };\n this.selectedRows = [row];\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n onClear() {\n this.selectedRows = [];\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n async onCheckboxChange({ checked, records, reserves, row }: any) {\n if (this.readonly) return;\n if (checked) {\n if (this.disallowSelectedRowIds?.includes(row[this.rowId]))\n this.$emit(\"disallowSelect\", row);\n let checkingRows = [...records];\n if (this.treeConfig?.children)\n checkingRows = checkingRows.filter(\n (e: any) => !e[this.treeConfig!.children!]?.length\n ); // eslint-disable-line\n for (const record of checkingRows) {\n const selectedRow = this.selectedRows.find(\n (e) => e.id === record[this.rowId]\n );\n if (selectedRow) {\n selectedRow.row = record;\n continue;\n }\n this.selectedRows.push({\n id: record[this.rowId],\n text: this.formatText\n ? await this.formatText(record)\n : record[this.textField],\n value: record[this.valueField],\n row: record,\n });\n }\n } else {\n const selectedRows: any[] = [];\n for (const record of [...records, ...reserves]) {\n const selectedRow = this.selectedRows.find(\n (e) => e.id === record[this.rowId]\n );\n if (selectedRow) {\n selectedRow.row = record;\n selectedRows.push(selectedRow);\n }\n }\n this.selectedRows = selectedRows;\n }\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n async onCheckboxAll({ checked, records, reserves }: any) {\n if (this.readonly) return;\n if (checked) {\n for (const record of records) {\n const selectedRow = this.selectedRows.find(\n (e) => e.id === record[this.rowId]\n );\n if (selectedRow) {\n selectedRow.row = record;\n continue;\n }\n this.selectedRows.push({\n id: record[this.rowId],\n text: this.formatText\n ? await this.formatText(record)\n : record[this.textField],\n value: record[this.valueField],\n row: record,\n });\n }\n } else {\n const selectedRows: any[] = [];\n for (const record of reserves) {\n const selectedRow = this.selectedRows.find(\n (e) => e.id === record[this.rowId]\n );\n if (selectedRow) {\n selectedRow.row = record;\n selectedRows.push(selectedRow);\n }\n }\n this.selectedRows = selectedRows;\n }\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n async onBeforeDeletingTag({ tag }: any) {\n if (this.readonly) return;\n // if (!this.grid.getData) {\n // this.instance.showPanel();\n // return;\n // }\n const unselectedRow = this.selectedRows.find((e: any) => e.id === tag.id);\n if (!unselectedRow.row)\n unselectedRow.row = this.findGridRow(unselectedRow.id);\n // await this.grid.setCheckboxRow(\n // unselectedRow.row || { [this.rowId]: tag.id },\n // false\n // );\n this.selectedRows = this.selectedRows.filter((e) => e.id !== tag.id);\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n async onBeforeAddingTag() {\n if (\n this.selectedRows.some(\n (e) => e.row && e.row[this.textField] === this.tag\n )\n )\n return;\n if (this.addIfNotExists && this.promises.insert) {\n let row = await this.promises.insert({ [this.textField]: this.tag });\n // await this.grid.refresh();\n // const gridRow = this.findGridRow(row[this.rowId]);\n // if (gridRow) row = gridRow;\n // await this.grid.setCheckboxRow(row, true);\n this.selectedRows.push({\n id: row[this.rowId],\n text: this.formatText\n ? await this.formatText(row)\n : row[this.textField],\n value: row[this.valueField],\n row: undefined,\n });\n }\n this.tag = \"\";\n this.value = this.computeValue();\n this.$emit(\"update:modelValue\", this.value);\n this.$emit(\"change\", this.value);\n },\n async togglePanel() {\n if (this.instance.isPanelVisible()) await this.instance.hidePanel();\n else await this.onFocus();\n }\n },\n});\n","import { render } from \"./InputBox.vue?vue&type=template&id=98702292&scoped=true\"\nimport script from \"./InputBox.vue?vue&type=script&lang=ts\"\nexport * from \"./InputBox.vue?vue&type=script&lang=ts\"\n\nimport \"./InputBox.vue?vue&type=style&index=0&id=98702292&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-98702292\"\n\nexport default script","/* underscore in name -> watch for changes */\nvar paramsList = ['init', '_direction', 'touchEventsTarget', 'initialSlide', '_speed', 'cssMode', 'updateOnWindowResize', 'resizeObserver', 'nested', '_width', '_height', 'preventInteractionOnTransition', 'userAgent', 'url', '_edgeSwipeDetection', '_edgeSwipeThreshold', '_freeMode', '_freeModeMomentum', '_freeModeMomentumRatio', '_freeModeMomentumBounce', '_freeModeMomentumBounceRatio', '_freeModeMomentumVelocityRatio', '_freeModeSticky', '_freeModeMinimumVelocity', '_autoHeight', 'setWrapperSize', 'virtualTranslate', '_effect', 'breakpoints', '_spaceBetween', '_slidesPerView', '_slidesPerColumn', '_slidesPerColumnFill', '_slidesPerGroup', '_slidesPerGroupSkip', '_centeredSlides', '_centeredSlidesBounds', '_slidesOffsetBefore', '_slidesOffsetAfter', 'normalizeSlideIndex', '_centerInsufficientSlides', '_watchOverflow', 'roundLengths', 'touchRatio', 'touchAngle', 'simulateTouch', '_shortSwipes', '_longSwipes', 'longSwipesRatio', 'longSwipesMs', '_followFinger', 'allowTouchMove', '_threshold', 'touchMoveStopPropagation', 'touchStartPreventDefault', 'touchStartForcePreventDefault', 'touchReleaseOnEdges', 'uniqueNavElements', '_resistance', '_resistanceRatio', '_watchSlidesProgress', '_watchSlidesVisibility', '_grabCursor', 'preventClicks', 'preventClicksPropagation', '_slideToClickedSlide', '_preloadImages', 'updateOnImagesReady', '_loop', '_loopAdditionalSlides', '_loopedSlides', '_loopFillGroupWithBlank', 'loopPreventsSlide', '_allowSlidePrev', '_allowSlideNext', '_swipeHandler', '_noSwiping', 'noSwipingClass', 'noSwipingSelector', 'passiveListeners', 'containerModifierClass', 'slideClass', 'slideBlankClass', 'slideActiveClass', 'slideDuplicateActiveClass', 'slideVisibleClass', 'slideDuplicateClass', 'slideNextClass', 'slideDuplicateNextClass', 'slidePrevClass', 'slideDuplicatePrevClass', 'wrapperClass', 'runCallbacksOnInit', 'observer', 'observeParents', 'observeSlideChildren', // modules\n'a11y', 'autoplay', '_controller', 'coverflowEffect', 'cubeEffect', 'fadeEffect', 'flipEffect', 'hashNavigation', 'history', 'keyboard', 'lazy', 'mousewheel', '_navigation', '_pagination', 'parallax', '_scrollbar', '_thumbs', 'virtual', 'zoom'];\nexport { paramsList };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { isObject, extend } from './utils';\nimport { paramsList } from './params-list';\n\nfunction getParams(obj) {\n if (obj === void 0) {\n obj = {};\n }\n\n var params = {\n on: {}\n };\n var passedParams = {};\n extend(params, Swiper.defaults);\n extend(params, Swiper.extendedDefaults);\n params._emitClasses = true;\n params.init = false;\n var rest = {};\n var allowedParams = paramsList.map(function (key) {\n return key.replace(/_/, '');\n }); // Prevent empty Object.keys(obj) array on ios.\n\n var plainObj = Object.assign({}, obj);\n Object.keys(plainObj).forEach(function (key) {\n if (typeof obj[key] === 'undefined') return;\n\n if (allowedParams.indexOf(key) >= 0) {\n if (isObject(obj[key])) {\n params[key] = {};\n passedParams[key] = {};\n extend(params[key], obj[key]);\n extend(passedParams[key], obj[key]);\n } else {\n params[key] = obj[key];\n passedParams[key] = obj[key];\n }\n } else if (key.search(/on[A-Z]/) === 0 && typeof obj[key] === 'function') {\n params.on[\"\" + key[2].toLowerCase() + key.substr(3)] = obj[key];\n } else {\n rest[key] = obj[key];\n }\n });\n ['navigation', 'pagination', 'scrollbar'].forEach(function (key) {\n if (params[key] === true) params[key] = {};\n });\n return {\n params: params,\n passedParams: passedParams,\n rest: rest\n };\n}\n\nexport { getParams };","// eslint-disable-next-line\nimport Swiper from '../../core';\nimport { needsNavigation, needsPagination, needsScrollbar } from './utils';\n\nfunction initSwiper(swiperParams) {\n return new Swiper(swiperParams);\n}\n\nfunction mountSwiper(_ref, swiperParams) {\n var el = _ref.el,\n nextEl = _ref.nextEl,\n prevEl = _ref.prevEl,\n paginationEl = _ref.paginationEl,\n scrollbarEl = _ref.scrollbarEl,\n swiper = _ref.swiper;\n\n if (needsNavigation(swiperParams) && nextEl && prevEl) {\n swiper.params.navigation.nextEl = nextEl;\n swiper.originalParams.navigation.nextEl = nextEl;\n swiper.params.navigation.prevEl = prevEl;\n swiper.originalParams.navigation.prevEl = prevEl;\n }\n\n if (needsPagination(swiperParams) && paginationEl) {\n swiper.params.pagination.el = paginationEl;\n swiper.originalParams.pagination.el = paginationEl;\n }\n\n if (needsScrollbar(swiperParams) && scrollbarEl) {\n swiper.params.scrollbar.el = scrollbarEl;\n swiper.originalParams.scrollbar.el = scrollbarEl;\n }\n\n swiper.init(el);\n}\n\nexport { initSwiper, mountSwiper };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { h } from 'vue'; // eslint-disable-next-line\n\nimport Swiper from '../../core';\n\nfunction calcLoopedSlides(slides, swiperParams) {\n var slidesPerViewParams = swiperParams.slidesPerView;\n\n if (swiperParams.breakpoints) {\n var breakpoint = Swiper.prototype.getBreakpoint(swiperParams.breakpoints);\n var breakpointOnlyParams = breakpoint in swiperParams.breakpoints ? swiperParams.breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams && breakpointOnlyParams.slidesPerView) {\n slidesPerViewParams = breakpointOnlyParams.slidesPerView;\n }\n }\n\n var loopedSlides = Math.ceil(parseFloat(swiperParams.loopedSlides || slidesPerViewParams, 10));\n loopedSlides += swiperParams.loopAdditionalSlides;\n\n if (loopedSlides > slides.length) {\n loopedSlides = slides.length;\n }\n\n return loopedSlides;\n}\n\nfunction renderLoop(swiperRef, slides, swiperParams) {\n var modifiedSlides = slides.map(function (child, index) {\n if (!child.props) child.props = {};\n child.props.swiperRef = swiperRef;\n child.props['data-swiper-slide-index'] = index;\n return child;\n });\n\n function duplicateSlide(child, index, position) {\n if (!child.props) child.props = {};\n return h(child.type, _extends({}, child.props, {\n key: child.key + \"-duplicate-\" + index + \"-\" + position,\n class: (child.props.className || '') + \" \" + swiperParams.slideDuplicateClass + \" \" + (child.props.class || '')\n }), child.children);\n }\n\n if (swiperParams.loopFillGroupWithBlank) {\n var blankSlidesNum = swiperParams.slidesPerGroup - modifiedSlides.length % swiperParams.slidesPerGroup;\n\n if (blankSlidesNum !== swiperParams.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankSlide = h('div', {\n class: swiperParams.slideClass + \" \" + swiperParams.slideBlankClass\n });\n modifiedSlides.push(blankSlide);\n }\n }\n }\n\n if (swiperParams.slidesPerView === 'auto' && !swiperParams.loopedSlides) {\n swiperParams.loopedSlides = modifiedSlides.length;\n }\n\n var loopedSlides = calcLoopedSlides(modifiedSlides, swiperParams);\n var prependSlides = [];\n var appendSlides = [];\n modifiedSlides.forEach(function (child, index) {\n if (index < loopedSlides) {\n appendSlides.push(duplicateSlide(child, index, 'prepend'));\n }\n\n if (index < modifiedSlides.length && index >= modifiedSlides.length - loopedSlides) {\n prependSlides.push(duplicateSlide(child, index, 'append'));\n }\n });\n\n if (swiperRef.value) {\n swiperRef.value.loopedSlides = loopedSlides;\n }\n\n return [].concat(prependSlides, modifiedSlides, appendSlides);\n}\n\nexport { calcLoopedSlides, renderLoop };","import { paramsList } from './params-list';\nimport { isObject } from './utils';\n\nfunction getChangedParams(swiperParams, oldParams, children, oldChildren) {\n var keys = [];\n if (!oldParams) return keys;\n\n var addKey = function addKey(key) {\n if (keys.indexOf(key) < 0) keys.push(key);\n };\n\n var oldChildrenKeys = oldChildren.map(function (child) {\n return child.props && child.props.key;\n });\n var childrenKeys = children.map(function (child) {\n return child.props && child.props.key;\n });\n if (oldChildrenKeys.join('') !== childrenKeys.join('')) keys.push('children');\n if (oldChildren.length !== children.length) keys.push('children');\n var watchParams = paramsList.filter(function (key) {\n return key[0] === '_';\n }).map(function (key) {\n return key.replace(/_/, '');\n });\n watchParams.forEach(function (key) {\n if (key in swiperParams && key in oldParams) {\n if (isObject(swiperParams[key]) && isObject(oldParams[key])) {\n var newKeys = Object.keys(swiperParams[key]);\n var oldKeys = Object.keys(oldParams[key]);\n\n if (newKeys.length !== oldKeys.length) {\n addKey(key);\n } else {\n newKeys.forEach(function (newKey) {\n if (swiperParams[key][newKey] !== oldParams[key][newKey]) {\n addKey(key);\n }\n });\n oldKeys.forEach(function (oldKey) {\n if (swiperParams[key][oldKey] !== oldParams[key][oldKey]) addKey(key);\n });\n }\n } else if (swiperParams[key] !== oldParams[key]) {\n addKey(key);\n }\n }\n });\n return keys;\n}\n\nexport { getChangedParams };","function getChildren(originalSlots, slidesRef, oldSlidesRef) {\n if (originalSlots === void 0) {\n originalSlots = {};\n }\n\n var slides = [];\n var slots = {\n 'container-start': [],\n 'container-end': [],\n 'wrapper-start': [],\n 'wrapper-end': []\n };\n\n var getSlidesFromElements = function getSlidesFromElements(els, slotName) {\n if (!Array.isArray(els)) {\n return;\n }\n\n els.forEach(function (vnode) {\n var isFragment = typeof vnode.type === 'symbol';\n if (slotName === 'default') slotName = 'container-end';\n\n if (isFragment && vnode.children) {\n getSlidesFromElements(vnode.children, 'default');\n } else if (vnode.type && vnode.type.name === 'SwiperSlide') {\n slides.push(vnode);\n } else if (slots[slotName]) {\n slots[slotName].push(vnode);\n }\n });\n };\n\n Object.keys(originalSlots).forEach(function (slotName) {\n var els = originalSlots[slotName]();\n getSlidesFromElements(els, slotName);\n });\n oldSlidesRef.value = slidesRef.value;\n slidesRef.value = slides;\n return {\n slides: slides,\n slots: slots\n };\n}\n\nexport { getChildren };","import { isObject, extend } from './utils';\n\nfunction updateSwiper(swiper, slides, passedParams, changedParams) {\n var updateParams = changedParams.filter(function (key) {\n return key !== 'children' && key !== 'direction';\n });\n var currentParams = swiper.params,\n pagination = swiper.pagination,\n navigation = swiper.navigation,\n scrollbar = swiper.scrollbar,\n virtual = swiper.virtual,\n thumbs = swiper.thumbs;\n var needThumbsInit;\n var needControllerInit;\n var needPaginationInit;\n var needScrollbarInit;\n var needNavigationInit;\n\n if (changedParams.includes('thumbs') && passedParams.thumbs && passedParams.thumbs.swiper && currentParams.thumbs && !currentParams.thumbs.swiper) {\n needThumbsInit = true;\n }\n\n if (changedParams.includes('controller') && passedParams.controller && passedParams.controller.control && currentParams.controller && !currentParams.controller.control) {\n needControllerInit = true;\n }\n\n if (changedParams.includes('pagination') && passedParams.pagination && passedParams.pagination.el && currentParams.pagination && pagination && !pagination.el) {\n needPaginationInit = true;\n }\n\n if (changedParams.includes('scrollbar') && passedParams.scrollbar && passedParams.scrollbar.el && currentParams.scrollbar && scrollbar && !scrollbar.el) {\n needScrollbarInit = true;\n }\n\n if (changedParams.includes('navigation') && passedParams.navigation && passedParams.navigation.prevEl && passedParams.navigation.nextEl && currentParams.navigation && navigation && !navigation.prevEl && !navigation.nextEl) {\n needNavigationInit = true;\n }\n\n updateParams.forEach(function (key) {\n if (isObject(currentParams[key]) && isObject(passedParams[key])) {\n extend(currentParams[key], passedParams[key]);\n } else {\n currentParams[key] = passedParams[key];\n }\n });\n\n if (changedParams.includes('children') && virtual && currentParams.virtual.enabled) {\n virtual.slides = slides;\n virtual.update(true);\n }\n\n if (needThumbsInit) {\n var initialized = thumbs.init();\n if (initialized) thumbs.update(true);\n }\n\n if (needControllerInit) {\n swiper.controller.control = currentParams.controller.control;\n }\n\n if (needPaginationInit) {\n pagination.init();\n pagination.render();\n pagination.update();\n }\n\n if (needScrollbarInit) {\n scrollbar.init();\n scrollbar.updateSize();\n scrollbar.setTranslate();\n }\n\n if (needNavigationInit) {\n navigation.init();\n navigation.update();\n }\n\n if (changedParams.includes('allowSlideNext')) {\n swiper.allowSlideNext = passedParams.allowSlideNext;\n }\n\n if (changedParams.includes('allowSlidePrev')) {\n swiper.allowSlidePrev = passedParams.allowSlidePrev;\n }\n\n if (changedParams.includes('direction')) {\n swiper.changeDirection(passedParams.direction, false);\n }\n\n swiper.update();\n}\n\nexport { updateSwiper };","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { h } from 'vue';\n\nfunction updateOnVirtualData(swiper) {\n if (!swiper || swiper.destroyed || !swiper.params.virtual || swiper.params.virtual && !swiper.params.virtual.enabled) return;\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n if (swiper.lazy && swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n}\n\nfunction renderVirtual(swiperRef, slides, virtualData) {\n var _ref;\n\n if (!virtualData) return null;\n var style = swiperRef.value.isHorizontal() ? (_ref = {}, _ref[swiperRef.value.rtlTranslate ? 'right' : 'left'] = virtualData.offset + \"px\", _ref) : {\n top: virtualData.offset + \"px\"\n };\n return slides.filter(function (slide, index) {\n return index >= virtualData.from && index <= virtualData.to;\n }).map(function (slide) {\n if (!slide.props) slide.props = {};\n if (!slide.props.style) slide.props.style = {};\n slide.props.swiperRef = swiperRef;\n slide.props.style = style;\n return h(slide.type, _extends({}, slide.props), slide.children);\n });\n}\n\nexport { renderVirtual, updateOnVirtualData };","import { h, ref, onMounted, onUpdated, onBeforeUnmount, watch, nextTick } from 'vue';\nimport { getParams } from './get-params';\nimport { initSwiper, mountSwiper } from './init-swiper';\nimport { needsScrollbar, needsNavigation, needsPagination, uniqueClasses, extend } from './utils';\nimport { renderLoop, calcLoopedSlides } from './loop';\nimport { getChangedParams } from './get-changed-params';\nimport { getChildren } from './get-children';\nimport { updateSwiper } from './update-swiper';\nimport { renderVirtual, updateOnVirtualData } from './virtual';\nvar Swiper = {\n name: 'Swiper',\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n wrapperTag: {\n type: String,\n default: 'div'\n },\n init: {\n type: Boolean,\n default: undefined\n },\n direction: {\n type: String,\n default: undefined\n },\n touchEventsTarget: {\n type: String,\n default: undefined\n },\n initialSlide: {\n type: Number,\n default: undefined\n },\n speed: {\n type: Number,\n default: undefined\n },\n cssMode: {\n type: Boolean,\n default: undefined\n },\n updateOnWindowResize: {\n type: Boolean,\n default: undefined\n },\n resizeObserver: {\n type: Boolean,\n default: undefined\n },\n nested: {\n type: Boolean,\n default: undefined\n },\n width: {\n type: Number,\n default: undefined\n },\n height: {\n type: Number,\n default: undefined\n },\n preventInteractionOnTransition: {\n type: Boolean,\n default: undefined\n },\n userAgent: {\n type: String,\n default: undefined\n },\n url: {\n type: String,\n default: undefined\n },\n edgeSwipeDetection: {\n type: [Boolean, String],\n default: undefined\n },\n edgeSwipeThreshold: {\n type: Number,\n default: undefined\n },\n freeMode: {\n type: Boolean,\n default: undefined\n },\n freeModeMomentum: {\n type: Boolean,\n default: undefined\n },\n freeModeMomentumRatio: {\n type: Number,\n default: undefined\n },\n freeModeMomentumBounce: {\n type: Boolean,\n default: undefined\n },\n freeModeMomentumBounceRatio: {\n type: Number,\n default: undefined\n },\n freeModeMomentumVelocityRatio: {\n type: Number,\n default: undefined\n },\n freeModeSticky: {\n type: Boolean,\n default: undefined\n },\n freeModeMinimumVelocity: {\n type: Number,\n default: undefined\n },\n autoHeight: {\n type: Boolean,\n default: undefined\n },\n setWrapperSize: {\n type: Boolean,\n default: undefined\n },\n virtualTranslate: {\n type: Boolean,\n default: undefined\n },\n effect: {\n type: String,\n default: undefined\n },\n breakpoints: {\n type: Object,\n default: undefined\n },\n spaceBetween: {\n type: Number,\n default: undefined\n },\n slidesPerView: {\n type: [Number, String],\n default: undefined\n },\n slidesPerColumn: {\n type: Number,\n default: undefined\n },\n slidesPerColumnFill: {\n type: String,\n default: undefined\n },\n slidesPerGroup: {\n type: Number,\n default: undefined\n },\n slidesPerGroupSkip: {\n type: Number,\n default: undefined\n },\n centeredSlides: {\n type: Boolean,\n default: undefined\n },\n centeredSlidesBounds: {\n type: Boolean,\n default: undefined\n },\n slidesOffsetBefore: {\n type: Number,\n default: undefined\n },\n slidesOffsetAfter: {\n type: Number,\n default: undefined\n },\n normalizeSlideIndex: {\n type: Boolean,\n default: undefined\n },\n centerInsufficientSlides: {\n type: Boolean,\n default: undefined\n },\n watchOverflow: {\n type: Boolean,\n default: undefined\n },\n roundLengths: {\n type: Boolean,\n default: undefined\n },\n touchRatio: {\n type: Number,\n default: undefined\n },\n touchAngle: {\n type: Number,\n default: undefined\n },\n simulateTouch: {\n type: Boolean,\n default: undefined\n },\n shortSwipes: {\n type: Boolean,\n default: undefined\n },\n longSwipes: {\n type: Boolean,\n default: undefined\n },\n longSwipesRatio: {\n type: Number,\n default: undefined\n },\n longSwipesMs: {\n type: Number,\n default: undefined\n },\n followFinger: {\n type: Boolean,\n default: undefined\n },\n allowTouchMove: {\n type: Boolean,\n default: undefined\n },\n threshold: {\n type: Number,\n default: undefined\n },\n touchMoveStopPropagation: {\n type: Boolean,\n default: undefined\n },\n touchStartPreventDefault: {\n type: Boolean,\n default: undefined\n },\n touchStartForcePreventDefault: {\n type: Boolean,\n default: undefined\n },\n touchReleaseOnEdges: {\n type: Boolean,\n default: undefined\n },\n uniqueNavElements: {\n type: Boolean,\n default: undefined\n },\n resistance: {\n type: Boolean,\n default: undefined\n },\n resistanceRatio: {\n type: Number,\n default: undefined\n },\n watchSlidesProgress: {\n type: Boolean,\n default: undefined\n },\n watchSlidesVisibility: {\n type: Boolean,\n default: undefined\n },\n grabCursor: {\n type: Boolean,\n default: undefined\n },\n preventClicks: {\n type: Boolean,\n default: undefined\n },\n preventClicksPropagation: {\n type: Boolean,\n default: undefined\n },\n slideToClickedSlide: {\n type: Boolean,\n default: undefined\n },\n preloadImages: {\n type: Boolean,\n default: undefined\n },\n updateOnImagesReady: {\n type: Boolean,\n default: undefined\n },\n loop: {\n type: Boolean,\n default: undefined\n },\n loopAdditionalSlides: {\n type: Number,\n default: undefined\n },\n loopedSlides: {\n type: Number,\n default: undefined\n },\n loopFillGroupWithBlank: {\n type: Boolean,\n default: undefined\n },\n loopPreventsSlide: {\n type: Boolean,\n default: undefined\n },\n allowSlidePrev: {\n type: Boolean,\n default: undefined\n },\n allowSlideNext: {\n type: Boolean,\n default: undefined\n },\n swipeHandler: {\n type: Boolean,\n default: undefined\n },\n noSwiping: {\n type: Boolean,\n default: undefined\n },\n noSwipingClass: {\n type: String,\n default: undefined\n },\n noSwipingSelector: {\n type: String,\n default: undefined\n },\n passiveListeners: {\n type: Boolean,\n default: undefined\n },\n containerModifierClass: {\n type: String,\n default: undefined\n },\n slideClass: {\n type: String,\n default: undefined\n },\n slideBlankClass: {\n type: String,\n default: undefined\n },\n slideActiveClass: {\n type: String,\n default: undefined\n },\n slideDuplicateActiveClass: {\n type: String,\n default: undefined\n },\n slideVisibleClass: {\n type: String,\n default: undefined\n },\n slideDuplicateClass: {\n type: String,\n default: undefined\n },\n slideNextClass: {\n type: String,\n default: undefined\n },\n slideDuplicateNextClass: {\n type: String,\n default: undefined\n },\n slidePrevClass: {\n type: String,\n default: undefined\n },\n slideDuplicatePrevClass: {\n type: String,\n default: undefined\n },\n wrapperClass: {\n type: String,\n default: undefined\n },\n runCallbacksOnInit: {\n type: Boolean,\n default: undefined\n },\n observer: {\n type: Boolean,\n default: undefined\n },\n observeParents: {\n type: Boolean,\n default: undefined\n },\n observeSlideChildren: {\n type: Boolean,\n default: undefined\n },\n a11y: {\n type: [Boolean, Object],\n default: undefined\n },\n autoplay: {\n type: [Boolean, Object],\n default: undefined\n },\n controller: {\n type: Object,\n default: undefined\n },\n coverflowEffect: {\n type: Object,\n default: undefined\n },\n cubeEffect: {\n type: Object,\n default: undefined\n },\n fadeEffect: {\n type: Object,\n default: undefined\n },\n flipEffect: {\n type: Object,\n default: undefined\n },\n hashNavigation: {\n type: [Boolean, Object],\n default: undefined\n },\n history: {\n type: [Boolean, Object],\n default: undefined\n },\n keyboard: {\n type: [Boolean, Object],\n default: undefined\n },\n lazy: {\n type: [Boolean, Object],\n default: undefined\n },\n mousewheel: {\n type: [Boolean, Object],\n default: undefined\n },\n navigation: {\n type: [Boolean, Object],\n default: undefined\n },\n pagination: {\n type: [Boolean, Object],\n default: undefined\n },\n parallax: {\n type: [Boolean, Object],\n default: undefined\n },\n scrollbar: {\n type: [Boolean, Object],\n default: undefined\n },\n thumbs: {\n type: Object,\n default: undefined\n },\n virtual: {\n type: [Boolean, Object],\n default: undefined\n },\n zoom: {\n type: [Boolean, Object],\n default: undefined\n }\n },\n emits: ['_beforeBreakpoint', '_containerClasses', '_slideClass', '_slideClasses', '_swiper', 'activeIndexChange', 'afterInit', 'autoplay', 'autoplayStart', 'autoplayStop', 'beforeDestroy', 'beforeInit', 'beforeLoopFix', 'beforeResize', 'beforeSlideChangeStart', 'beforeTransitionStart', 'breakpoint', 'changeDirection', 'click', 'doubleTap', 'doubleClick', 'destroy', 'fromEdge', 'hashChange', 'hashSet', 'imagesReady', 'init', 'keyPress', 'lazyImageLoad', 'lazyImageReady', 'loopFix', 'momentumBounce', 'navigationHide', 'navigationShow', 'observerUpdate', 'orientationchange', 'paginationHide', 'paginationRender', 'paginationShow', 'paginationUpdate', 'progress', 'reachBeginning', 'reachEnd', 'realIndexChange', 'resize', 'scroll', 'scrollbarDragEnd', 'scrollbarDragMove', 'scrollbarDragStart', 'setTransition', 'setTranslate', 'slideChange', 'slideChangeTransitionEnd', 'slideChangeTransitionStart', 'slideNextTransitionEnd', 'slideNextTransitionStart', 'slidePrevTransitionEnd', 'slidePrevTransitionStart', 'slideResetTransitionStart', 'slideResetTransitionEnd', 'sliderMove', 'sliderFirstMove', 'slidesLengthChange', 'slidesGridLengthChange', 'snapGridLengthChange', 'snapIndexChange', 'swiper', 'tap', 'toEdge', 'touchEnd', 'touchMove', 'touchMoveOpposite', 'touchStart', 'transitionEnd', 'transitionStart', 'update', 'zoomChange'],\n setup: function setup(props, _ref) {\n var originalSlots = _ref.slots,\n emit = _ref.emit;\n var Tag = props.tag,\n WrapperTag = props.wrapperTag;\n var containerClasses = ref('swiper-container');\n var virtualData = ref(null);\n var breakpointChanged = ref(false);\n var initializedRef = ref(false);\n var swiperElRef = ref(null);\n var swiperRef = ref(null);\n var oldPassedParamsRef = ref(null);\n var slidesRef = {\n value: []\n };\n var oldSlidesRef = {\n value: []\n };\n var nextElRef = ref(null);\n var prevElRef = ref(null);\n var paginationElRef = ref(null);\n var scrollbarElRef = ref(null);\n\n var _getParams = getParams(props),\n swiperParams = _getParams.params,\n passedParams = _getParams.passedParams;\n\n getChildren(originalSlots, slidesRef, oldSlidesRef);\n oldPassedParamsRef.value = passedParams;\n oldSlidesRef.value = slidesRef.value;\n\n var onBeforeBreakpoint = function onBeforeBreakpoint() {\n getChildren(originalSlots, slidesRef, oldSlidesRef);\n breakpointChanged.value = true;\n };\n\n swiperParams.onAny = function (event) {\n for (var _len = arguments.length, args = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n args[_key - 1] = arguments[_key];\n }\n\n emit.apply(void 0, [event].concat(args));\n };\n\n Object.assign(swiperParams.on, {\n _beforeBreakpoint: onBeforeBreakpoint,\n _containerClasses: function _containerClasses(swiper, classes) {\n containerClasses.value = classes;\n }\n }); // init Swiper\n\n swiperRef.value = initSwiper(swiperParams);\n\n swiperRef.value.loopCreate = function () {};\n\n swiperRef.value.loopDestroy = function () {};\n\n if (swiperParams.loop) {\n swiperRef.value.loopedSlides = calcLoopedSlides(slidesRef.value, swiperParams);\n }\n\n if (swiperRef.value.virtual && swiperRef.value.params.virtual.enabled) {\n swiperRef.value.virtual.slides = slidesRef.value;\n var extendWith = {\n cache: false,\n renderExternal: function renderExternal(data) {\n virtualData.value = data;\n },\n renderExternalUpdate: false\n };\n extend(swiperRef.value.params.virtual, extendWith);\n extend(swiperRef.value.originalParams.virtual, extendWith);\n }\n\n onUpdated(function () {\n // set initialized flag\n if (!initializedRef.value && swiperRef.value) {\n swiperRef.value.emitSlidesClasses();\n initializedRef.value = true;\n } // watch for params change\n\n\n var _getParams2 = getParams(props),\n newPassedParams = _getParams2.passedParams;\n\n var changedParams = getChangedParams(newPassedParams, oldPassedParamsRef.value, slidesRef.value, oldSlidesRef.value);\n oldPassedParamsRef.value = newPassedParams;\n\n if ((changedParams.length || breakpointChanged.value) && swiperRef.value && !swiperRef.value.destroyed) {\n updateSwiper(swiperRef.value, slidesRef.value, newPassedParams, changedParams);\n }\n\n breakpointChanged.value = false;\n }); // update on virtual update\n\n watch(virtualData, function () {\n nextTick(function () {\n updateOnVirtualData(swiperRef.value);\n });\n }); // mount swiper\n\n onMounted(function () {\n if (!swiperElRef.value) return;\n mountSwiper({\n el: swiperElRef.value,\n nextEl: nextElRef.value,\n prevEl: prevElRef.value,\n paginationEl: paginationElRef.value,\n scrollbarEl: scrollbarElRef.value,\n swiper: swiperRef.value\n }, swiperParams);\n emit('swiper', swiperRef.value);\n });\n onBeforeUnmount(function () {\n if (swiperRef.value && !swiperRef.value.destroyed) {\n swiperRef.value.destroy(true, false);\n }\n }); // bypass swiper instance to slides\n\n function renderSlides(slides) {\n if (swiperParams.virtual) {\n return renderVirtual(swiperRef, slides, virtualData.value);\n }\n\n if (!swiperParams.loop || swiperRef.value && swiperRef.value.destroyed) {\n slides.forEach(function (slide) {\n if (!slide.props) slide.props = {};\n slide.props.swiperRef = swiperRef;\n });\n return slides;\n }\n\n return renderLoop(swiperRef, slides, swiperParams);\n }\n\n return function () {\n var _getChildren = getChildren(originalSlots, slidesRef, oldSlidesRef),\n slides = _getChildren.slides,\n slots = _getChildren.slots;\n\n return h(Tag, {\n ref: swiperElRef,\n class: uniqueClasses(containerClasses.value)\n }, [slots['container-start'], needsNavigation(props) && [h('div', {\n ref: prevElRef,\n class: 'swiper-button-prev'\n }), h('div', {\n ref: nextElRef,\n class: 'swiper-button-next'\n })], needsScrollbar(props) && h('div', {\n ref: scrollbarElRef,\n class: 'swiper-scrollbar'\n }), needsPagination(props) && h('div', {\n ref: paginationElRef,\n class: 'swiper-pagination'\n }), h(WrapperTag, {\n class: 'swiper-wrapper'\n }, [slots['wrapper-start'], renderSlides(slides), slots['wrapper-end']]), slots['container-end']]);\n };\n }\n};\nexport { Swiper };","\n\n\n","\nimport { defineComponent, ref } from \"vue\";\nimport ClassicEditor from \"@/global-components/ckeditor/classic-editor\";\nimport UploadAdapterPlugin from \"@/global-components/ckeditor/upload-adapter-plugin\";\nimport SliderEditor from \"@/cloudfun/components/SliderEditor.vue\";\n\nexport default defineComponent({\n components: {\n SliderEditor\n },\n setup() {\n const date = ref(\"\");\n const classicEditor = ClassicEditor;\n const simpleEditorConfig = {\n removePlugins: [\"Markdown\", \"MediaEmbedToolbar\", \"ImageToolbar\"],\n toolbar: {\n items: [\"bold\", \"italic\", \"underline\", \"link\"]\n }\n };\n const editorConfig = {\n extraPlugins: [UploadAdapterPlugin],\n removePlugins: [\"Markdown\", \"MediaEmbedToolbar\"],\n toolbar: {\n items: [\n \"fontSize\",\n \"fontFamily\",\n \"fontColor\",\n \"fontBackgroundColor\",\n \"bold\",\n \"italic\",\n \"underline\",\n // 'strikethrough',\n // 'code',\n // 'subscript',\n // 'superscript',\n \"link\",\n \"undo\",\n \"redo\",\n \"imageUpload\",\n \"highlight\"\n ]\n },\n image: {\n toolbar: [\"imageTextAlternative\", \"imageStyle:side\", \"linkImage\"]\n }\n };\n const standardEditorData = ref(\"

Content of the editor.

\");\n const initDocumentEditor = (editor: any) => {\n const toolbarContainer = document.querySelector(\n \".document-editor__toolbar\"\n );\n if (toolbarContainer)\n toolbarContainer.appendChild(editor.ui.view.toolbar.element);\n const win: any = window;\n win.editor = editor;\n };\n\n const sliderWidth = ref(\"100%\");\n const bannerFormOptions = {\n titleWidth: 80,\n titleAlign: \"right\",\n items: [\n {\n field: \"Name\",\n title: \"名稱\",\n span: 24,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"請輸入文字\", clearable: true }\n }\n },\n {\n field: \"LinkUrl\",\n title: \"鏈結網址\",\n span: 24,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"請輸入網址\", clearable: true }\n }\n },\n {\n field: \"Remark\",\n title: \"備註\",\n span: 24,\n itemRender: {\n name: \"$input\",\n props: { placeholder: \"請輸入文字\", clearable: true }\n }\n }\n ],\n rules: {\n Name: [{ type: \"string\", max: 128 }],\n LinkUrl: [{ type: \"string\", max: 2000 }],\n Remark: [{ type: \"string\", max: 512 }]\n }\n };\n\n return {\n date,\n classicEditor,\n simpleEditorConfig,\n editorConfig,\n standardEditorData,\n initDocumentEditor,\n sliderWidth,\n bannerFormOptions\n };\n }\n});\n","import { render } from \"./Main.vue?vue&type=template&id=3304cc73\"\nimport script from \"./Main.vue?vue&type=script&lang=ts\"\nexport * from \"./Main.vue?vue&type=script&lang=ts\"\nscript.render = render\n\nexport default script","\n\n\n\n\n","import { render } from \"./SliderEditor.vue?vue&type=template&id=b15a2d4e&scoped=true\"\nimport script from \"./SliderEditor.vue?vue&type=script&lang=js\"\nexport * from \"./SliderEditor.vue?vue&type=script&lang=js\"\n\nimport \"./SliderEditor.vue?vue&type=style&index=0&id=b15a2d4e&scoped=true&lang=css\"\nscript.render = render\nscript.__scopeId = \"data-v-b15a2d4e\"\n\nexport default script","import { h, ref, onMounted, onUpdated, onBeforeUpdate, computed, onBeforeUnmount } from 'vue';\nimport { uniqueClasses } from './utils';\nvar SwiperSlide = {\n name: 'SwiperSlide',\n props: {\n tag: {\n type: String,\n default: 'div'\n },\n swiperRef: Object,\n zoom: {\n type: Boolean,\n default: undefined\n },\n virtualIndex: {\n type: [String, Number],\n default: undefined\n }\n },\n setup: function setup(props, _ref) {\n var slots = _ref.slots;\n var eventAttached = false;\n var swiperRef = props.swiperRef;\n var slideElRef = ref(null);\n var slideClasses = ref('swiper-slide');\n\n function updateClasses(swiper, el, classNames) {\n if (el === slideElRef.value) {\n slideClasses.value = classNames;\n }\n }\n\n onMounted(function () {\n if (!swiperRef.value) return;\n swiperRef.value.on('_slideClass', updateClasses);\n eventAttached = true;\n });\n onBeforeUpdate(function () {\n if (eventAttached || !swiperRef || !swiperRef.value) return;\n swiperRef.value.on('_slideClass', updateClasses);\n eventAttached = true;\n });\n onUpdated(function () {\n if (!slideElRef.value || !swiperRef || !swiperRef.value) return;\n\n if (swiperRef.value.destroyed) {\n if (slideClasses.value !== 'swiper-slide') {\n slideClasses.value = 'swiper-slide';\n }\n }\n });\n onBeforeUnmount(function () {\n if (!swiperRef || !swiperRef.value) return;\n swiperRef.value.off('_slideClass', updateClasses);\n });\n var slideData = computed(function () {\n return {\n isActive: slideClasses.value.indexOf('swiper-slide-active') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-active') >= 0,\n isVisible: slideClasses.value.indexOf('swiper-slide-visible') >= 0,\n isDuplicate: slideClasses.value.indexOf('swiper-slide-duplicate') >= 0,\n isPrev: slideClasses.value.indexOf('swiper-slide-prev') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-prev') >= 0,\n isNext: slideClasses.value.indexOf('swiper-slide-next') >= 0 || slideClasses.value.indexOf('swiper-slide-duplicate-next') >= 0\n };\n });\n return function () {\n return h(props.tag, {\n class: uniqueClasses(\"\" + slideClasses.value),\n ref: slideElRef,\n 'data-swiper-slide-index': props.virtualIndex\n }, props.zoom ? h('div', {\n class: 'swiper-zoom-container',\n 'data-swiper-zoom': typeof props.zoom === 'number' ? props.zoom : undefined\n }, slots.default && slots.default(slideData.value)) : slots.default && slots.default(slideData.value));\n };\n }\n};\nexport { SwiperSlide };","\n\n\n\n\n","import { render } from \"./Main.vue?vue&type=template&id=6c338a1b\"\nimport script from \"./Main.vue?vue&type=script&lang=ts\"\nexport * from \"./Main.vue?vue&type=script&lang=ts\"\n\nimport \"./Main.vue?vue&type=style&index=0&id=6c338a1b&lang=scss\"\nscript.render = render\n\nexport default script","module.exports = __webpack_public_path__ + \"img/linkImg.01269351.png\";","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (swiper.params.cssMode) {\n e.preventDefault();\n }\n\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n if (!swiper.mouseEntered && !target[0].contains(e.target) && !params.releaseOnEdges) return true;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var delta = 0;\n var rtlFactor = swiper.rtlTranslate ? -1 : 1;\n var data = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./Main.vue?vue&type=style&index=0&id=6c338a1b&lang=scss\"","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.autoplay.onTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.autoplay.onTransitionEnd);\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--6-oneOf-1-0!../../../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../../../node_modules/vue-loader-v16/dist/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-2!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader-v16/dist/index.js??ref--0-1!./ProductSlider.vue?vue&type=style&index=0&id=303fafac&scoped=true&lang=css\"","/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\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 if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (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\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\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 var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar 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: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n"],"sourceRoot":""}