{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./node_modules/@hotwired/stimulus/dist/stimulus.js","webpack:///./node_modules/@babel/runtime/regenerator/index.js","webpack:///(webpack)/buildin/module.js","webpack:///./app/javascript/images/default/homepage/about/Icn-56-1.svg","webpack:///./app/javascript/images/default/homepage/about/Icn-56-2.svg","webpack:///./app/javascript/images/default/homepage/about/bike.svg","webpack:///./app/javascript/images/default/homepage/about/bus.svg","webpack:///./app/javascript/images/default/homepage/about/driving.svg","webpack:///./app/javascript/images/default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 1.jpeg","webpack:///./app/javascript/images/default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 2.jpeg","webpack:///./app/javascript/images/default/homepage/about/train.svg","webpack:///./app/javascript/images/default/homepage/environment/group_33676_orange.svg","webpack:///./app/javascript/images/default/homepage/environment/group_33676_orange_140.svg","webpack:///./app/javascript/images/default/homepage/experience/cross.svg","webpack:///./app/javascript/images/default/homepage/experience/documents.svg","webpack:///./app/javascript/images/default/homepage/experience/experience01.svg","webpack:///./app/javascript/images/default/homepage/experience/experience02.svg","webpack:///./app/javascript/images/default/homepage/experience/experience03.svg","webpack:///./app/javascript/images/default/homepage/experience/experience04.svg","webpack:///./app/javascript/images/default/homepage/experience/experience05.svg","webpack:///./app/javascript/images/default/homepage/experience/hospital.svg","webpack:///./app/javascript/images/default/homepage/experience/love.svg","webpack:///./app/javascript/images/default/homepage/experience/stethoscope.svg","webpack:///./app/javascript/images/default/homepage/news/news_default.jpeg","webpack:///./app/javascript/images/default/homepage/news/wave.svg","webpack:///./app/javascript/images/default/join_us/assistant.jpg","webpack:///./app/javascript/images/default/join_us/doctor.jpg","webpack:///./app/javascript/images/default/join_us/druggist.jpg","webpack:///./app/javascript/images/default/join_us/it.jpg","webpack:///./app/javascript/images/default/join_us/nurse.jpg","webpack:///./app/javascript/images/default/join_us/recruit.jpg","webpack:///./app/javascript/images/default/join_us/recruit_ipad.jpg","webpack:///./app/javascript/images/default/join_us/recruit_mobile.jpg","webpack:///./app/javascript/images/default/pages/about/1.jpg","webpack:///./app/javascript/images/default/pages/about/2.jpg","webpack:///./app/javascript/images/default/pages/about/3.jpg","webpack:///./app/javascript/images/default/pages/about/33676.svg","webpack:///./app/javascript/images/default/pages/about/4.jpg","webpack:///./app/javascript/images/default/pages/about/5.jpg","webpack:///./app/javascript/images/default/pages/about/6.jpg","webpack:///./app/javascript/images/default/pages/about/clinic-1.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-2.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-3.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-4.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-5.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-new-2.jpeg","webpack:///./app/javascript/images/default/pages/about/clinic-new-5.jpeg","webpack:///./app/javascript/images/default/pages/about/doctor-1.jpg","webpack:///./app/javascript/images/default/pages/about/doctor-2.jpg","webpack:///./app/javascript/images/default/pages/about/doctor-3.jpg","webpack:///./app/javascript/images/default/pages/about/happy-asian-family-laying-on-bed-with-smile-FSAN5FC 1.png","webpack:///./app/javascript/images/default/pages/about/main/33819.svg","webpack:///./app/javascript/images/default/pages/about/main/33820.svg","webpack:///./app/javascript/images/default/pages/about/main/33821.svg","webpack:///./app/javascript/images/default/pages/about/main/33822.svg","webpack:///./app/javascript/images/default/pages/about/main/33823.svg","webpack:///./app/javascript/images/default/pages/about/main/34436.svg","webpack:///./app/javascript/images/default/pages/about/main/ear.svg","webpack:///./app/javascript/images/default/pages/about/main/flower-field.jpeg","webpack:///./app/javascript/images/default/pages/about/main/heart.svg","webpack:///./app/javascript/images/default/pages/about/main/lock.svg","webpack:///./app/javascript/images/default/pages/about/main/message.svg","webpack:///./app/javascript/images/default/pages/about/main/protected-heart.svg","webpack:///./app/javascript/images/default/pages/about/upload.svg","webpack:///./app/javascript/images/default/pages/about/wave-white.svg","webpack:///./app/javascript/images/default/pages/about/郭家穎.jpeg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/1.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/2.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/3.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/4.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/5.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/6.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/7.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/8.svg","webpack:///./app/javascript/images/default/pages/business_cooperation/main/medical-team.jpg","webpack:///./app/javascript/images/default/pages/depth_views/1.jpg","webpack:///./app/javascript/images/default/pages/depth_views/2.jpg","webpack:///./app/javascript/images/default/pages/depth_views/fb-gray.svg","webpack:///./app/javascript/images/default/pages/depth_views/fb-orange.svg","webpack:///./app/javascript/images/default/pages/depth_views/line-gray.svg","webpack:///./app/javascript/images/default/pages/depth_views/line-orange.svg","webpack:///./app/javascript/images/default/pages/depth_views/link-gray.svg","webpack:///./app/javascript/images/default/pages/depth_views/link-orange.svg","webpack:///./app/javascript/images/default/pages/depth_views/pagination/first.svg","webpack:///./app/javascript/images/default/pages/depth_views/pagination/last.svg","webpack:///./app/javascript/images/default/pages/depth_views/pagination/next.svg","webpack:///./app/javascript/images/default/pages/depth_views/pagination/prev.svg","webpack:///./app/javascript/images/default/pages/depth_views/toggle.svg","webpack:///./app/javascript/images/default/pages/homepage/about/1.jpg","webpack:///./app/javascript/images/default/pages/homepage/about/1-mobile.jpg","webpack:///./app/javascript/images/default/pages/homepage/depth_views/01.png","webpack:///./app/javascript/images/default/pages/homepage/depth_views/1.jpg","webpack:///./app/javascript/images/default/pages/homepage/depth_views/2.jpg","webpack:///./app/javascript/images/default/pages/homepage/depth_views/3.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder/1.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder/1-ipad.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder/1-mobile.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder_doctor/1.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder_doctor/1-mobile.jpg","webpack:///./app/javascript/images/default/pages/homepage/founder_doctor/arc_md.svg","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/1.svg","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/2.svg","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/3.svg","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_01.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_02.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_03.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_04.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_05.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_06.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_07.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_08.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_09.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_10.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_11.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_12.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_13.png","webpack:///./app/javascript/images/default/pages/homepage/patient_recommends/img_avatar_14.png","webpack:///./app/javascript/images/default/pages/homepage/public_sciences/1.jpg","webpack:///./app/javascript/images/default/pages/homepage/public_sciences/2.jpg","webpack:///./app/javascript/images/default/pages/homepage/questions/1.svg","webpack:///./app/javascript/images/default/pages/homepage/questions/2.svg","webpack:///./app/javascript/images/default/pages/homepage/questions/3.svg","webpack:///./app/javascript/images/default/pages/public_science_1/1.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/2.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/3.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/4.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/5.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/an-insomnia-woman-on-bed.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/autonomic-nervous-system.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/brain.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/check.svg","webpack:///./app/javascript/images/default/pages/public_science_1/happy-asian-family-laying-on-bed-with-smile.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/meditation-on-beach.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/meditation-on-beach_720px.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/nerve.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/pathology.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/public-sciences-1.png","webpack:///./app/javascript/images/default/pages/public_science_1/public-sciences-2.jpg","webpack:///./app/javascript/images/default/pages/public_science_1/public-sciences-3.png","webpack:///./app/javascript/images/default/pages/public_science_1/upset-working-woman.jpeg","webpack:///./app/javascript/images/default/pages/public_science_1/upset-working-woman-1.jpeg","webpack:///./app/javascript/images/default/pages/public_science_2/1.jpg","webpack:///./app/javascript/images/default/pages/public_science_2/2.jpg","webpack:///./app/javascript/images/default/pages/public_science_2/2-1.png","webpack:///./app/javascript/images/default/pages/public_science_2/2-2.png","webpack:///./app/javascript/images/default/pages/public_science_2/2-3.png","webpack:///./app/javascript/images/default/pages/public_science_2/2-4.png","webpack:///./app/javascript/images/default/pages/public_science_2/2-5.png","webpack:///./app/javascript/images/default/pages/public_science_2/2-6.png","webpack:///./app/javascript/images/default/pages/public_science_2/3.jpg","webpack:///./app/javascript/images/default/pages/public_science_2/4.jpg","webpack:///./app/javascript/images/default/pages/public_science_2/5.jpg","webpack:///./app/javascript/images/default/pages/public_science_2/6.jpg","webpack:///./app/javascript/images/default/pages/public_sciences/Frame175.png","webpack:///./app/javascript/images/default/pages/public_sciences/Frame176.png","webpack:///./app/javascript/images/default/pages/public_sciences/Frame177.png","webpack:///./app/javascript/images/default/pages/public_sciences/main/1.svg","webpack:///./app/javascript/images/default/pages/public_sciences/main/2.svg","webpack:///./app/javascript/images/default/pages/public_sciences/main/3.svg","webpack:///./app/javascript/images/default/pages/public_sciences/main/4.svg","webpack:///./app/javascript/images/default/pages/shared/34436.jpeg","webpack:///./app/javascript/images/default/pages/shared/arrow_downward.svg","webpack:///./app/javascript/images/default/pages/shared/search.svg","webpack:///./app/javascript/images/default/pages/shared/testing.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/1.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/2.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/3.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/4.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/5.svg","webpack:///./app/javascript/images/default/pages/treatment_features/features/6.svg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/01.jpeg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/02.png","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/03.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/04.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/05.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/06.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/07.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/08.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/09.jpg","webpack:///./app/javascript/images/default/pages/treatment_features/introduces/10.jpg","webpack:///./app/javascript/images/default/pay_services/1.jpg","webpack:///./app/javascript/images/default/pay_services/1_md.jpg","webpack:///./app/javascript/images/default/pay_services/2.jpg","webpack:///./app/javascript/images/default/pay_services/2_md.jpg","webpack:///./app/javascript/images/default/pay_services/3.jpg","webpack:///./app/javascript/images/default/pay_services/3_md.jpg","webpack:///./app/javascript/images/default/pay_services/4.jpg","webpack:///./app/javascript/images/default/pay_services/4_md.jpg","webpack:///./app/javascript/images/default/shared/down-arrow.svg","webpack:///./app/javascript/images/default/shared/favicon.png","webpack:///./app/javascript/images/default/shared/footer/bg.svg","webpack:///./app/javascript/images/default/shared/footer/bg-lg.svg","webpack:///./app/javascript/images/default/shared/footer/bg-line.svg","webpack:///./app/javascript/images/default/shared/footer/bg-line-lg.svg","webpack:///./app/javascript/images/default/shared/footer/bg-line-md.svg","webpack:///./app/javascript/images/default/shared/footer/bg-line-xl.svg","webpack:///./app/javascript/images/default/shared/footer/bg-md.svg","webpack:///./app/javascript/images/default/shared/footer/bg-xl.svg","webpack:///./app/javascript/images/default/shared/footer/facebook.svg","webpack:///./app/javascript/images/default/shared/footer/line.svg","webpack:///./app/javascript/images/default/shared/footer/map.svg","webpack:///./app/javascript/images/default/shared/footer/top.svg","webpack:///./app/javascript/images/default/shared/header/bg.svg","webpack:///./app/javascript/images/default/shared/header/bg-md.svg","webpack:///./app/javascript/images/default/shared/header/booking.svg","webpack:///./app/javascript/images/default/shared/header/close.svg","webpack:///./app/javascript/images/default/shared/header/hamburger.svg","webpack:///./app/javascript/images/default/shared/header/line.svg","webpack:///./app/javascript/images/default/shared/header/logo.svg","webpack:///./app/javascript/images/default/shared/header/logo-black.svg","webpack:///./app/javascript/images/default/shared/header/logo-color.jpg","webpack:///./app/javascript/images/default/shared/header/logo-white.svg","webpack:///./app/javascript/images/default/shared/header/main.jpg","webpack:///./app/javascript/images/default/shared/header/main-375.jpg","webpack:///./app/javascript/images/default/shared/header/main-lg.jpg","webpack:///./app/javascript/images/default/shared/header/main-md.jpg","webpack:///./app/javascript/images/default/shared/header/main-xl.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover0.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover1.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover2.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover3.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover4.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover5.jpg","webpack:///./app/javascript/images/default/shared/header/nav-cover7.jpg","webpack:///./app/javascript/images/default/shared/header/time.svg","webpack:///./app/javascript/images/default/shared/left-arrow.svg","webpack:///./app/javascript/images/default/shared/right-arrow.svg","webpack:///./app/javascript/images/default/shared/up-arrow.svg","webpack:///./app/javascript/images/default/shared/wave.svg","webpack:///./node_modules/@rails/ujs/lib/assets/compiled/rails-ujs.js","webpack:///./node_modules/@rails/activestorage/app/assets/javascripts/activestorage.js","webpack:///./node_modules/copy-to-clipboard/index.js","webpack:///./node_modules/siema/dist/siema.min.js","webpack:///./node_modules/swiper/swiper-bundle.js","webpack:///./app/javascript/channels/index.js","webpack:///./app/javascript/channels sync _channel\\.js$","webpack:///./node_modules/regenerator-runtime/runtime.js","webpack:///./app/javascript/controllers sync _controller\\.(js|ts)$","webpack:///./app/javascript/controllers/anchor_jump_controller.js","webpack:///./app/javascript/controllers/chrome_controller.js","webpack:///./app/javascript/controllers/default/pages/questions/search_bar_controller.js","webpack:///./app/javascript/controllers/default/pages/questions/sticky_navbar_controller.js","webpack:///./app/javascript/controllers/default/shared/copitable_controller.js","webpack:///./node_modules/toggle-selection/index.js","webpack:///./app/javascript/controllers/default/shared/detect_header_mode_controller.js","webpack:///./app/javascript/controllers/default/shared/header_mode_controller.js","webpack:///./app/javascript/controllers/default/shared/siema_slide_controller.js","webpack:///./app/javascript/controllers/default/shared/swiper_slide_controller.js","webpack:///./app/javascript/controllers/label_noscroll_controller.js","webpack:///./app/javascript/images sync ^\\.\\/.*$","webpack:///./node_modules/@rails/request.js/src/fetch_response.js","webpack:///./node_modules/@rails/request.js/src/request_interceptor.js","webpack:///./node_modules/@rails/request.js/src/lib/utils.js","webpack:///./node_modules/@rails/request.js/src/fetch_request.js","webpack:///./node_modules/@rails/request.js/src/verbs.js","webpack:///./app/javascript/controllers/clinic_info_widget_controller.js","webpack:///./app/javascript/controllers/index.js","webpack:///./node_modules/@hotwired/stimulus-webpack-helpers/dist/stimulus-webpack-helpers.js","webpack:///./app/javascript/packs/application.js","webpack:///./app/javascript/components/selector_tools.js","webpack:///./app/javascript/controllers/default/shared/body_slide_controller.js"],"names":["installedModules","__webpack_require__","moduleId","exports","module","i","l","modules","call","m","c","d","name","getter","o","Object","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","prototype","hasOwnProperty","p","s","_typeof","obj","iterator","constructor","asyncGeneratorStep","gen","resolve","reject","_next","_throw","arg","info","error","done","Promise","then","_toConsumableArray","arr","Array","isArray","_arrayLikeToArray","_arrayWithoutHoles","iter","from","_iterableToArray","_unsupportedIterableToArray","TypeError","_nonIterableSpread","_inherits","subClass","superClass","writable","configurable","_setPrototypeOf","setPrototypeOf","__proto__","_createSuper","Derived","hasNativeReflectConstruct","Reflect","construct","sham","Proxy","Boolean","valueOf","e","_isNativeReflectConstruct","result","Super","_getPrototypeOf","NewTarget","this","arguments","apply","_possibleConstructorReturn","self","ReferenceError","_assertThisInitialized","getPrototypeOf","_slicedToArray","_arrayWithHoles","_i","_s","_e","_arr","_n","_d","next","push","length","err","_iterableToArrayLimit","_nonIterableRest","_defineProperty","_createForOfIteratorHelper","allowArrayLike","it","F","_e2","f","normalCompletion","didErr","step","_e3","return","minLen","toString","slice","test","len","arr2","_classCallCheck","instance","Constructor","_defineProperties","target","props","descriptor","_createClass","protoProps","staticProps","EventListener","eventTarget","eventName","eventOptions","unorderedBindings","Set","addEventListener","removeEventListener","binding","add","delete","event","_step","extendedEvent","_stopImmediatePropagation","stopImmediatePropagation","assign","immediatePropagationStopped","extendEvent","_iterator","bindings","handleEvent","sort","left","right","leftIndex","index","rightIndex","Dispatcher","application","eventListenerMaps","Map","started","eventListeners","forEach","eventListener","connect","disconnect","values","reduce","listeners","map","concat","fetchEventListenerForBinding","bindingConnected","bindingDisconnected","message","detail","undefined","handleError","fetchEventListener","eventListenerMap","fetchEventListenerMapForEventTarget","cacheKey","createEventListener","set","parts","keys","join","descriptorPattern","parseEventTarget","eventTargetName","window","document","camelize","replace","_","char","toUpperCase","capitalize","charAt","dasherize","toLowerCase","Action","element","tagName","defaultEventNames","getDefaultEventNameForElement","identifier","methodName","eventNameSuffix","Element","getParamsFromEventTargetAttributes","params","pattern","RegExp","attributes","_ref","match","JSON","parse","o_O","typecast","token","descriptorString","content","matches","trim","split","options","getAttribute","Error","Binding","context","action","willBeInvokedByEvent","invokeWithEvent","method","controller","currentTarget","actionEvent","logDebugActivity","contains","scope","containsElement","ElementObserver","delegate","_this","mutationObserverInit","childList","subtree","elements","mutationObserver","MutationObserver","mutations","processMutations","observe","refresh","callback","takeRecords","matchElementsInTree","_Array$from","has","removeElement","_i2","_Array$from2","_element","addElement","_step2","_iterator2","mutation","processMutation","type","processAttributeChange","attributeName","processRemovedNodes","removedNodes","processAddedNodes","addedNodes","node","elementAttributeChanged","matchElement","nodes","_i3","_Array$from3","elementFromNode","processTree","_i4","_Array$from4","elementIsActive","tree","processor","_step3","_iterator3","nodeType","Node","ELEMENT_NODE","isConnected","elementMatched","elementUnmatched","AttributeObserver","elementObserver","start","pause","stop","hasAttribute","querySelectorAll","selector","elementMatchedAttribute","elementUnmatchedAttribute","elementAttributeValueChanged","StringMapObserver","_this2","stringMap","attributeOldValue","_step4","_iterator4","knownAttributeNames","refreshAttribute","_step5","_iterator5","oldValue","getStringMapKeyForAttribute","stringMapKeyAdded","stringMapValueChanged","_oldValue","stringMapKeyRemoved","currentAttributeNames","recordedAttributeNames","attribute","_add","fetch","del","size","prune","Multimap","valuesByKey","some","filter","_ref2","_ref3","_ref4","_ref5","TokenListObserver","attributeObserver","tokensByElement","tokensMatched","readTokensForElement","_this$refreshTokensFo2","refreshTokensForElement","unmatchedTokens","matchedTokens","tokensUnmatched","getValuesForKey","tokens","_this4","tokenMatched","_this5","tokenUnmatched","previousTokens","currentTokens","firstDifferingIndex","Math","max","findIndex","_ref6","_ref7","tokensAreEqual","tokenString","parseTokenString","ValueListObserver","tokenListObserver","parseResultsByToken","WeakMap","valuesByTokenByElement","fetchParseResultForToken","fetchValuesByTokenForElement","elementMatchedValue","elementUnmatchedValue","parseResult","parseToken","valuesByToken","parseValueForToken","BindingObserver","bindingsByAction","valueListObserver","actionAttribute","disconnectAllActions","schema","_this6","clear","forToken","connectAction","disconnectAction","ValueObserver","receiver","stringMapObserver","valueDescriptorMap","invokeChangedCallbacksForDefaultValues","hasValue","invokeChangedCallback","writer","defaultValue","valueDescriptorNameMap","_step6","_iterator6","valueDescriptors","_ref9","data","rawValue","rawOldValue","changedMethodName","changedMethod","reader","_this7","descriptors","hasMethodName","TargetObserver","targetsByName","disconnectAllTargets","_ref10","connectTarget","_ref11","disconnectTarget","_a","_this8","targetConnected","_this9","targetDisconnected","_step7","_iterator7","_step8","_iterator8","Context","_this10","functionName","controllerConstructor","bindingObserver","dispatcher","valueObserver","targetObserver","initialize","parentElement","invokeControllerMethod","_len","args","_key","readInheritableStaticArrayValues","propertyName","ancestors","getAncestorsForConstructor","definition","getOwnStaticArrayValues","readInheritableStaticObjectPairs","pairs","getOwnStaticObjectPairs","reverse","bless","properties","shadowConstructor","extend","shadowProperties","getOwnKeys","shadowingDescriptor","getOwnPropertyDescriptor","getShadowedDescriptor","getShadowProperties","defineProperties","shadow","blessedProperties","blessing","getBlessedProperties","getOwnPropertySymbols","getOwnPropertyNames","extendWithReflect","extended","b","a","_constructor","_super2","Module","blessDefinition","contextsByScope","connectedContexts","fetchContextForScope","ClassMap","getDataKey","getAll","getAttributeNameForKey","DataMap","setAttribute","removeAttribute","Guide","logger","warnedKeysByObject","warnedKeys","warn","attributeValueContainsToken","TargetSet","targetName","find","_this11","_len2","targetNames","_key2","findTarget","findLegacyTarget","_this12","_len3","_key3","targets","findAllTargets","findAllLegacyTargets","getSelectorForTargetName","findElement","findAllElements","targetAttributeForScope","getLegacySelectorForTargetName","deprecate","_this13","targetDescriptor","targetAttribute","revisedAttributeName","guide","Scope","_this14","classes","closest","controllerSelector","queryElements","controllerAttribute","ScopeObserver","scopesByIdentifierByElement","scopeReferenceCounts","scopesByIdentifier","fetchScopesByIdentifierForElement","createScopeForElementAndIdentifier","referenceCount","scopeConnected","scopeDisconnected","Router","scopeObserver","modulesByIdentifier","contexts","unloadIdentifier","connectModule","disconnectModule","connectContextForScope","disconnectContextForScope","defaultSchema","Application","_this15","documentElement","console","debug","logFormattedMessage","router","fn","_start","mark","_callee","wrap","_context","prev","readyState","shouldLoad","load","head","_this16","_len4","rest","_key4","definitions","loadDefinition","_this17","_len5","_key5","identifiers","getContextForElementAndIdentifier","onerror","groupCollapsed","log","groupEnd","parseValueDefinitionPair","_ref15","_ref16","typeDefinition","typeFromObject","typeObject","parseValueTypeConstant","defaultValueType","parseValueTypeDefault","default","parseValueTypeObject","typeFromDefaultValue","typeFromConstant","parseValueTypeDefinition","constant","defaultValuesByType","defaultValueForDefinition","hasCustomDefaultValue","readers","writers","valueDescriptorForTokenAndTypeDefinition","Number","String","array","boolean","number","string","writeJSON","stringify","Controller","_ref17","_ref17$target","_ref17$detail","_ref17$prefix","prefix","_ref17$bubbles","bubbles","_ref17$cancelable","cancelable","CustomEvent","dispatchEvent","blessings","classDefinition","_ref12","getAttributeName","targetDefinition","_ref13","findAll","valueDefinitionPairs","propertyDescriptorMap","_this18","valueDefinitionPair","valueDescriptor","_ref14","read","write","propertiesForValueDefinitionPair","webpackPolyfill","paths","children","Rails","linkClickSelector","buttonClickSelector","exclude","inputChangeSelector","formSubmitSelector","formInputClickSelector","formDisableSelector","formEnableSelector","fileInputSelector","linkDisableSelector","buttonDisableSelector","nonce","loadCSPNonce","ref","querySelector","cspNonce","matchesSelector","mozMatchesSelector","msMatchesSelector","oMatchesSelector","webkitMatchesSelector","getData","setData","$","csrfParam","csrfToken","meta","CSRFProtection","xhr","setRequestHeader","refreshCSRFTokens","param","input","fire","preventDefault","evt","createEvent","initCustomEvent","Event","defaultPrevented","stopEverything","stopPropagation","eventType","handler","parentNode","AcceptHeaders","createXHR","prepareOptions","processResponse","text","html","xml","json","script","ajax","response","responseText","getResponseHeader","floor","status","success","statusText","complete","beforeSend","XMLHttpRequest","OPENED","send","url","location","href","indexOf","dataType","accept","open","crossDomain","withCredentials","onreadystatechange","DONE","parser","createElement","appendChild","removeChild","DOMParser","parseFromString","isCrossDomain","originAnchor","urlAnchor","protocol","host","toArray","serializeElement","additionalParam","inputs","disabled","option","selected","checked","encodeURIComponent","formElements","form","el","allowAction","handleConfirm","confirm","answer","disableFormElement","disableFormElements","disableLinkElement","enableFormElement","enableFormElements","enableLinkElement","isXhrRedirect","handleDisabledElement","enableElement","disableElement","replacement","innerHTML","originalText","handleMethod","formContent","link","style","display","body","click","isRemote","handleRemote","button","enctype","FormData","append","formSubmitButtonClick","formNoValidate","preventInsignificantClick","insignificantMetaClick","metaKey","ctrlKey","jQuery","rails","ajaxPrefilter","originalOptions","_rails_loaded","setTimeout","factory","sparkMd5","createCommonjsModule","hex_chr","md5cycle","x","k","md5blk","md5blks","charCodeAt","md5blk_array","md51","tail","tmp","lo","hi","state","substring","parseInt","md51_array","subarray","Uint8Array","rhex","j","hex","toUtf8","str","unescape","utf8Str2ArrayBuffer","returnUInt8Array","buff","ArrayBuffer","arrayBuffer2Utf8Str","fromCharCode","concatenateArrayBuffers","first","second","byteLength","buffer","hexToBinaryString","bytes","substr","SparkMD5","reset","clamp","val","min","to","num","targetArray","sourceArray","begin","end","appendBinary","contents","_buff","_length","_hash","raw","ret","_finish","getState","hash","setState","destroy","hashBinary","classCallCheck","createClass","fileSlice","File","mozSlice","webkitSlice","FileChecksum","file","chunkSize","chunkCount","ceil","chunkIndex","md5Buffer","fileReader","FileReader","fileReaderDidLoad","fileReaderDidError","readNextChunk","binaryDigest","base64digest","btoa","readAsArrayBuffer","root","eventInit","initEvent","toArray$1","BlobRecord","checksum","filename","content_type","byte_size","responseType","getMetaValue","requestDidLoad","requestDidError","blob","direct_upload","directUploadData","toJSON","_xhr","BlobUpload","_blob$directUploadDat","headers","id","DirectUpload","notify","upload","messages","DirectUploadController","directUpload","dispatch","hiddenInput","insertAdjacentElement","dispatchError","signed_id","progress","loaded","total","alert","uploadRequestDidProgress","DirectUploadsController","files","controllers","createDirectUploadControllers","startNextController","shift","processingAttribute","submitButtonsByForm","didClick","didSubmitForm","didSubmitRemoteElement","handleFormSubmissionEvent","disable","enable","focus","submitForm","ActiveStorage","deselectCurrent","clipboardToIE11Formatting","reselectPrevious","range","selection","createRange","getSelection","textContent","all","position","top","clip","whiteSpace","webkitUserSelect","MozUserSelect","msUserSelect","userSelect","format","clipboardData","clearData","onCopy","selectNodeContents","addRange","execCommand","copyKey","navigator","userAgent","prompt","removeRange","removeAllRanges","config","mergeSettings","resolveSlidesNumber","selectorWidth","offsetWidth","innerElements","currentSlide","loop","startIndex","perPage","transformProperty","webkitOrNot","init","resizeHandler","draggable","pointerDown","drag","startX","endX","startY","letItGo","preventClick","touchstartHandler","touchendHandler","touchmoveHandler","mousedownHandler","mouseupHandler","mouseleaveHandler","mousemoveHandler","clickHandler","attachEvents","overflow","direction","rtl","buildSliderFrame","onInit","sliderFrame","width","enableTransition","cursor","createDocumentFragment","buildSliderFrameItem","cloneNode","slideToCurrent","cssFloat","float","innerWidth","disableTransition","onChange","webkitTransition","easing","transition","duration","requestAnimationFrame","abs","multipleDrag","threshold","nodeName","touches","pageX","pageY","updateAfterDrag","clearDrag","splice","insert","detachEvents","transform","_wrapNativeSuper","Class","_cache","Function","Wrapper","_construct","Parent","isObject$1","extend$1","src","ssrDocument","activeElement","blur","getElementById","childNodes","getElementsByTagName","createElementNS","importNode","hostname","origin","pathname","search","getDocument","doc","ssrWindow","history","replaceState","pushState","go","back","getComputedStyle","getPropertyValue","Image","Date","screen","clearTimeout","matchMedia","cancelAnimationFrame","getWindow","win","Dom7","_Array","_super","items","proto","arrayFlat","res","arrayFilter","_html","toCreate","tempParent","qsa","uniqueArray","arrayUnique","support","deviceCached","browser","Methods","addClass","classNames","_el$classList","classList","removeClass","_el$classList2","remove","hasClass","className","toggleClass","toggle","attr","attrs","attrName","removeAttr","transitionDuration","on","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","events","_event2","dom7LiveListeners","proxyListener","_event","dom7Listeners","off","_len6","_key6","_event3","handlers","dom7proxy","trigger","_len7","_key7","_event4","dataIndex","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","parseFloat","outerHeight","_styles2","offsetHeight","offset","_window","_document","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","css","prop","each","compareWith","child","previousSibling","eq","returnIndex","newChild","tempDiv","firstChild","prepend","insertBefore","nextElementSibling","nextAll","nextEls","previousElementSibling","prevAll","prevEls","_prev","parent","_parent","foundElements","found","deleteProps","nextTick","delay","now","getComputedStyle$1","currentStyle","getTranslate","matrix","curTransform","transformMatrix","axis","curStyle","WebKitCSSMatrix","webkitTransform","MozTransform","OTransform","MsTransform","msTransform","m41","m42","isObject","isNode","HTMLElement","noExtend","nextSource","keysArray","nextIndex","nextKey","desc","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","time","swiper","targetPosition","side","startPosition","translate","startTime","speed","wrapperEl","scrollSnapType","cssModeFrameID","dir","isOutOfBound","current","animate","getTime","easeProgress","cos","PI","currentPosition","scrollTo","getSupport","smoothScroll","touch","DocumentTouch","passiveListener","supportsPassive","opts","gestures","calcSupport","calcDevice","platform","ua","device","ios","android","screenWidth","screenHeight","height","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","getBrowser","isSafari","isWebView","calcBrowser","eventsEmitter","priority","eventsListeners","once","onceHandler","__emitterProxy","_len8","_key8","onAny","eventsAnyListeners","offAny","eventHandler","emit","_len9","_key9","eventsArray","update","updateSize","$el","clientWidth","clientHeight","isHorizontal","isVertical","isNaN","updateSlides","getDirectionLabel","getDirectionPropertyValue","label","$wrapperEl","swiperSize","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginBottom","marginTop","marginRight","centeredSlides","cssMode","slideSize","gridEnabled","grid","rows","initSlides","shouldResetSlideSize","slidesPerView","breakpoints","_slide","updateSlide","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","slidesPerGroup","slidesPerGroupSkip","effect","setWrapperSize","updateWrapperSize","newSlidesGrid","slidesGridItem","slideIndex","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","addToSnapGrid","addToSlidesGrid","v","watchOverflow","checkOverflow","watchSlidesProgress","updateSlidesOffset","updateAutoHeight","activeSlides","newHeight","setTransition","getSlideByIndex","visibleSlides","slide","_index","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","offsetCenter","slideVisibleClass","visibleSlidesIndexes","_slide2","slideOffset","slideProgress","minTranslate","slideBefore","slideAfter","isVisible","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","autoHeight","updateSlidesClasses","activeSlide","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","initialized","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","virtualTranslate","currentTranslate","setTranslate","byController","y","previousTranslate","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","_wrapperEl$scrollTo","onTranslateToWrapperTransitionEnd","destroyed","transitionEmit","transitionStart","slideTo","initial","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGrid","normalizedGridNext","allowSlideNext","allowSlidePrev","_immediateVirtual","_swiperImmediateVirtual","_wrapperEl$scrollTo2","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","perGroup","slidesPerGroupAuto","slidesPerViewDynamic","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","prevSnapIndex","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","currentSnap","nextSnap","_currentSnap","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","diff","loopDestroy","onTouchStart","touchEventsData","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","which","isTouched","isMoved","noSwipingClass","shadowRoot","path","noSwipingSelector","isTargetShadow","noSwiping","__closestFrom","assignedSlot","getRootNode","closestElement","allowClick","swipeHandler","currentX","targetTouches","currentY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","touchAngle","diffX","diffY","sqrt","pow","atan2","touchMoveStopPropagation","nested","startTranslate","allowMomentumBounce","grabCursor","setGrabCursor","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","onTouchEnd","currentPos","touchEndTime","timeDiff","lastClickTime","stopIndex","groupSize","_increment","ratio","longSwipesMs","longSwipes","longSwipesRatio","shortSwipes","navigation","nextEl","prevEl","onResize","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","onScroll","dummyEventAttached","dummyEventListener","touchEvents","domMethod","swiperMethod","passiveListeners","passive","move","cancel","updateOnWindowResize","events$1","isGridEnabled","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","fill","directionChanged","needsReLoop","changeDirection","isEnabled","base","containerEl","currentHeight","innerHeight","points","point","minRatio","_points$i","addClasses","entries","resultClasses","suffixes","item","removeClasses","defaults","resizeObserver","createElements","simulateTouch","uniqueNavElements","preloadImages","updateOnImagesReady","wrapperClass","_emitClasses","moduleExtendParams","allModulesParams","moduleParamName","moduleParams","auto","prototypes","moving","isLocked","unsetGrabCursor","wasLocked","lastSlideIndex","lastSlideRightEdge","images","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","onload","imagesLoaded","imagesToLoad","currentSrc","extendedDefaults","Swiper","_len10","_key10","swipers","newParams","_swiper$modules","__modules__","mod","extendParams","desktop","swiperParams","passedParams","velocity","touchEventsTouch","touchEventsDesktop","clickTimeout","velocities","cls","slideEl","updates","getSlideClasses","view","exact","spv","breakLoop","_i5","slideInView","_i6","_slideInView","translateValue","newDirection","needUpdate","currentDirection","mounted","getWrapperSelector","getWrapper","wrapper","mount","deleteInstance","cleanStyles","newDefaults","installModule","createElementIfNotDefined","checkProps","classesToSelector","appendSlide","observer","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","_i12","_i13","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","effectInit","overwriteParams","perspective","overwriteParamsResult","effectTarget","effectParams","$slideEl","transformEl","effectVirtualTransitionEnd","_ref26","allSlides","eventTriggered","triggerEvents","createShadow","shadowClass","$shadowContainer","$shadowEl","prototypeGroup","protoMethod","use","orientationChangeHandler","ResizeObserver","newWidth","contentBoxSize","contentRect","inlineSize","blockSize","unobserve","observers","attach","ObserverFunc","WebkitMutationObserver","observerUpdate","characterData","observeParents","observeSlideChildren","containerParents","cssModeTimeout","renderSlide","cache","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","previousTo","previousSlidesGrid","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","renderExternal","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","_i7","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","_ref8","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","timeout","mousewheel","releaseOnEdges","invert","forceToAxis","sensitivity","eventsTarget","thresholdDelta","thresholdTime","lastEventBeforeSnap","lastScrollTime","recentWheelEvents","handleMouseEnter","mouseEntered","handleMouseLeave","animateSlider","newEvent","delta","rtlFactor","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","positions","_newEvent","sign","ignoreWheelEvents","sticky","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","prevEvent","releaseScroll","getEl","toggleEl","disabledClass","lockClass","_swiper$navigation","$nextEl","$prevEl","onPrevClick","onNextClick","_swiper$navigation2","hideOnClick","hiddenClass","_swiper$navigation3","_swiper$navigation4","targetEl","pagination","clickable","isHidden","bulletSize","pfx","bulletElement","renderBullet","renderProgressbar","renderFraction","renderCustom","progressbarOpposite","dynamicBullets","dynamicMainBullets","formatFractionCurrent","formatFractionTotal","bulletClass","bulletActiveClass","modifierClass","currentClass","totalClass","progressbarFillClass","progressbarOppositeClass","clickableClass","horizontalClass","verticalClass","bullets","dynamicBulletIndex","isPaginationDisabled","setSideBullets","$bulletEl","paginationType","firstIndex","lastIndex","midIndex","suffix","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","_i8","dynamicBulletsLength","bulletsOffset","progressbarDirection","scale","scaleX","scaleY","render","paginationHTML","numberOfBullets","dragStartPos","dragSize","trackSize","divider","dragTimeout","scrollbar","$dragEl","newSize","newPos","hide","opacity","getPointerPosition","clientX","clientY","setDragPosition","positionRatio","onDragStart","onDragMove","onDragEnd","snapOnRelease","activeListener","eventMethod","$swiperEl","dragClass","dragEl","parallax","setTransform","currentOpacity","currentScale","_swiper","parallaxEl","$parallaxEl","parallaxDuration","zoom","maxRatio","containerClass","zoomedSlideClass","gesturesEnabled","fakeGestureTouched","fakeGestureMoved","isScaling","gesture","slideWidth","slideHeight","$imageEl","$imageWrapEl","minX","minY","maxX","maxY","touchesStart","touchesCurrent","prevPositionX","prevPositionY","prevTime","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","scaleStart","onGestureChange","scaleMove","onGestureEnd","scaledWidth","scaledHeight","onTransitionEnd","zoomIn","touchX","touchY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","touchAction","zoomOut","zoomToggle","getListeners","activeListenerWithCapture","getSlideSelector","toggleGestures","slideSelector","enableGestures","disableGestures","_getListeners2","_getListeners3","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","momentumDuration","in","out","checkInView","loadPrevNext","loadPrevNextAmount","loadOnTransitionStart","scrollingElement","elementClass","loadingClass","loadedClass","preloaderClass","scrollHandlerAttached","initialImageLoaded","loadInSlide","loadInDuplicate","$images","background","$pictureEl","sourceEl","$source","slideOriginalIndex","slideExist","amount","maxIndex","minIndex","_i9","_i10","checkInViewOnLoad","$scrollElement","isWindow","scrollElementWidth","scrollElementHeight","_swiper$params2","LinearSpline","guess","i1","i3","binarySearch","interpolate","removeSpline","control","spline","inverse","by","_t","controlledTranslate","controlled","setControlledTranslate","getInterpolateFunction","setControlledTransition","a11y","notificationClass","prevSlideMessage","nextSlideMessage","firstSlideMessage","lastSlideMessage","paginationBulletMessage","slideLabelMessage","containerMessage","containerRoleDescriptionMessage","itemRoleDescriptionMessage","slideRole","liveRegion","notification","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElLabel","disableEl","enableEl","onEnterOrSpaceKey","updateNavigation","_swiper$navigation5","hasPagination","initNavEl","wrapperId","controls","addElControls","$containerEl","randomChar","round","random","repeat","getRandomNumber","live","addElLive","bulletEl","_ref18","slugify","getPathValues","urlOverride","pathArray","URL","part","setHistory","includes","currentState","scrollToSlide","_slide3","_index2","setHistoryPopState","hashNavigation","_ref19","watchState","onHashChange","newHash","setHash","_slide4","_slide5","_index3","_ref20","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","pauseOnMouseEnter","_ref21","thumbs","multipleActiveThumbs","autoScrollOffset","slideThumbActiveClass","thumbsContainerClass","swiperCreated","onThumbClick","thumbsSwiper","currentIndex","thumbsParams","SwiperClass","thumbsSwiperParams","useOffset","newThumbsIndex","currentThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","_i11","_ref22","momentum","momentumRatio","momentumBounce","momentumBounceRatio","momentumVelocityRatio","minimumVelocity","_ref23","lastMoveEvent","pop","velocityEvent","distance","momentumDistance","newPosition","afterBouncePosition","needsLoopFix","doBounce","bounceAmount","moveDistance","currentSlideSize","_ref24","slidesNumberEvenToRows","slidesPerRow","numFullColumns","_swiper$params$grid","newSlideOrderIndex","column","row","_swiper$params3","_swiper$params$grid2","groupIndex","slideIndexInGroup","columnsInGroup","order","_swiper$params4","_ref25","_ref27","fadeEffect","crossFade","tx","ty","slideOpacity","_ref28","cubeEffect","slideShadows","shadowOffset","shadowScale","$cubeShadowEl","wrapperRotate","slideAngle","tz","_transform","shadowBefore","shadowAfter","shadowAngle","sin","scale1","scale2","_offset2","zFactor","_ref29","flipEffect","limitRotation","_offset3","rotateY","rotateX","zIndex","_transform2","_ref30","coverflowEffect","rotate","stretch","depth","modifier","center","offsetMultiplier","translateZ","slideTransform","$shadowBeforeEl","$shadowAfterEl","_ref31","creativeEffect","limitProgress","shadowPerProgress","progressMultiplier","_loop","custom","getTranslateValue","translateString","rotateString","scaleString","opacityString","shadowOpacity","_ref32","cardsEffect","_swiper$touchEventsDa","_offset4","tX","tY","tZ","tXAdd","isSwipeToNext","isSwipeToPrev","subProgress","prevY","_transform3","channels","require","webpackEmptyContext","req","code","runtime","Op","hasOwn","$Symbol","iteratorSymbol","asyncIteratorSymbol","asyncIterator","toStringTagSymbol","define","innerFn","outerFn","tryLocsList","protoGenerator","Generator","generator","_invoke","GenStateSuspendedStart","GenStateExecuting","GenStateCompleted","doneResult","delegateResult","maybeInvokeDelegate","ContinueSentinel","sent","_sent","dispatchException","abrupt","record","tryCatch","GenStateSuspendedYield","makeInvokeMethod","GeneratorFunction","GeneratorFunctionPrototype","IteratorPrototype","getProto","NativeIteratorPrototype","Gp","defineIteratorMethods","AsyncIterator","PromiseImpl","invoke","__await","unwrapped","previousPromise","callInvokeWithMethodAndArg","resultName","nextLoc","pushTryEntry","locs","entry","tryLoc","catchLoc","finallyLoc","afterLoc","tryEntries","resetTryEntry","completion","iterable","iteratorMethod","displayName","isGeneratorFunction","genFun","ctor","awrap","async","skipTempReset","rootRecord","rval","exception","loc","caught","hasCatch","hasFinally","finallyEntry","finish","thrown","delegateYield","regeneratorRuntime","accidentalStrictMode","globalThis","webpackContext","webpackContextResolve","_isChrome","jump","decodeURI","vendor","_setClass","setScale","finalHeight","renderAll","cond","blankSlateTarget","sections","questionsValue","flatMap","sectionName","accordions","accordionHeader","accordionContent","suggestionsTarget","toggleBlankSlate","searchTerm","inputTarget","renderFilteredResult","term","filteredResult","question","dataset","section","article","questions","scrollTarget","nav","questionsNavTarget","navOffsetTop","scroll","isWhite","copy","copied","tooltip","tiptext","rangeCount","active","ranges","getRangeAt","MODES","scrollTimer","scrollContainerTarget","detectMode","_findModeIdx","currentMode","headerTarget","_darkenMaskWhenWhiteMode","whitePointTarget","normalPointTarget","currentScrollTop","idx","_pointsTopMapping","pointTop","darkenMaskTarget","mappingClasses","_buildMapping","targetIndex","targetClass","_isLeave","_isArrived","blueIndex","whiteIndex","normalIndex","Siema","panelTarget","_renderButtons","prevToggleClass","prevTarget","isPrevShow","nextToggleClass","nextTarget","isNextShow","_addClassForTargets","verticalValue","paginationValue","bulletClassValue","bulletActiveClassValue","indexValue","slideTargets","vertical","htmlFor","FetchResponse","_renderTurboStream","redirected","ok","statusCode","contentType","responseJson","isTurboStream","Turbo","t0","t1","renderStreamMessage","RequestInterceptor","interceptor","metaContent","mergeEntries","searchParams","FetchRequest","originalUrl","_perform","requestInterceptor","fetchOptions","t2","unauthenticated","authenticationURL","renderTurboStream","additionalHeaders","formattedBody","signal","credentials","redirect","compact","Accept","cookies","cookie","startsWith","decodeURIComponent","getCookie","responseKind","originalQuery","URLSearchParams","requestQuery","query","bodyIsAString","_x","_x2","_get","request","perform","fetchClinic","apiUrlValue","resp","respData","clinicNameTarget","innerText","clinic_name","currentNumTarget","current_num","nextNumTarget","next_num","apiUrl","warnings","logicalName","identifierForContextKey","definitionForModuleAndIdentifier","definitionForModuleWithContextAndKey","definitionsFromContext","queryParent","SLIDE_PERIOD","wheel","keyup","EXCLUDE_SELECTOR","lastTouchPos","lastSlideTimeStamp","changeEnableProcessing","enableSlideOne","enableValue","_changeEnable","_detectCurrentIndex","_wheelDirection","_scrollOne","currentTouchPos","_touchDirection","_keyupDirection","targetDom","_moveTargetPos","animation","overflowY","disableStyles","transitionendEvent","TRANSITION_TIME","_getNextIndex","targetParentDom","thisSlide"],"mappings":"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AOD,QAAU,IAA0B,yG,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,wE,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,6E,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,2E,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,+H,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,4F,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,0G,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,gG,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,6F,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,kG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,6G,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,8F,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,uF,gBCA3CC,EAAOD,QAAU,IAA0B,8G,gBCA3CC,EAAOD,QAAU,IAA0B,8G,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,iI,gBCA3CC,EAAOD,QAAU,IAA0B,yG,gBCA3CC,EAAOD,QAAU,IAA0B,+G,gBCA3CC,EAAOD,QAAU,IAA0B,2F,gBCA3CC,EAAOD,QAAU,IAA0B,+F,gBCA3CC,EAAOD,QAAU,IAA0B,sG,gBCA3CC,EAAOD,QAAU,IAA0B,sG,gBCA3CC,EAAOD,QAAU,IAA0B,sG,gBCA3CC,EAAOD,QAAU,IAA0B,yG,gBCA3CC,EAAOD,QAAU,IAA0B,2G,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,wF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,4F,gBCA3CC,EAAOD,QAAU,IAA0B,4F,gBCA3CC,EAAOD,QAAU,IAA0B,4F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,0F,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,yF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,kF,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,iG,gBCA3CC,EAAOD,QAAU,IAA0B,qG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,oG,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,4E,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU,IAA0B,8E,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,iF,gBCA3CC,EAAOD,QAAU,IAA0B,qF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,oF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,mF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,sF,gBCA3CC,EAAOD,QAAU,IAA0B,gF,gBCA3CC,EAAOD,QAAU,IAA0B,+E,gBCA3CC,EAAOD,QAAU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","file":"js/application-157ba60032c6c0fbaaa7.js","sourcesContent":[" \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/packs/\";\n\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 253);\n","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\nimport _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _get() { if (typeof Reflect !== \"undefined\" && Reflect.get) { _get = Reflect.get; } else { _get = function _get(target, property, receiver) { var base = _superPropBase(target, property); if (!base) return; var desc = Object.getOwnPropertyDescriptor(base, property); if (desc.get) { return desc.get.call(arguments.length < 3 ? target : receiver); } return desc.value; }; } return _get.apply(this, arguments); }\n\nfunction _superPropBase(object, property) { while (!Object.prototype.hasOwnProperty.call(object, property)) { object = _getPrototypeOf(object); if (object === null) break; } return object; }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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/*\nStimulus 3.0.1\nCopyright © 2021 Basecamp, LLC\n */\nvar EventListener = /*#__PURE__*/function () {\n function EventListener(eventTarget, eventName, eventOptions) {\n _classCallCheck(this, EventListener);\n\n this.eventTarget = eventTarget;\n this.eventName = eventName;\n this.eventOptions = eventOptions;\n this.unorderedBindings = new Set();\n }\n\n _createClass(EventListener, [{\n key: \"connect\",\n value: function connect() {\n this.eventTarget.addEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n this.eventTarget.removeEventListener(this.eventName, this, this.eventOptions);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.unorderedBindings.add(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.unorderedBindings.delete(binding);\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n var extendedEvent = extendEvent(event);\n\n var _iterator = _createForOfIteratorHelper(this.bindings),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var binding = _step.value;\n\n if (extendedEvent.immediatePropagationStopped) {\n break;\n } else {\n binding.handleEvent(extendedEvent);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.unorderedBindings).sort(function (left, right) {\n var leftIndex = left.index,\n rightIndex = right.index;\n return leftIndex < rightIndex ? -1 : leftIndex > rightIndex ? 1 : 0;\n });\n }\n }]);\n\n return EventListener;\n}();\n\nfunction extendEvent(event) {\n if (\"immediatePropagationStopped\" in event) {\n return event;\n } else {\n var _stopImmediatePropagation = event.stopImmediatePropagation;\n return Object.assign(event, {\n immediatePropagationStopped: false,\n stopImmediatePropagation: function stopImmediatePropagation() {\n this.immediatePropagationStopped = true;\n\n _stopImmediatePropagation.call(this);\n }\n });\n }\n}\n\nvar Dispatcher = /*#__PURE__*/function () {\n function Dispatcher(application) {\n _classCallCheck(this, Dispatcher);\n\n this.application = application;\n this.eventListenerMaps = new Map();\n this.started = false;\n }\n\n _createClass(Dispatcher, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.connect();\n });\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.started = false;\n this.eventListeners.forEach(function (eventListener) {\n return eventListener.disconnect();\n });\n }\n }\n }, {\n key: \"eventListeners\",\n get: function get() {\n return Array.from(this.eventListenerMaps.values()).reduce(function (listeners, map) {\n return listeners.concat(Array.from(map.values()));\n }, []);\n }\n }, {\n key: \"bindingConnected\",\n value: function bindingConnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingConnected(binding);\n }\n }, {\n key: \"bindingDisconnected\",\n value: function bindingDisconnected(binding) {\n this.fetchEventListenerForBinding(binding).bindingDisconnected(binding);\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"fetchEventListenerForBinding\",\n value: function fetchEventListenerForBinding(binding) {\n var eventTarget = binding.eventTarget,\n eventName = binding.eventName,\n eventOptions = binding.eventOptions;\n return this.fetchEventListener(eventTarget, eventName, eventOptions);\n }\n }, {\n key: \"fetchEventListener\",\n value: function fetchEventListener(eventTarget, eventName, eventOptions) {\n var eventListenerMap = this.fetchEventListenerMapForEventTarget(eventTarget);\n var cacheKey = this.cacheKey(eventName, eventOptions);\n var eventListener = eventListenerMap.get(cacheKey);\n\n if (!eventListener) {\n eventListener = this.createEventListener(eventTarget, eventName, eventOptions);\n eventListenerMap.set(cacheKey, eventListener);\n }\n\n return eventListener;\n }\n }, {\n key: \"createEventListener\",\n value: function createEventListener(eventTarget, eventName, eventOptions) {\n var eventListener = new EventListener(eventTarget, eventName, eventOptions);\n\n if (this.started) {\n eventListener.connect();\n }\n\n return eventListener;\n }\n }, {\n key: \"fetchEventListenerMapForEventTarget\",\n value: function fetchEventListenerMapForEventTarget(eventTarget) {\n var eventListenerMap = this.eventListenerMaps.get(eventTarget);\n\n if (!eventListenerMap) {\n eventListenerMap = new Map();\n this.eventListenerMaps.set(eventTarget, eventListenerMap);\n }\n\n return eventListenerMap;\n }\n }, {\n key: \"cacheKey\",\n value: function cacheKey(eventName, eventOptions) {\n var parts = [eventName];\n Object.keys(eventOptions).sort().forEach(function (key) {\n parts.push(\"\".concat(eventOptions[key] ? \"\" : \"!\").concat(key));\n });\n return parts.join(\":\");\n }\n }]);\n\n return Dispatcher;\n}();\n\nvar descriptorPattern = /^((.+?)(@(window|document))?->)?(.+?)(#([^:]+?))(:(.+))?$/;\n\nfunction parseActionDescriptorString(descriptorString) {\n var source = descriptorString.trim();\n var matches = source.match(descriptorPattern) || [];\n return {\n eventTarget: parseEventTarget(matches[4]),\n eventName: matches[2],\n eventOptions: matches[9] ? parseEventOptions(matches[9]) : {},\n identifier: matches[5],\n methodName: matches[7]\n };\n}\n\nfunction parseEventTarget(eventTargetName) {\n if (eventTargetName == \"window\") {\n return window;\n } else if (eventTargetName == \"document\") {\n return document;\n }\n}\n\nfunction parseEventOptions(eventOptions) {\n return eventOptions.split(\":\").reduce(function (options, token) {\n return Object.assign(options, _defineProperty({}, token.replace(/^!/, \"\"), !/^!/.test(token)));\n }, {});\n}\n\nfunction stringifyEventTarget(eventTarget) {\n if (eventTarget == window) {\n return \"window\";\n } else if (eventTarget == document) {\n return \"document\";\n }\n}\n\nfunction camelize(value) {\n return value.replace(/(?:[_-])([a-z0-9])/g, function (_, char) {\n return char.toUpperCase();\n });\n}\n\nfunction capitalize(value) {\n return value.charAt(0).toUpperCase() + value.slice(1);\n}\n\nfunction dasherize(value) {\n return value.replace(/([A-Z])/g, function (_, char) {\n return \"-\".concat(char.toLowerCase());\n });\n}\n\nfunction tokenize(value) {\n return value.match(/[^\\s]+/g) || [];\n}\n\nvar Action = /*#__PURE__*/function () {\n function Action(element, index, descriptor) {\n _classCallCheck(this, Action);\n\n this.element = element;\n this.index = index;\n this.eventTarget = descriptor.eventTarget || element;\n this.eventName = descriptor.eventName || getDefaultEventNameForElement(element) || error(\"missing event name\");\n this.eventOptions = descriptor.eventOptions || {};\n this.identifier = descriptor.identifier || error(\"missing identifier\");\n this.methodName = descriptor.methodName || error(\"missing method name\");\n }\n\n _createClass(Action, [{\n key: \"toString\",\n value: function toString() {\n var eventNameSuffix = this.eventTargetName ? \"@\".concat(this.eventTargetName) : \"\";\n return \"\".concat(this.eventName).concat(eventNameSuffix, \"->\").concat(this.identifier, \"#\").concat(this.methodName);\n }\n }, {\n key: \"params\",\n get: function get() {\n if (this.eventTarget instanceof Element) {\n return this.getParamsFromEventTargetAttributes(this.eventTarget);\n } else {\n return {};\n }\n }\n }, {\n key: \"getParamsFromEventTargetAttributes\",\n value: function getParamsFromEventTargetAttributes(eventTarget) {\n var params = {};\n var pattern = new RegExp(\"^data-\".concat(this.identifier, \"-(.+)-param$\"));\n var attributes = Array.from(eventTarget.attributes);\n attributes.forEach(function (_ref) {\n var name = _ref.name,\n value = _ref.value;\n var match = name.match(pattern);\n var key = match && match[1];\n\n if (key) {\n Object.assign(params, _defineProperty({}, camelize(key), typecast(value)));\n }\n });\n return params;\n }\n }, {\n key: \"eventTargetName\",\n get: function get() {\n return stringifyEventTarget(this.eventTarget);\n }\n }], [{\n key: \"forToken\",\n value: function forToken(token) {\n return new this(token.element, token.index, parseActionDescriptorString(token.content));\n }\n }]);\n\n return Action;\n}();\n\nvar defaultEventNames = {\n \"a\": function a(e) {\n return \"click\";\n },\n \"button\": function button(e) {\n return \"click\";\n },\n \"form\": function form(e) {\n return \"submit\";\n },\n \"details\": function details(e) {\n return \"toggle\";\n },\n \"input\": function input(e) {\n return e.getAttribute(\"type\") == \"submit\" ? \"click\" : \"input\";\n },\n \"select\": function select(e) {\n return \"change\";\n },\n \"textarea\": function textarea(e) {\n return \"input\";\n }\n};\n\nfunction getDefaultEventNameForElement(element) {\n var tagName = element.tagName.toLowerCase();\n\n if (tagName in defaultEventNames) {\n return defaultEventNames[tagName](element);\n }\n}\n\nfunction error(message) {\n throw new Error(message);\n}\n\nfunction typecast(value) {\n try {\n return JSON.parse(value);\n } catch (o_O) {\n return value;\n }\n}\n\nvar Binding = /*#__PURE__*/function () {\n function Binding(context, action) {\n _classCallCheck(this, Binding);\n\n this.context = context;\n this.action = action;\n }\n\n _createClass(Binding, [{\n key: \"index\",\n get: function get() {\n return this.action.index;\n }\n }, {\n key: \"eventTarget\",\n get: function get() {\n return this.action.eventTarget;\n }\n }, {\n key: \"eventOptions\",\n get: function get() {\n return this.action.eventOptions;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"handleEvent\",\n value: function handleEvent(event) {\n if (this.willBeInvokedByEvent(event)) {\n this.invokeWithEvent(event);\n }\n }\n }, {\n key: \"eventName\",\n get: function get() {\n return this.action.eventName;\n }\n }, {\n key: \"method\",\n get: function get() {\n var method = this.controller[this.methodName];\n\n if (typeof method == \"function\") {\n return method;\n }\n\n throw new Error(\"Action \\\"\".concat(this.action, \"\\\" references undefined method \\\"\").concat(this.methodName, \"\\\"\"));\n }\n }, {\n key: \"invokeWithEvent\",\n value: function invokeWithEvent(event) {\n var target = event.target,\n currentTarget = event.currentTarget;\n\n try {\n var params = this.action.params;\n var actionEvent = Object.assign(event, {\n params: params\n });\n this.method.call(this.controller, actionEvent);\n this.context.logDebugActivity(this.methodName, {\n event: event,\n target: target,\n currentTarget: currentTarget,\n action: this.methodName\n });\n } catch (error) {\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element,\n index = this.index;\n var detail = {\n identifier: identifier,\n controller: controller,\n element: element,\n index: index,\n event: event\n };\n this.context.handleError(error, \"invoking action \\\"\".concat(this.action, \"\\\"\"), detail);\n }\n }\n }, {\n key: \"willBeInvokedByEvent\",\n value: function willBeInvokedByEvent(event) {\n var eventTarget = event.target;\n\n if (this.element === eventTarget) {\n return true;\n } else if (eventTarget instanceof Element && this.element.contains(eventTarget)) {\n return this.scope.containsElement(eventTarget);\n } else {\n return this.scope.containsElement(this.action.element);\n }\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"methodName\",\n get: function get() {\n return this.action.methodName;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return Binding;\n}();\n\nvar ElementObserver = /*#__PURE__*/function () {\n function ElementObserver(element, delegate) {\n var _this = this;\n\n _classCallCheck(this, ElementObserver);\n\n this.mutationObserverInit = {\n attributes: true,\n childList: true,\n subtree: true\n };\n this.element = element;\n this.started = false;\n this.delegate = delegate;\n this.elements = new Set();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this.processMutations(mutations);\n });\n }\n\n _createClass(ElementObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.refresh();\n }\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n if (this.started) {\n this.mutationObserver.disconnect();\n this.started = false;\n }\n\n callback();\n\n if (!this.started) {\n this.mutationObserver.observe(this.element, this.mutationObserverInit);\n this.started = true;\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var matches = new Set(this.matchElementsInTree());\n\n for (var _i = 0, _Array$from = Array.from(this.elements); _i < _Array$from.length; _i++) {\n var element = _Array$from[_i];\n\n if (!matches.has(element)) {\n this.removeElement(element);\n }\n }\n\n for (var _i2 = 0, _Array$from2 = Array.from(matches); _i2 < _Array$from2.length; _i2++) {\n var _element = _Array$from2[_i2];\n this.addElement(_element);\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator2 = _createForOfIteratorHelper(mutations),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var mutation = _step2.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n if (mutation.type == \"attributes\") {\n this.processAttributeChange(mutation.target, mutation.attributeName);\n } else if (mutation.type == \"childList\") {\n this.processRemovedNodes(mutation.removedNodes);\n this.processAddedNodes(mutation.addedNodes);\n }\n }\n }, {\n key: \"processAttributeChange\",\n value: function processAttributeChange(node, attributeName) {\n var element = node;\n\n if (this.elements.has(element)) {\n if (this.delegate.elementAttributeChanged && this.matchElement(element)) {\n this.delegate.elementAttributeChanged(element, attributeName);\n } else {\n this.removeElement(element);\n }\n } else if (this.matchElement(element)) {\n this.addElement(element);\n }\n }\n }, {\n key: \"processRemovedNodes\",\n value: function processRemovedNodes(nodes) {\n for (var _i3 = 0, _Array$from3 = Array.from(nodes); _i3 < _Array$from3.length; _i3++) {\n var node = _Array$from3[_i3];\n var element = this.elementFromNode(node);\n\n if (element) {\n this.processTree(element, this.removeElement);\n }\n }\n }\n }, {\n key: \"processAddedNodes\",\n value: function processAddedNodes(nodes) {\n for (var _i4 = 0, _Array$from4 = Array.from(nodes); _i4 < _Array$from4.length; _i4++) {\n var node = _Array$from4[_i4];\n var element = this.elementFromNode(node);\n\n if (element && this.elementIsActive(element)) {\n this.processTree(element, this.addElement);\n }\n }\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return this.delegate.matchElement(element);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree() {\n var tree = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.element;\n return this.delegate.matchElementsInTree(tree);\n }\n }, {\n key: \"processTree\",\n value: function processTree(tree, processor) {\n var _iterator3 = _createForOfIteratorHelper(this.matchElementsInTree(tree)),\n _step3;\n\n try {\n for (_iterator3.s(); !(_step3 = _iterator3.n()).done;) {\n var element = _step3.value;\n processor.call(this, element);\n }\n } catch (err) {\n _iterator3.e(err);\n } finally {\n _iterator3.f();\n }\n }\n }, {\n key: \"elementFromNode\",\n value: function elementFromNode(node) {\n if (node.nodeType == Node.ELEMENT_NODE) {\n return node;\n }\n }\n }, {\n key: \"elementIsActive\",\n value: function elementIsActive(element) {\n if (element.isConnected != this.element.isConnected) {\n return false;\n } else {\n return this.element.contains(element);\n }\n }\n }, {\n key: \"addElement\",\n value: function addElement(element) {\n if (!this.elements.has(element)) {\n if (this.elementIsActive(element)) {\n this.elements.add(element);\n\n if (this.delegate.elementMatched) {\n this.delegate.elementMatched(element);\n }\n }\n }\n }\n }, {\n key: \"removeElement\",\n value: function removeElement(element) {\n if (this.elements.has(element)) {\n this.elements.delete(element);\n\n if (this.delegate.elementUnmatched) {\n this.delegate.elementUnmatched(element);\n }\n }\n }\n }]);\n\n return ElementObserver;\n}();\n\nvar AttributeObserver = /*#__PURE__*/function () {\n function AttributeObserver(element, attributeName, delegate) {\n _classCallCheck(this, AttributeObserver);\n\n this.attributeName = attributeName;\n this.delegate = delegate;\n this.elementObserver = new ElementObserver(element, this);\n }\n\n _createClass(AttributeObserver, [{\n key: \"element\",\n get: function get() {\n return this.elementObserver.element;\n }\n }, {\n key: \"selector\",\n get: function get() {\n return \"[\".concat(this.attributeName, \"]\");\n }\n }, {\n key: \"start\",\n value: function start() {\n this.elementObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.elementObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.elementObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.elementObserver.refresh();\n }\n }, {\n key: \"started\",\n get: function get() {\n return this.elementObserver.started;\n }\n }, {\n key: \"matchElement\",\n value: function matchElement(element) {\n return element.hasAttribute(this.attributeName);\n }\n }, {\n key: \"matchElementsInTree\",\n value: function matchElementsInTree(tree) {\n var match = this.matchElement(tree) ? [tree] : [];\n var matches = Array.from(tree.querySelectorAll(this.selector));\n return match.concat(matches);\n }\n }, {\n key: \"elementMatched\",\n value: function elementMatched(element) {\n if (this.delegate.elementMatchedAttribute) {\n this.delegate.elementMatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementUnmatched\",\n value: function elementUnmatched(element) {\n if (this.delegate.elementUnmatchedAttribute) {\n this.delegate.elementUnmatchedAttribute(element, this.attributeName);\n }\n }\n }, {\n key: \"elementAttributeChanged\",\n value: function elementAttributeChanged(element, attributeName) {\n if (this.delegate.elementAttributeValueChanged && this.attributeName == attributeName) {\n this.delegate.elementAttributeValueChanged(element, attributeName);\n }\n }\n }]);\n\n return AttributeObserver;\n}();\n\nvar StringMapObserver = /*#__PURE__*/function () {\n function StringMapObserver(element, delegate) {\n var _this2 = this;\n\n _classCallCheck(this, StringMapObserver);\n\n this.element = element;\n this.delegate = delegate;\n this.started = false;\n this.stringMap = new Map();\n this.mutationObserver = new MutationObserver(function (mutations) {\n return _this2.processMutations(mutations);\n });\n }\n\n _createClass(StringMapObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.started) {\n this.started = true;\n this.mutationObserver.observe(this.element, {\n attributes: true,\n attributeOldValue: true\n });\n this.refresh();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.started) {\n this.mutationObserver.takeRecords();\n this.mutationObserver.disconnect();\n this.started = false;\n }\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n if (this.started) {\n var _iterator4 = _createForOfIteratorHelper(this.knownAttributeNames),\n _step4;\n\n try {\n for (_iterator4.s(); !(_step4 = _iterator4.n()).done;) {\n var attributeName = _step4.value;\n this.refreshAttribute(attributeName, null);\n }\n } catch (err) {\n _iterator4.e(err);\n } finally {\n _iterator4.f();\n }\n }\n }\n }, {\n key: \"processMutations\",\n value: function processMutations(mutations) {\n if (this.started) {\n var _iterator5 = _createForOfIteratorHelper(mutations),\n _step5;\n\n try {\n for (_iterator5.s(); !(_step5 = _iterator5.n()).done;) {\n var mutation = _step5.value;\n this.processMutation(mutation);\n }\n } catch (err) {\n _iterator5.e(err);\n } finally {\n _iterator5.f();\n }\n }\n }\n }, {\n key: \"processMutation\",\n value: function processMutation(mutation) {\n var attributeName = mutation.attributeName;\n\n if (attributeName) {\n this.refreshAttribute(attributeName, mutation.oldValue);\n }\n }\n }, {\n key: \"refreshAttribute\",\n value: function refreshAttribute(attributeName, oldValue) {\n var key = this.delegate.getStringMapKeyForAttribute(attributeName);\n\n if (key != null) {\n if (!this.stringMap.has(attributeName)) {\n this.stringMapKeyAdded(key, attributeName);\n }\n\n var value = this.element.getAttribute(attributeName);\n\n if (this.stringMap.get(attributeName) != value) {\n this.stringMapValueChanged(value, key, oldValue);\n }\n\n if (value == null) {\n var _oldValue = this.stringMap.get(attributeName);\n\n this.stringMap.delete(attributeName);\n if (_oldValue) this.stringMapKeyRemoved(key, attributeName, _oldValue);\n } else {\n this.stringMap.set(attributeName, value);\n }\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n if (this.delegate.stringMapKeyAdded) {\n this.delegate.stringMapKeyAdded(key, attributeName);\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, key, oldValue) {\n if (this.delegate.stringMapValueChanged) {\n this.delegate.stringMapValueChanged(value, key, oldValue);\n }\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n if (this.delegate.stringMapKeyRemoved) {\n this.delegate.stringMapKeyRemoved(key, attributeName, oldValue);\n }\n }\n }, {\n key: \"knownAttributeNames\",\n get: function get() {\n return Array.from(new Set(this.currentAttributeNames.concat(this.recordedAttributeNames)));\n }\n }, {\n key: \"currentAttributeNames\",\n get: function get() {\n return Array.from(this.element.attributes).map(function (attribute) {\n return attribute.name;\n });\n }\n }, {\n key: \"recordedAttributeNames\",\n get: function get() {\n return Array.from(this.stringMap.keys());\n }\n }]);\n\n return StringMapObserver;\n}();\n\nfunction _add(map, key, value) {\n fetch(map, key).add(value);\n}\n\nfunction del(map, key, value) {\n fetch(map, key).delete(value);\n prune(map, key);\n}\n\nfunction fetch(map, key) {\n var values = map.get(key);\n\n if (!values) {\n values = new Set();\n map.set(key, values);\n }\n\n return values;\n}\n\nfunction prune(map, key) {\n var values = map.get(key);\n\n if (values != null && values.size == 0) {\n map.delete(key);\n }\n}\n\nvar Multimap = /*#__PURE__*/function () {\n function Multimap() {\n _classCallCheck(this, Multimap);\n\n this.valuesByKey = new Map();\n }\n\n _createClass(Multimap, [{\n key: \"keys\",\n get: function get() {\n return Array.from(this.valuesByKey.keys());\n }\n }, {\n key: \"values\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (values, set) {\n return values.concat(Array.from(set));\n }, []);\n }\n }, {\n key: \"size\",\n get: function get() {\n var sets = Array.from(this.valuesByKey.values());\n return sets.reduce(function (size, set) {\n return size + set.size;\n }, 0);\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _add(this.valuesByKey, key, value);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n del(this.valuesByKey, key, value);\n }\n }, {\n key: \"has\",\n value: function has(key, value) {\n var values = this.valuesByKey.get(key);\n return values != null && values.has(value);\n }\n }, {\n key: \"hasKey\",\n value: function hasKey(key) {\n return this.valuesByKey.has(key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n var sets = Array.from(this.valuesByKey.values());\n return sets.some(function (set) {\n return set.has(value);\n });\n }\n }, {\n key: \"getValuesForKey\",\n value: function getValuesForKey(key) {\n var values = this.valuesByKey.get(key);\n return values ? Array.from(values) : [];\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n return Array.from(this.valuesByKey).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n key = _ref3[0],\n values = _ref3[1];\n\n return values.has(value);\n }).map(function (_ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n key = _ref5[0],\n values = _ref5[1];\n\n return key;\n });\n }\n }]);\n\n return Multimap;\n}();\n\nvar IndexedMultimap = /*#__PURE__*/function (_Multimap) {\n _inherits(IndexedMultimap, _Multimap);\n\n var _super = _createSuper(IndexedMultimap);\n\n function IndexedMultimap() {\n var _this3;\n\n _classCallCheck(this, IndexedMultimap);\n\n _this3 = _super.call(this);\n _this3.keysByValue = new Map();\n return _this3;\n }\n\n _createClass(IndexedMultimap, [{\n key: \"values\",\n get: function get() {\n return Array.from(this.keysByValue.keys());\n }\n }, {\n key: \"add\",\n value: function add(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"add\", this).call(this, key, value);\n\n _add(this.keysByValue, value, key);\n }\n }, {\n key: \"delete\",\n value: function _delete(key, value) {\n _get(_getPrototypeOf(IndexedMultimap.prototype), \"delete\", this).call(this, key, value);\n\n del(this.keysByValue, value, key);\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(value) {\n return this.keysByValue.has(value);\n }\n }, {\n key: \"getKeysForValue\",\n value: function getKeysForValue(value) {\n var set = this.keysByValue.get(value);\n return set ? Array.from(set) : [];\n }\n }]);\n\n return IndexedMultimap;\n}(Multimap);\n\nvar TokenListObserver = /*#__PURE__*/function () {\n function TokenListObserver(element, attributeName, delegate) {\n _classCallCheck(this, TokenListObserver);\n\n this.attributeObserver = new AttributeObserver(element, attributeName, this);\n this.delegate = delegate;\n this.tokensByElement = new Multimap();\n }\n\n _createClass(TokenListObserver, [{\n key: \"started\",\n get: function get() {\n return this.attributeObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.attributeObserver.start();\n }\n }, {\n key: \"pause\",\n value: function pause(callback) {\n this.attributeObserver.pause(callback);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.attributeObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.attributeObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.attributeObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.attributeObserver.attributeName;\n }\n }, {\n key: \"elementMatchedAttribute\",\n value: function elementMatchedAttribute(element) {\n this.tokensMatched(this.readTokensForElement(element));\n }\n }, {\n key: \"elementAttributeValueChanged\",\n value: function elementAttributeValueChanged(element) {\n var _this$refreshTokensFo = this.refreshTokensForElement(element),\n _this$refreshTokensFo2 = _slicedToArray(_this$refreshTokensFo, 2),\n unmatchedTokens = _this$refreshTokensFo2[0],\n matchedTokens = _this$refreshTokensFo2[1];\n\n this.tokensUnmatched(unmatchedTokens);\n this.tokensMatched(matchedTokens);\n }\n }, {\n key: \"elementUnmatchedAttribute\",\n value: function elementUnmatchedAttribute(element) {\n this.tokensUnmatched(this.tokensByElement.getValuesForKey(element));\n }\n }, {\n key: \"tokensMatched\",\n value: function tokensMatched(tokens) {\n var _this4 = this;\n\n tokens.forEach(function (token) {\n return _this4.tokenMatched(token);\n });\n }\n }, {\n key: \"tokensUnmatched\",\n value: function tokensUnmatched(tokens) {\n var _this5 = this;\n\n tokens.forEach(function (token) {\n return _this5.tokenUnmatched(token);\n });\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n this.delegate.tokenMatched(token);\n this.tokensByElement.add(token.element, token);\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n this.delegate.tokenUnmatched(token);\n this.tokensByElement.delete(token.element, token);\n }\n }, {\n key: \"refreshTokensForElement\",\n value: function refreshTokensForElement(element) {\n var previousTokens = this.tokensByElement.getValuesForKey(element);\n var currentTokens = this.readTokensForElement(element);\n var firstDifferingIndex = zip(previousTokens, currentTokens).findIndex(function (_ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n previousToken = _ref7[0],\n currentToken = _ref7[1];\n\n return !tokensAreEqual(previousToken, currentToken);\n });\n\n if (firstDifferingIndex == -1) {\n return [[], []];\n } else {\n return [previousTokens.slice(firstDifferingIndex), currentTokens.slice(firstDifferingIndex)];\n }\n }\n }, {\n key: \"readTokensForElement\",\n value: function readTokensForElement(element) {\n var attributeName = this.attributeName;\n var tokenString = element.getAttribute(attributeName) || \"\";\n return parseTokenString(tokenString, element, attributeName);\n }\n }]);\n\n return TokenListObserver;\n}();\n\nfunction parseTokenString(tokenString, element, attributeName) {\n return tokenString.trim().split(/\\s+/).filter(function (content) {\n return content.length;\n }).map(function (content, index) {\n return {\n element: element,\n attributeName: attributeName,\n content: content,\n index: index\n };\n });\n}\n\nfunction zip(left, right) {\n var length = Math.max(left.length, right.length);\n return Array.from({\n length: length\n }, function (_, index) {\n return [left[index], right[index]];\n });\n}\n\nfunction tokensAreEqual(left, right) {\n return left && right && left.index == right.index && left.content == right.content;\n}\n\nvar ValueListObserver = /*#__PURE__*/function () {\n function ValueListObserver(element, attributeName, delegate) {\n _classCallCheck(this, ValueListObserver);\n\n this.tokenListObserver = new TokenListObserver(element, attributeName, this);\n this.delegate = delegate;\n this.parseResultsByToken = new WeakMap();\n this.valuesByTokenByElement = new WeakMap();\n }\n\n _createClass(ValueListObserver, [{\n key: \"started\",\n get: function get() {\n return this.tokenListObserver.started;\n }\n }, {\n key: \"start\",\n value: function start() {\n this.tokenListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.tokenListObserver.stop();\n }\n }, {\n key: \"refresh\",\n value: function refresh() {\n this.tokenListObserver.refresh();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.tokenListObserver.element;\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return this.tokenListObserver.attributeName;\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).set(token, value);\n this.delegate.elementMatchedValue(element, value);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(token) {\n var element = token.element;\n\n var _this$fetchParseResul2 = this.fetchParseResultForToken(token),\n value = _this$fetchParseResul2.value;\n\n if (value) {\n this.fetchValuesByTokenForElement(element).delete(token);\n this.delegate.elementUnmatchedValue(element, value);\n }\n }\n }, {\n key: \"fetchParseResultForToken\",\n value: function fetchParseResultForToken(token) {\n var parseResult = this.parseResultsByToken.get(token);\n\n if (!parseResult) {\n parseResult = this.parseToken(token);\n this.parseResultsByToken.set(token, parseResult);\n }\n\n return parseResult;\n }\n }, {\n key: \"fetchValuesByTokenForElement\",\n value: function fetchValuesByTokenForElement(element) {\n var valuesByToken = this.valuesByTokenByElement.get(element);\n\n if (!valuesByToken) {\n valuesByToken = new Map();\n this.valuesByTokenByElement.set(element, valuesByToken);\n }\n\n return valuesByToken;\n }\n }, {\n key: \"parseToken\",\n value: function parseToken(token) {\n try {\n var value = this.delegate.parseValueForToken(token);\n return {\n value: value\n };\n } catch (error) {\n return {\n error: error\n };\n }\n }\n }]);\n\n return ValueListObserver;\n}();\n\nvar BindingObserver = /*#__PURE__*/function () {\n function BindingObserver(context, delegate) {\n _classCallCheck(this, BindingObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.bindingsByAction = new Map();\n }\n\n _createClass(BindingObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.valueListObserver) {\n this.valueListObserver = new ValueListObserver(this.element, this.actionAttribute, this);\n this.valueListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.valueListObserver) {\n this.valueListObserver.stop();\n delete this.valueListObserver;\n this.disconnectAllActions();\n }\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.context.identifier;\n }\n }, {\n key: \"actionAttribute\",\n get: function get() {\n return this.schema.actionAttribute;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.context.schema;\n }\n }, {\n key: \"bindings\",\n get: function get() {\n return Array.from(this.bindingsByAction.values());\n }\n }, {\n key: \"connectAction\",\n value: function connectAction(action) {\n var binding = new Binding(this.context, action);\n this.bindingsByAction.set(action, binding);\n this.delegate.bindingConnected(binding);\n }\n }, {\n key: \"disconnectAction\",\n value: function disconnectAction(action) {\n var binding = this.bindingsByAction.get(action);\n\n if (binding) {\n this.bindingsByAction.delete(action);\n this.delegate.bindingDisconnected(binding);\n }\n }\n }, {\n key: \"disconnectAllActions\",\n value: function disconnectAllActions() {\n var _this6 = this;\n\n this.bindings.forEach(function (binding) {\n return _this6.delegate.bindingDisconnected(binding);\n });\n this.bindingsByAction.clear();\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var action = Action.forToken(token);\n\n if (action.identifier == this.identifier) {\n return action;\n }\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, action) {\n this.connectAction(action);\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, action) {\n this.disconnectAction(action);\n }\n }]);\n\n return BindingObserver;\n}();\n\nvar ValueObserver = /*#__PURE__*/function () {\n function ValueObserver(context, receiver) {\n _classCallCheck(this, ValueObserver);\n\n this.context = context;\n this.receiver = receiver;\n this.stringMapObserver = new StringMapObserver(this.element, this);\n this.valueDescriptorMap = this.controller.valueDescriptorMap;\n this.invokeChangedCallbacksForDefaultValues();\n }\n\n _createClass(ValueObserver, [{\n key: \"start\",\n value: function start() {\n this.stringMapObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.stringMapObserver.stop();\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"controller\",\n get: function get() {\n return this.context.controller;\n }\n }, {\n key: \"getStringMapKeyForAttribute\",\n value: function getStringMapKeyForAttribute(attributeName) {\n if (attributeName in this.valueDescriptorMap) {\n return this.valueDescriptorMap[attributeName].name;\n }\n }\n }, {\n key: \"stringMapKeyAdded\",\n value: function stringMapKeyAdded(key, attributeName) {\n var descriptor = this.valueDescriptorMap[attributeName];\n\n if (!this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), descriptor.writer(descriptor.defaultValue));\n }\n }\n }, {\n key: \"stringMapValueChanged\",\n value: function stringMapValueChanged(value, name, oldValue) {\n var descriptor = this.valueDescriptorNameMap[name];\n if (value === null) return;\n\n if (oldValue === null) {\n oldValue = descriptor.writer(descriptor.defaultValue);\n }\n\n this.invokeChangedCallback(name, value, oldValue);\n }\n }, {\n key: \"stringMapKeyRemoved\",\n value: function stringMapKeyRemoved(key, attributeName, oldValue) {\n var descriptor = this.valueDescriptorNameMap[key];\n\n if (this.hasValue(key)) {\n this.invokeChangedCallback(key, descriptor.writer(this.receiver[key]), oldValue);\n } else {\n this.invokeChangedCallback(key, descriptor.writer(descriptor.defaultValue), oldValue);\n }\n }\n }, {\n key: \"invokeChangedCallbacksForDefaultValues\",\n value: function invokeChangedCallbacksForDefaultValues() {\n var _iterator6 = _createForOfIteratorHelper(this.valueDescriptors),\n _step6;\n\n try {\n for (_iterator6.s(); !(_step6 = _iterator6.n()).done;) {\n var _ref9 = _step6.value;\n var key = _ref9.key;\n var name = _ref9.name;\n var defaultValue = _ref9.defaultValue;\n var writer = _ref9.writer;\n\n if (defaultValue != undefined && !this.controller.data.has(key)) {\n this.invokeChangedCallback(name, writer(defaultValue), undefined);\n }\n }\n } catch (err) {\n _iterator6.e(err);\n } finally {\n _iterator6.f();\n }\n }\n }, {\n key: \"invokeChangedCallback\",\n value: function invokeChangedCallback(name, rawValue, rawOldValue) {\n var changedMethodName = \"\".concat(name, \"Changed\");\n var changedMethod = this.receiver[changedMethodName];\n\n if (typeof changedMethod == \"function\") {\n var descriptor = this.valueDescriptorNameMap[name];\n var value = descriptor.reader(rawValue);\n var oldValue = rawOldValue;\n\n if (rawOldValue) {\n oldValue = descriptor.reader(rawOldValue);\n }\n\n changedMethod.call(this.receiver, value, oldValue);\n }\n }\n }, {\n key: \"valueDescriptors\",\n get: function get() {\n var valueDescriptorMap = this.valueDescriptorMap;\n return Object.keys(valueDescriptorMap).map(function (key) {\n return valueDescriptorMap[key];\n });\n }\n }, {\n key: \"valueDescriptorNameMap\",\n get: function get() {\n var _this7 = this;\n\n var descriptors = {};\n Object.keys(this.valueDescriptorMap).forEach(function (key) {\n var descriptor = _this7.valueDescriptorMap[key];\n descriptors[descriptor.name] = descriptor;\n });\n return descriptors;\n }\n }, {\n key: \"hasValue\",\n value: function hasValue(attributeName) {\n var descriptor = this.valueDescriptorNameMap[attributeName];\n var hasMethodName = \"has\".concat(capitalize(descriptor.name));\n return this.receiver[hasMethodName];\n }\n }]);\n\n return ValueObserver;\n}();\n\nvar TargetObserver = /*#__PURE__*/function () {\n function TargetObserver(context, delegate) {\n _classCallCheck(this, TargetObserver);\n\n this.context = context;\n this.delegate = delegate;\n this.targetsByName = new Multimap();\n }\n\n _createClass(TargetObserver, [{\n key: \"start\",\n value: function start() {\n if (!this.tokenListObserver) {\n this.tokenListObserver = new TokenListObserver(this.element, this.attributeName, this);\n this.tokenListObserver.start();\n }\n }\n }, {\n key: \"stop\",\n value: function stop() {\n if (this.tokenListObserver) {\n this.disconnectAllTargets();\n this.tokenListObserver.stop();\n delete this.tokenListObserver;\n }\n }\n }, {\n key: \"tokenMatched\",\n value: function tokenMatched(_ref10) {\n var element = _ref10.element,\n name = _ref10.content;\n\n if (this.scope.containsElement(element)) {\n this.connectTarget(element, name);\n }\n }\n }, {\n key: \"tokenUnmatched\",\n value: function tokenUnmatched(_ref11) {\n var element = _ref11.element,\n name = _ref11.content;\n this.disconnectTarget(element, name);\n }\n }, {\n key: \"connectTarget\",\n value: function connectTarget(element, name) {\n var _this8 = this;\n\n var _a;\n\n if (!this.targetsByName.has(name, element)) {\n this.targetsByName.add(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this8.delegate.targetConnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectTarget\",\n value: function disconnectTarget(element, name) {\n var _this9 = this;\n\n var _a;\n\n if (this.targetsByName.has(name, element)) {\n this.targetsByName.delete(name, element);\n (_a = this.tokenListObserver) === null || _a === void 0 ? void 0 : _a.pause(function () {\n return _this9.delegate.targetDisconnected(element, name);\n });\n }\n }\n }, {\n key: \"disconnectAllTargets\",\n value: function disconnectAllTargets() {\n var _iterator7 = _createForOfIteratorHelper(this.targetsByName.keys),\n _step7;\n\n try {\n for (_iterator7.s(); !(_step7 = _iterator7.n()).done;) {\n var name = _step7.value;\n\n var _iterator8 = _createForOfIteratorHelper(this.targetsByName.getValuesForKey(name)),\n _step8;\n\n try {\n for (_iterator8.s(); !(_step8 = _iterator8.n()).done;) {\n var element = _step8.value;\n this.disconnectTarget(element, name);\n }\n } catch (err) {\n _iterator8.e(err);\n } finally {\n _iterator8.f();\n }\n }\n } catch (err) {\n _iterator7.e(err);\n } finally {\n _iterator7.f();\n }\n }\n }, {\n key: \"attributeName\",\n get: function get() {\n return \"data-\".concat(this.context.identifier, \"-target\");\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.context.element;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }]);\n\n return TargetObserver;\n}();\n\nvar Context = /*#__PURE__*/function () {\n function Context(module, scope) {\n var _this10 = this;\n\n _classCallCheck(this, Context);\n\n this.logDebugActivity = function (functionName) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var identifier = _this10.identifier,\n controller = _this10.controller,\n element = _this10.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n\n _this10.application.logDebugActivity(_this10.identifier, functionName, detail);\n };\n\n this.module = module;\n this.scope = scope;\n this.controller = new module.controllerConstructor(this);\n this.bindingObserver = new BindingObserver(this, this.dispatcher);\n this.valueObserver = new ValueObserver(this, this.controller);\n this.targetObserver = new TargetObserver(this, this);\n\n try {\n this.controller.initialize();\n this.logDebugActivity(\"initialize\");\n } catch (error) {\n this.handleError(error, \"initializing controller\");\n }\n }\n\n _createClass(Context, [{\n key: \"connect\",\n value: function connect() {\n this.bindingObserver.start();\n this.valueObserver.start();\n this.targetObserver.start();\n\n try {\n this.controller.connect();\n this.logDebugActivity(\"connect\");\n } catch (error) {\n this.handleError(error, \"connecting controller\");\n }\n }\n }, {\n key: \"disconnect\",\n value: function disconnect() {\n try {\n this.controller.disconnect();\n this.logDebugActivity(\"disconnect\");\n } catch (error) {\n this.handleError(error, \"disconnecting controller\");\n }\n\n this.targetObserver.stop();\n this.valueObserver.stop();\n this.bindingObserver.stop();\n }\n }, {\n key: \"application\",\n get: function get() {\n return this.module.application;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.module.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"dispatcher\",\n get: function get() {\n return this.application.dispatcher;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"parentElement\",\n get: function get() {\n return this.element.parentElement;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var identifier = this.identifier,\n controller = this.controller,\n element = this.element;\n detail = Object.assign({\n identifier: identifier,\n controller: controller,\n element: element\n }, detail);\n this.application.handleError(error, \"Error \".concat(message), detail);\n }\n }, {\n key: \"targetConnected\",\n value: function targetConnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetConnected\"), element);\n }\n }, {\n key: \"targetDisconnected\",\n value: function targetDisconnected(element, name) {\n this.invokeControllerMethod(\"\".concat(name, \"TargetDisconnected\"), element);\n }\n }, {\n key: \"invokeControllerMethod\",\n value: function invokeControllerMethod(methodName) {\n var controller = this.controller;\n\n if (typeof controller[methodName] == \"function\") {\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 controller[methodName].apply(controller, args);\n }\n }\n }]);\n\n return Context;\n}();\n\nfunction readInheritableStaticArrayValues(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return Array.from(ancestors.reduce(function (values, constructor) {\n getOwnStaticArrayValues(constructor, propertyName).forEach(function (name) {\n return values.add(name);\n });\n return values;\n }, new Set()));\n}\n\nfunction readInheritableStaticObjectPairs(constructor, propertyName) {\n var ancestors = getAncestorsForConstructor(constructor);\n return ancestors.reduce(function (pairs, constructor) {\n pairs.push.apply(pairs, _toConsumableArray(getOwnStaticObjectPairs(constructor, propertyName)));\n return pairs;\n }, []);\n}\n\nfunction getAncestorsForConstructor(constructor) {\n var ancestors = [];\n\n while (constructor) {\n ancestors.push(constructor);\n constructor = Object.getPrototypeOf(constructor);\n }\n\n return ancestors.reverse();\n}\n\nfunction getOwnStaticArrayValues(constructor, propertyName) {\n var definition = constructor[propertyName];\n return Array.isArray(definition) ? definition : [];\n}\n\nfunction getOwnStaticObjectPairs(constructor, propertyName) {\n var definition = constructor[propertyName];\n return definition ? Object.keys(definition).map(function (key) {\n return [key, definition[key]];\n }) : [];\n}\n\nfunction bless(constructor) {\n return shadow(constructor, getBlessedProperties(constructor));\n}\n\nfunction shadow(constructor, properties) {\n var shadowConstructor = extend(constructor);\n var shadowProperties = getShadowProperties(constructor.prototype, properties);\n Object.defineProperties(shadowConstructor.prototype, shadowProperties);\n return shadowConstructor;\n}\n\nfunction getBlessedProperties(constructor) {\n var blessings = readInheritableStaticArrayValues(constructor, \"blessings\");\n return blessings.reduce(function (blessedProperties, blessing) {\n var properties = blessing(constructor);\n\n for (var key in properties) {\n var descriptor = blessedProperties[key] || {};\n blessedProperties[key] = Object.assign(descriptor, properties[key]);\n }\n\n return blessedProperties;\n }, {});\n}\n\nfunction getShadowProperties(prototype, properties) {\n return getOwnKeys(properties).reduce(function (shadowProperties, key) {\n var descriptor = getShadowedDescriptor(prototype, properties, key);\n\n if (descriptor) {\n Object.assign(shadowProperties, _defineProperty({}, key, descriptor));\n }\n\n return shadowProperties;\n }, {});\n}\n\nfunction getShadowedDescriptor(prototype, properties, key) {\n var shadowingDescriptor = Object.getOwnPropertyDescriptor(prototype, key);\n var shadowedByValue = shadowingDescriptor && \"value\" in shadowingDescriptor;\n\n if (!shadowedByValue) {\n var descriptor = Object.getOwnPropertyDescriptor(properties, key).value;\n\n if (shadowingDescriptor) {\n descriptor.get = shadowingDescriptor.get || descriptor.get;\n descriptor.set = shadowingDescriptor.set || descriptor.set;\n }\n\n return descriptor;\n }\n}\n\nvar getOwnKeys = function () {\n if (typeof Object.getOwnPropertySymbols == \"function\") {\n return function (object) {\n return [].concat(_toConsumableArray(Object.getOwnPropertyNames(object)), _toConsumableArray(Object.getOwnPropertySymbols(object)));\n };\n } else {\n return Object.getOwnPropertyNames;\n }\n}();\n\nvar extend = function () {\n function extendWithReflect(constructor) {\n function extended() {\n return Reflect.construct(constructor, arguments, this instanceof extended ? this.constructor : void 0);\n }\n\n extended.prototype = Object.create(constructor.prototype, {\n constructor: {\n value: extended\n }\n });\n Reflect.setPrototypeOf(extended, constructor);\n return extended;\n }\n\n function testReflectExtension() {\n var a = function a() {\n this.a.call(this);\n };\n\n var b = extendWithReflect(a);\n\n b.prototype.a = function () {};\n\n return new b();\n }\n\n try {\n testReflectExtension();\n return extendWithReflect;\n } catch (error) {\n return function (constructor) {\n return /*#__PURE__*/function (_constructor) {\n _inherits(extended, _constructor);\n\n var _super2 = _createSuper(extended);\n\n function extended() {\n _classCallCheck(this, extended);\n\n return _super2.apply(this, arguments);\n }\n\n return extended;\n }(constructor);\n };\n }\n}();\n\nfunction blessDefinition(definition) {\n return {\n identifier: definition.identifier,\n controllerConstructor: bless(definition.controllerConstructor)\n };\n}\n\nvar Module = /*#__PURE__*/function () {\n function Module(application, definition) {\n _classCallCheck(this, Module);\n\n this.application = application;\n this.definition = blessDefinition(definition);\n this.contextsByScope = new WeakMap();\n this.connectedContexts = new Set();\n }\n\n _createClass(Module, [{\n key: \"identifier\",\n get: function get() {\n return this.definition.identifier;\n }\n }, {\n key: \"controllerConstructor\",\n get: function get() {\n return this.definition.controllerConstructor;\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return Array.from(this.connectedContexts);\n }\n }, {\n key: \"connectContextForScope\",\n value: function connectContextForScope(scope) {\n var context = this.fetchContextForScope(scope);\n this.connectedContexts.add(context);\n context.connect();\n }\n }, {\n key: \"disconnectContextForScope\",\n value: function disconnectContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (context) {\n this.connectedContexts.delete(context);\n context.disconnect();\n }\n }\n }, {\n key: \"fetchContextForScope\",\n value: function fetchContextForScope(scope) {\n var context = this.contextsByScope.get(scope);\n\n if (!context) {\n context = new Context(this, scope);\n this.contextsByScope.set(scope, context);\n }\n\n return context;\n }\n }]);\n\n return Module;\n}();\n\nvar ClassMap = /*#__PURE__*/function () {\n function ClassMap(scope) {\n _classCallCheck(this, ClassMap);\n\n this.scope = scope;\n }\n\n _createClass(ClassMap, [{\n key: \"has\",\n value: function has(name) {\n return this.data.has(this.getDataKey(name));\n }\n }, {\n key: \"get\",\n value: function get(name) {\n return this.getAll(name)[0];\n }\n }, {\n key: \"getAll\",\n value: function getAll(name) {\n var tokenString = this.data.get(this.getDataKey(name)) || \"\";\n return tokenize(tokenString);\n }\n }, {\n key: \"getAttributeName\",\n value: function getAttributeName(name) {\n return this.data.getAttributeNameForKey(this.getDataKey(name));\n }\n }, {\n key: \"getDataKey\",\n value: function getDataKey(name) {\n return \"\".concat(name, \"-class\");\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }]);\n\n return ClassMap;\n}();\n\nvar DataMap = /*#__PURE__*/function () {\n function DataMap(scope) {\n _classCallCheck(this, DataMap);\n\n this.scope = scope;\n }\n\n _createClass(DataMap, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"get\",\n value: function get(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.getAttribute(name);\n }\n }, {\n key: \"set\",\n value: function set(key, value) {\n var name = this.getAttributeNameForKey(key);\n this.element.setAttribute(name, value);\n return this.get(key);\n }\n }, {\n key: \"has\",\n value: function has(key) {\n var name = this.getAttributeNameForKey(key);\n return this.element.hasAttribute(name);\n }\n }, {\n key: \"delete\",\n value: function _delete(key) {\n if (this.has(key)) {\n var name = this.getAttributeNameForKey(key);\n this.element.removeAttribute(name);\n return true;\n } else {\n return false;\n }\n }\n }, {\n key: \"getAttributeNameForKey\",\n value: function getAttributeNameForKey(key) {\n return \"data-\".concat(this.identifier, \"-\").concat(dasherize(key));\n }\n }]);\n\n return DataMap;\n}();\n\nvar Guide = /*#__PURE__*/function () {\n function Guide(logger) {\n _classCallCheck(this, Guide);\n\n this.warnedKeysByObject = new WeakMap();\n this.logger = logger;\n }\n\n _createClass(Guide, [{\n key: \"warn\",\n value: function warn(object, key, message) {\n var warnedKeys = this.warnedKeysByObject.get(object);\n\n if (!warnedKeys) {\n warnedKeys = new Set();\n this.warnedKeysByObject.set(object, warnedKeys);\n }\n\n if (!warnedKeys.has(key)) {\n warnedKeys.add(key);\n this.logger.warn(message, object);\n }\n }\n }]);\n\n return Guide;\n}();\n\nfunction attributeValueContainsToken(attributeName, token) {\n return \"[\".concat(attributeName, \"~=\\\"\").concat(token, \"\\\"]\");\n}\n\nvar TargetSet = /*#__PURE__*/function () {\n function TargetSet(scope) {\n _classCallCheck(this, TargetSet);\n\n this.scope = scope;\n }\n\n _createClass(TargetSet, [{\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.scope.schema;\n }\n }, {\n key: \"has\",\n value: function has(targetName) {\n return this.find(targetName) != null;\n }\n }, {\n key: \"find\",\n value: function find() {\n var _this11 = this;\n\n for (var _len2 = arguments.length, targetNames = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n targetNames[_key2] = arguments[_key2];\n }\n\n return targetNames.reduce(function (target, targetName) {\n return target || _this11.findTarget(targetName) || _this11.findLegacyTarget(targetName);\n }, undefined);\n }\n }, {\n key: \"findAll\",\n value: function findAll() {\n var _this12 = this;\n\n for (var _len3 = arguments.length, targetNames = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n targetNames[_key3] = arguments[_key3];\n }\n\n return targetNames.reduce(function (targets, targetName) {\n return [].concat(_toConsumableArray(targets), _toConsumableArray(_this12.findAllTargets(targetName)), _toConsumableArray(_this12.findAllLegacyTargets(targetName)));\n }, []);\n }\n }, {\n key: \"findTarget\",\n value: function findTarget(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findElement(selector);\n }\n }, {\n key: \"findAllTargets\",\n value: function findAllTargets(targetName) {\n var selector = this.getSelectorForTargetName(targetName);\n return this.scope.findAllElements(selector);\n }\n }, {\n key: \"getSelectorForTargetName\",\n value: function getSelectorForTargetName(targetName) {\n var attributeName = this.schema.targetAttributeForScope(this.identifier);\n return attributeValueContainsToken(attributeName, targetName);\n }\n }, {\n key: \"findLegacyTarget\",\n value: function findLegacyTarget(targetName) {\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.deprecate(this.scope.findElement(selector), targetName);\n }\n }, {\n key: \"findAllLegacyTargets\",\n value: function findAllLegacyTargets(targetName) {\n var _this13 = this;\n\n var selector = this.getLegacySelectorForTargetName(targetName);\n return this.scope.findAllElements(selector).map(function (element) {\n return _this13.deprecate(element, targetName);\n });\n }\n }, {\n key: \"getLegacySelectorForTargetName\",\n value: function getLegacySelectorForTargetName(targetName) {\n var targetDescriptor = \"\".concat(this.identifier, \".\").concat(targetName);\n return attributeValueContainsToken(this.schema.targetAttribute, targetDescriptor);\n }\n }, {\n key: \"deprecate\",\n value: function deprecate(element, targetName) {\n if (element) {\n var identifier = this.identifier;\n var attributeName = this.schema.targetAttribute;\n var revisedAttributeName = this.schema.targetAttributeForScope(identifier);\n this.guide.warn(element, \"target:\".concat(targetName), \"Please replace \".concat(attributeName, \"=\\\"\").concat(identifier, \".\").concat(targetName, \"\\\" with \").concat(revisedAttributeName, \"=\\\"\").concat(targetName, \"\\\". \") + \"The \".concat(attributeName, \" attribute is deprecated and will be removed in a future version of Stimulus.\"));\n }\n\n return element;\n }\n }, {\n key: \"guide\",\n get: function get() {\n return this.scope.guide;\n }\n }]);\n\n return TargetSet;\n}();\n\nvar Scope = /*#__PURE__*/function () {\n function Scope(schema, element, identifier, logger) {\n var _this14 = this;\n\n _classCallCheck(this, Scope);\n\n this.targets = new TargetSet(this);\n this.classes = new ClassMap(this);\n this.data = new DataMap(this);\n\n this.containsElement = function (element) {\n return element.closest(_this14.controllerSelector) === _this14.element;\n };\n\n this.schema = schema;\n this.element = element;\n this.identifier = identifier;\n this.guide = new Guide(logger);\n }\n\n _createClass(Scope, [{\n key: \"findElement\",\n value: function findElement(selector) {\n return this.element.matches(selector) ? this.element : this.queryElements(selector).find(this.containsElement);\n }\n }, {\n key: \"findAllElements\",\n value: function findAllElements(selector) {\n return [].concat(_toConsumableArray(this.element.matches(selector) ? [this.element] : []), _toConsumableArray(this.queryElements(selector).filter(this.containsElement)));\n }\n }, {\n key: \"queryElements\",\n value: function queryElements(selector) {\n return Array.from(this.element.querySelectorAll(selector));\n }\n }, {\n key: \"controllerSelector\",\n get: function get() {\n return attributeValueContainsToken(this.schema.controllerAttribute, this.identifier);\n }\n }]);\n\n return Scope;\n}();\n\nvar ScopeObserver = /*#__PURE__*/function () {\n function ScopeObserver(element, schema, delegate) {\n _classCallCheck(this, ScopeObserver);\n\n this.element = element;\n this.schema = schema;\n this.delegate = delegate;\n this.valueListObserver = new ValueListObserver(this.element, this.controllerAttribute, this);\n this.scopesByIdentifierByElement = new WeakMap();\n this.scopeReferenceCounts = new WeakMap();\n }\n\n _createClass(ScopeObserver, [{\n key: \"start\",\n value: function start() {\n this.valueListObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.valueListObserver.stop();\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"parseValueForToken\",\n value: function parseValueForToken(token) {\n var element = token.element,\n identifier = token.content;\n var scopesByIdentifier = this.fetchScopesByIdentifierForElement(element);\n var scope = scopesByIdentifier.get(identifier);\n\n if (!scope) {\n scope = this.delegate.createScopeForElementAndIdentifier(element, identifier);\n scopesByIdentifier.set(identifier, scope);\n }\n\n return scope;\n }\n }, {\n key: \"elementMatchedValue\",\n value: function elementMatchedValue(element, value) {\n var referenceCount = (this.scopeReferenceCounts.get(value) || 0) + 1;\n this.scopeReferenceCounts.set(value, referenceCount);\n\n if (referenceCount == 1) {\n this.delegate.scopeConnected(value);\n }\n }\n }, {\n key: \"elementUnmatchedValue\",\n value: function elementUnmatchedValue(element, value) {\n var referenceCount = this.scopeReferenceCounts.get(value);\n\n if (referenceCount) {\n this.scopeReferenceCounts.set(value, referenceCount - 1);\n\n if (referenceCount == 1) {\n this.delegate.scopeDisconnected(value);\n }\n }\n }\n }, {\n key: \"fetchScopesByIdentifierForElement\",\n value: function fetchScopesByIdentifierForElement(element) {\n var scopesByIdentifier = this.scopesByIdentifierByElement.get(element);\n\n if (!scopesByIdentifier) {\n scopesByIdentifier = new Map();\n this.scopesByIdentifierByElement.set(element, scopesByIdentifier);\n }\n\n return scopesByIdentifier;\n }\n }]);\n\n return ScopeObserver;\n}();\n\nvar Router = /*#__PURE__*/function () {\n function Router(application) {\n _classCallCheck(this, Router);\n\n this.application = application;\n this.scopeObserver = new ScopeObserver(this.element, this.schema, this);\n this.scopesByIdentifier = new Multimap();\n this.modulesByIdentifier = new Map();\n }\n\n _createClass(Router, [{\n key: \"element\",\n get: function get() {\n return this.application.element;\n }\n }, {\n key: \"schema\",\n get: function get() {\n return this.application.schema;\n }\n }, {\n key: \"logger\",\n get: function get() {\n return this.application.logger;\n }\n }, {\n key: \"controllerAttribute\",\n get: function get() {\n return this.schema.controllerAttribute;\n }\n }, {\n key: \"modules\",\n get: function get() {\n return Array.from(this.modulesByIdentifier.values());\n }\n }, {\n key: \"contexts\",\n get: function get() {\n return this.modules.reduce(function (contexts, module) {\n return contexts.concat(module.contexts);\n }, []);\n }\n }, {\n key: \"start\",\n value: function start() {\n this.scopeObserver.start();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.scopeObserver.stop();\n }\n }, {\n key: \"loadDefinition\",\n value: function loadDefinition(definition) {\n this.unloadIdentifier(definition.identifier);\n var module = new Module(this.application, definition);\n this.connectModule(module);\n }\n }, {\n key: \"unloadIdentifier\",\n value: function unloadIdentifier(identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n this.disconnectModule(module);\n }\n }\n }, {\n key: \"getContextForElementAndIdentifier\",\n value: function getContextForElementAndIdentifier(element, identifier) {\n var module = this.modulesByIdentifier.get(identifier);\n\n if (module) {\n return module.contexts.find(function (context) {\n return context.element == element;\n });\n }\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n this.application.handleError(error, message, detail);\n }\n }, {\n key: \"createScopeForElementAndIdentifier\",\n value: function createScopeForElementAndIdentifier(element, identifier) {\n return new Scope(this.schema, element, identifier, this.logger);\n }\n }, {\n key: \"scopeConnected\",\n value: function scopeConnected(scope) {\n this.scopesByIdentifier.add(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.connectContextForScope(scope);\n }\n }\n }, {\n key: \"scopeDisconnected\",\n value: function scopeDisconnected(scope) {\n this.scopesByIdentifier.delete(scope.identifier, scope);\n var module = this.modulesByIdentifier.get(scope.identifier);\n\n if (module) {\n module.disconnectContextForScope(scope);\n }\n }\n }, {\n key: \"connectModule\",\n value: function connectModule(module) {\n this.modulesByIdentifier.set(module.identifier, module);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.connectContextForScope(scope);\n });\n }\n }, {\n key: \"disconnectModule\",\n value: function disconnectModule(module) {\n this.modulesByIdentifier.delete(module.identifier);\n var scopes = this.scopesByIdentifier.getValuesForKey(module.identifier);\n scopes.forEach(function (scope) {\n return module.disconnectContextForScope(scope);\n });\n }\n }]);\n\n return Router;\n}();\n\nvar defaultSchema = {\n controllerAttribute: \"data-controller\",\n actionAttribute: \"data-action\",\n targetAttribute: \"data-target\",\n targetAttributeForScope: function targetAttributeForScope(identifier) {\n return \"data-\".concat(identifier, \"-target\");\n }\n};\n\nvar Application = /*#__PURE__*/function () {\n function Application() {\n var _this15 = this;\n\n var element = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document.documentElement;\n var schema = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : defaultSchema;\n\n _classCallCheck(this, Application);\n\n this.logger = console;\n this.debug = false;\n\n this.logDebugActivity = function (identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n if (_this15.debug) {\n _this15.logFormattedMessage(identifier, functionName, detail);\n }\n };\n\n this.element = element;\n this.schema = schema;\n this.dispatcher = new Dispatcher(this);\n this.router = new Router(this);\n }\n\n _createClass(Application, [{\n key: \"start\",\n value: function () {\n var _start = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.next = 2;\n return domReady();\n\n case 2:\n this.logDebugActivity(\"application\", \"starting\");\n this.dispatcher.start();\n this.router.start();\n this.logDebugActivity(\"application\", \"start\");\n\n case 6:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function start() {\n return _start.apply(this, arguments);\n }\n\n return start;\n }()\n }, {\n key: \"stop\",\n value: function stop() {\n this.logDebugActivity(\"application\", \"stopping\");\n this.dispatcher.stop();\n this.router.stop();\n this.logDebugActivity(\"application\", \"stop\");\n }\n }, {\n key: \"register\",\n value: function register(identifier, controllerConstructor) {\n if (controllerConstructor.shouldLoad) {\n this.load({\n identifier: identifier,\n controllerConstructor: controllerConstructor\n });\n }\n }\n }, {\n key: \"load\",\n value: function load(head) {\n var _this16 = this;\n\n for (var _len4 = arguments.length, rest = new Array(_len4 > 1 ? _len4 - 1 : 0), _key4 = 1; _key4 < _len4; _key4++) {\n rest[_key4 - 1] = arguments[_key4];\n }\n\n var definitions = Array.isArray(head) ? head : [head].concat(rest);\n definitions.forEach(function (definition) {\n return _this16.router.loadDefinition(definition);\n });\n }\n }, {\n key: \"unload\",\n value: function unload(head) {\n var _this17 = this;\n\n for (var _len5 = arguments.length, rest = new Array(_len5 > 1 ? _len5 - 1 : 0), _key5 = 1; _key5 < _len5; _key5++) {\n rest[_key5 - 1] = arguments[_key5];\n }\n\n var identifiers = Array.isArray(head) ? head : [head].concat(rest);\n identifiers.forEach(function (identifier) {\n return _this17.router.unloadIdentifier(identifier);\n });\n }\n }, {\n key: \"controllers\",\n get: function get() {\n return this.router.contexts.map(function (context) {\n return context.controller;\n });\n }\n }, {\n key: \"getControllerForElementAndIdentifier\",\n value: function getControllerForElementAndIdentifier(element, identifier) {\n var context = this.router.getContextForElementAndIdentifier(element, identifier);\n return context ? context.controller : null;\n }\n }, {\n key: \"handleError\",\n value: function handleError(error, message, detail) {\n var _a;\n\n this.logger.error(\"%s\\n\\n%o\\n\\n%o\", message, error, detail);\n (_a = window.onerror) === null || _a === void 0 ? void 0 : _a.call(window, message, \"\", 0, 0, error);\n }\n }, {\n key: \"logFormattedMessage\",\n value: function logFormattedMessage(identifier, functionName) {\n var detail = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n detail = Object.assign({\n application: this\n }, detail);\n this.logger.groupCollapsed(\"\".concat(identifier, \" #\").concat(functionName));\n this.logger.log(\"details:\", Object.assign({}, detail));\n this.logger.groupEnd();\n }\n }], [{\n key: \"start\",\n value: function start(element, schema) {\n var application = new Application(element, schema);\n application.start();\n return application;\n }\n }]);\n\n return Application;\n}();\n\nfunction domReady() {\n return new Promise(function (resolve) {\n if (document.readyState == \"loading\") {\n document.addEventListener(\"DOMContentLoaded\", function () {\n return resolve();\n });\n } else {\n resolve();\n }\n });\n}\n\nfunction ClassPropertiesBlessing(constructor) {\n var classes = readInheritableStaticArrayValues(constructor, \"classes\");\n return classes.reduce(function (properties, classDefinition) {\n return Object.assign(properties, propertiesForClassDefinition(classDefinition));\n }, {});\n}\n\nfunction propertiesForClassDefinition(key) {\n var _ref12;\n\n return _ref12 = {}, _defineProperty(_ref12, \"\".concat(key, \"Class\"), {\n get: function get() {\n var classes = this.classes;\n\n if (classes.has(key)) {\n return classes.get(key);\n } else {\n var attribute = classes.getAttributeName(key);\n throw new Error(\"Missing attribute \\\"\".concat(attribute, \"\\\"\"));\n }\n }\n }), _defineProperty(_ref12, \"\".concat(key, \"Classes\"), {\n get: function get() {\n return this.classes.getAll(key);\n }\n }), _defineProperty(_ref12, \"has\".concat(capitalize(key), \"Class\"), {\n get: function get() {\n return this.classes.has(key);\n }\n }), _ref12;\n}\n\nfunction TargetPropertiesBlessing(constructor) {\n var targets = readInheritableStaticArrayValues(constructor, \"targets\");\n return targets.reduce(function (properties, targetDefinition) {\n return Object.assign(properties, propertiesForTargetDefinition(targetDefinition));\n }, {});\n}\n\nfunction propertiesForTargetDefinition(name) {\n var _ref13;\n\n return _ref13 = {}, _defineProperty(_ref13, \"\".concat(name, \"Target\"), {\n get: function get() {\n var target = this.targets.find(name);\n\n if (target) {\n return target;\n } else {\n throw new Error(\"Missing target element \\\"\".concat(name, \"\\\" for \\\"\").concat(this.identifier, \"\\\" controller\"));\n }\n }\n }), _defineProperty(_ref13, \"\".concat(name, \"Targets\"), {\n get: function get() {\n return this.targets.findAll(name);\n }\n }), _defineProperty(_ref13, \"has\".concat(capitalize(name), \"Target\"), {\n get: function get() {\n return this.targets.has(name);\n }\n }), _ref13;\n}\n\nfunction ValuePropertiesBlessing(constructor) {\n var valueDefinitionPairs = readInheritableStaticObjectPairs(constructor, \"values\");\n var propertyDescriptorMap = {\n valueDescriptorMap: {\n get: function get() {\n var _this18 = this;\n\n return valueDefinitionPairs.reduce(function (result, valueDefinitionPair) {\n var valueDescriptor = parseValueDefinitionPair(valueDefinitionPair);\n\n var attributeName = _this18.data.getAttributeNameForKey(valueDescriptor.key);\n\n return Object.assign(result, _defineProperty({}, attributeName, valueDescriptor));\n }, {});\n }\n }\n };\n return valueDefinitionPairs.reduce(function (properties, valueDefinitionPair) {\n return Object.assign(properties, propertiesForValueDefinitionPair(valueDefinitionPair));\n }, propertyDescriptorMap);\n}\n\nfunction propertiesForValueDefinitionPair(valueDefinitionPair) {\n var _ref14;\n\n var definition = parseValueDefinitionPair(valueDefinitionPair);\n var key = definition.key,\n name = definition.name,\n read = definition.reader,\n write = definition.writer;\n return _ref14 = {}, _defineProperty(_ref14, name, {\n get: function get() {\n var value = this.data.get(key);\n\n if (value !== null) {\n return read(value);\n } else {\n return definition.defaultValue;\n }\n },\n set: function set(value) {\n if (value === undefined) {\n this.data.delete(key);\n } else {\n this.data.set(key, write(value));\n }\n }\n }), _defineProperty(_ref14, \"has\".concat(capitalize(name)), {\n get: function get() {\n return this.data.has(key) || definition.hasCustomDefaultValue;\n }\n }), _ref14;\n}\n\nfunction parseValueDefinitionPair(_ref15) {\n var _ref16 = _slicedToArray(_ref15, 2),\n token = _ref16[0],\n typeDefinition = _ref16[1];\n\n return valueDescriptorForTokenAndTypeDefinition(token, typeDefinition);\n}\n\nfunction parseValueTypeConstant(constant) {\n switch (constant) {\n case Array:\n return \"array\";\n\n case Boolean:\n return \"boolean\";\n\n case Number:\n return \"number\";\n\n case Object:\n return \"object\";\n\n case String:\n return \"string\";\n }\n}\n\nfunction parseValueTypeDefault(defaultValue) {\n switch (_typeof(defaultValue)) {\n case \"boolean\":\n return \"boolean\";\n\n case \"number\":\n return \"number\";\n\n case \"string\":\n return \"string\";\n }\n\n if (Array.isArray(defaultValue)) return \"array\";\n if (Object.prototype.toString.call(defaultValue) === \"[object Object]\") return \"object\";\n}\n\nfunction parseValueTypeObject(typeObject) {\n var typeFromObject = parseValueTypeConstant(typeObject.type);\n\n if (typeFromObject) {\n var defaultValueType = parseValueTypeDefault(typeObject.default);\n\n if (typeFromObject !== defaultValueType) {\n throw new Error(\"Type \\\"\".concat(typeFromObject, \"\\\" must match the type of the default value. Given default value: \\\"\").concat(typeObject.default, \"\\\" as \\\"\").concat(defaultValueType, \"\\\"\"));\n }\n\n return typeFromObject;\n }\n}\n\nfunction parseValueTypeDefinition(typeDefinition) {\n var typeFromObject = parseValueTypeObject(typeDefinition);\n var typeFromDefaultValue = parseValueTypeDefault(typeDefinition);\n var typeFromConstant = parseValueTypeConstant(typeDefinition);\n var type = typeFromObject || typeFromDefaultValue || typeFromConstant;\n if (type) return type;\n throw new Error(\"Unknown value type \\\"\".concat(typeDefinition, \"\\\"\"));\n}\n\nfunction defaultValueForDefinition(typeDefinition) {\n var constant = parseValueTypeConstant(typeDefinition);\n if (constant) return defaultValuesByType[constant];\n var defaultValue = typeDefinition.default;\n if (defaultValue !== undefined) return defaultValue;\n return typeDefinition;\n}\n\nfunction valueDescriptorForTokenAndTypeDefinition(token, typeDefinition) {\n var key = \"\".concat(dasherize(token), \"-value\");\n var type = parseValueTypeDefinition(typeDefinition);\n return {\n type: type,\n key: key,\n name: camelize(key),\n\n get defaultValue() {\n return defaultValueForDefinition(typeDefinition);\n },\n\n get hasCustomDefaultValue() {\n return parseValueTypeDefault(typeDefinition) !== undefined;\n },\n\n reader: readers[type],\n writer: writers[type] || writers.default\n };\n}\n\nvar defaultValuesByType = {\n get array() {\n return [];\n },\n\n boolean: false,\n number: 0,\n\n get object() {\n return {};\n },\n\n string: \"\"\n};\nvar readers = {\n array: function array(value) {\n var array = JSON.parse(value);\n\n if (!Array.isArray(array)) {\n throw new TypeError(\"Expected array\");\n }\n\n return array;\n },\n boolean: function boolean(value) {\n return !(value == \"0\" || value == \"false\");\n },\n number: function number(value) {\n return Number(value);\n },\n object: function object(value) {\n var object = JSON.parse(value);\n\n if (object === null || _typeof(object) != \"object\" || Array.isArray(object)) {\n throw new TypeError(\"Expected object\");\n }\n\n return object;\n },\n string: function string(value) {\n return value;\n }\n};\nvar writers = {\n default: writeString,\n array: writeJSON,\n object: writeJSON\n};\n\nfunction writeJSON(value) {\n return JSON.stringify(value);\n}\n\nfunction writeString(value) {\n return \"\".concat(value);\n}\n\nvar Controller = /*#__PURE__*/function () {\n function Controller(context) {\n _classCallCheck(this, Controller);\n\n this.context = context;\n }\n\n _createClass(Controller, [{\n key: \"application\",\n get: function get() {\n return this.context.application;\n }\n }, {\n key: \"scope\",\n get: function get() {\n return this.context.scope;\n }\n }, {\n key: \"element\",\n get: function get() {\n return this.scope.element;\n }\n }, {\n key: \"identifier\",\n get: function get() {\n return this.scope.identifier;\n }\n }, {\n key: \"targets\",\n get: function get() {\n return this.scope.targets;\n }\n }, {\n key: \"classes\",\n get: function get() {\n return this.scope.classes;\n }\n }, {\n key: \"data\",\n get: function get() {\n return this.scope.data;\n }\n }, {\n key: \"initialize\",\n value: function initialize() {}\n }, {\n key: \"connect\",\n value: function connect() {}\n }, {\n key: \"disconnect\",\n value: function disconnect() {}\n }, {\n key: \"dispatch\",\n value: function dispatch(eventName) {\n var _ref17 = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {},\n _ref17$target = _ref17.target,\n target = _ref17$target === void 0 ? this.element : _ref17$target,\n _ref17$detail = _ref17.detail,\n detail = _ref17$detail === void 0 ? {} : _ref17$detail,\n _ref17$prefix = _ref17.prefix,\n prefix = _ref17$prefix === void 0 ? this.identifier : _ref17$prefix,\n _ref17$bubbles = _ref17.bubbles,\n bubbles = _ref17$bubbles === void 0 ? true : _ref17$bubbles,\n _ref17$cancelable = _ref17.cancelable,\n cancelable = _ref17$cancelable === void 0 ? true : _ref17$cancelable;\n\n var type = prefix ? \"\".concat(prefix, \":\").concat(eventName) : eventName;\n var event = new CustomEvent(type, {\n detail: detail,\n bubbles: bubbles,\n cancelable: cancelable\n });\n target.dispatchEvent(event);\n return event;\n }\n }], [{\n key: \"shouldLoad\",\n get: function get() {\n return true;\n }\n }]);\n\n return Controller;\n}();\n\nController.blessings = [ClassPropertiesBlessing, TargetPropertiesBlessing, ValuePropertiesBlessing];\nController.targets = [];\nController.values = {};\nexport { Application, AttributeObserver, Context, Controller, ElementObserver, IndexedMultimap, Multimap, StringMapObserver, TokenListObserver, ValueListObserver, _add as add, defaultSchema, del, fetch, prune };","module.exports = require(\"regenerator-runtime\");\n","module.exports = function (module) {\n if (!module.webpackPolyfill) {\n module.deprecate = function () {};\n\n module.paths = []; // module.parent = undefined by default\n\n if (!module.children) module.children = [];\n Object.defineProperty(module, \"loaded\", {\n enumerable: true,\n get: function get() {\n return module.l;\n }\n });\n Object.defineProperty(module, \"id\", {\n enumerable: true,\n get: function get() {\n return module.i;\n }\n });\n module.webpackPolyfill = 1;\n }\n\n return module;\n};","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/Icn-56-1-cc7fab3c4d722ce85cbb6ba6931219c2.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/Icn-56-2-7a36533f138051492c40dbdb01ffe91c.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/bike-dc182fb3f60decdad4583ef67a788808.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/bus-bf7609ca8e73eac88cd25ce563678244.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/driving-8faeb814396175498c9b487777820bf7.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 1-d3e6039ef049354a51ee69b38ae818b1.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 2-bf1249c6293b29dc9382fac1092921e9.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/about/train-bc15209707a1071cd6947dc4a6bc77b2.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/environment/group_33676_orange-60b9726cc9a7072b965ccc11a5f3baa3.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/environment/group_33676_orange_140-96dafee04a6ce75fe535b39175a8ec89.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/cross-3fd20ce1e8df692bf40dcc74de9a8e2f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/documents-0906c59301090fcf67d9a70826f0ea60.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/experience01-d95d08f6b0c97b736ce8259970714607.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/experience02-59e7f7307d6c353d019fe1ed8977d6f0.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/experience03-dd4199de43ee139119988c1830d90387.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/experience04-9a2bd2f4e4332ec3aaa1d0560fc0883d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/experience05-e5b26664a6d056056c3267b73b56f158.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/hospital-307b88259cf00bff5cf016a2d9f613c4.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/love-fc3586aa9382058bb68d3ff5b83ee0e8.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/experience/stethoscope-aa781d9320b0a93c04fe8d8987c6e98e.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/news/news_default-c8084bdc06ee710375fdbf6926b30b50.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/homepage/news/wave-9aa674a8487d5b99f1ae432599ddc946.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/assistant-24ac9776e8ec5b93f87d2d00478da7ca.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/doctor-52db20ecc5f0e4b01e1f23b713e08dba.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/druggist-9899cd33095d86d5dcf5f6ab28c9cb27.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/it-ee36ce2f8afcd81cb27b932a9101691a.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/nurse-4f5fae98ccc133812c2f79a1681db8b0.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/recruit-5d5e9c585b7eea739b071d3a1aa405c1.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/recruit_ipad-8ebf5335c50dcd353e02e87ebd49b204.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/join_us/recruit_mobile-9b2ff0507501b81a9b0dea05ff07e499.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/1-66b31ef9ff885f329b606462be7fa479.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/2-11d35acbe88c055c52db447e3b18970f.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/3-92cd4d85175e77464b1e80cc587a55b6.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/33676-b0e40a6672e3ba55380b0a062b4c074b.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/4-37a82072db7171b458d63f01c265d065.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/5-04e2afe3e00c19e23811d87d5da7bf1f.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/6-c2d1542495746b3f91a485d7bfd63424.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-1-829cfd74516eeb29d4fad410577acd70.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-2-1fee43d6f74d565189f35eb9732e02bc.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-3-802bf8341c7a914bd84a52e62b35fde8.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-4-9cb122cc1da243ed91fc73ff1a1fc4f6.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-5-d07ff21d206f7d1fc350453bb363cc51.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-new-2-daede9f89a37dc53f8bcadc7fd90da5c.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/clinic-new-5-0080316b29c6aa89652d455ad387635e.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/doctor-1-2545c02006689b6308d4cab5018eee40.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/doctor-2-de37963ea51f0f0898dd2f158b9cf67c.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/doctor-3-23bfdf186fb9a7a871c3ca8471045c46.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/happy-asian-family-laying-on-bed-with-smile-FSAN5FC 1-9080ff8eaf2575cd38189f0cfa1fa4f4.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/33819-b91dce140e238f8351717f8c1d79d160.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/33820-ad83045c1e06e9435f48f62d23f9b351.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/33821-2882ab7b06183f7e8282b97e7384a3c9.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/33822-974cc0e0d89eaeea7db43b9ec6a6f4e4.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/33823-e6b954798f2e77233e5e53b337d3b812.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/34436-6322d36d4629baf109b82dcdfa276cda.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/ear-4912af5f8fedbf73fcd489dde8acd084.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/flower-field-1a800dcd64eeee9bdce2b11ca3540fb3.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/heart-708d7cf364cc9b150182db0145282d32.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/lock-6970a96d2585a4af92fffb3b4f83ea6d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/message-95c27d6c7586d0dc972fd3929e092f20.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/main/protected-heart-a993790e8830c2e784dbb7546eff4445.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/upload-1b8621b2f285fd44c622ffcc8d03dc29.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/wave-white-13536a7ce977811d2520e738522ec5aa.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/about/郭家穎-36b20e155ac8d25198778eb6e3448854.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/1-0bc573364d2e3f82c4053a4aa96904dd.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/2-2cec918ae135a76d8c3780120900a901.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/3-43799edbe6719261ea7d3701abf65f7f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/4-f65a5aff9094e81a9c34fb1bba25359c.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/5-67f80b55bc1b2e4cb16b75cd8d1c6f56.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/6-e6acae7545b160475508ee1f07ad6ddd.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/7-9317abd681d33b016786d6092acd63ae.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/8-58fa53d58e331c06fe5b2eac91086e90.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/business_cooperation/main/medical-team-828b4621abfe9492209e2f8372ea5d2c.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/1-9a6597570168479b344cbbfa393665e4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/2-2751fc91deaf201c07b67223bd566412.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/fb-gray-e06d25f60200ce092ec77aa235778bd7.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/fb-orange-9874fb6b02dd37278282793d8b915845.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/line-gray-05de2b43cc4d5ffe41fa17a42294fadd.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/line-orange-86418fe780c594adb916020c3fe016ca.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/link-gray-043f201f5414e4c31f5f27db39dc0ebb.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/link-orange-94399a4a771149a86dff67cb0a5bd5c2.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/pagination/first-9747419c0fc6a5d806a2e2c71aa4fa2f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/pagination/last-d65a73ebd339b35fd808832b4a1b46d4.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/pagination/next-1e01967d7081afa36ca7ad8e2fffd60e.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/pagination/prev-d466c39b7d7b02e4c963a7d897bc6e2e.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/depth_views/toggle-d1d1411b62e2732904b7a53677c1607d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/about/1-e61f22d164fad98a2076def8fc42cd85.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/about/1-mobile-3a3b73daead89c0f7fe6646f6b00eef1.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/depth_views/01-3ad62b9c366e36472eaa69cde7b945cf.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/depth_views/1-627c51f850ab0d48b5a369f4ecbe2023.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/depth_views/2-18f7d32569a0a891a2691e136af1fbdd.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/depth_views/3-e82c92675ba0437208bf702268242d89.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder/1-5acb2bd84772967fe98bcc3c66d159ec.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder/1-ipad-b5439212d1b0ce2762b6117a361b22f9.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder/1-mobile-2a16be716f060a17fcca1e93c75fec29.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder_doctor/1-e4a9230b53ed015675060ed3f6253091.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder_doctor/1-mobile-f84d5af5d35dcc7ef72bd1c45362b8f7.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/founder_doctor/arc_md-6fc7ce9b00a51ec814f7f92406747641.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/1-b4688d2c06409bbf55dc7e6414d3edc3.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/2-5e5ef55367f5830831385a04f49db93f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/3-f6951420f63a83e20e0b538c5a9d1d25.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_01-a35ae51d4c8654f78e7229c761b18753.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_02-4ef65e143de58d7d32d4d6e2a411d50a.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_03-a7a5fe0a55028ec093e19fa25746a23b.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_04-252e42a41208844a16f8bf1a3d99d418.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_05-0b5e6adada493aa66a327825bead7c46.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_06-e617f69de867b4213f7d65de923a6aea.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_07-9262fc3351f409cb16d3d97c01b4e370.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_08-6bbd61a9d661b198f2bf61c29fb735d5.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_09-97ca4a777251b844ac31879f903ec287.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_10-8a56a4e402f7748102aeaaf0b33cdf09.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_11-e9dfeddcb4c0485d8c3d33ac51267105.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_12-f67f7da32b397edb6d9bf5505c85b078.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_13-5217947e0ae7f7f479442418cf88e96c.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/patient_recommends/img_avatar_14-77397a95756dec54324450ff9ce41fb4.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/public_sciences/1-2376a33373d2d2883a842a3b6b0c65af.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/public_sciences/2-e74a9ff9d3c0b36405c19cab8f65238b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/questions/1-15c33ee472610ca14bea539a1913d589.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/questions/2-1cc261995decc45ed35b623918e032b4.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/homepage/questions/3-038024b63428ea2f95142e7b586e47f8.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/1-9cfc674eb7958b9b352fa33732a307be.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/2-138e57abd33960eed7594fba20dcf53a.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/3-82949fd8b08f0768cf45d3f8d6158b3e.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/4-8a3b21978ca7a3cfae27205b7d82d8c4.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/5-f81f95ad2967c32c25a1109be314ab78.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/an-insomnia-woman-on-bed-b1455e42f5741ffc2beee1c3f033c324.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/autonomic-nervous-system-80be73180f83c9332554d2013615e892.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/brain-52a951bc8dee8d2483780ae4386de0c3.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/check-e3a9a937f4987a38f8cbd7b9cc9ac7e9.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/happy-asian-family-laying-on-bed-with-smile-1e77598ec13c861449db866d54925ce9.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/meditation-on-beach-c600ba1e71b13b08804af59edcf4de8c.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/meditation-on-beach_720px-f3937d0eadb489ae36bad0bf1260dc16.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/nerve-1ac1a52b56db95924e8c87dd0833e19b.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/pathology-9eff73f30b8d28c8100141d710f2a597.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/public-sciences-1-ed560099efe967f01e6a9f5318deb33b.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/public-sciences-2-03e74be212757ef3c47c96b4762c5766.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/public-sciences-3-37dd1395cbdbc49d57ce98f3923e23e0.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/upset-working-woman-c34332bc17dc47f395b3cd6e7adf85a1.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_1/upset-working-woman-1-2564057d0d596c7b8084709555509464.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/1-8e4977bbde0555ee2f73becbbd8d5132.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-a1b7696353eebbec355b7655429fa36a.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-1-03f260e9fef4133b3e0c885c9a677d5c.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-2-c1f8a8308f574b262f02217d77b9cc4d.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-3-606c6f9338950d3c19c54a9da62f30b2.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-4-718c3c89db4314c235c869be63b761c7.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-5-7bb6aae955c8f7f8a39e6764ee75681e.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/2-6-de40f4c62fcb91de00821c13214550c7.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/3-499475278736a174128116c8da3b634b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/4-c122ad6de3e6a466189317e84a8c7bf8.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/5-e0e1399c16fa93ad3c6e16f56d990fc1.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_science_2/6-e1536b6122bb3f6842deb4bb80ec1fea.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/Frame175-6e16157289866506b4d4022ff80804e0.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/Frame176-62dcfe4d1d9de7899a3e096586202705.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/Frame177-409696bfdf59219ef3cfb01cdc9b7750.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/main/1-3cccc8a461d5e83f166a2e98ae061749.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/main/2-4d2ccc394bf5623c7dcf9290e1f84555.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/main/3-276d8a1785e650cd4169783bc5fb51d4.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/public_sciences/main/4-1a16c91a75194929b378a0b71f352285.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/shared/34436-c506f7492fc45a985b07b9113f55ddf1.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/shared/arrow_downward-bddc5ebcf43d6c3ef0858155e577fdec.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/shared/search-1aafdd763930641f243220d08bc2ae7f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/shared/testing-231b4c0ceefa2b6eabe71473bd646100.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/1-38a7df7d977b12ecbbf6def75d9d422d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/2-9a66ec341b0fc361919046d774381f43.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/3-f22ecd77e880acc7cbbffa119062e028.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/4-14290a86fae7a4433c502c9529514783.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/5-e1d992acbcdb5d6d7f3c5c2dfb7c3e94.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/features/6-108d23cb8c25ab189f5625b326716ec5.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/01-7652bf4c5f3543ac42850ec17ae96194.jpeg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/02-c3089b66f518eac8fd7ea55decc4328f.png\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/03-a80a271a2a4aa4bf8a42616d67e2a4ba.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/04-f59a129ad7f649dd5cf14909c9035f26.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/05-5ada8be60398b5d009e3d3dc791c57ff.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/06-f7f36e0f42620ccf8a9805acbe3c703b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/07-a53505dce4a37474118123fbc48a9344.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/08-a381b97325d062d2c44b1b97700e1e53.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/09-9da62c96b969e63be2e31d6138400622.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pages/treatment_features/introduces/10-018d49ee1f8a7e851d66cf89b4ddd263.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/1-56355fdc0ad860add81e47e25c5c5191.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/1_md-56355fdc0ad860add81e47e25c5c5191.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/2-6973985f2e3a0448ef4071d4a2b884a4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/2_md-6973985f2e3a0448ef4071d4a2b884a4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/3-89f6cb153dfcdc5aba1b64a43d15e87b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/3_md-89f6cb153dfcdc5aba1b64a43d15e87b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/4-0d763687ec5d181c394d0f136e9d7d34.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/pay_services/4_md-0d763687ec5d181c394d0f136e9d7d34.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/down-arrow-2bcde0130aa34d4b770d02cf29103b44.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/favicon-6f8f98b8760d433561d999692f52e878.png\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-ebf270a39d6b7b403988c8e071eabb51.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-lg-ec6b4640f3e98da0e462c59fa8863f68.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-line-47050eba258b79c9964854e2eaea98d1.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-line-lg-8afd34f3443c9c14c8e29e4bd6f0eea2.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-line-md-fd906933944385e6667982726e644293.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-line-xl-496b8bba8fd7bdac9c5fe6497c4d621a.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-md-66f16a4a36f1385dc5badfc01bd28e6e.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/bg-xl-8697134afd05eb45fb160fa764570b5c.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/facebook-cef8c411116725f9705171450973cebb.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/line-294b701f822b862534a3185f2233ccf3.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/map-784b101278c76ef5425286c8df41d854.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/footer/top-c21ec9b56a1cc63b81c6758950ca7bc8.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/bg-206abaad1589d74d48293a2383e70a67.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/bg-md-f1db20cba56f64486179e1130376e2b8.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/booking-35951fe4da769e8a06895203d2144efc.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/close-677e198369f639ff99bcdd75ffe8344b.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/hamburger-cea9de22886e9716678c02d258e1781f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/line-c575c5e4962cb5d5a054999574e0de4d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/logo-7ee3234d833e45344377701741745c88.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/logo-black-6a4649b1ff2a5fc107e63a35fd97abab.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/logo-color-5a5bad47485e0ad645ccdb0ec4f99f06.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/logo-white-258c296a2f7c03640acdaf9c08eafd0d.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/main-b5b5f7a49fb8a385a5c03a3bda5f126a.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/main-375-ba97cc71e789edd7f5727ca95aca7765.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/main-lg-46e02852bd26d1d311a9afbdd9fbe99b.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/main-md-8c5d72ca9c3e011c7a746fca5261faad.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/main-xl-5714f7c5fbe5e433f1dfa1151012b079.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover0-cea444da0d67147e83eaeb0482a9fa80.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover1-14d055b04597452df90daa73a6800486.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover2-a254704a961e6ac105cbaa18e0934d49.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover3-81d7e449703d9605ab3abc9f8ed93e03.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover4-a956a583ab4fb91cdef17691ebac4ab0.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover5-ca834e2915951b8c89258407bd9e84e4.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/nav-cover7-fa30eaa2d24246380657674e18fb3407.jpg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/header/time-e93ab2d4d394ff58ff27f29b6afcbf2b.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/left-arrow-a93f247148fe505d0b36481b01daf1e5.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/right-arrow-b793a98837a25a3f8a22c42675b8859f.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/up-arrow-6f901c318d773b182188a7f09f0120d2.svg\";","module.exports = __webpack_public_path__ + \"media/images/default/shared/wave-74e4652dd94e10d5dc0bdbf1ebec38e3.svg\";","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/*\nUnobtrusive JavaScript\nhttps://github.com/rails/rails/blob/main/actionview/app/assets/javascripts\nReleased under the MIT license\n */\n;\n(function () {\n var context = this;\n (function () {\n (function () {\n this.Rails = {\n linkClickSelector: 'a[data-confirm], a[data-method], a[data-remote]:not([disabled]), a[data-disable-with], a[data-disable]',\n buttonClickSelector: {\n selector: 'button[data-remote]:not([form]), button[data-confirm]:not([form])',\n exclude: 'form button'\n },\n inputChangeSelector: 'select[data-remote], input[data-remote], textarea[data-remote]',\n formSubmitSelector: 'form:not([data-turbo=true])',\n formInputClickSelector: 'form:not([data-turbo=true]) input[type=submit], form:not([data-turbo=true]) input[type=image], form:not([data-turbo=true]) button[type=submit], form:not([data-turbo=true]) button:not([type]), input[type=submit][form], input[type=image][form], button[type=submit][form], button[form]:not([type])',\n formDisableSelector: 'input[data-disable-with]:enabled, button[data-disable-with]:enabled, textarea[data-disable-with]:enabled, input[data-disable]:enabled, button[data-disable]:enabled, textarea[data-disable]:enabled',\n formEnableSelector: 'input[data-disable-with]:disabled, button[data-disable-with]:disabled, textarea[data-disable-with]:disabled, input[data-disable]:disabled, button[data-disable]:disabled, textarea[data-disable]:disabled',\n fileInputSelector: 'input[name][type=file]:not([disabled])',\n linkDisableSelector: 'a[data-disable-with], a[data-disable]',\n buttonDisableSelector: 'button[data-remote][data-disable-with], button[data-remote][data-disable]'\n };\n }).call(this);\n }).call(context);\n var Rails = context.Rails;\n (function () {\n (function () {\n var nonce;\n nonce = null;\n\n Rails.loadCSPNonce = function () {\n var ref;\n return nonce = (ref = document.querySelector(\"meta[name=csp-nonce]\")) != null ? ref.content : void 0;\n };\n\n Rails.cspNonce = function () {\n return nonce != null ? nonce : Rails.loadCSPNonce();\n };\n }).call(this);\n (function () {\n var expando, m;\n m = Element.prototype.matches || Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector;\n\n Rails.matches = function (element, selector) {\n if (selector.exclude != null) {\n return m.call(element, selector.selector) && !m.call(element, selector.exclude);\n } else {\n return m.call(element, selector);\n }\n };\n\n expando = '_ujsData';\n\n Rails.getData = function (element, key) {\n var ref;\n return (ref = element[expando]) != null ? ref[key] : void 0;\n };\n\n Rails.setData = function (element, key, value) {\n if (element[expando] == null) {\n element[expando] = {};\n }\n\n return element[expando][key] = value;\n };\n\n Rails.$ = function (selector) {\n return Array.prototype.slice.call(document.querySelectorAll(selector));\n };\n }).call(this);\n (function () {\n var $, csrfParam, csrfToken;\n $ = Rails.$;\n\n csrfToken = Rails.csrfToken = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-token]');\n return meta && meta.content;\n };\n\n csrfParam = Rails.csrfParam = function () {\n var meta;\n meta = document.querySelector('meta[name=csrf-param]');\n return meta && meta.content;\n };\n\n Rails.CSRFProtection = function (xhr) {\n var token;\n token = csrfToken();\n\n if (token != null) {\n return xhr.setRequestHeader('X-CSRF-Token', token);\n }\n };\n\n Rails.refreshCSRFTokens = function () {\n var param, token;\n token = csrfToken();\n param = csrfParam();\n\n if (token != null && param != null) {\n return $('form input[name=\"' + param + '\"]').forEach(function (input) {\n return input.value = token;\n });\n }\n };\n }).call(this);\n (function () {\n var CustomEvent, fire, matches, preventDefault;\n matches = Rails.matches;\n CustomEvent = window.CustomEvent;\n\n if (typeof CustomEvent !== 'function') {\n CustomEvent = function CustomEvent(event, params) {\n var evt;\n evt = document.createEvent('CustomEvent');\n evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);\n return evt;\n };\n\n CustomEvent.prototype = window.Event.prototype;\n preventDefault = CustomEvent.prototype.preventDefault;\n\n CustomEvent.prototype.preventDefault = function () {\n var result;\n result = preventDefault.call(this);\n\n if (this.cancelable && !this.defaultPrevented) {\n Object.defineProperty(this, 'defaultPrevented', {\n get: function get() {\n return true;\n }\n });\n }\n\n return result;\n };\n }\n\n fire = Rails.fire = function (obj, name, data) {\n var event;\n event = new CustomEvent(name, {\n bubbles: true,\n cancelable: true,\n detail: data\n });\n obj.dispatchEvent(event);\n return !event.defaultPrevented;\n };\n\n Rails.stopEverything = function (e) {\n fire(e.target, 'ujs:everythingStopped');\n e.preventDefault();\n e.stopPropagation();\n return e.stopImmediatePropagation();\n };\n\n Rails.delegate = function (element, selector, eventType, handler) {\n return element.addEventListener(eventType, function (e) {\n var target;\n target = e.target;\n\n while (!(!(target instanceof Element) || matches(target, selector))) {\n target = target.parentNode;\n }\n\n if (target instanceof Element && handler.call(target, e) === false) {\n e.preventDefault();\n return e.stopPropagation();\n }\n });\n };\n }).call(this);\n (function () {\n var AcceptHeaders, CSRFProtection, createXHR, cspNonce, fire, prepareOptions, processResponse;\n cspNonce = Rails.cspNonce, CSRFProtection = Rails.CSRFProtection, fire = Rails.fire;\n AcceptHeaders = {\n '*': '*/*',\n text: 'text/plain',\n html: 'text/html',\n xml: 'application/xml, text/xml',\n json: 'application/json, text/javascript',\n script: 'text/javascript, application/javascript, application/ecmascript, application/x-ecmascript'\n };\n\n Rails.ajax = function (options) {\n var xhr;\n options = prepareOptions(options);\n xhr = createXHR(options, function () {\n var ref, response;\n response = processResponse((ref = xhr.response) != null ? ref : xhr.responseText, xhr.getResponseHeader('Content-Type'));\n\n if (Math.floor(xhr.status / 100) === 2) {\n if (typeof options.success === \"function\") {\n options.success(response, xhr.statusText, xhr);\n }\n } else {\n if (typeof options.error === \"function\") {\n options.error(response, xhr.statusText, xhr);\n }\n }\n\n return typeof options.complete === \"function\" ? options.complete(xhr, xhr.statusText) : void 0;\n });\n\n if (options.beforeSend != null && !options.beforeSend(xhr, options)) {\n return false;\n }\n\n if (xhr.readyState === XMLHttpRequest.OPENED) {\n return xhr.send(options.data);\n }\n };\n\n prepareOptions = function prepareOptions(options) {\n options.url = options.url || location.href;\n options.type = options.type.toUpperCase();\n\n if (options.type === 'GET' && options.data) {\n if (options.url.indexOf('?') < 0) {\n options.url += '?' + options.data;\n } else {\n options.url += '&' + options.data;\n }\n }\n\n if (AcceptHeaders[options.dataType] == null) {\n options.dataType = '*';\n }\n\n options.accept = AcceptHeaders[options.dataType];\n\n if (options.dataType !== '*') {\n options.accept += ', */*; q=0.01';\n }\n\n return options;\n };\n\n createXHR = function createXHR(options, done) {\n var xhr;\n xhr = new XMLHttpRequest();\n xhr.open(options.type, options.url, true);\n xhr.setRequestHeader('Accept', options.accept);\n\n if (typeof options.data === 'string') {\n xhr.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded; charset=UTF-8');\n }\n\n if (!options.crossDomain) {\n xhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n CSRFProtection(xhr);\n }\n\n xhr.withCredentials = !!options.withCredentials;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState === XMLHttpRequest.DONE) {\n return done(xhr);\n }\n };\n\n return xhr;\n };\n\n processResponse = function processResponse(response, type) {\n var parser, script;\n\n if (typeof response === 'string' && typeof type === 'string') {\n if (type.match(/\\bjson\\b/)) {\n try {\n response = JSON.parse(response);\n } catch (error) {}\n } else if (type.match(/\\b(?:java|ecma)script\\b/)) {\n script = document.createElement('script');\n script.setAttribute('nonce', cspNonce());\n script.text = response;\n document.head.appendChild(script).parentNode.removeChild(script);\n } else if (type.match(/\\b(xml|html|svg)\\b/)) {\n parser = new DOMParser();\n type = type.replace(/;.+/, '');\n\n try {\n response = parser.parseFromString(response, type);\n } catch (error) {}\n }\n }\n\n return response;\n };\n\n Rails.href = function (element) {\n return element.href;\n };\n\n Rails.isCrossDomain = function (url) {\n var e, originAnchor, urlAnchor;\n originAnchor = document.createElement('a');\n originAnchor.href = location.href;\n urlAnchor = document.createElement('a');\n\n try {\n urlAnchor.href = url;\n return !((!urlAnchor.protocol || urlAnchor.protocol === ':') && !urlAnchor.host || originAnchor.protocol + '//' + originAnchor.host === urlAnchor.protocol + '//' + urlAnchor.host);\n } catch (error) {\n e = error;\n return true;\n }\n };\n }).call(this);\n (function () {\n var matches, toArray;\n matches = Rails.matches;\n\n toArray = function toArray(e) {\n return Array.prototype.slice.call(e);\n };\n\n Rails.serializeElement = function (element, additionalParam) {\n var inputs, params;\n inputs = [element];\n\n if (matches(element, 'form')) {\n inputs = toArray(element.elements);\n }\n\n params = [];\n inputs.forEach(function (input) {\n if (!input.name || input.disabled) {\n return;\n }\n\n if (matches(input, 'fieldset[disabled] *')) {\n return;\n }\n\n if (matches(input, 'select')) {\n return toArray(input.options).forEach(function (option) {\n if (option.selected) {\n return params.push({\n name: input.name,\n value: option.value\n });\n }\n });\n } else if (input.checked || ['radio', 'checkbox', 'submit'].indexOf(input.type) === -1) {\n return params.push({\n name: input.name,\n value: input.value\n });\n }\n });\n\n if (additionalParam) {\n params.push(additionalParam);\n }\n\n return params.map(function (param) {\n if (param.name != null) {\n return encodeURIComponent(param.name) + \"=\" + encodeURIComponent(param.value);\n } else {\n return param;\n }\n }).join('&');\n };\n\n Rails.formElements = function (form, selector) {\n if (matches(form, 'form')) {\n return toArray(form.elements).filter(function (el) {\n return matches(el, selector);\n });\n } else {\n return toArray(form.querySelectorAll(selector));\n }\n };\n }).call(this);\n (function () {\n var allowAction, fire, stopEverything;\n fire = Rails.fire, stopEverything = Rails.stopEverything;\n\n Rails.handleConfirm = function (e) {\n if (!allowAction(this)) {\n return stopEverything(e);\n }\n };\n\n Rails.confirm = function (message, element) {\n return confirm(message);\n };\n\n allowAction = function allowAction(element) {\n var answer, callback, message;\n message = element.getAttribute('data-confirm');\n\n if (!message) {\n return true;\n }\n\n answer = false;\n\n if (fire(element, 'confirm')) {\n try {\n answer = Rails.confirm(message, element);\n } catch (error) {}\n\n callback = fire(element, 'confirm:complete', [answer]);\n }\n\n return answer && callback;\n };\n }).call(this);\n (function () {\n var disableFormElement, disableFormElements, disableLinkElement, enableFormElement, enableFormElements, enableLinkElement, formElements, getData, isXhrRedirect, matches, setData, stopEverything;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, stopEverything = Rails.stopEverything, formElements = Rails.formElements;\n\n Rails.handleDisabledElement = function (e) {\n var element;\n element = this;\n\n if (element.disabled) {\n return stopEverything(e);\n }\n };\n\n Rails.enableElement = function (e) {\n var element;\n\n if (e instanceof Event) {\n if (isXhrRedirect(e)) {\n return;\n }\n\n element = e.target;\n } else {\n element = e;\n }\n\n if (matches(element, Rails.linkDisableSelector)) {\n return enableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formEnableSelector)) {\n return enableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return enableFormElements(element);\n }\n };\n\n Rails.disableElement = function (e) {\n var element;\n element = e instanceof Event ? e.target : e;\n\n if (matches(element, Rails.linkDisableSelector)) {\n return disableLinkElement(element);\n } else if (matches(element, Rails.buttonDisableSelector) || matches(element, Rails.formDisableSelector)) {\n return disableFormElement(element);\n } else if (matches(element, Rails.formSubmitSelector)) {\n return disableFormElements(element);\n }\n };\n\n disableLinkElement = function disableLinkElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n }\n\n element.addEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', true);\n };\n\n enableLinkElement = function enableLinkElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n element.innerHTML = originalText;\n setData(element, 'ujs:enable-with', null);\n }\n\n element.removeEventListener('click', stopEverything);\n return setData(element, 'ujs:disabled', null);\n };\n\n disableFormElements = function disableFormElements(form) {\n return formElements(form, Rails.formDisableSelector).forEach(disableFormElement);\n };\n\n disableFormElement = function disableFormElement(element) {\n var replacement;\n\n if (getData(element, 'ujs:disabled')) {\n return;\n }\n\n replacement = element.getAttribute('data-disable-with');\n\n if (replacement != null) {\n if (matches(element, 'button')) {\n setData(element, 'ujs:enable-with', element.innerHTML);\n element.innerHTML = replacement;\n } else {\n setData(element, 'ujs:enable-with', element.value);\n element.value = replacement;\n }\n }\n\n element.disabled = true;\n return setData(element, 'ujs:disabled', true);\n };\n\n enableFormElements = function enableFormElements(form) {\n return formElements(form, Rails.formEnableSelector).forEach(enableFormElement);\n };\n\n enableFormElement = function enableFormElement(element) {\n var originalText;\n originalText = getData(element, 'ujs:enable-with');\n\n if (originalText != null) {\n if (matches(element, 'button')) {\n element.innerHTML = originalText;\n } else {\n element.value = originalText;\n }\n\n setData(element, 'ujs:enable-with', null);\n }\n\n element.disabled = false;\n return setData(element, 'ujs:disabled', null);\n };\n\n isXhrRedirect = function isXhrRedirect(event) {\n var ref, xhr;\n xhr = (ref = event.detail) != null ? ref[0] : void 0;\n return (xhr != null ? xhr.getResponseHeader(\"X-Xhr-Redirect\") : void 0) != null;\n };\n }).call(this);\n (function () {\n var stopEverything;\n stopEverything = Rails.stopEverything;\n\n Rails.handleMethod = function (e) {\n var csrfParam, csrfToken, form, formContent, href, link, method;\n link = this;\n method = link.getAttribute('data-method');\n\n if (!method) {\n return;\n }\n\n href = Rails.href(link);\n csrfToken = Rails.csrfToken();\n csrfParam = Rails.csrfParam();\n form = document.createElement('form');\n formContent = \"\";\n\n if (csrfParam != null && csrfToken != null && !Rails.isCrossDomain(href)) {\n formContent += \"\";\n }\n\n formContent += '';\n form.method = 'post';\n form.action = href;\n form.target = link.target;\n form.innerHTML = formContent;\n form.style.display = 'none';\n document.body.appendChild(form);\n form.querySelector('[type=\"submit\"]').click();\n return stopEverything(e);\n };\n }).call(this);\n (function () {\n var ajax,\n fire,\n getData,\n isCrossDomain,\n isRemote,\n matches,\n serializeElement,\n setData,\n stopEverything,\n slice = [].slice;\n matches = Rails.matches, getData = Rails.getData, setData = Rails.setData, fire = Rails.fire, stopEverything = Rails.stopEverything, ajax = Rails.ajax, isCrossDomain = Rails.isCrossDomain, serializeElement = Rails.serializeElement;\n\n isRemote = function isRemote(element) {\n var value;\n value = element.getAttribute('data-remote');\n return value != null && value !== 'false';\n };\n\n Rails.handleRemote = function (e) {\n var button, data, dataType, element, method, url, withCredentials;\n element = this;\n\n if (!isRemote(element)) {\n return true;\n }\n\n if (!fire(element, 'ajax:before')) {\n fire(element, 'ajax:stopped');\n return false;\n }\n\n withCredentials = element.getAttribute('data-with-credentials');\n dataType = element.getAttribute('data-type') || 'script';\n\n if (matches(element, Rails.formSubmitSelector)) {\n button = getData(element, 'ujs:submit-button');\n method = getData(element, 'ujs:submit-button-formmethod') || element.method;\n url = getData(element, 'ujs:submit-button-formaction') || element.getAttribute('action') || location.href;\n\n if (method.toUpperCase() === 'GET') {\n url = url.replace(/\\?.*$/, '');\n }\n\n if (element.enctype === 'multipart/form-data') {\n data = new FormData(element);\n\n if (button != null) {\n data.append(button.name, button.value);\n }\n } else {\n data = serializeElement(element, button);\n }\n\n setData(element, 'ujs:submit-button', null);\n setData(element, 'ujs:submit-button-formmethod', null);\n setData(element, 'ujs:submit-button-formaction', null);\n } else if (matches(element, Rails.buttonClickSelector) || matches(element, Rails.inputChangeSelector)) {\n method = element.getAttribute('data-method');\n url = element.getAttribute('data-url');\n data = serializeElement(element, element.getAttribute('data-params'));\n } else {\n method = element.getAttribute('data-method');\n url = Rails.href(element);\n data = element.getAttribute('data-params');\n }\n\n ajax({\n type: method || 'GET',\n url: url,\n data: data,\n dataType: dataType,\n beforeSend: function beforeSend(xhr, options) {\n if (fire(element, 'ajax:beforeSend', [xhr, options])) {\n return fire(element, 'ajax:send', [xhr]);\n } else {\n fire(element, 'ajax:stopped');\n return false;\n }\n },\n success: function success() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:success', args);\n },\n error: function error() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:error', args);\n },\n complete: function complete() {\n var args;\n args = 1 <= arguments.length ? slice.call(arguments, 0) : [];\n return fire(element, 'ajax:complete', args);\n },\n crossDomain: isCrossDomain(url),\n withCredentials: withCredentials != null && withCredentials !== 'false'\n });\n return stopEverything(e);\n };\n\n Rails.formSubmitButtonClick = function (e) {\n var button, form;\n button = this;\n form = button.form;\n\n if (!form) {\n return;\n }\n\n if (button.name) {\n setData(form, 'ujs:submit-button', {\n name: button.name,\n value: button.value\n });\n }\n\n setData(form, 'ujs:formnovalidate-button', button.formNoValidate);\n setData(form, 'ujs:submit-button-formaction', button.getAttribute('formaction'));\n return setData(form, 'ujs:submit-button-formmethod', button.getAttribute('formmethod'));\n };\n\n Rails.preventInsignificantClick = function (e) {\n var data, insignificantMetaClick, link, metaClick, method, nonPrimaryMouseClick;\n link = this;\n method = (link.getAttribute('data-method') || 'GET').toUpperCase();\n data = link.getAttribute('data-params');\n metaClick = e.metaKey || e.ctrlKey;\n insignificantMetaClick = metaClick && method === 'GET' && !data;\n nonPrimaryMouseClick = e.button != null && e.button !== 0;\n\n if (nonPrimaryMouseClick || insignificantMetaClick) {\n return e.stopImmediatePropagation();\n }\n };\n }).call(this);\n (function () {\n var $, CSRFProtection, delegate, disableElement, enableElement, fire, formSubmitButtonClick, getData, handleConfirm, handleDisabledElement, handleMethod, handleRemote, loadCSPNonce, preventInsignificantClick, refreshCSRFTokens;\n fire = Rails.fire, delegate = Rails.delegate, getData = Rails.getData, $ = Rails.$, refreshCSRFTokens = Rails.refreshCSRFTokens, CSRFProtection = Rails.CSRFProtection, loadCSPNonce = Rails.loadCSPNonce, enableElement = Rails.enableElement, disableElement = Rails.disableElement, handleDisabledElement = Rails.handleDisabledElement, handleConfirm = Rails.handleConfirm, preventInsignificantClick = Rails.preventInsignificantClick, handleRemote = Rails.handleRemote, formSubmitButtonClick = Rails.formSubmitButtonClick, handleMethod = Rails.handleMethod;\n\n if (typeof jQuery !== \"undefined\" && jQuery !== null && jQuery.ajax != null) {\n if (jQuery.rails) {\n throw new Error('If you load both jquery_ujs and rails-ujs, use rails-ujs only.');\n }\n\n jQuery.rails = Rails;\n jQuery.ajaxPrefilter(function (options, originalOptions, xhr) {\n if (!options.crossDomain) {\n return CSRFProtection(xhr);\n }\n });\n }\n\n Rails.start = function () {\n if (window._rails_loaded) {\n throw new Error('rails-ujs has already been loaded!');\n }\n\n window.addEventListener('pageshow', function () {\n $(Rails.formEnableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n return $(Rails.linkDisableSelector).forEach(function (el) {\n if (getData(el, 'ujs:disabled')) {\n return enableElement(el);\n }\n });\n });\n delegate(document, Rails.linkDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.linkDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.buttonDisableSelector, 'ajax:stopped', enableElement);\n delegate(document, Rails.linkClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.linkClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.linkClickSelector, 'click', handleConfirm);\n delegate(document, Rails.linkClickSelector, 'click', disableElement);\n delegate(document, Rails.linkClickSelector, 'click', handleRemote);\n delegate(document, Rails.linkClickSelector, 'click', handleMethod);\n delegate(document, Rails.buttonClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.buttonClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleConfirm);\n delegate(document, Rails.buttonClickSelector, 'click', disableElement);\n delegate(document, Rails.buttonClickSelector, 'click', handleRemote);\n delegate(document, Rails.inputChangeSelector, 'change', handleDisabledElement);\n delegate(document, Rails.inputChangeSelector, 'change', handleConfirm);\n delegate(document, Rails.inputChangeSelector, 'change', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', handleDisabledElement);\n delegate(document, Rails.formSubmitSelector, 'submit', handleConfirm);\n delegate(document, Rails.formSubmitSelector, 'submit', handleRemote);\n delegate(document, Rails.formSubmitSelector, 'submit', function (e) {\n return setTimeout(function () {\n return disableElement(e);\n }, 13);\n });\n delegate(document, Rails.formSubmitSelector, 'ajax:send', disableElement);\n delegate(document, Rails.formSubmitSelector, 'ajax:complete', enableElement);\n delegate(document, Rails.formInputClickSelector, 'click', preventInsignificantClick);\n delegate(document, Rails.formInputClickSelector, 'click', handleDisabledElement);\n delegate(document, Rails.formInputClickSelector, 'click', handleConfirm);\n delegate(document, Rails.formInputClickSelector, 'click', formSubmitButtonClick);\n document.addEventListener('DOMContentLoaded', refreshCSRFTokens);\n document.addEventListener('DOMContentLoaded', loadCSPNonce);\n return window._rails_loaded = true;\n };\n\n if (window.Rails === Rails && fire(document, 'rails:attachBindings')) {\n Rails.start();\n }\n }).call(this);\n }).call(this);\n\n if ((typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) === \"object\" && module.exports) {\n module.exports = Rails;\n } else if (typeof define === \"function\" && define.amd) {\n define(Rails);\n }\n}).call(this);","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === \"object\" && typeof module !== \"undefined\" ? factory(exports) : typeof define === \"function\" && define.amd ? define([\"exports\"], factory) : factory(global.ActiveStorage = {});\n})(this, function (exports) {\n \"use strict\";\n\n function createCommonjsModule(fn, module) {\n return module = {\n exports: {}\n }, fn(module, module.exports), module.exports;\n }\n\n var sparkMd5 = createCommonjsModule(function (module, exports) {\n (function (factory) {\n {\n module.exports = factory();\n }\n })(function (undefined) {\n var hex_chr = [\"0\", \"1\", \"2\", \"3\", \"4\", \"5\", \"6\", \"7\", \"8\", \"9\", \"a\", \"b\", \"c\", \"d\", \"e\", \"f\"];\n\n function md5cycle(x, k) {\n var a = x[0],\n b = x[1],\n c = x[2],\n d = x[3];\n a += (b & c | ~b & d) + k[0] - 680876936 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[1] - 389564586 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[2] + 606105819 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[3] - 1044525330 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[4] - 176418897 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[5] + 1200080426 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[6] - 1473231341 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[7] - 45705983 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[8] + 1770035416 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[9] - 1958414417 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[10] - 42063 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[11] - 1990404162 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & c | ~b & d) + k[12] + 1804603682 | 0;\n a = (a << 7 | a >>> 25) + b | 0;\n d += (a & b | ~a & c) + k[13] - 40341101 | 0;\n d = (d << 12 | d >>> 20) + a | 0;\n c += (d & a | ~d & b) + k[14] - 1502002290 | 0;\n c = (c << 17 | c >>> 15) + d | 0;\n b += (c & d | ~c & a) + k[15] + 1236535329 | 0;\n b = (b << 22 | b >>> 10) + c | 0;\n a += (b & d | c & ~d) + k[1] - 165796510 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[6] - 1069501632 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[11] + 643717713 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[0] - 373897302 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[5] - 701558691 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[10] + 38016083 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[15] - 660478335 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[4] - 405537848 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[9] + 568446438 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[14] - 1019803690 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[3] - 187363961 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[8] + 1163531501 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b & d | c & ~d) + k[13] - 1444681467 | 0;\n a = (a << 5 | a >>> 27) + b | 0;\n d += (a & c | b & ~c) + k[2] - 51403784 | 0;\n d = (d << 9 | d >>> 23) + a | 0;\n c += (d & b | a & ~b) + k[7] + 1735328473 | 0;\n c = (c << 14 | c >>> 18) + d | 0;\n b += (c & a | d & ~a) + k[12] - 1926607734 | 0;\n b = (b << 20 | b >>> 12) + c | 0;\n a += (b ^ c ^ d) + k[5] - 378558 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[8] - 2022574463 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[11] + 1839030562 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[14] - 35309556 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[1] - 1530992060 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[4] + 1272893353 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[7] - 155497632 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[10] - 1094730640 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[13] + 681279174 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[0] - 358537222 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[3] - 722521979 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[6] + 76029189 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (b ^ c ^ d) + k[9] - 640364487 | 0;\n a = (a << 4 | a >>> 28) + b | 0;\n d += (a ^ b ^ c) + k[12] - 421815835 | 0;\n d = (d << 11 | d >>> 21) + a | 0;\n c += (d ^ a ^ b) + k[15] + 530742520 | 0;\n c = (c << 16 | c >>> 16) + d | 0;\n b += (c ^ d ^ a) + k[2] - 995338651 | 0;\n b = (b << 23 | b >>> 9) + c | 0;\n a += (c ^ (b | ~d)) + k[0] - 198630844 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[7] + 1126891415 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[14] - 1416354905 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[5] - 57434055 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[12] + 1700485571 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[3] - 1894986606 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[10] - 1051523 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[1] - 2054922799 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[8] + 1873313359 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[15] - 30611744 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[6] - 1560198380 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[13] + 1309151649 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n a += (c ^ (b | ~d)) + k[4] - 145523070 | 0;\n a = (a << 6 | a >>> 26) + b | 0;\n d += (b ^ (a | ~c)) + k[11] - 1120210379 | 0;\n d = (d << 10 | d >>> 22) + a | 0;\n c += (a ^ (d | ~b)) + k[2] + 718787259 | 0;\n c = (c << 15 | c >>> 17) + d | 0;\n b += (d ^ (c | ~a)) + k[9] - 343485551 | 0;\n b = (b << 21 | b >>> 11) + c | 0;\n x[0] = a + x[0] | 0;\n x[1] = b + x[1] | 0;\n x[2] = c + x[2] | 0;\n x[3] = d + x[3] | 0;\n }\n\n function md5blk(s) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i) + (s.charCodeAt(i + 1) << 8) + (s.charCodeAt(i + 2) << 16) + (s.charCodeAt(i + 3) << 24);\n }\n\n return md5blks;\n }\n\n function md5blk_array(a) {\n var md5blks = [],\n i;\n\n for (i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = a[i] + (a[i + 1] << 8) + (a[i + 2] << 16) + (a[i + 3] << 24);\n }\n\n return md5blks;\n }\n\n function md51(s) {\n var n = s.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk(s.substring(i - 64, i)));\n }\n\n s = s.substring(i - 64);\n length = s.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= s.charCodeAt(i) << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function md51_array(a) {\n var n = a.length,\n state = [1732584193, -271733879, -1732584194, 271733878],\n i,\n length,\n tail,\n tmp,\n lo,\n hi;\n\n for (i = 64; i <= n; i += 64) {\n md5cycle(state, md5blk_array(a.subarray(i - 64, i)));\n }\n\n a = i - 64 < n ? a.subarray(i - 64) : new Uint8Array(0);\n length = a.length;\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= a[i] << (i % 4 << 3);\n }\n\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(state, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = n * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(state, tail);\n return state;\n }\n\n function rhex(n) {\n var s = \"\",\n j;\n\n for (j = 0; j < 4; j += 1) {\n s += hex_chr[n >> j * 8 + 4 & 15] + hex_chr[n >> j * 8 & 15];\n }\n\n return s;\n }\n\n function hex(x) {\n var i;\n\n for (i = 0; i < x.length; i += 1) {\n x[i] = rhex(x[i]);\n }\n\n return x.join(\"\");\n }\n\n if (hex(md51(\"hello\")) !== \"5d41402abc4b2a76b9719d911017c592\") ;\n\n if (typeof ArrayBuffer !== \"undefined\" && !ArrayBuffer.prototype.slice) {\n (function () {\n function clamp(val, length) {\n val = val | 0 || 0;\n\n if (val < 0) {\n return Math.max(val + length, 0);\n }\n\n return Math.min(val, length);\n }\n\n ArrayBuffer.prototype.slice = function (from, to) {\n var length = this.byteLength,\n begin = clamp(from, length),\n end = length,\n num,\n target,\n targetArray,\n sourceArray;\n\n if (to !== undefined) {\n end = clamp(to, length);\n }\n\n if (begin > end) {\n return new ArrayBuffer(0);\n }\n\n num = end - begin;\n target = new ArrayBuffer(num);\n targetArray = new Uint8Array(target);\n sourceArray = new Uint8Array(this, begin, num);\n targetArray.set(sourceArray);\n return target;\n };\n })();\n }\n\n function toUtf8(str) {\n if (/[\\u0080-\\uFFFF]/.test(str)) {\n str = unescape(encodeURIComponent(str));\n }\n\n return str;\n }\n\n function utf8Str2ArrayBuffer(str, returnUInt8Array) {\n var length = str.length,\n buff = new ArrayBuffer(length),\n arr = new Uint8Array(buff),\n i;\n\n for (i = 0; i < length; i += 1) {\n arr[i] = str.charCodeAt(i);\n }\n\n return returnUInt8Array ? arr : buff;\n }\n\n function arrayBuffer2Utf8Str(buff) {\n return String.fromCharCode.apply(null, new Uint8Array(buff));\n }\n\n function concatenateArrayBuffers(first, second, returnUInt8Array) {\n var result = new Uint8Array(first.byteLength + second.byteLength);\n result.set(new Uint8Array(first));\n result.set(new Uint8Array(second), first.byteLength);\n return returnUInt8Array ? result : result.buffer;\n }\n\n function hexToBinaryString(hex) {\n var bytes = [],\n length = hex.length,\n x;\n\n for (x = 0; x < length - 1; x += 2) {\n bytes.push(parseInt(hex.substr(x, 2), 16));\n }\n\n return String.fromCharCode.apply(String, bytes);\n }\n\n function SparkMD5() {\n this.reset();\n }\n\n SparkMD5.prototype.append = function (str) {\n this.appendBinary(toUtf8(str));\n return this;\n };\n\n SparkMD5.prototype.appendBinary = function (contents) {\n this._buff += contents;\n this._length += contents.length;\n var length = this._buff.length,\n i;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk(this._buff.substring(i - 64, i)));\n }\n\n this._buff = this._buff.substring(i - 64);\n return this;\n };\n\n SparkMD5.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n i,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff.charCodeAt(i) << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.prototype.reset = function () {\n this._buff = \"\";\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.prototype.getState = function () {\n return {\n buff: this._buff,\n length: this._length,\n hash: this._hash\n };\n };\n\n SparkMD5.prototype.setState = function (state) {\n this._buff = state.buff;\n this._length = state.length;\n this._hash = state.hash;\n return this;\n };\n\n SparkMD5.prototype.destroy = function () {\n delete this._hash;\n delete this._buff;\n delete this._length;\n };\n\n SparkMD5.prototype._finish = function (tail, length) {\n var i = length,\n tmp,\n lo,\n hi;\n tail[i >> 2] |= 128 << (i % 4 << 3);\n\n if (i > 55) {\n md5cycle(this._hash, tail);\n\n for (i = 0; i < 16; i += 1) {\n tail[i] = 0;\n }\n }\n\n tmp = this._length * 8;\n tmp = tmp.toString(16).match(/(.*?)(.{0,8})$/);\n lo = parseInt(tmp[2], 16);\n hi = parseInt(tmp[1], 16) || 0;\n tail[14] = lo;\n tail[15] = hi;\n md5cycle(this._hash, tail);\n };\n\n SparkMD5.hash = function (str, raw) {\n return SparkMD5.hashBinary(toUtf8(str), raw);\n };\n\n SparkMD5.hashBinary = function (content, raw) {\n var hash = md51(content),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n SparkMD5.ArrayBuffer = function () {\n this.reset();\n };\n\n SparkMD5.ArrayBuffer.prototype.append = function (arr) {\n var buff = concatenateArrayBuffers(this._buff.buffer, arr, true),\n length = buff.length,\n i;\n this._length += arr.byteLength;\n\n for (i = 64; i <= length; i += 64) {\n md5cycle(this._hash, md5blk_array(buff.subarray(i - 64, i)));\n }\n\n this._buff = i - 64 < length ? new Uint8Array(buff.buffer.slice(i - 64)) : new Uint8Array(0);\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.end = function (raw) {\n var buff = this._buff,\n length = buff.length,\n tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0],\n i,\n ret;\n\n for (i = 0; i < length; i += 1) {\n tail[i >> 2] |= buff[i] << (i % 4 << 3);\n }\n\n this._finish(tail, length);\n\n ret = hex(this._hash);\n\n if (raw) {\n ret = hexToBinaryString(ret);\n }\n\n this.reset();\n return ret;\n };\n\n SparkMD5.ArrayBuffer.prototype.reset = function () {\n this._buff = new Uint8Array(0);\n this._length = 0;\n this._hash = [1732584193, -271733879, -1732584194, 271733878];\n return this;\n };\n\n SparkMD5.ArrayBuffer.prototype.getState = function () {\n var state = SparkMD5.prototype.getState.call(this);\n state.buff = arrayBuffer2Utf8Str(state.buff);\n return state;\n };\n\n SparkMD5.ArrayBuffer.prototype.setState = function (state) {\n state.buff = utf8Str2ArrayBuffer(state.buff, true);\n return SparkMD5.prototype.setState.call(this, state);\n };\n\n SparkMD5.ArrayBuffer.prototype.destroy = SparkMD5.prototype.destroy;\n SparkMD5.ArrayBuffer.prototype._finish = SparkMD5.prototype._finish;\n\n SparkMD5.ArrayBuffer.hash = function (arr, raw) {\n var hash = md51_array(new Uint8Array(arr)),\n ret = hex(hash);\n return raw ? hexToBinaryString(ret) : ret;\n };\n\n return SparkMD5;\n });\n });\n\n var classCallCheck = function classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n };\n\n var createClass = function () {\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\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n }();\n\n var fileSlice = File.prototype.slice || File.prototype.mozSlice || File.prototype.webkitSlice;\n\n var FileChecksum = function () {\n createClass(FileChecksum, null, [{\n key: \"create\",\n value: function create(file, callback) {\n var instance = new FileChecksum(file);\n instance.create(callback);\n }\n }]);\n\n function FileChecksum(file) {\n classCallCheck(this, FileChecksum);\n this.file = file;\n this.chunkSize = 2097152;\n this.chunkCount = Math.ceil(this.file.size / this.chunkSize);\n this.chunkIndex = 0;\n }\n\n createClass(FileChecksum, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n this.callback = callback;\n this.md5Buffer = new sparkMd5.ArrayBuffer();\n this.fileReader = new FileReader();\n this.fileReader.addEventListener(\"load\", function (event) {\n return _this.fileReaderDidLoad(event);\n });\n this.fileReader.addEventListener(\"error\", function (event) {\n return _this.fileReaderDidError(event);\n });\n this.readNextChunk();\n }\n }, {\n key: \"fileReaderDidLoad\",\n value: function fileReaderDidLoad(event) {\n this.md5Buffer.append(event.target.result);\n\n if (!this.readNextChunk()) {\n var binaryDigest = this.md5Buffer.end(true);\n var base64digest = btoa(binaryDigest);\n this.callback(null, base64digest);\n }\n }\n }, {\n key: \"fileReaderDidError\",\n value: function fileReaderDidError(event) {\n this.callback(\"Error reading \" + this.file.name);\n }\n }, {\n key: \"readNextChunk\",\n value: function readNextChunk() {\n if (this.chunkIndex < this.chunkCount || this.chunkIndex == 0 && this.chunkCount == 0) {\n var start = this.chunkIndex * this.chunkSize;\n var end = Math.min(start + this.chunkSize, this.file.size);\n var bytes = fileSlice.call(this.file, start, end);\n this.fileReader.readAsArrayBuffer(bytes);\n this.chunkIndex++;\n return true;\n } else {\n return false;\n }\n }\n }]);\n return FileChecksum;\n }();\n\n function getMetaValue(name) {\n var element = findElement(document.head, 'meta[name=\"' + name + '\"]');\n\n if (element) {\n return element.getAttribute(\"content\");\n }\n }\n\n function findElements(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n var elements = root.querySelectorAll(selector);\n return toArray$1(elements);\n }\n\n function findElement(root, selector) {\n if (typeof root == \"string\") {\n selector = root;\n root = document;\n }\n\n return root.querySelector(selector);\n }\n\n function dispatchEvent(element, type) {\n var eventInit = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var disabled = element.disabled;\n var bubbles = eventInit.bubbles,\n cancelable = eventInit.cancelable,\n detail = eventInit.detail;\n var event = document.createEvent(\"Event\");\n event.initEvent(type, bubbles || true, cancelable || true);\n event.detail = detail || {};\n\n try {\n element.disabled = false;\n element.dispatchEvent(event);\n } finally {\n element.disabled = disabled;\n }\n\n return event;\n }\n\n function toArray$1(value) {\n if (Array.isArray(value)) {\n return value;\n } else if (Array.from) {\n return Array.from(value);\n } else {\n return [].slice.call(value);\n }\n }\n\n var BlobRecord = function () {\n function BlobRecord(file, checksum, url) {\n var _this = this;\n\n classCallCheck(this, BlobRecord);\n this.file = file;\n this.attributes = {\n filename: file.name,\n content_type: file.type || \"application/octet-stream\",\n byte_size: file.size,\n checksum: checksum\n };\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"POST\", url, true);\n this.xhr.responseType = \"json\";\n this.xhr.setRequestHeader(\"Content-Type\", \"application/json\");\n this.xhr.setRequestHeader(\"Accept\", \"application/json\");\n this.xhr.setRequestHeader(\"X-Requested-With\", \"XMLHttpRequest\");\n var csrfToken = getMetaValue(\"csrf-token\");\n\n if (csrfToken != undefined) {\n this.xhr.setRequestHeader(\"X-CSRF-Token\", csrfToken);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobRecord, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(JSON.stringify({\n blob: this.attributes\n }));\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n if (this.status >= 200 && this.status < 300) {\n var response = this.response;\n var direct_upload = response.direct_upload;\n delete response.direct_upload;\n this.attributes = response;\n this.directUploadData = direct_upload;\n this.callback(null, this.toJSON());\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error creating Blob for \"' + this.file.name + '\". Status: ' + this.status);\n }\n }, {\n key: \"toJSON\",\n value: function toJSON() {\n var result = {};\n\n for (var key in this.attributes) {\n result[key] = this.attributes[key];\n }\n\n return result;\n }\n }, {\n key: \"status\",\n get: function get$$1() {\n return this.xhr.status;\n }\n }, {\n key: \"response\",\n get: function get$$1() {\n var _xhr = this.xhr,\n responseType = _xhr.responseType,\n response = _xhr.response;\n\n if (responseType == \"json\") {\n return response;\n } else {\n return JSON.parse(response);\n }\n }\n }]);\n return BlobRecord;\n }();\n\n var BlobUpload = function () {\n function BlobUpload(blob) {\n var _this = this;\n\n classCallCheck(this, BlobUpload);\n this.blob = blob;\n this.file = blob.file;\n var _blob$directUploadDat = blob.directUploadData,\n url = _blob$directUploadDat.url,\n headers = _blob$directUploadDat.headers;\n this.xhr = new XMLHttpRequest();\n this.xhr.open(\"PUT\", url, true);\n this.xhr.responseType = \"text\";\n\n for (var key in headers) {\n this.xhr.setRequestHeader(key, headers[key]);\n }\n\n this.xhr.addEventListener(\"load\", function (event) {\n return _this.requestDidLoad(event);\n });\n this.xhr.addEventListener(\"error\", function (event) {\n return _this.requestDidError(event);\n });\n }\n\n createClass(BlobUpload, [{\n key: \"create\",\n value: function create(callback) {\n this.callback = callback;\n this.xhr.send(this.file.slice());\n }\n }, {\n key: \"requestDidLoad\",\n value: function requestDidLoad(event) {\n var _xhr = this.xhr,\n status = _xhr.status,\n response = _xhr.response;\n\n if (status >= 200 && status < 300) {\n this.callback(null, response);\n } else {\n this.requestDidError(event);\n }\n }\n }, {\n key: \"requestDidError\",\n value: function requestDidError(event) {\n this.callback('Error storing \"' + this.file.name + '\". Status: ' + this.xhr.status);\n }\n }]);\n return BlobUpload;\n }();\n\n var id = 0;\n\n var DirectUpload = function () {\n function DirectUpload(file, url, delegate) {\n classCallCheck(this, DirectUpload);\n this.id = ++id;\n this.file = file;\n this.url = url;\n this.delegate = delegate;\n }\n\n createClass(DirectUpload, [{\n key: \"create\",\n value: function create(callback) {\n var _this = this;\n\n FileChecksum.create(this.file, function (error, checksum) {\n if (error) {\n callback(error);\n return;\n }\n\n var blob = new BlobRecord(_this.file, checksum, _this.url);\n notify(_this.delegate, \"directUploadWillCreateBlobWithXHR\", blob.xhr);\n blob.create(function (error) {\n if (error) {\n callback(error);\n } else {\n var upload = new BlobUpload(blob);\n notify(_this.delegate, \"directUploadWillStoreFileWithXHR\", upload.xhr);\n upload.create(function (error) {\n if (error) {\n callback(error);\n } else {\n callback(null, blob.toJSON());\n }\n });\n }\n });\n });\n }\n }]);\n return DirectUpload;\n }();\n\n function notify(object, methodName) {\n if (object && typeof object[methodName] == \"function\") {\n for (var _len = arguments.length, messages = Array(_len > 2 ? _len - 2 : 0), _key = 2; _key < _len; _key++) {\n messages[_key - 2] = arguments[_key];\n }\n\n return object[methodName].apply(object, messages);\n }\n }\n\n var DirectUploadController = function () {\n function DirectUploadController(input, file) {\n classCallCheck(this, DirectUploadController);\n this.input = input;\n this.file = file;\n this.directUpload = new DirectUpload(this.file, this.url, this);\n this.dispatch(\"initialize\");\n }\n\n createClass(DirectUploadController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var hiddenInput = document.createElement(\"input\");\n hiddenInput.type = \"hidden\";\n hiddenInput.name = this.input.name;\n this.input.insertAdjacentElement(\"beforebegin\", hiddenInput);\n this.dispatch(\"start\");\n this.directUpload.create(function (error, attributes) {\n if (error) {\n hiddenInput.parentNode.removeChild(hiddenInput);\n\n _this.dispatchError(error);\n } else {\n hiddenInput.value = attributes.signed_id;\n }\n\n _this.dispatch(\"end\");\n\n callback(error);\n });\n }\n }, {\n key: \"uploadRequestDidProgress\",\n value: function uploadRequestDidProgress(event) {\n var progress = event.loaded / event.total * 100;\n\n if (progress) {\n this.dispatch(\"progress\", {\n progress: progress\n });\n }\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n detail.file = this.file;\n detail.id = this.directUpload.id;\n return dispatchEvent(this.input, \"direct-upload:\" + name, {\n detail: detail\n });\n }\n }, {\n key: \"dispatchError\",\n value: function dispatchError(error) {\n var event = this.dispatch(\"error\", {\n error: error\n });\n\n if (!event.defaultPrevented) {\n alert(error);\n }\n }\n }, {\n key: \"directUploadWillCreateBlobWithXHR\",\n value: function directUploadWillCreateBlobWithXHR(xhr) {\n this.dispatch(\"before-blob-request\", {\n xhr: xhr\n });\n }\n }, {\n key: \"directUploadWillStoreFileWithXHR\",\n value: function directUploadWillStoreFileWithXHR(xhr) {\n var _this2 = this;\n\n this.dispatch(\"before-storage-request\", {\n xhr: xhr\n });\n xhr.upload.addEventListener(\"progress\", function (event) {\n return _this2.uploadRequestDidProgress(event);\n });\n }\n }, {\n key: \"url\",\n get: function get$$1() {\n return this.input.getAttribute(\"data-direct-upload-url\");\n }\n }]);\n return DirectUploadController;\n }();\n\n var inputSelector = \"input[type=file][data-direct-upload-url]:not([disabled])\";\n\n var DirectUploadsController = function () {\n function DirectUploadsController(form) {\n classCallCheck(this, DirectUploadsController);\n this.form = form;\n this.inputs = findElements(form, inputSelector).filter(function (input) {\n return input.files.length;\n });\n }\n\n createClass(DirectUploadsController, [{\n key: \"start\",\n value: function start(callback) {\n var _this = this;\n\n var controllers = this.createDirectUploadControllers();\n\n var startNextController = function startNextController() {\n var controller = controllers.shift();\n\n if (controller) {\n controller.start(function (error) {\n if (error) {\n callback(error);\n\n _this.dispatch(\"end\");\n } else {\n startNextController();\n }\n });\n } else {\n callback();\n\n _this.dispatch(\"end\");\n }\n };\n\n this.dispatch(\"start\");\n startNextController();\n }\n }, {\n key: \"createDirectUploadControllers\",\n value: function createDirectUploadControllers() {\n var controllers = [];\n this.inputs.forEach(function (input) {\n toArray$1(input.files).forEach(function (file) {\n var controller = new DirectUploadController(input, file);\n controllers.push(controller);\n });\n });\n return controllers;\n }\n }, {\n key: \"dispatch\",\n value: function dispatch(name) {\n var detail = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return dispatchEvent(this.form, \"direct-uploads:\" + name, {\n detail: detail\n });\n }\n }]);\n return DirectUploadsController;\n }();\n\n var processingAttribute = \"data-direct-uploads-processing\";\n var submitButtonsByForm = new WeakMap();\n var started = false;\n\n function start() {\n if (!started) {\n started = true;\n document.addEventListener(\"click\", didClick, true);\n document.addEventListener(\"submit\", didSubmitForm);\n document.addEventListener(\"ajax:before\", didSubmitRemoteElement);\n }\n }\n\n function didClick(event) {\n var target = event.target;\n\n if ((target.tagName == \"INPUT\" || target.tagName == \"BUTTON\") && target.type == \"submit\" && target.form) {\n submitButtonsByForm.set(target.form, target);\n }\n }\n\n function didSubmitForm(event) {\n handleFormSubmissionEvent(event);\n }\n\n function didSubmitRemoteElement(event) {\n if (event.target.tagName == \"FORM\") {\n handleFormSubmissionEvent(event);\n }\n }\n\n function handleFormSubmissionEvent(event) {\n var form = event.target;\n\n if (form.hasAttribute(processingAttribute)) {\n event.preventDefault();\n return;\n }\n\n var controller = new DirectUploadsController(form);\n var inputs = controller.inputs;\n\n if (inputs.length) {\n event.preventDefault();\n form.setAttribute(processingAttribute, \"\");\n inputs.forEach(disable);\n controller.start(function (error) {\n form.removeAttribute(processingAttribute);\n\n if (error) {\n inputs.forEach(enable);\n } else {\n submitForm(form);\n }\n });\n }\n }\n\n function submitForm(form) {\n var button = submitButtonsByForm.get(form) || findElement(form, \"input[type=submit], button[type=submit]\");\n\n if (button) {\n var _button = button,\n disabled = _button.disabled;\n button.disabled = false;\n button.focus();\n button.click();\n button.disabled = disabled;\n } else {\n button = document.createElement(\"input\");\n button.type = \"submit\";\n button.style.display = \"none\";\n form.appendChild(button);\n button.click();\n form.removeChild(button);\n }\n\n submitButtonsByForm.delete(form);\n }\n\n function disable(input) {\n input.disabled = true;\n }\n\n function enable(input) {\n input.disabled = false;\n }\n\n function autostart() {\n if (window.ActiveStorage) {\n start();\n }\n }\n\n setTimeout(autostart, 1);\n exports.start = start;\n exports.DirectUpload = DirectUpload;\n Object.defineProperty(exports, \"__esModule\", {\n value: true\n });\n});","\"use strict\";\n\nvar deselectCurrent = require(\"toggle-selection\");\n\nvar clipboardToIE11Formatting = {\n \"text/plain\": \"Text\",\n \"text/html\": \"Url\",\n \"default\": \"Text\"\n};\nvar defaultMessage = \"Copy to clipboard: #{key}, Enter\";\n\nfunction format(message) {\n var copyKey = (/mac os x/i.test(navigator.userAgent) ? \"⌘\" : \"Ctrl\") + \"+C\";\n return message.replace(/#{\\s*key\\s*}/g, copyKey);\n}\n\nfunction copy(text, options) {\n var debug,\n message,\n reselectPrevious,\n range,\n selection,\n mark,\n success = false;\n\n if (!options) {\n options = {};\n }\n\n debug = options.debug || false;\n\n try {\n reselectPrevious = deselectCurrent();\n range = document.createRange();\n selection = document.getSelection();\n mark = document.createElement(\"span\");\n mark.textContent = text; // reset user styles for span element\n\n mark.style.all = \"unset\"; // prevents scrolling to the end of the page\n\n mark.style.position = \"fixed\";\n mark.style.top = 0;\n mark.style.clip = \"rect(0, 0, 0, 0)\"; // used to preserve spaces and line breaks\n\n mark.style.whiteSpace = \"pre\"; // do not inherit user-select (it may be `none`)\n\n mark.style.webkitUserSelect = \"text\";\n mark.style.MozUserSelect = \"text\";\n mark.style.msUserSelect = \"text\";\n mark.style.userSelect = \"text\";\n mark.addEventListener(\"copy\", function (e) {\n e.stopPropagation();\n\n if (options.format) {\n e.preventDefault();\n\n if (typeof e.clipboardData === \"undefined\") {\n // IE 11\n debug && console.warn(\"unable to use e.clipboardData\");\n debug && console.warn(\"trying IE specific stuff\");\n window.clipboardData.clearData();\n var format = clipboardToIE11Formatting[options.format] || clipboardToIE11Formatting[\"default\"];\n window.clipboardData.setData(format, text);\n } else {\n // all other browsers\n e.clipboardData.clearData();\n e.clipboardData.setData(options.format, text);\n }\n }\n\n if (options.onCopy) {\n e.preventDefault();\n options.onCopy(e.clipboardData);\n }\n });\n document.body.appendChild(mark);\n range.selectNodeContents(mark);\n selection.addRange(range);\n var successful = document.execCommand(\"copy\");\n\n if (!successful) {\n throw new Error(\"copy command was unsuccessful\");\n }\n\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using execCommand: \", err);\n debug && console.warn(\"trying IE specific stuff\");\n\n try {\n window.clipboardData.setData(options.format || \"text\", text);\n options.onCopy && options.onCopy(window.clipboardData);\n success = true;\n } catch (err) {\n debug && console.error(\"unable to copy using clipboardData: \", err);\n debug && console.error(\"falling back to prompt\");\n message = format(\"message\" in options ? options.message : defaultMessage);\n window.prompt(message, text);\n }\n } finally {\n if (selection) {\n if (typeof selection.removeRange == \"function\") {\n selection.removeRange(range);\n } else {\n selection.removeAllRanges();\n }\n }\n\n if (mark) {\n document.body.removeChild(mark);\n }\n\n reselectPrevious();\n }\n\n return success;\n}\n\nmodule.exports = copy;","function _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n!function (e, t) {\n \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) && \"object\" == (typeof module === \"undefined\" ? \"undefined\" : _typeof(module)) ? module.exports = t() : \"function\" == typeof define && define.amd ? define(\"Siema\", [], t) : \"object\" == (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) ? exports.Siema = t() : e.Siema = t();\n}(\"undefined\" != typeof self ? self : this, function () {\n return function (e) {\n function t(r) {\n if (i[r]) return i[r].exports;\n var n = i[r] = {\n i: r,\n l: !1,\n exports: {}\n };\n return e[r].call(n.exports, n, n.exports, t), n.l = !0, n.exports;\n }\n\n var i = {};\n return t.m = e, t.c = i, t.d = function (e, i, r) {\n t.o(e, i) || Object.defineProperty(e, i, {\n configurable: !1,\n enumerable: !0,\n get: r\n });\n }, t.n = function (e) {\n var i = e && e.__esModule ? function () {\n return e.default;\n } : function () {\n return e;\n };\n return t.d(i, \"a\", i), i;\n }, t.o = function (e, t) {\n return Object.prototype.hasOwnProperty.call(e, t);\n }, t.p = \"\", t(t.s = 0);\n }([function (e, t, i) {\n \"use strict\";\n\n function r(e, t) {\n if (!(e instanceof t)) throw new TypeError(\"Cannot call a class as a function\");\n }\n\n Object.defineProperty(t, \"__esModule\", {\n value: !0\n });\n\n var n = \"function\" == typeof Symbol && \"symbol\" == _typeof(Symbol.iterator) ? function (e) {\n return _typeof(e);\n } : function (e) {\n return e && \"function\" == typeof Symbol && e.constructor === Symbol && e !== Symbol.prototype ? \"symbol\" : _typeof(e);\n },\n s = function () {\n function e(e, t) {\n for (var i = 0; i < t.length; i++) {\n var r = t[i];\n r.enumerable = r.enumerable || !1, r.configurable = !0, \"value\" in r && (r.writable = !0), Object.defineProperty(e, r.key, r);\n }\n }\n\n return function (t, i, r) {\n return i && e(t.prototype, i), r && e(t, r), t;\n };\n }(),\n l = function () {\n function e(t) {\n var i = this;\n if (r(this, e), this.config = e.mergeSettings(t), this.selector = \"string\" == typeof this.config.selector ? document.querySelector(this.config.selector) : this.config.selector, null === this.selector) throw new Error(\"Something wrong with your selector 😭\");\n this.resolveSlidesNumber(), this.selectorWidth = this.selector.offsetWidth, this.innerElements = [].slice.call(this.selector.children), this.currentSlide = this.config.loop ? this.config.startIndex % this.innerElements.length : Math.max(0, Math.min(this.config.startIndex, this.innerElements.length - this.perPage)), this.transformProperty = e.webkitOrNot(), [\"resizeHandler\", \"touchstartHandler\", \"touchendHandler\", \"touchmoveHandler\", \"mousedownHandler\", \"mouseupHandler\", \"mouseleaveHandler\", \"mousemoveHandler\", \"clickHandler\"].forEach(function (e) {\n i[e] = i[e].bind(i);\n }), this.init();\n }\n\n return s(e, [{\n key: \"attachEvents\",\n value: function value() {\n window.addEventListener(\"resize\", this.resizeHandler), this.config.draggable && (this.pointerDown = !1, this.drag = {\n startX: 0,\n endX: 0,\n startY: 0,\n letItGo: null,\n preventClick: !1\n }, this.selector.addEventListener(\"touchstart\", this.touchstartHandler), this.selector.addEventListener(\"touchend\", this.touchendHandler), this.selector.addEventListener(\"touchmove\", this.touchmoveHandler), this.selector.addEventListener(\"mousedown\", this.mousedownHandler), this.selector.addEventListener(\"mouseup\", this.mouseupHandler), this.selector.addEventListener(\"mouseleave\", this.mouseleaveHandler), this.selector.addEventListener(\"mousemove\", this.mousemoveHandler), this.selector.addEventListener(\"click\", this.clickHandler));\n }\n }, {\n key: \"detachEvents\",\n value: function value() {\n window.removeEventListener(\"resize\", this.resizeHandler), this.selector.removeEventListener(\"touchstart\", this.touchstartHandler), this.selector.removeEventListener(\"touchend\", this.touchendHandler), this.selector.removeEventListener(\"touchmove\", this.touchmoveHandler), this.selector.removeEventListener(\"mousedown\", this.mousedownHandler), this.selector.removeEventListener(\"mouseup\", this.mouseupHandler), this.selector.removeEventListener(\"mouseleave\", this.mouseleaveHandler), this.selector.removeEventListener(\"mousemove\", this.mousemoveHandler), this.selector.removeEventListener(\"click\", this.clickHandler);\n }\n }, {\n key: \"init\",\n value: function value() {\n this.attachEvents(), this.selector.style.overflow = \"hidden\", this.selector.style.direction = this.config.rtl ? \"rtl\" : \"ltr\", this.buildSliderFrame(), this.config.onInit.call(this);\n }\n }, {\n key: \"buildSliderFrame\",\n value: function value() {\n var e = this.selectorWidth / this.perPage,\n t = this.config.loop ? this.innerElements.length + 2 * this.perPage : this.innerElements.length;\n this.sliderFrame = document.createElement(\"div\"), this.sliderFrame.style.width = e * t + \"px\", this.enableTransition(), this.config.draggable && (this.selector.style.cursor = \"-webkit-grab\");\n var i = document.createDocumentFragment();\n if (this.config.loop) for (var r = this.innerElements.length - this.perPage; r < this.innerElements.length; r++) {\n var n = this.buildSliderFrameItem(this.innerElements[r].cloneNode(!0));\n i.appendChild(n);\n }\n\n for (var s = 0; s < this.innerElements.length; s++) {\n var l = this.buildSliderFrameItem(this.innerElements[s]);\n i.appendChild(l);\n }\n\n if (this.config.loop) for (var o = 0; o < this.perPage; o++) {\n var a = this.buildSliderFrameItem(this.innerElements[o].cloneNode(!0));\n i.appendChild(a);\n }\n this.sliderFrame.appendChild(i), this.selector.innerHTML = \"\", this.selector.appendChild(this.sliderFrame), this.slideToCurrent();\n }\n }, {\n key: \"buildSliderFrameItem\",\n value: function value(e) {\n var t = document.createElement(\"div\");\n return t.style.cssFloat = this.config.rtl ? \"right\" : \"left\", t.style.float = this.config.rtl ? \"right\" : \"left\", t.style.width = (this.config.loop ? 100 / (this.innerElements.length + 2 * this.perPage) : 100 / this.innerElements.length) + \"%\", t.appendChild(e), t;\n }\n }, {\n key: \"resolveSlidesNumber\",\n value: function value() {\n if (\"number\" == typeof this.config.perPage) this.perPage = this.config.perPage;else if (\"object\" === n(this.config.perPage)) {\n this.perPage = 1;\n\n for (var e in this.config.perPage) {\n window.innerWidth >= e && (this.perPage = this.config.perPage[e]);\n }\n }\n }\n }, {\n key: \"prev\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,\n t = arguments[1];\n\n if (!(this.innerElements.length <= this.perPage)) {\n var i = this.currentSlide;\n\n if (this.config.loop) {\n if (this.currentSlide - e < 0) {\n this.disableTransition();\n var r = this.currentSlide + this.innerElements.length,\n n = this.perPage,\n s = r + n,\n l = (this.config.rtl ? 1 : -1) * s * (this.selectorWidth / this.perPage),\n o = this.config.draggable ? this.drag.endX - this.drag.startX : 0;\n this.sliderFrame.style[this.transformProperty] = \"translate3d(\" + (l + o) + \"px, 0, 0)\", this.currentSlide = r - e;\n } else this.currentSlide = this.currentSlide - e;\n } else this.currentSlide = Math.max(this.currentSlide - e, 0);\n\n i !== this.currentSlide && (this.slideToCurrent(this.config.loop), this.config.onChange.call(this), t && t.call(this));\n }\n }\n }, {\n key: \"next\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] ? arguments[0] : 1,\n t = arguments[1];\n\n if (!(this.innerElements.length <= this.perPage)) {\n var i = this.currentSlide;\n\n if (this.config.loop) {\n if (this.currentSlide + e > this.innerElements.length - this.perPage) {\n this.disableTransition();\n var r = this.currentSlide - this.innerElements.length,\n n = this.perPage,\n s = r + n,\n l = (this.config.rtl ? 1 : -1) * s * (this.selectorWidth / this.perPage),\n o = this.config.draggable ? this.drag.endX - this.drag.startX : 0;\n this.sliderFrame.style[this.transformProperty] = \"translate3d(\" + (l + o) + \"px, 0, 0)\", this.currentSlide = r + e;\n } else this.currentSlide = this.currentSlide + e;\n } else this.currentSlide = Math.min(this.currentSlide + e, this.innerElements.length - this.perPage);\n\n i !== this.currentSlide && (this.slideToCurrent(this.config.loop), this.config.onChange.call(this), t && t.call(this));\n }\n }\n }, {\n key: \"disableTransition\",\n value: function value() {\n this.sliderFrame.style.webkitTransition = \"all 0ms \" + this.config.easing, this.sliderFrame.style.transition = \"all 0ms \" + this.config.easing;\n }\n }, {\n key: \"enableTransition\",\n value: function value() {\n this.sliderFrame.style.webkitTransition = \"all \" + this.config.duration + \"ms \" + this.config.easing, this.sliderFrame.style.transition = \"all \" + this.config.duration + \"ms \" + this.config.easing;\n }\n }, {\n key: \"goTo\",\n value: function value(e, t) {\n if (!(this.innerElements.length <= this.perPage)) {\n var i = this.currentSlide;\n this.currentSlide = this.config.loop ? e % this.innerElements.length : Math.min(Math.max(e, 0), this.innerElements.length - this.perPage), i !== this.currentSlide && (this.slideToCurrent(), this.config.onChange.call(this), t && t.call(this));\n }\n }\n }, {\n key: \"slideToCurrent\",\n value: function value(e) {\n var t = this,\n i = this.config.loop ? this.currentSlide + this.perPage : this.currentSlide,\n r = (this.config.rtl ? 1 : -1) * i * (this.selectorWidth / this.perPage);\n e ? requestAnimationFrame(function () {\n requestAnimationFrame(function () {\n t.enableTransition(), t.sliderFrame.style[t.transformProperty] = \"translate3d(\" + r + \"px, 0, 0)\";\n });\n }) : this.sliderFrame.style[this.transformProperty] = \"translate3d(\" + r + \"px, 0, 0)\";\n }\n }, {\n key: \"updateAfterDrag\",\n value: function value() {\n var e = (this.config.rtl ? -1 : 1) * (this.drag.endX - this.drag.startX),\n t = Math.abs(e),\n i = this.config.multipleDrag ? Math.ceil(t / (this.selectorWidth / this.perPage)) : 1,\n r = e > 0 && this.currentSlide - i < 0,\n n = e < 0 && this.currentSlide + i > this.innerElements.length - this.perPage;\n e > 0 && t > this.config.threshold && this.innerElements.length > this.perPage ? this.prev(i) : e < 0 && t > this.config.threshold && this.innerElements.length > this.perPage && this.next(i), this.slideToCurrent(r || n);\n }\n }, {\n key: \"resizeHandler\",\n value: function value() {\n this.resolveSlidesNumber(), this.currentSlide + this.perPage > this.innerElements.length && (this.currentSlide = this.innerElements.length <= this.perPage ? 0 : this.innerElements.length - this.perPage), this.selectorWidth = this.selector.offsetWidth, this.buildSliderFrame();\n }\n }, {\n key: \"clearDrag\",\n value: function value() {\n this.drag = {\n startX: 0,\n endX: 0,\n startY: 0,\n letItGo: null,\n preventClick: this.drag.preventClick\n };\n }\n }, {\n key: \"touchstartHandler\",\n value: function value(e) {\n -1 !== [\"TEXTAREA\", \"OPTION\", \"INPUT\", \"SELECT\"].indexOf(e.target.nodeName) || (e.stopPropagation(), this.pointerDown = !0, this.drag.startX = e.touches[0].pageX, this.drag.startY = e.touches[0].pageY);\n }\n }, {\n key: \"touchendHandler\",\n value: function value(e) {\n e.stopPropagation(), this.pointerDown = !1, this.enableTransition(), this.drag.endX && this.updateAfterDrag(), this.clearDrag();\n }\n }, {\n key: \"touchmoveHandler\",\n value: function value(e) {\n if (e.stopPropagation(), null === this.drag.letItGo && (this.drag.letItGo = Math.abs(this.drag.startY - e.touches[0].pageY) < Math.abs(this.drag.startX - e.touches[0].pageX)), this.pointerDown && this.drag.letItGo) {\n e.preventDefault(), this.drag.endX = e.touches[0].pageX, this.sliderFrame.style.webkitTransition = \"all 0ms \" + this.config.easing, this.sliderFrame.style.transition = \"all 0ms \" + this.config.easing;\n var t = this.config.loop ? this.currentSlide + this.perPage : this.currentSlide,\n i = t * (this.selectorWidth / this.perPage),\n r = this.drag.endX - this.drag.startX,\n n = this.config.rtl ? i + r : i - r;\n this.sliderFrame.style[this.transformProperty] = \"translate3d(\" + (this.config.rtl ? 1 : -1) * n + \"px, 0, 0)\";\n }\n }\n }, {\n key: \"mousedownHandler\",\n value: function value(e) {\n -1 !== [\"TEXTAREA\", \"OPTION\", \"INPUT\", \"SELECT\"].indexOf(e.target.nodeName) || (e.preventDefault(), e.stopPropagation(), this.pointerDown = !0, this.drag.startX = e.pageX);\n }\n }, {\n key: \"mouseupHandler\",\n value: function value(e) {\n e.stopPropagation(), this.pointerDown = !1, this.selector.style.cursor = \"-webkit-grab\", this.enableTransition(), this.drag.endX && this.updateAfterDrag(), this.clearDrag();\n }\n }, {\n key: \"mousemoveHandler\",\n value: function value(e) {\n if (e.preventDefault(), this.pointerDown) {\n \"A\" === e.target.nodeName && (this.drag.preventClick = !0), this.drag.endX = e.pageX, this.selector.style.cursor = \"-webkit-grabbing\", this.sliderFrame.style.webkitTransition = \"all 0ms \" + this.config.easing, this.sliderFrame.style.transition = \"all 0ms \" + this.config.easing;\n var t = this.config.loop ? this.currentSlide + this.perPage : this.currentSlide,\n i = t * (this.selectorWidth / this.perPage),\n r = this.drag.endX - this.drag.startX,\n n = this.config.rtl ? i + r : i - r;\n this.sliderFrame.style[this.transformProperty] = \"translate3d(\" + (this.config.rtl ? 1 : -1) * n + \"px, 0, 0)\";\n }\n }\n }, {\n key: \"mouseleaveHandler\",\n value: function value(e) {\n this.pointerDown && (this.pointerDown = !1, this.selector.style.cursor = \"-webkit-grab\", this.drag.endX = e.pageX, this.drag.preventClick = !1, this.enableTransition(), this.updateAfterDrag(), this.clearDrag());\n }\n }, {\n key: \"clickHandler\",\n value: function value(e) {\n this.drag.preventClick && e.preventDefault(), this.drag.preventClick = !1;\n }\n }, {\n key: \"remove\",\n value: function value(e, t) {\n if (e < 0 || e >= this.innerElements.length) throw new Error(\"Item to remove doesn't exist 😭\");\n var i = e < this.currentSlide,\n r = this.currentSlide + this.perPage - 1 === e;\n (i || r) && this.currentSlide--, this.innerElements.splice(e, 1), this.buildSliderFrame(), t && t.call(this);\n }\n }, {\n key: \"insert\",\n value: function value(e, t, i) {\n if (t < 0 || t > this.innerElements.length + 1) throw new Error(\"Unable to inset it at this index 😭\");\n if (-1 !== this.innerElements.indexOf(e)) throw new Error(\"The same item in a carousel? Really? Nope 😭\");\n var r = t <= this.currentSlide > 0 && this.innerElements.length;\n this.currentSlide = r ? this.currentSlide + 1 : this.currentSlide, this.innerElements.splice(t, 0, e), this.buildSliderFrame(), i && i.call(this);\n }\n }, {\n key: \"prepend\",\n value: function value(e, t) {\n this.insert(e, 0), t && t.call(this);\n }\n }, {\n key: \"append\",\n value: function value(e, t) {\n this.insert(e, this.innerElements.length + 1), t && t.call(this);\n }\n }, {\n key: \"destroy\",\n value: function value() {\n var e = arguments.length > 0 && void 0 !== arguments[0] && arguments[0],\n t = arguments[1];\n\n if (this.detachEvents(), this.selector.style.cursor = \"auto\", e) {\n for (var i = document.createDocumentFragment(), r = 0; r < this.innerElements.length; r++) {\n i.appendChild(this.innerElements[r]);\n }\n\n this.selector.innerHTML = \"\", this.selector.appendChild(i), this.selector.removeAttribute(\"style\");\n }\n\n t && t.call(this);\n }\n }], [{\n key: \"mergeSettings\",\n value: function value(e) {\n var t = {\n selector: \".siema\",\n duration: 200,\n easing: \"ease-out\",\n perPage: 1,\n startIndex: 0,\n draggable: !0,\n multipleDrag: !0,\n threshold: 20,\n loop: !1,\n rtl: !1,\n onInit: function onInit() {},\n onChange: function onChange() {}\n },\n i = e;\n\n for (var r in i) {\n t[r] = i[r];\n }\n\n return t;\n }\n }, {\n key: \"webkitOrNot\",\n value: function value() {\n return \"string\" == typeof document.documentElement.style.transform ? \"transform\" : \"WebkitTransform\";\n }\n }]), e;\n }();\n\n t.default = l, e.exports = t.default;\n }]);\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\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== \"function\" && superClass !== null) { throw new TypeError(\"Super expression must either be null or a function\"); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, writable: true, configurable: true } }); if (superClass) _setPrototypeOf(subClass, superClass); }\n\nfunction _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = _getPrototypeOf(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = _getPrototypeOf(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return _possibleConstructorReturn(this, result); }; }\n\nfunction _possibleConstructorReturn(self, call) { if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) { return call; } else if (call !== void 0) { throw new TypeError(\"Derived constructors may only return object or undefined\"); } return _assertThisInitialized(self); }\n\nfunction _assertThisInitialized(self) { if (self === void 0) { throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\"); } return self; }\n\nfunction _wrapNativeSuper(Class) { var _cache = typeof Map === \"function\" ? new Map() : undefined; _wrapNativeSuper = function _wrapNativeSuper(Class) { if (Class === null || !_isNativeFunction(Class)) return Class; if (typeof Class !== \"function\") { throw new TypeError(\"Super expression must either be null or a function\"); } if (typeof _cache !== \"undefined\") { if (_cache.has(Class)) return _cache.get(Class); _cache.set(Class, Wrapper); } function Wrapper() { return _construct(Class, arguments, _getPrototypeOf(this).constructor); } Wrapper.prototype = Object.create(Class.prototype, { constructor: { value: Wrapper, enumerable: false, writable: true, configurable: true } }); return _setPrototypeOf(Wrapper, Class); }; return _wrapNativeSuper(Class); }\n\nfunction _construct(Parent, args, Class) { if (_isNativeReflectConstruct()) { _construct = Reflect.construct; } else { _construct = function _construct(Parent, args, Class) { var a = [null]; a.push.apply(a, args); var Constructor = Function.bind.apply(Parent, a); var instance = new Constructor(); if (Class) _setPrototypeOf(instance, Class.prototype); return instance; }; } return _construct.apply(null, arguments); }\n\nfunction _isNativeReflectConstruct() { if (typeof Reflect === \"undefined\" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === \"function\") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }\n\nfunction _isNativeFunction(fn) { return Function.toString.call(fn).indexOf(\"[native code]\") !== -1; }\n\nfunction _setPrototypeOf(o, p) { _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) { o.__proto__ = p; return o; }; return _setPrototypeOf(o, p); }\n\nfunction _getPrototypeOf(o) { _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) { return o.__proto__ || Object.getPrototypeOf(o); }; return _getPrototypeOf(o); }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }; } return _typeof(obj); }\n\n/**\n * Swiper 7.0.8\n * Most modern mobile touch slider and framework with hardware accelerated transitions\n * https://swiperjs.com\n *\n * Copyright 2014-2021 Vladimir Kharlampidi\n *\n * Released under the MIT License\n *\n * Released on: October 4, 2021\n */\n(function (global, factory) {\n (typeof exports === \"undefined\" ? \"undefined\" : _typeof(exports)) === 'object' && typeof module !== 'undefined' ? module.exports = factory() : typeof define === 'function' && define.amd ? define(factory) : (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Swiper = factory());\n})(this, function () {\n 'use strict';\n /**\n * SSR Window 4.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: August 25, 2021\n */\n\n /* eslint-disable no-param-reassign */\n\n function isObject$1(obj) {\n return obj !== null && _typeof(obj) === 'object' && 'constructor' in obj && obj.constructor === Object;\n }\n\n function extend$1() {\n var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var src = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined') target[key] = src[key];else if (isObject$1(src[key]) && isObject$1(target[key]) && Object.keys(src[key]).length > 0) {\n extend$1(target[key], src[key]);\n }\n });\n }\n\n var ssrDocument = {\n body: {},\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n activeElement: {\n blur: function blur() {},\n nodeName: ''\n },\n querySelector: function querySelector() {\n return null;\n },\n querySelectorAll: function querySelectorAll() {\n return [];\n },\n getElementById: function getElementById() {\n return null;\n },\n createEvent: function createEvent() {\n return {\n initEvent: function initEvent() {}\n };\n },\n createElement: function createElement() {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function setAttribute() {},\n getElementsByTagName: function getElementsByTagName() {\n return [];\n }\n };\n },\n createElementNS: function createElementNS() {\n return {};\n },\n importNode: function importNode() {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: ''\n }\n };\n\n function getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend$1(doc, ssrDocument);\n return doc;\n }\n\n var 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 replaceState() {},\n pushState: function pushState() {},\n go: function go() {},\n back: function back() {}\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function addEventListener() {},\n removeEventListener: function removeEventListener() {},\n getComputedStyle: function getComputedStyle() {\n return {\n getPropertyValue: function getPropertyValue() {\n return '';\n }\n };\n },\n Image: function Image() {},\n Date: function Date() {},\n screen: {},\n setTimeout: function setTimeout() {},\n clearTimeout: function clearTimeout() {},\n matchMedia: function matchMedia() {\n return {};\n },\n requestAnimationFrame: function requestAnimationFrame(callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function cancelAnimationFrame(id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n\n clearTimeout(id);\n }\n };\n\n function getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend$1(win, ssrWindow);\n return win;\n }\n /**\n * Dom7 4.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2021, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: August 25, 2021\n */\n\n /* eslint-disable no-proto */\n\n\n function 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\n var Dom7 = /*#__PURE__*/function (_Array) {\n _inherits(Dom7, _Array);\n\n var _super = _createSuper(Dom7);\n\n function Dom7(items) {\n var _this;\n\n _classCallCheck(this, Dom7);\n\n _this = _super.call.apply(_super, [this].concat(_toConsumableArray(items || [])));\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n }( /*#__PURE__*/_wrapNativeSuper(Array));\n\n function arrayFlat() {\n var arr = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, _toConsumableArray(arrayFlat(el)));\n } else {\n res.push(el);\n }\n });\n return res;\n }\n\n function arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n }\n\n function 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 }\n\n function 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\n function $(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\n function 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\n function removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n }\n\n function 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\n function transition$1(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? \"\".concat(duration, \"ms\") : duration;\n }\n\n return this;\n }\n\n function 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\n el.dom7Listeners[_event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n\n el.addEventListener(_event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event2 = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event2]) el.dom7LiveListeners[_event2] = [];\n\n el.dom7LiveListeners[_event2].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event2, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n }\n\n function 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 _event3 = 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[_event3];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[_event3];\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(_event3, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(_event3, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(_event3, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n }\n\n function trigger() {\n var window = getWindow();\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 events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var _event4 = 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(_event4, {\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\n function transitionEnd$1(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\n function 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\n function 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\n function offset() {\n if (this.length > 0) {\n var _window = getWindow();\n\n var _document = getDocument();\n\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\n function styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n }\n\n function 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\n function 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\n function filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n }\n\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n function 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\n var 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$1,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd$1,\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 };\n Object.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n });\n\n function 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\n function nextTick(callback) {\n var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n return setTimeout(callback, delay);\n }\n\n function now() {\n return Date.now();\n }\n\n function getComputedStyle$1(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\n function getTranslate(el) {\n var axis = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x';\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle$1(el);\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\n function isObject(o) {\n return _typeof(o) === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n }\n\n function isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined' && typeof window.HTMLElement !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n }\n\n function 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 && !isNode(nextSource)) {\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\n function setCSSProperty(el, varName, varValue) {\n el.style.setProperty(varName, varValue);\n }\n\n function animateCSSModeScroll(_ref) {\n var swiper = _ref.swiper,\n targetPosition = _ref.targetPosition,\n side = _ref.side;\n var window = getWindow();\n var startPosition = -swiper.translate;\n var startTime = null;\n var time;\n var duration = swiper.params.speed;\n swiper.wrapperEl.style.scrollSnapType = 'none';\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n var dir = targetPosition > startPosition ? 'next' : 'prev';\n\n var isOutOfBound = function isOutOfBound(current, target) {\n return dir === 'next' && current >= target || dir === 'prev' && current <= target;\n };\n\n var animate = function animate() {\n time = new Date().getTime();\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 = 0.5 - Math.cos(progress * Math.PI) / 2;\n var currentPosition = startPosition + easeProgress * (targetPosition - startPosition);\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n currentPosition = targetPosition;\n }\n\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n\n if (isOutOfBound(currentPosition, targetPosition)) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.scrollSnapType = '';\n setTimeout(function () {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.scrollTo(_defineProperty({}, side, currentPosition));\n });\n window.cancelAnimationFrame(swiper.cssModeFrameID);\n return;\n }\n\n swiper.cssModeFrameID = window.requestAnimationFrame(animate);\n };\n\n animate();\n }\n\n var support;\n\n function calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n smoothScroll: document.documentElement && 'scrollBehavior' in document.documentElement.style,\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n passiveListener: function checkPassiveListener() {\n 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\n function getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n }\n\n var deviceCached;\n\n function calcDevice() {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n userAgent = _ref2.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(\"\".concat(screenWidth, \"x\").concat(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\n function getDevice() {\n var overrides = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (!deviceCached) {\n deviceCached = calcDevice(overrides);\n }\n\n return deviceCached;\n }\n\n var browser;\n\n function 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 isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n }\n\n function getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n }\n\n function Resize(_ref3) {\n var swiper = _ref3.swiper,\n on = _ref3.on,\n emit = _ref3.emit;\n var window = getWindow();\n var observer = null;\n\n var resizeHandler = function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('beforeResize');\n emit('resize');\n };\n\n var createObserver = function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n 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 (_ref4) {\n var contentBoxSize = _ref4.contentBoxSize,\n contentRect = _ref4.contentRect,\n target = _ref4.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 resizeHandler();\n }\n });\n observer.observe(swiper.el);\n };\n\n var removeObserver = function removeObserver() {\n if (observer && observer.unobserve && swiper.el) {\n observer.unobserve(swiper.el);\n observer = null;\n }\n };\n\n var orientationChangeHandler = function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n emit('orientationchange');\n };\n\n on('init', function () {\n if (swiper.params.resizeObserver && typeof window.ResizeObserver !== 'undefined') {\n createObserver();\n return;\n }\n\n window.addEventListener('resize', resizeHandler);\n window.addEventListener('orientationchange', orientationChangeHandler);\n });\n on('destroy', function () {\n removeObserver();\n window.removeEventListener('resize', resizeHandler);\n window.removeEventListener('orientationchange', orientationChangeHandler);\n });\n }\n\n function Observer(_ref5) {\n var swiper = _ref5.swiper,\n extendParams = _ref5.extendParams,\n on = _ref5.on,\n emit = _ref5.emit;\n var observers = [];\n var window = getWindow();\n\n var attach = function attach(target) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\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 emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n observers.push(observer);\n };\n\n var init = function init() {\n if (!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 attach(containerParents[i]);\n }\n } // Observe container\n\n\n attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n };\n\n var destroy = function destroy() {\n observers.forEach(function (observer) {\n observer.disconnect();\n });\n observers.splice(0, observers.length);\n };\n\n extendParams({\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n });\n on('init', init);\n on('destroy', destroy);\n }\n /* eslint-disable no-underscore-dangle */\n\n\n var eventsEmitter = {\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 _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\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 _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\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(_toConsumableArray(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 };\n\n 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 Object.assign(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n }\n\n function updateSlides() {\n var swiper = this;\n\n function getDirectionLabel(property) {\n if (swiper.isHorizontal()) {\n return property;\n } // prettier-ignore\n\n\n return {\n 'width': 'height',\n 'margin-top': 'margin-left',\n 'margin-bottom ': 'margin-right',\n 'margin-left': 'margin-top',\n 'margin-right': 'margin-bottom',\n 'padding-left': 'padding-top',\n 'padding-right': 'padding-bottom',\n 'marginRight': 'marginBottom'\n }[property];\n }\n\n function getDirectionPropertyValue(node, label) {\n return parseFloat(node.getPropertyValue(getDirectionLabel(label)) || 0);\n }\n\n 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(\".\".concat(swiper.params.slideClass));\n var slidesLength = isVirtual ? swiper.virtual.slides.length : slides.length;\n var snapGrid = [];\n var slidesGrid = [];\n var slidesSizesGrid = [];\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 marginBottom: '',\n marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: '',\n marginTop: ''\n }); // reset cssMode offsets\n\n if (params.centeredSlides && params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', '');\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', '');\n }\n\n var gridEnabled = params.grid && params.grid.rows > 1 && swiper.grid;\n\n if (gridEnabled) {\n swiper.grid.initSlides(slidesLength);\n } // Calc slides\n\n\n var slideSize;\n var shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(function (key) {\n return typeof params.breakpoints[key].slidesPerView !== 'undefined';\n }).length > 0;\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n\n var _slide = slides.eq(i);\n\n if (gridEnabled) {\n swiper.grid.updateSlide(i, _slide, slidesLength, getDirectionLabel);\n }\n\n if (_slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n if (shouldResetSlideSize) {\n slides[i].style[getDirectionLabel('width')] = \"\";\n }\n\n 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')] = \"\".concat(slideSize, \"px\");\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")\n });\n }\n\n if (params.setWrapperSize) {\n $wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + params.spaceBetween, \"px\")));\n }\n\n if (gridEnabled) {\n swiper.grid.updateWrapperSize(slideSize, snapGrid, getDirectionLabel);\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n var 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\n if (snapGrid[_i] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(function (_, slideIndex) {\n if (!params.cssMode) return true;\n\n if (slideIndex === slides.length - 1) {\n return false;\n }\n\n return true;\n }).css(_defineProperty({}, key, \"\".concat(spaceBetween, \"px\")));\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 Object.assign(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (params.centeredSlides && params.cssMode && !params.centeredSlidesBounds) {\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-before', \"\".concat(-snapGrid[0], \"px\"));\n setCSSProperty(swiper.wrapperEl, '--swiper-centered-offset-after', \"\".concat(swiper.size / 2 - slidesSizesGrid[slidesSizesGrid.length - 1] / 2, \"px\"));\n var addToSnapGrid = -swiper.snapGrid[0];\n var addToSlidesGrid = -swiper.slidesGrid[0];\n swiper.snapGrid = swiper.snapGrid.map(function (v) {\n return v + addToSnapGrid;\n });\n swiper.slidesGrid = swiper.slidesGrid.map(function (v) {\n return v + addToSlidesGrid;\n });\n }\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress) {\n swiper.updateSlidesOffset();\n }\n }\n\n function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\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 }\n\n var getSlideByIndex = function getSlideByIndex(index) {\n if (isVirtual) {\n return swiper.slides.filter(function (el) {\n return parseInt(el.getAttribute('data-swiper-slide-index'), 10) === index;\n })[0];\n }\n\n return swiper.slides.eq(index)[0];\n }; // Find slides currently in view\n\n\n if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) {\n if (swiper.params.centeredSlides) {\n swiper.visibleSlides.each(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\n if (_index > swiper.slides.length && !isVirtual) break;\n activeSlides.push(getSlideByIndex(_index));\n }\n }\n } else {\n activeSlides.push(getSlideByIndex(swiper.activeIndex));\n } // Find new height from highest slide in view\n\n\n for (i = 0; i < activeSlides.length; i += 1) {\n if (typeof activeSlides[i] !== 'undefined') {\n var height = activeSlides[i].offsetHeight;\n newHeight = height > newHeight ? height : newHeight;\n }\n } // Update Height\n\n\n if (newHeight) swiper.$wrapperEl.css('height', \"\".concat(newHeight, \"px\"));\n }\n\n 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 }\n\n function updateSlidesProgress() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this && this.translate || 0;\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 _slide2 = slides[i];\n var slideOffset = _slide2.swiperSlideOffset;\n\n if (params.cssMode && params.centeredSlides) {\n slideOffset -= slides[0].swiperSlideOffset;\n }\n\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slideOffset) / (_slide2.swiperSlideSize + params.spaceBetween);\n var slideBefore = -(offsetCenter - slideOffset);\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(_slide2);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n\n _slide2.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n }\n\n 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 Object.assign(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n }\n\n 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(\"\".concat(params.slideActiveClass, \" \").concat(params.slideNextClass, \" \").concat(params.slidePrevClass, \" \").concat(params.slideDuplicateActiveClass, \" \").concat(params.slideDuplicateNextClass, \" \").concat(params.slideDuplicatePrevClass));\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]\")).addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\".concat(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(\".\".concat(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(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(nextSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\".concat(params.slideClass, \":not(.\").concat(params.slideDuplicateClass, \")[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(prevSlide.attr('data-swiper-slide-index'), \"\\\"]\")).addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n }\n\n 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 Object.assign(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 }\n\n function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\".concat(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 }\n\n var update = {\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 };\n\n function getSwiperTranslate() {\n var axis = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.isHorizontal() ? 'x' : 'y';\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 }\n\n 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(\".concat(x, \"px, \").concat(y, \"px, \").concat(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 }\n\n function minTranslate() {\n return -this.snapGrid[0];\n }\n\n function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n }\n\n function translateTo() {\n var translate = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var translateBounds = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : true;\n var internal = arguments.length > 4 ? arguments[4] : undefined;\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 var _wrapperEl$scrollTo;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: -newTranslate,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _defineProperty(_wrapperEl$scrollTo, isH ? 'left' : 'top', -newTranslate), _defineProperty(_wrapperEl$scrollTo, \"behavior\", 'smooth'), _wrapperEl$scrollTo));\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 }\n\n var translate = {\n getTranslate: getSwiperTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n };\n\n 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 }\n\n function transitionEmit(_ref6) {\n var swiper = _ref6.swiper,\n runCallbacks = _ref6.runCallbacks,\n direction = _ref6.direction,\n step = _ref6.step;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex;\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(\"transition\".concat(step));\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit(\"slideResetTransition\".concat(step));\n return;\n }\n\n swiper.emit(\"slideChangeTransition\".concat(step));\n\n if (dir === 'next') {\n swiper.emit(\"slideNextTransition\".concat(step));\n } else {\n swiper.emit(\"slidePrevTransition\".concat(step));\n }\n }\n }\n\n function transitionStart() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var params = swiper.params;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'Start'\n });\n }\n\n function transitionEnd() {\n var runCallbacks = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var direction = arguments.length > 1 ? arguments[1] : undefined;\n var swiper = this;\n var params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n transitionEmit({\n swiper: swiper,\n runCallbacks: runCallbacks,\n direction: direction,\n step: 'End'\n });\n }\n\n var transition = {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n };\n\n function slideTo() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\n var initial = arguments.length > 4 ? arguments[4] : undefined;\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\".concat(_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'. [\".concat(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 enabled = swiper.enabled;\n\n if (swiper.animating && params.preventInteractionOnTransition || !enabled && !internal && !initial) {\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 normalizedGrid = 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 >= normalizedGrid && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGrid) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGrid && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGrid) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n 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 = rtl ? translate : -translate;\n\n if (speed === 0) {\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n\n if (isVirtual) {\n swiper.wrapperEl.style.scrollSnapType = 'none';\n swiper._immediateVirtual = true;\n }\n\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n\n if (isVirtual) {\n requestAnimationFrame(function () {\n swiper.wrapperEl.style.scrollSnapType = '';\n swiper._swiperImmediateVirtual = false;\n });\n }\n } else {\n var _wrapperEl$scrollTo2;\n\n if (!swiper.support.smoothScroll) {\n animateCSSModeScroll({\n swiper: swiper,\n targetPosition: t,\n side: isH ? 'left' : 'top'\n });\n return true;\n }\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo2 = {}, _defineProperty(_wrapperEl$scrollTo2, isH ? 'left' : 'top', t), _defineProperty(_wrapperEl$scrollTo2, \"behavior\", 'smooth'), _wrapperEl$scrollTo2));\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 }\n\n function slideToLoop() {\n var index = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n var speed = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.params.speed;\n var runCallbacks = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n var internal = arguments.length > 3 ? arguments[3] : undefined;\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 }\n /* eslint no-unused-vars: \"off\" */\n\n\n function slideNext() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n var animating = swiper.animating,\n enabled = swiper.enabled,\n params = swiper.params;\n if (!enabled) return swiper;\n var perGroup = params.slidesPerGroup;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n perGroup = Math.max(swiper.slidesPerViewDynamic('current', true), 1);\n }\n\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : perGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n }\n /* eslint no-unused-vars: \"off\" */\n\n\n function slidePrev() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\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 enabled = swiper.enabled;\n if (!enabled) return swiper;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n 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 prevSnap = snapGrid[normalizedSnapGrid.indexOf(normalizedTranslate) - 1];\n\n if (typeof prevSnap === 'undefined' && params.cssMode) {\n var prevSnapIndex;\n snapGrid.forEach(function (snap, snapIndex) {\n if (normalizedTranslate >= snap) {\n // prevSnap = snap;\n prevSnapIndex = snapIndex;\n }\n });\n\n if (typeof prevSnapIndex !== 'undefined') {\n prevSnap = snapGrid[prevSnapIndex > 0 ? prevSnapIndex - 1 : prevSnapIndex];\n }\n }\n\n var prevIndex = 0;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n\n if (params.slidesPerView === 'auto' && params.slidesPerGroup === 1 && params.slidesPerGroupAuto) {\n prevIndex = prevIndex - swiper.slidesPerViewDynamic('previous', true) + 1;\n prevIndex = Math.max(prevIndex, 0);\n }\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n }\n /* eslint no-unused-vars: \"off\" */\n\n\n function slideReset() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n }\n /* eslint no-unused-vars: \"off\" */\n\n\n function slideToClosest() {\n var speed = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.params.speed;\n var runCallbacks = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var internal = arguments.length > 2 ? arguments[2] : undefined;\n var threshold = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0.5;\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 }\n\n 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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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(\".\".concat(params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(realIndex, \"\\\"]:not(.\").concat(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 }\n\n var slide = {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n };\n\n 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(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass)).remove();\n var slides = $wrapperEl.children(\".\".concat(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(\"\".concat(params.slideClass, \" \").concat(params.slideBlankClass));\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\".concat(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 _i2 = 0; _i2 < appendSlides.length; _i2 += 1) {\n $wrapperEl.append($(appendSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i3 = prependSlides.length - 1; _i3 >= 0; _i3 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i3].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n }\n\n 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 }\n\n function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\".concat(params.slideClass, \".\").concat(params.slideDuplicateClass, \",.\").concat(params.slideClass, \".\").concat(params.slideBlankClass)).remove();\n slides.removeAttr('data-swiper-slide-index');\n }\n\n var loop = {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n };\n\n 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.params.touchEventsTarget === 'container' ? swiper.el : swiper.wrapperEl;\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 }\n\n 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[swiper.params.touchEventsTarget === 'container' ? 'el' : 'wrapperEl'].style.cursor = '';\n }\n\n var grabCursor = {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n };\n\n function closestElement(selector) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this;\n\n function __closestFrom(el) {\n if (!el || el === getDocument() || el === getWindow()) return null;\n if (el.assignedSlot) el = el.assignedSlot;\n var found = el.closest(selector);\n return found || __closestFrom(el.getRootNode().host);\n }\n\n return __closestFrom(base);\n }\n\n 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 enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n if (!swiper.animating && params.cssMode && params.loop) {\n swiper.loopFix();\n }\n\n 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 component\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 var noSwipingSelector = params.noSwipingSelector ? params.noSwipingSelector : \".\".concat(params.noSwipingClass);\n var isTargetShadow = !!(e.target && e.target.shadowRoot); // use closestElement for shadow root element to get the actual closest for nested shadow root element\n\n if (params.noSwiping && (isTargetShadow ? closestElement(noSwipingSelector, e.target) : $targetEl.closest(noSwipingSelector)[0])) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n 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 Object.assign(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.focusableElements)) preventDefault = false;\n\n if (document.activeElement && $(document.activeElement).is(data.focusableElements) && 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 }\n\n 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 enabled = swiper.enabled;\n if (!enabled) return;\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 Object.assign(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.focusableElements)) {\n data.isMoved = true;\n swiper.allowClick = false;\n return;\n }\n }\n\n if (data.allowTouchCallbacks) {\n swiper.emit('touchMove', e);\n }\n\n if (e.targetTouches && e.targetTouches.length > 1) return;\n touches.currentX = pageX;\n touches.currentY = pageY;\n 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 && !params.cssMode) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n 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.freeMode.enabled && swiper.freeMode || params.watchSlidesProgress) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeMode && params.freeMode.enabled && swiper.freeMode) {\n swiper.freeMode.onTouchMove();\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n }\n\n 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 slidesGrid = swiper.slidesGrid,\n enabled = swiper.enabled;\n if (!enabled) return;\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 (swiper.params.freeMode && params.freeMode.enabled) {\n swiper.freeMode.onTouchEnd({\n currentPos: currentPos\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 }\n\n 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 }\n\n function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n }\n\n function onScroll() {\n var swiper = this;\n var wrapperEl = swiper.wrapperEl,\n rtlTranslate = swiper.rtlTranslate,\n enabled = swiper.enabled;\n if (!enabled) return;\n swiper.previousTranslate = swiper.translate;\n\n if (swiper.isHorizontal()) {\n swiper.translate = -wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n 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 }\n\n var dummyEventAttached = false;\n\n function dummyEventListener() {}\n\n var events = function events(swiper, method) {\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;\n var domMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n var swiperMethod = method; // Touch Events\n\n if (!support.touch) {\n el[domMethod](touchEvents.start, swiper.onTouchStart, false);\n document[domMethod](touchEvents.move, swiper.onTouchMove, capture);\n document[domMethod](touchEvents.end, swiper.onTouchEnd, false);\n } else {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el[domMethod](touchEvents.start, swiper.onTouchStart, passiveListener);\n el[domMethod](touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el[domMethod](touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el[domMethod](touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el[domMethod]('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl[domMethod]('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper[swiperMethod](device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper[swiperMethod]('observerUpdate', onResize, true);\n }\n };\n\n function attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\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\n if (support.touch && !dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n\n events(swiper, 'on');\n }\n\n function detachEvents() {\n var swiper = this;\n events(swiper, 'off');\n }\n\n var events$1 = {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n };\n\n var isGridEnabled = function isGridEnabled(swiper, params) {\n return swiper.grid && params.grid && params.grid.rows > 1;\n };\n\n 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 if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = isGridEnabled(swiper, params);\n var isMultiRow = isGridEnabled(swiper, breakpointParams);\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(\"\".concat(params.containerModifierClass, \"grid \").concat(params.containerModifierClass, \"grid-column\"));\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid\"));\n\n if (breakpointParams.grid.fill && breakpointParams.grid.fill === 'column' || !breakpointParams.grid.fill && params.grid.fill === 'column') {\n $el.addClass(\"\".concat(params.containerModifierClass, \"grid-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 var isEnabled = swiper.params.enabled;\n Object.assign(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n }\n\n function getBreakpoint(breakpoints) {\n var base = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'window';\n var containerEl = arguments.length > 2 ? arguments[2] : undefined;\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\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 (base === 'window') {\n if (window.matchMedia(\"(min-width: \".concat(value, \"px)\")).matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n }\n\n var breakpoints = {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n };\n\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\n 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.touch\n }, {\n 'free-mode': swiper.params.freeMode && params.freeMode.enabled\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'grid': params.grid && params.grid.rows > 1\n }, {\n 'grid-column': params.grid && params.grid.rows > 1 && params.grid.fill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }, {\n 'centered': params.cssMode && params.centeredSlides\n }], params.containerModifierClass);\n classNames.push.apply(classNames, _toConsumableArray(suffixes));\n $el.addClass(_toConsumableArray(classNames).join(' '));\n swiper.emitContainerClasses();\n }\n\n function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n }\n\n var classes = {\n addClasses: addClasses,\n removeClasses: removeClasses\n };\n\n 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 }\n\n 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 }\n\n var images = {\n loadImage: loadImage,\n preloadImages: preloadImages\n };\n\n function checkOverflow() {\n var swiper = this;\n var wasLocked = swiper.isLocked,\n params = swiper.params;\n var slidesOffsetBefore = params.slidesOffsetBefore;\n\n if (slidesOffsetBefore) {\n var lastSlideIndex = swiper.slides.length - 1;\n var lastSlideRightEdge = swiper.slidesGrid[lastSlideIndex] + swiper.slidesSizesGrid[lastSlideIndex] + slidesOffsetBefore * 2;\n swiper.isLocked = swiper.size > lastSlideRightEdge;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n if (params.allowSlideNext === true) {\n swiper.allowSlideNext = !swiper.isLocked;\n }\n\n if (params.allowSlidePrev === true) {\n swiper.allowSlidePrev = !swiper.isLocked;\n }\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n }\n\n if (wasLocked !== swiper.isLocked) {\n swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n }\n }\n\n var checkOverflow$1 = {\n checkOverflow: checkOverflow\n };\n var defaults = {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'wrapper',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: true,\n nested: false,\n createElements: false,\n enabled: true,\n focusableElements: 'input, select, option, textarea, button, video, label',\n // Overrides\n width: null,\n height: null,\n //\n preventInteractionOnTransition: false,\n // ssr\n userAgent: null,\n url: null,\n // To support iOS's swipe-to-go-back gesture (when being used in-app).\n edgeSwipeDetection: false,\n edgeSwipeThreshold: 20,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n slidesPerGroupAuto: false,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: true,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n 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-',\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 };\n\n function moduleExtendParams(params, allModulesParams) {\n return function extendParams() {\n var obj = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var moduleParamName = Object.keys(obj)[0];\n var moduleParams = obj[moduleParamName];\n\n if (_typeof(moduleParams) !== 'object' || moduleParams === null) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (['navigation', 'pagination', 'scrollbar'].indexOf(moduleParamName) >= 0 && params[moduleParamName] === true) {\n params[moduleParamName] = {\n auto: true\n };\n }\n\n if (!(moduleParamName in params && 'enabled' in moduleParams)) {\n extend(allModulesParams, obj);\n return;\n }\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (_typeof(params[moduleParamName]) === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n extend(allModulesParams, obj);\n };\n }\n /* eslint no-param-reassign: \"off\" */\n\n\n var prototypes = {\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n events: events$1,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow$1,\n classes: classes,\n images: images\n };\n var extendedDefaults = {};\n\n var Swiper = /*#__PURE__*/function () {\n function Swiper() {\n _classCallCheck(this, Swiper);\n\n var el;\n var params;\n\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\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 swiper.modules = _toConsumableArray(swiper.__modules__);\n\n if (params.modules && Array.isArray(params.modules)) {\n var _swiper$modules;\n\n (_swiper$modules = swiper.modules).push.apply(_swiper$modules, _toConsumableArray(params.modules));\n }\n\n var allModulesParams = {};\n swiper.modules.forEach(function (mod) {\n mod({\n swiper: swiper,\n extendParams: moduleExtendParams(params, allModulesParams),\n on: swiper.on.bind(swiper),\n once: swiper.once.bind(swiper),\n off: swiper.off.bind(swiper),\n emit: swiper.emit.bind(swiper)\n });\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults, allModulesParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(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 Object.assign(swiper, {\n enabled: swiper.params.enabled,\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 = ['pointerdown', 'pointermove', 'pointerup'];\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n focusableElements: swiper.params.focusableElements,\n // Last click time\n lastClickTime: now(),\n clickTimeout: undefined,\n // Velocities\n velocities: [],\n allowMomentumBounce: undefined,\n isTouchEvent: undefined,\n startMoving: undefined\n },\n // Clicks\n allowClick: true,\n // Touches\n allowTouchMove: swiper.params.allowTouchMove,\n touches: {\n startX: 0,\n startY: 0,\n currentX: 0,\n currentY: 0,\n diff: 0\n },\n // Images\n imagesToLoad: [],\n imagesLoaded: 0\n });\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n _createClass(Swiper, [{\n key: \"enable\",\n value: function enable() {\n var swiper = this;\n if (swiper.enabled) return;\n swiper.enabled = true;\n\n if (swiper.params.grabCursor) {\n swiper.setGrabCursor();\n }\n\n swiper.emit('enable');\n }\n }, {\n key: \"disable\",\n value: function disable() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.enabled = false;\n\n if (swiper.params.grabCursor) {\n swiper.unsetGrabCursor();\n }\n\n swiper.emit('disable');\n }\n }, {\n key: \"setProgress\",\n value: function setProgress(progress, speed) {\n var swiper = this;\n progress = Math.min(Math.max(progress, 0), 1);\n var min = swiper.minTranslate();\n var max = swiper.maxTranslate();\n var current = (max - min) * progress + min;\n swiper.translateTo(current, typeof speed === 'undefined' ? 0 : speed);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }, {\n key: \"emitContainerClasses\",\n value: function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var cls = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', cls.join(' '));\n }\n }, {\n key: \"getSlideClasses\",\n value: 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 key: \"emitSlidesClasses\",\n value: 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 key: \"slidesPerViewDynamic\",\n value: function slidesPerViewDynamic() {\n var view = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'current';\n var exact = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n slidesSizesGrid = swiper.slidesSizesGrid,\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 _i4 = activeIndex - 1; _i4 >= 0; _i4 -= 1) {\n if (slides[_i4] && !breakLoop) {\n slideSize += slides[_i4].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n // eslint-disable-next-line\n if (view === 'current') {\n for (var _i5 = activeIndex + 1; _i5 < slides.length; _i5 += 1) {\n var slideInView = exact ? slidesGrid[_i5] + slidesSizesGrid[_i5] - slidesGrid[activeIndex] < swiperSize : slidesGrid[_i5] - slidesGrid[activeIndex] < swiperSize;\n\n if (slideInView) {\n spv += 1;\n }\n }\n } else {\n // previous\n for (var _i6 = activeIndex - 1; _i6 >= 0; _i6 -= 1) {\n var _slideInView = slidesGrid[activeIndex] - slidesGrid[_i6] < swiperSize;\n\n if (_slideInView) {\n spv += 1;\n }\n }\n }\n }\n\n return spv;\n }\n }, {\n key: \"update\",\n value: 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 && swiper.params.freeMode.enabled) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n }\n }, {\n key: \"changeDirection\",\n value: function changeDirection(newDirection) {\n var needUpdate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\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(\"\".concat(swiper.params.containerModifierClass).concat(currentDirection)).addClass(\"\".concat(swiper.params.containerModifierClass).concat(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 key: \"mount\",\n value: 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;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\".concat((swiper.params.wrapperClass || '').trim().split(' ').join('.'));\n };\n\n var getWrapper = function getWrapper() {\n if (el && el.shadowRoot && el.shadowRoot.querySelector) {\n var res = $(el.shadowRoot.querySelector(getWrapperSelector())); // Children needs to return slot items\n\n res.children = function (options) {\n return $el.children(options);\n };\n\n return res;\n }\n\n return $el.children(getWrapperSelector());\n }; // Find Wrapper\n\n\n var $wrapperEl = getWrapper();\n\n if ($wrapperEl.length === 0 && swiper.params.createElements) {\n var _document2 = getDocument();\n\n var wrapper = _document2.createElement('div');\n\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\".concat(swiper.params.slideClass)).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n Object.assign(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 key: \"init\",\n value: 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 && swiper.enabled) {\n swiper.setGrabCursor();\n }\n\n if (swiper.params.preloadImages) {\n swiper.preloadImages();\n } // Slide To Initial Slide\n\n\n if (swiper.params.loop) {\n swiper.slideTo(swiper.params.initialSlide + swiper.loopedSlides, 0, swiper.params.runCallbacksOnInit, false, true);\n } else {\n swiper.slideTo(swiper.params.initialSlide, 0, swiper.params.runCallbacksOnInit, false, true);\n } // Attach events\n\n\n swiper.attachEvents(); // Init Flag\n\n swiper.initialized = true; // Emit\n\n swiper.emit('init');\n swiper.emit('afterInit');\n return swiper;\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n var deleteInstance = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;\n var cleanStyles = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\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 key: \"extendDefaults\",\n value: function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n }\n }, {\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 key: \"installModule\",\n value: function installModule(mod) {\n if (!Swiper.prototype.__modules__) Swiper.prototype.__modules__ = [];\n var modules = Swiper.prototype.__modules__;\n\n if (typeof mod === 'function' && modules.indexOf(mod) < 0) {\n modules.push(mod);\n }\n }\n }, {\n key: \"use\",\n value: 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\n return Swiper;\n }();\n\n Object.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n });\n Swiper.use([Resize, Observer]);\n\n function Virtual(_ref7) {\n var swiper = _ref7.swiper,\n extendParams = _ref7.extendParams,\n on = _ref7.on;\n extendParams({\n virtual: {\n enabled: false,\n slides: [],\n cache: true,\n renderSlide: null,\n renderExternal: null,\n renderExternalUpdate: true,\n addSlidesBefore: 0,\n addSlidesAfter: 0\n }\n });\n var cssModeTimeout;\n swiper.virtual = {\n cache: {},\n from: undefined,\n to: undefined,\n slides: [],\n offset: 0,\n slidesGrid: []\n };\n\n function renderSlide(slide, index) {\n var params = swiper.params.virtual;\n\n if (params.cache && swiper.virtual.cache[index]) {\n return swiper.virtual.cache[index];\n }\n\n var $slideEl = params.renderSlide ? $(params.renderSlide.call(swiper, slide, index)) : $(\"
\").concat(slide, \"
\"));\n if (!$slideEl.attr('data-swiper-slide-index')) $slideEl.attr('data-swiper-slide-index', index);\n if (params.cache) swiper.virtual.cache[index] = $slideEl;\n return $slideEl;\n }\n\n function update(force) {\n var _swiper$params = swiper.params,\n slidesPerView = _swiper$params.slidesPerView,\n slidesPerGroup = _swiper$params.slidesPerGroup,\n centeredSlides = _swiper$params.centeredSlides;\n var _swiper$params$virtua = swiper.params.virtual,\n addSlidesBefore = _swiper$params$virtua.addSlidesBefore,\n addSlidesAfter = _swiper$params$virtua.addSlidesAfter;\n var _swiper$virtual = swiper.virtual,\n previousFrom = _swiper$virtual.from,\n previousTo = _swiper$virtual.to,\n slides = _swiper$virtual.slides,\n previousSlidesGrid = _swiper$virtual.slidesGrid,\n previousOffset = _swiper$virtual.offset;\n\n if (!swiper.params.cssMode) {\n swiper.updateActiveIndex();\n }\n\n var activeIndex = swiper.activeIndex || 0;\n var offsetProp;\n if (swiper.rtlTranslate) offsetProp = 'right';else offsetProp = swiper.isHorizontal() ? 'left' : 'top';\n var slidesAfter;\n var slidesBefore;\n\n if (centeredSlides) {\n slidesAfter = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesAfter;\n slidesBefore = Math.floor(slidesPerView / 2) + slidesPerGroup + addSlidesBefore;\n } else {\n slidesAfter = slidesPerView + (slidesPerGroup - 1) + addSlidesAfter;\n slidesBefore = slidesPerGroup + addSlidesBefore;\n }\n\n var from = Math.max((activeIndex || 0) - slidesBefore, 0);\n var to = Math.min((activeIndex || 0) + slidesAfter, slides.length - 1);\n var offset = (swiper.slidesGrid[from] || 0) - (swiper.slidesGrid[0] || 0);\n Object.assign(swiper.virtual, {\n from: from,\n to: to,\n offset: offset,\n slidesGrid: swiper.slidesGrid\n });\n\n function onRendered() {\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\n if (previousFrom === from && previousTo === to && !force) {\n if (swiper.slidesGrid !== previousSlidesGrid && offset !== previousOffset) {\n swiper.slides.css(offsetProp, \"\".concat(offset, \"px\"));\n }\n\n swiper.updateProgress();\n return;\n }\n\n if (swiper.params.virtual.renderExternal) {\n swiper.params.virtual.renderExternal.call(swiper, {\n offset: offset,\n from: from,\n to: to,\n slides: function getSlides() {\n var slidesToRender = [];\n\n for (var i = from; i <= to; i += 1) {\n slidesToRender.push(slides[i]);\n }\n\n return slidesToRender;\n }()\n });\n\n if (swiper.params.virtual.renderExternalUpdate) {\n onRendered();\n }\n\n return;\n }\n\n var prependIndexes = [];\n var appendIndexes = [];\n\n if (force) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass)).remove();\n } else {\n for (var i = previousFrom; i <= previousTo; i += 1) {\n if (i < from || i > to) {\n swiper.$wrapperEl.find(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(i, \"\\\"]\")).remove();\n }\n }\n }\n\n for (var _i7 = 0; _i7 < slides.length; _i7 += 1) {\n if (_i7 >= from && _i7 <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i7);\n } else {\n if (_i7 > previousTo) appendIndexes.push(_i7);\n if (_i7 < previousFrom) prependIndexes.push(_i7);\n }\n }\n }\n\n appendIndexes.forEach(function (index) {\n swiper.$wrapperEl.append(renderSlide(slides[index], index));\n });\n prependIndexes.sort(function (a, b) {\n return b - a;\n }).forEach(function (index) {\n swiper.$wrapperEl.prepend(renderSlide(slides[index], index));\n });\n swiper.$wrapperEl.children('.swiper-slide').css(offsetProp, \"\".concat(offset, \"px\"));\n onRendered();\n }\n\n function appendSlide(slides) {\n if (_typeof(slides) === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.push(slides[i]);\n }\n } else {\n swiper.virtual.slides.push(slides);\n }\n\n update(true);\n }\n\n function prependSlide(slides) {\n var activeIndex = swiper.activeIndex;\n var newActiveIndex = activeIndex + 1;\n var numberOfNewSlides = 1;\n\n if (Array.isArray(slides)) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) swiper.virtual.slides.unshift(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n numberOfNewSlides = slides.length;\n } else {\n swiper.virtual.slides.unshift(slides);\n }\n\n if (swiper.params.virtual.cache) {\n var cache = swiper.virtual.cache;\n var newCache = {};\n Object.keys(cache).forEach(function (cachedIndex) {\n var $cachedEl = cache[cachedIndex];\n var cachedElIndex = $cachedEl.attr('data-swiper-slide-index');\n\n if (cachedElIndex) {\n $cachedEl.attr('data-swiper-slide-index', parseInt(cachedElIndex, 10) + numberOfNewSlides);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n update(true);\n swiper.slideTo(newActiveIndex, 0);\n }\n\n function removeSlide(slidesIndexes) {\n if (typeof slidesIndexes === 'undefined' || slidesIndexes === null) return;\n var activeIndex = swiper.activeIndex;\n\n if (Array.isArray(slidesIndexes)) {\n for (var i = slidesIndexes.length - 1; i >= 0; i -= 1) {\n swiper.virtual.slides.splice(slidesIndexes[i], 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes[i]];\n }\n\n if (slidesIndexes[i] < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n } else {\n swiper.virtual.slides.splice(slidesIndexes, 1);\n\n if (swiper.params.virtual.cache) {\n delete swiper.virtual.cache[slidesIndexes];\n }\n\n if (slidesIndexes < activeIndex) activeIndex -= 1;\n activeIndex = Math.max(activeIndex, 0);\n }\n\n update(true);\n swiper.slideTo(activeIndex, 0);\n }\n\n function removeAllSlides() {\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n update(true);\n swiper.slideTo(0, 0);\n }\n\n on('beforeInit', function () {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.slides = swiper.params.virtual.slides;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"virtual\"));\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n\n if (!swiper.params.initialSlide) {\n update();\n }\n });\n on('setTranslate', function () {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode && !swiper._immediateVirtual) {\n clearTimeout(cssModeTimeout);\n cssModeTimeout = setTimeout(function () {\n update();\n }, 100);\n } else {\n update();\n }\n });\n on('init update resize', function () {\n if (!swiper.params.virtual.enabled) return;\n\n if (swiper.params.cssMode) {\n setCSSProperty(swiper.wrapperEl, '--swiper-virtual-size', \"\".concat(swiper.virtualSize, \"px\"));\n }\n });\n Object.assign(swiper.virtual, {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides,\n update: update\n });\n }\n /* eslint-disable consistent-return */\n\n\n function Keyboard(_ref8) {\n var swiper = _ref8.swiper,\n extendParams = _ref8.extendParams,\n on = _ref8.on,\n emit = _ref8.emit;\n var document = getDocument();\n var window = getWindow();\n swiper.keyboard = {\n enabled: false\n };\n extendParams({\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n });\n\n function handle(event) {\n if (!swiper.enabled) return;\n var rtl = swiper.rtlTranslate;\n var e = event;\n if (e.originalEvent) e = e.originalEvent; // jquery fix\n\n var kc = e.keyCode || e.charCode;\n var pageUpDown = swiper.params.keyboard.pageUpDown;\n var isPageUp = pageUpDown && kc === 33;\n var isPageDown = pageUpDown && kc === 34;\n var isArrowLeft = kc === 37;\n var isArrowRight = kc === 39;\n var isArrowUp = kc === 38;\n var isArrowDown = kc === 40; // Directions locks\n\n if (!swiper.allowSlideNext && (swiper.isHorizontal() && isArrowRight || swiper.isVertical() && isArrowDown || isPageDown)) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && (swiper.isHorizontal() && isArrowLeft || swiper.isVertical() && isArrowUp || isPageUp)) {\n return false;\n }\n\n if (e.shiftKey || e.altKey || e.ctrlKey || e.metaKey) {\n return undefined;\n }\n\n if (document.activeElement && document.activeElement.nodeName && (document.activeElement.nodeName.toLowerCase() === 'input' || document.activeElement.nodeName.toLowerCase() === 'textarea')) {\n return undefined;\n }\n\n if (swiper.params.keyboard.onlyInViewport && (isPageUp || isPageDown || isArrowLeft || isArrowRight || isArrowUp || isArrowDown)) {\n var inView = false; // Check that swiper should be inside of visible area of window\n\n if (swiper.$el.parents(\".\".concat(swiper.params.slideClass)).length > 0 && swiper.$el.parents(\".\".concat(swiper.params.slideActiveClass)).length === 0) {\n return undefined;\n }\n\n var $el = swiper.$el;\n var swiperWidth = $el[0].clientWidth;\n var swiperHeight = $el[0].clientHeight;\n var windowWidth = window.innerWidth;\n var windowHeight = window.innerHeight;\n var swiperOffset = swiper.$el.offset();\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiperWidth, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiperHeight], [swiperOffset.left + swiperWidth, swiperOffset.top + swiperHeight]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= windowWidth && point[1] >= 0 && point[1] <= windowHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n if (!inView) return undefined;\n }\n\n if (swiper.isHorizontal()) {\n if (isPageUp || isPageDown || isArrowLeft || isArrowRight) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if ((isPageDown || isArrowRight) && !rtl || (isPageUp || isArrowLeft) && rtl) swiper.slideNext();\n if ((isPageUp || isArrowLeft) && !rtl || (isPageDown || isArrowRight) && rtl) swiper.slidePrev();\n } else {\n if (isPageUp || isPageDown || isArrowUp || isArrowDown) {\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n }\n\n if (isPageDown || isArrowDown) swiper.slideNext();\n if (isPageUp || isArrowUp) swiper.slidePrev();\n }\n\n emit('keyPress', kc);\n return undefined;\n }\n\n function enable() {\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', handle);\n swiper.keyboard.enabled = true;\n }\n\n function disable() {\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', handle);\n swiper.keyboard.enabled = false;\n }\n\n on('init', function () {\n if (swiper.params.keyboard.enabled) {\n enable();\n }\n });\n on('destroy', function () {\n if (swiper.keyboard.enabled) {\n disable();\n }\n });\n Object.assign(swiper.keyboard, {\n enable: enable,\n disable: disable\n });\n }\n /* eslint-disable consistent-return */\n\n\n function Mousewheel(_ref9) {\n var swiper = _ref9.swiper,\n extendParams = _ref9.extendParams,\n on = _ref9.on,\n emit = _ref9.emit;\n var window = getWindow();\n extendParams({\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 swiper.mousewheel = {\n enabled: false\n };\n var timeout;\n var lastScrollTime = now();\n var lastEventBeforeSnap;\n var recentWheelEvents = [];\n\n 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\n function handleMouseEnter() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n }\n\n function handleMouseLeave() {\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n }\n\n function animateSlider(newEvent) {\n if (swiper.params.mousewheel.thresholdDelta && newEvent.delta < swiper.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (swiper.params.mousewheel.thresholdTime && now() - lastScrollTime < swiper.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() - 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 emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n }\n\n function releaseScroll(newEvent) {\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\n function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n if (!swiper.enabled) return;\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 = 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 || !swiper.params.freeMode.enabled) {\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 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 animateSlider(newEvent);\n }\n } else {\n 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 (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 ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n 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.freeMode.sticky) {\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(timeout);\n timeout = undefined;\n\n if (recentWheelEvents.length >= 15) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var _prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = recentWheelEvents[0];\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 lastEventBeforeSnap = _newEvent;\n recentWheelEvents.splice(0);\n timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!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 timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n lastEventBeforeSnap = _newEvent;\n recentWheelEvents.splice(0);\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) 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\n function events(method) {\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target[method]('mouseenter', handleMouseEnter);\n target[method]('mouseleave', handleMouseLeave);\n target[method]('wheel', handle);\n }\n\n function enable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener('wheel', handle);\n return true;\n }\n\n if (swiper.mousewheel.enabled) return false;\n events('on');\n swiper.mousewheel.enabled = true;\n return true;\n }\n\n function disable() {\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, handle);\n return true;\n }\n\n if (!swiper.mousewheel.enabled) return false;\n events('off');\n swiper.mousewheel.enabled = false;\n return true;\n }\n\n on('init', function () {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n disable();\n }\n\n if (swiper.params.mousewheel.enabled) enable();\n });\n on('destroy', function () {\n if (swiper.params.cssMode) {\n enable();\n }\n\n if (swiper.mousewheel.enabled) disable();\n });\n Object.assign(swiper.mousewheel, {\n enable: enable,\n disable: disable\n });\n }\n\n function createElementIfNotDefined(swiper, originalParams, params, checkProps) {\n var document = getDocument();\n\n if (swiper.params.createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = swiper.$el.children(\".\".concat(checkProps[key]))[0];\n\n if (!element) {\n element = document.createElement('div');\n element.className = checkProps[key];\n swiper.$el.append(element);\n }\n\n params[key] = element;\n originalParams[key] = element;\n }\n });\n }\n\n return params;\n }\n\n function Navigation(_ref10) {\n var swiper = _ref10.swiper,\n extendParams = _ref10.extendParams,\n on = _ref10.on,\n emit = _ref10.emit;\n extendParams({\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n });\n swiper.navigation = {\n nextEl: null,\n $nextEl: null,\n prevEl: null,\n $prevEl: null\n };\n\n function getEl(el) {\n var $el;\n\n if (el) {\n $el = $(el);\n\n if (swiper.params.uniqueNavElements && typeof el === 'string' && $el.length > 1 && swiper.$el.find(el).length === 1) {\n $el = swiper.$el.find(el);\n }\n }\n\n return $el;\n }\n\n function toggleEl($el, disabled) {\n var params = swiper.params.navigation;\n\n if ($el && $el.length > 0) {\n $el[disabled ? 'addClass' : 'removeClass'](params.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n }\n\n function update() {\n // Update Navigation Buttons\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n toggleEl($prevEl, swiper.isBeginning);\n toggleEl($nextEl, swiper.isEnd);\n }\n\n function onPrevClick(e) {\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n }\n\n function onNextClick(e) {\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n }\n\n function init() {\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper, swiper.originalParams.navigation, swiper.params.navigation, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl = getEl(params.nextEl);\n var $prevEl = getEl(params.prevEl);\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', onPrevClick);\n }\n\n Object.assign(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n 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', onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n\n on('init', function () {\n init();\n update();\n });\n on('toEdge fromEdge lock unlock', function () {\n update();\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var _swiper$navigation3 = swiper.navigation,\n $nextEl = _swiper$navigation3.$nextEl,\n $prevEl = _swiper$navigation3.$prevEl;\n\n if ($nextEl) {\n $nextEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n\n if ($prevEl) {\n $prevEl[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.navigation.lockClass);\n }\n });\n on('click', function (_s, e) {\n var _swiper$navigation4 = swiper.navigation,\n $nextEl = _swiper$navigation4.$nextEl,\n $prevEl = _swiper$navigation4.$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 emit('navigationShow');\n } else {\n emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n });\n Object.assign(swiper.navigation, {\n update: update,\n init: init,\n destroy: destroy\n });\n }\n\n function classesToSelector() {\n var classes = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n return \".\".concat(classes.trim().replace(/([\\.:!\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.'));\n }\n\n function Pagination(_ref11) {\n var swiper = _ref11.swiper,\n extendParams = _ref11.extendParams,\n on = _ref11.on,\n emit = _ref11.emit;\n var pfx = 'swiper-pagination';\n extendParams({\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: \"\".concat(pfx, \"-bullet\"),\n bulletActiveClass: \"\".concat(pfx, \"-bullet-active\"),\n modifierClass: \"\".concat(pfx, \"-\"),\n currentClass: \"\".concat(pfx, \"-current\"),\n totalClass: \"\".concat(pfx, \"-total\"),\n hiddenClass: \"\".concat(pfx, \"-hidden\"),\n progressbarFillClass: \"\".concat(pfx, \"-progressbar-fill\"),\n progressbarOppositeClass: \"\".concat(pfx, \"-progressbar-opposite\"),\n clickableClass: \"\".concat(pfx, \"-clickable\"),\n lockClass: \"\".concat(pfx, \"-lock\"),\n horizontalClass: \"\".concat(pfx, \"-horizontal\"),\n verticalClass: \"\".concat(pfx, \"-vertical\")\n }\n });\n swiper.pagination = {\n el: null,\n $el: null,\n bullets: []\n };\n var bulletSize;\n var dynamicBulletIndex = 0;\n\n function isPaginationDisabled() {\n return !swiper.params.pagination.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0;\n }\n\n function setSideBullets($bulletEl, position) {\n var bulletActiveClass = swiper.params.pagination.bulletActiveClass;\n $bulletEl[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position))[position]().addClass(\"\".concat(bulletActiveClass, \"-\").concat(position, \"-\").concat(position));\n }\n\n function update() {\n // Render || Update Pagination bullets/items\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) 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 bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', \"\".concat(bulletSize * (params.dynamicMainBullets + 4), \"px\"));\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n dynamicBulletIndex += current - swiper.previousIndex;\n\n if (dynamicBulletIndex > params.dynamicMainBullets - 1) {\n dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (dynamicBulletIndex < 0) {\n dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(['', '-next', '-next-next', '-prev', '-prev-prev', '-main'].map(function (suffix) {\n return \"\".concat(params.bulletActiveClass).concat(suffix);\n }).join(' '));\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(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (bulletIndex === firstIndex) {\n setSideBullets($bullet, 'prev');\n }\n\n if (bulletIndex === lastIndex) {\n setSideBullets($bullet, '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(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i8 = params.dynamicMainBullets; _i8 >= 0; _i8 -= 1) {\n bullets.eq(bullets.length - _i8).addClass(\"\".concat(params.bulletActiveClass, \"-main\"));\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(\"\".concat(params.bulletActiveClass, \"-prev\"));\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n } else {\n setSideBullets($firstDisplayedBullet, 'prev');\n setSideBullets($lastDisplayedBullet, 'next');\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (bulletSize * dynamicBulletsLength - bulletSize) / 2 - midIndex * bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', \"\".concat(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(\".concat(scaleX, \") scaleY(\").concat(scaleY, \")\")).transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n emit('paginationRender', $el[0]);\n } else {\n emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n function render() {\n // Render Container\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) 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.freeMode.enabled && !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 += \"<\".concat(params.bulletElement, \" class=\\\"\").concat(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 emit('paginationRender', swiper.pagination.$el[0]);\n }\n }\n\n function init() {\n swiper.params.pagination = createElementIfNotDefined(swiper, swiper.originalParams.pagination, swiper.params.pagination, {\n el: 'swiper-pagination'\n });\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); // check if it belongs to another nested Swiper\n\n if ($el.length > 1) {\n $el = $el.filter(function (el) {\n if ($(el).parents('.swiper')[0] !== swiper.el) return false;\n return true;\n });\n }\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n $el.addClass(params.modifierClass + swiper.params.direction);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\".concat(params.modifierClass).concat(params.type, \"-dynamic\"));\n 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 Object.assign(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n }\n\n function destroy() {\n var params = swiper.params.pagination;\n if (isPaginationDisabled()) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n $el.removeClass(params.modifierClass + swiper.params.direction);\n if (swiper.pagination.bullets && swiper.pagination.bullets.removeClass) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n\n on('init', function () {\n init();\n render();\n update();\n });\n on('activeIndexChange', function () {\n if (swiper.params.loop) {\n update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n update();\n }\n });\n on('snapIndexChange', function () {\n if (!swiper.params.loop) {\n update();\n }\n });\n on('slidesLengthChange', function () {\n if (swiper.params.loop) {\n render();\n update();\n }\n });\n on('snapGridLengthChange', function () {\n if (!swiper.params.loop) {\n render();\n update();\n }\n });\n on('destroy', function () {\n destroy();\n });\n on('enable disable', function () {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n });\n on('lock unlock', function () {\n update();\n });\n on('click', function (_s, e) {\n var targetEl = e.target;\n var $el = swiper.pagination.$el;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && $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 = $el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n emit('paginationShow');\n } else {\n emit('paginationHide');\n }\n\n $el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n });\n Object.assign(swiper.pagination, {\n render: render,\n update: update,\n init: init,\n destroy: destroy\n });\n }\n\n function Scrollbar(_ref12) {\n var swiper = _ref12.swiper,\n extendParams = _ref12.extendParams,\n on = _ref12.on,\n emit = _ref12.emit;\n var document = getDocument();\n var isTouched = false;\n var timeout = null;\n var dragTimeout = null;\n var dragStartPos;\n var dragSize;\n var trackSize;\n var divider;\n extendParams({\n scrollbar: {\n el: null,\n dragSize: 'auto',\n hide: false,\n draggable: false,\n snapOnRelease: true,\n lockClass: 'swiper-scrollbar-lock',\n dragClass: 'swiper-scrollbar-drag'\n }\n });\n swiper.scrollbar = {\n el: null,\n dragEl: null,\n $el: null,\n $dragEl: null\n };\n\n function setTranslate() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate,\n progress = swiper.progress;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n var params = swiper.params.scrollbar;\n var newSize = dragSize;\n var newPos = (trackSize - dragSize) * progress;\n\n if (rtl) {\n newPos = -newPos;\n\n if (newPos > 0) {\n newSize = dragSize - newPos;\n newPos = 0;\n } else if (-newPos + dragSize > trackSize) {\n newSize = trackSize + newPos;\n }\n } else if (newPos < 0) {\n newSize = dragSize + newPos;\n newPos = 0;\n } else if (newPos + dragSize > trackSize) {\n newSize = trackSize - newPos;\n }\n\n if (swiper.isHorizontal()) {\n $dragEl.transform(\"translate3d(\".concat(newPos, \"px, 0, 0)\"));\n $dragEl[0].style.width = \"\".concat(newSize, \"px\");\n } else {\n $dragEl.transform(\"translate3d(0px, \".concat(newPos, \"px, 0)\"));\n $dragEl[0].style.height = \"\".concat(newSize, \"px\");\n }\n\n if (params.hide) {\n clearTimeout(timeout);\n $el[0].style.opacity = 1;\n timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n }\n\n function setTransition(duration) {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n }\n\n function updateSize() {\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n var scrollbar = swiper.scrollbar;\n var $dragEl = scrollbar.$dragEl,\n $el = scrollbar.$el;\n $dragEl[0].style.width = '';\n $dragEl[0].style.height = '';\n trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n divider = swiper.size / (swiper.virtualSize + swiper.params.slidesOffsetBefore - (swiper.params.centeredSlides ? swiper.snapGrid[0] : 0));\n\n if (swiper.params.scrollbar.dragSize === 'auto') {\n dragSize = trackSize * divider;\n } else {\n dragSize = parseInt(swiper.params.scrollbar.dragSize, 10);\n }\n\n if (swiper.isHorizontal()) {\n $dragEl[0].style.width = \"\".concat(dragSize, \"px\");\n } else {\n $dragEl[0].style.height = \"\".concat(dragSize, \"px\");\n }\n\n if (divider >= 1) {\n $el[0].style.display = 'none';\n } else {\n $el[0].style.display = '';\n }\n\n if (swiper.params.scrollbar.hide) {\n $el[0].style.opacity = 0;\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function getPointerPosition(e) {\n if (swiper.isHorizontal()) {\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientX : e.clientX;\n }\n\n return e.type === 'touchstart' || e.type === 'touchmove' ? e.targetTouches[0].clientY : e.clientY;\n }\n\n function setDragPosition(e) {\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el;\n var positionRatio;\n positionRatio = (getPointerPosition(e) - $el.offset()[swiper.isHorizontal() ? 'left' : 'top'] - (dragStartPos !== null ? dragStartPos : dragSize / 2)) / (trackSize - dragSize);\n positionRatio = Math.max(Math.min(positionRatio, 1), 0);\n\n if (rtl) {\n positionRatio = 1 - positionRatio;\n }\n\n var position = swiper.minTranslate() + (swiper.maxTranslate() - swiper.minTranslate()) * positionRatio;\n swiper.updateProgress(position);\n swiper.setTranslate(position);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n function onDragStart(e) {\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n isTouched = true;\n dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? getPointerPosition(e) - e.target.getBoundingClientRect()[swiper.isHorizontal() ? 'left' : 'top'] : null;\n e.preventDefault();\n e.stopPropagation();\n $wrapperEl.transition(100);\n $dragEl.transition(100);\n setDragPosition(e);\n clearTimeout(dragTimeout);\n $el.transition(0);\n\n if (params.hide) {\n $el.css('opacity', 1);\n }\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', 'none');\n }\n\n emit('scrollbarDragStart', e);\n }\n\n function onDragMove(e) {\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n emit('scrollbarDragMove', e);\n }\n\n function onDragEnd(e) {\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!isTouched) return;\n isTouched = false;\n\n if (swiper.params.cssMode) {\n swiper.$wrapperEl.css('scroll-snap-type', '');\n $wrapperEl.transition('');\n }\n\n if (params.hide) {\n clearTimeout(dragTimeout);\n dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n }\n\n function events(method) {\n var scrollbar = swiper.scrollbar,\n touchEventsTouch = swiper.touchEventsTouch,\n touchEventsDesktop = swiper.touchEventsDesktop,\n params = swiper.params,\n support = swiper.support;\n var $el = scrollbar.$el;\n var target = $el[0];\n var activeListener = support.passiveListener && params.passiveListeners ? {\n passive: false,\n capture: false\n } : false;\n var passiveListener = support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n if (!target) return;\n var eventMethod = method === 'on' ? 'addEventListener' : 'removeEventListener';\n\n if (!support.touch) {\n target[eventMethod](touchEventsDesktop.start, onDragStart, activeListener);\n document[eventMethod](touchEventsDesktop.move, onDragMove, activeListener);\n document[eventMethod](touchEventsDesktop.end, onDragEnd, passiveListener);\n } else {\n target[eventMethod](touchEventsTouch.start, onDragStart, activeListener);\n target[eventMethod](touchEventsTouch.move, onDragMove, activeListener);\n target[eventMethod](touchEventsTouch.end, onDragEnd, passiveListener);\n }\n }\n\n function enableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('on');\n }\n\n function disableDraggable() {\n if (!swiper.params.scrollbar.el) return;\n events('off');\n }\n\n function init() {\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined(swiper, swiper.originalParams.scrollbar, swiper.params.scrollbar, {\n el: 'swiper-scrollbar'\n });\n var params = swiper.params.scrollbar;\n if (!params.el) return;\n var $el = $(params.el);\n\n if (swiper.params.uniqueNavElements && typeof params.el === 'string' && $el.length > 1 && $swiperEl.find(params.el).length === 1) {\n $el = $swiperEl.find(params.el);\n }\n\n var $dragEl = $el.find(\".\".concat(swiper.params.scrollbar.dragClass));\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"
\"));\n $el.append($dragEl);\n }\n\n Object.assign(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n }\n\n function destroy() {\n disableDraggable();\n }\n\n on('init', function () {\n init();\n updateSize();\n setTranslate();\n });\n on('update resize observerUpdate lock unlock', function () {\n updateSize();\n });\n on('setTranslate', function () {\n setTranslate();\n });\n on('setTransition', function (_s, duration) {\n setTransition(duration);\n });\n on('enable disable', function () {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n });\n on('destroy', function () {\n destroy();\n });\n Object.assign(swiper.scrollbar, {\n updateSize: updateSize,\n setTranslate: setTranslate,\n init: init,\n destroy: destroy\n });\n }\n\n function Parallax(_ref13) {\n var swiper = _ref13.swiper,\n extendParams = _ref13.extendParams,\n on = _ref13.on;\n extendParams({\n parallax: {\n enabled: false\n }\n });\n\n var setTransform = function setTransform(el, progress) {\n var rtl = swiper.rtl;\n var $el = $(el);\n var rtlFactor = rtl ? -1 : 1;\n var p = $el.attr('data-swiper-parallax') || '0';\n var x = $el.attr('data-swiper-parallax-x');\n var y = $el.attr('data-swiper-parallax-y');\n var scale = $el.attr('data-swiper-parallax-scale');\n var opacity = $el.attr('data-swiper-parallax-opacity');\n\n if (x || y) {\n x = x || '0';\n y = y || '0';\n } else if (swiper.isHorizontal()) {\n x = p;\n y = '0';\n } else {\n y = p;\n x = '0';\n }\n\n if (x.indexOf('%') >= 0) {\n x = \"\".concat(parseInt(x, 10) * progress * rtlFactor, \"%\");\n } else {\n x = \"\".concat(x * progress * rtlFactor, \"px\");\n }\n\n if (y.indexOf('%') >= 0) {\n y = \"\".concat(parseInt(y, 10) * progress, \"%\");\n } else {\n y = \"\".concat(y * progress, \"px\");\n }\n\n if (typeof opacity !== 'undefined' && opacity !== null) {\n var currentOpacity = opacity - (opacity - 1) * (1 - Math.abs(progress));\n $el[0].style.opacity = currentOpacity;\n }\n\n if (typeof scale === 'undefined' || scale === null) {\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px)\"));\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\".concat(x, \", \").concat(y, \", 0px) scale(\").concat(currentScale, \")\"));\n }\n };\n\n var setTranslate = function setTranslate() {\n var $el = swiper.$el,\n slides = swiper.slides,\n progress = swiper.progress,\n snapGrid = swiper.snapGrid;\n $el.children('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n setTransform(el, progress);\n });\n slides.each(function (slideEl, slideIndex) {\n var slideProgress = slideEl.progress;\n\n if (swiper.params.slidesPerGroup > 1 && swiper.params.slidesPerView !== 'auto') {\n slideProgress += Math.ceil(slideIndex / 2) - progress * (snapGrid.length - 1);\n }\n\n slideProgress = Math.min(Math.max(slideProgress, -1), 1);\n $(slideEl).find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (el) {\n setTransform(el, slideProgress);\n });\n });\n };\n\n var setTransition = function setTransition() {\n var duration = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : swiper.params.speed;\n var $el = swiper.$el;\n $el.find('[data-swiper-parallax], [data-swiper-parallax-x], [data-swiper-parallax-y], [data-swiper-parallax-opacity], [data-swiper-parallax-scale]').each(function (parallaxEl) {\n var $parallaxEl = $(parallaxEl);\n var parallaxDuration = parseInt($parallaxEl.attr('data-swiper-parallax-duration'), 10) || duration;\n if (duration === 0) parallaxDuration = 0;\n $parallaxEl.transition(parallaxDuration);\n });\n };\n\n on('beforeInit', function () {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n });\n on('init', function () {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTranslate', function () {\n if (!swiper.params.parallax.enabled) return;\n setTranslate();\n });\n on('setTransition', function (_swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n setTransition(duration);\n });\n }\n\n function Zoom(_ref14) {\n var swiper = _ref14.swiper,\n extendParams = _ref14.extendParams,\n on = _ref14.on,\n emit = _ref14.emit;\n var window = getWindow();\n extendParams({\n zoom: {\n enabled: false,\n maxRatio: 3,\n minRatio: 1,\n toggle: true,\n containerClass: 'swiper-zoom-container',\n zoomedSlideClass: 'swiper-slide-zoomed'\n }\n });\n swiper.zoom = {\n enabled: false\n };\n var currentScale = 1;\n var isScaling = false;\n var gesturesEnabled;\n var fakeGestureTouched;\n var fakeGestureMoved;\n var gesture = {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n };\n var image = {\n isTouched: undefined,\n isMoved: undefined,\n currentX: undefined,\n currentY: undefined,\n minX: undefined,\n minY: undefined,\n maxX: undefined,\n maxY: undefined,\n width: undefined,\n height: undefined,\n startX: undefined,\n startY: undefined,\n touchesStart: {},\n touchesCurrent: {}\n };\n var velocity = {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n };\n var scale = 1;\n Object.defineProperty(swiper.zoom, 'scale', {\n get: function get() {\n return scale;\n },\n set: function set(value) {\n if (scale !== value) {\n var imageEl = gesture.$imageEl ? gesture.$imageEl[0] : undefined;\n var slideEl = gesture.$slideEl ? gesture.$slideEl[0] : undefined;\n emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n\n function getDistanceBetweenTouches(e) {\n if (e.targetTouches.length < 2) return 1;\n var x1 = e.targetTouches[0].pageX;\n var y1 = e.targetTouches[0].pageY;\n var x2 = e.targetTouches[1].pageX;\n var y2 = e.targetTouches[1].pageY;\n var distance = Math.sqrt(Math.pow(x2 - x1, 2) + Math.pow(y2 - y1, 2));\n return distance;\n } // Events\n\n\n function onGestureStart(e) {\n var support = swiper.support;\n var params = swiper.params.zoom;\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureTouched = true;\n gesture.scaleStart = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n gesture.maxRatio = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (gesture.$imageWrapEl.length === 0) {\n gesture.$imageEl = undefined;\n return;\n }\n }\n\n if (gesture.$imageEl) {\n gesture.$imageEl.transition(0);\n }\n\n isScaling = true;\n }\n\n function onGestureChange(e) {\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n fakeGestureMoved = true;\n gesture.scaleMove = getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * currentScale;\n }\n\n if (zoom.scale > gesture.maxRatio) {\n zoom.scale = gesture.maxRatio - 1 + Math.pow(zoom.scale - gesture.maxRatio + 1, 0.5);\n }\n\n if (zoom.scale < params.minRatio) {\n zoom.scale = params.minRatio + 1 - Math.pow(params.minRatio - zoom.scale + 1, 0.5);\n }\n\n gesture.$imageEl.transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n }\n\n function onGestureEnd(e) {\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n\n if (!support.gestures) {\n if (!fakeGestureTouched || !fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n fakeGestureTouched = false;\n fakeGestureMoved = false;\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n zoom.scale = Math.max(Math.min(zoom.scale, gesture.maxRatio), params.minRatio);\n gesture.$imageEl.transition(swiper.params.speed).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n currentScale = zoom.scale;\n isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n }\n\n function onTouchStart(e) {\n var device = swiper.device;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n if (image.isTouched) return;\n if (device.android && e.cancelable) e.preventDefault();\n image.isTouched = true;\n image.touchesStart.x = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesStart.y = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n }\n\n function onTouchMove(e) {\n var zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n swiper.allowClick = false;\n if (!image.isTouched || !gesture.$slideEl) return;\n\n if (!image.isMoved) {\n image.width = gesture.$imageEl[0].offsetWidth;\n image.height = gesture.$imageEl[0].offsetHeight;\n image.startX = getTranslate(gesture.$imageWrapEl[0], 'x') || 0;\n image.startY = getTranslate(gesture.$imageWrapEl[0], 'y') || 0;\n gesture.slideWidth = gesture.$slideEl[0].offsetWidth;\n gesture.slideHeight = gesture.$slideEl[0].offsetHeight;\n gesture.$imageWrapEl.transition(0);\n } // Define if we need image drag\n\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n if (scaledWidth < gesture.slideWidth && scaledHeight < gesture.slideHeight) return;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.touchesCurrent.x = e.type === 'touchmove' ? e.targetTouches[0].pageX : e.pageX;\n image.touchesCurrent.y = e.type === 'touchmove' ? e.targetTouches[0].pageY : e.pageY;\n\n if (!image.isMoved && !isScaling) {\n if (swiper.isHorizontal() && (Math.floor(image.minX) === Math.floor(image.startX) && image.touchesCurrent.x < image.touchesStart.x || Math.floor(image.maxX) === Math.floor(image.startX) && image.touchesCurrent.x > image.touchesStart.x)) {\n image.isTouched = false;\n return;\n }\n\n if (!swiper.isHorizontal() && (Math.floor(image.minY) === Math.floor(image.startY) && image.touchesCurrent.y < image.touchesStart.y || Math.floor(image.maxY) === Math.floor(image.startY) && image.touchesCurrent.y > image.touchesStart.y)) {\n image.isTouched = false;\n return;\n }\n }\n\n if (e.cancelable) {\n e.preventDefault();\n }\n\n e.stopPropagation();\n image.isMoved = true;\n image.currentX = image.touchesCurrent.x - image.touchesStart.x + image.startX;\n image.currentY = image.touchesCurrent.y - image.touchesStart.y + image.startY;\n\n if (image.currentX < image.minX) {\n image.currentX = image.minX + 1 - Math.pow(image.minX - image.currentX + 1, 0.8);\n }\n\n if (image.currentX > image.maxX) {\n image.currentX = image.maxX - 1 + Math.pow(image.currentX - image.maxX + 1, 0.8);\n }\n\n if (image.currentY < image.minY) {\n image.currentY = image.minY + 1 - Math.pow(image.minY - image.currentY + 1, 0.8);\n }\n\n if (image.currentY > image.maxY) {\n image.currentY = image.maxY - 1 + Math.pow(image.currentY - image.maxY + 1, 0.8);\n } // Velocity\n\n\n if (!velocity.prevPositionX) velocity.prevPositionX = image.touchesCurrent.x;\n if (!velocity.prevPositionY) velocity.prevPositionY = image.touchesCurrent.y;\n if (!velocity.prevTime) velocity.prevTime = Date.now();\n velocity.x = (image.touchesCurrent.x - velocity.prevPositionX) / (Date.now() - velocity.prevTime) / 2;\n velocity.y = (image.touchesCurrent.y - velocity.prevPositionY) / (Date.now() - velocity.prevTime) / 2;\n if (Math.abs(image.touchesCurrent.x - velocity.prevPositionX) < 2) velocity.x = 0;\n if (Math.abs(image.touchesCurrent.y - velocity.prevPositionY) < 2) velocity.y = 0;\n velocity.prevPositionX = image.touchesCurrent.x;\n velocity.prevPositionY = image.touchesCurrent.y;\n velocity.prevTime = Date.now();\n gesture.$imageWrapEl.transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n }\n\n function onTouchEnd() {\n var zoom = swiper.zoom;\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) return;\n\n if (!image.isTouched || !image.isMoved) {\n image.isTouched = false;\n image.isMoved = false;\n return;\n }\n\n image.isTouched = false;\n image.isMoved = false;\n var momentumDurationX = 300;\n var momentumDurationY = 300;\n var momentumDistanceX = velocity.x * momentumDurationX;\n var newPositionX = image.currentX + momentumDistanceX;\n var momentumDistanceY = velocity.y * momentumDurationY;\n var newPositionY = image.currentY + momentumDistanceY; // Fix duration\n\n if (velocity.x !== 0) momentumDurationX = Math.abs((newPositionX - image.currentX) / velocity.x);\n if (velocity.y !== 0) momentumDurationY = Math.abs((newPositionY - image.currentY) / velocity.y);\n var momentumDuration = Math.max(momentumDurationX, momentumDurationY);\n image.currentX = newPositionX;\n image.currentY = newPositionY; // Define if we need image drag\n\n var scaledWidth = image.width * zoom.scale;\n var scaledHeight = image.height * zoom.scale;\n image.minX = Math.min(gesture.slideWidth / 2 - scaledWidth / 2, 0);\n image.maxX = -image.minX;\n image.minY = Math.min(gesture.slideHeight / 2 - scaledHeight / 2, 0);\n image.maxY = -image.minY;\n image.currentX = Math.max(Math.min(image.currentX, image.maxX), image.minX);\n image.currentY = Math.max(Math.min(image.currentY, image.maxY), image.minY);\n gesture.$imageWrapEl.transition(momentumDuration).transform(\"translate3d(\".concat(image.currentX, \"px, \").concat(image.currentY, \"px,0)\"));\n }\n\n function onTransitionEnd() {\n var zoom = swiper.zoom;\n\n if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) {\n if (gesture.$imageEl) {\n gesture.$imageEl.transform('translate3d(0,0,0) scale(1)');\n }\n\n if (gesture.$imageWrapEl) {\n gesture.$imageWrapEl.transform('translate3d(0,0,0)');\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n }\n\n function zoomIn(e) {\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\".concat(swiper.params.slideClass));\n }\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = 'hidden';\n swiper.wrapperEl.style.touchAction = 'none';\n }\n\n gesture.$slideEl.addClass(\"\".concat(params.zoomedSlideClass));\n var touchX;\n var touchY;\n var offsetX;\n var offsetY;\n var diffX;\n var diffY;\n var translateX;\n var translateY;\n var imageWidth;\n var imageHeight;\n var scaledWidth;\n var scaledHeight;\n var translateMinX;\n var translateMinY;\n var translateMaxX;\n var translateMaxY;\n var slideWidth;\n var slideHeight;\n\n if (typeof image.touchesStart.x === 'undefined' && e) {\n touchX = e.type === 'touchend' ? e.changedTouches[0].pageX : e.pageX;\n touchY = e.type === 'touchend' ? e.changedTouches[0].pageY : e.pageY;\n } else {\n touchX = image.touchesStart.x;\n touchY = image.touchesStart.y;\n }\n\n zoom.scale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n currentScale = gesture.$imageWrapEl.attr('data-swiper-zoom') || params.maxRatio;\n\n if (e) {\n slideWidth = gesture.$slideEl[0].offsetWidth;\n slideHeight = gesture.$slideEl[0].offsetHeight;\n offsetX = gesture.$slideEl.offset().left + window.scrollX;\n offsetY = gesture.$slideEl.offset().top + window.scrollY;\n diffX = offsetX + slideWidth / 2 - touchX;\n diffY = offsetY + slideHeight / 2 - touchY;\n imageWidth = gesture.$imageEl[0].offsetWidth;\n imageHeight = gesture.$imageEl[0].offsetHeight;\n scaledWidth = imageWidth * zoom.scale;\n scaledHeight = imageHeight * zoom.scale;\n translateMinX = Math.min(slideWidth / 2 - scaledWidth / 2, 0);\n translateMinY = Math.min(slideHeight / 2 - scaledHeight / 2, 0);\n translateMaxX = -translateMinX;\n translateMaxY = -translateMinY;\n translateX = diffX * zoom.scale;\n translateY = diffY * zoom.scale;\n\n if (translateX < translateMinX) {\n translateX = translateMinX;\n }\n\n if (translateX > translateMaxX) {\n translateX = translateMaxX;\n }\n\n if (translateY < translateMinY) {\n translateY = translateMinY;\n }\n\n if (translateY > translateMaxY) {\n translateY = translateMaxY;\n }\n } else {\n translateX = 0;\n translateY = 0;\n }\n\n gesture.$imageWrapEl.transition(300).transform(\"translate3d(\".concat(translateX, \"px, \").concat(translateY, \"px,0)\"));\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\".concat(zoom.scale, \")\"));\n }\n\n function zoomOut() {\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideActiveClass));\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find(\".\".concat(params.containerClass)).eq(0).find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\".concat(params.containerClass));\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.style.overflow = '';\n swiper.wrapperEl.style.touchAction = '';\n }\n\n zoom.scale = 1;\n currentScale = 1;\n gesture.$imageWrapEl.transition(300).transform('translate3d(0,0,0)');\n gesture.$imageEl.transition(300).transform('translate3d(0,0,0) scale(1)');\n gesture.$slideEl.removeClass(\"\".concat(params.zoomedSlideClass));\n gesture.$slideEl = undefined;\n } // Toggle Zoom\n\n\n function zoomToggle(e) {\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoomOut();\n } else {\n // Zoom In\n zoomIn(e);\n }\n }\n\n function getListeners() {\n var support = swiper.support;\n var passiveListener = swiper.touchEvents.start === 'touchstart' && support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n var activeListenerWithCapture = support.passiveListener ? {\n passive: false,\n capture: true\n } : true;\n return {\n passiveListener: passiveListener,\n activeListenerWithCapture: activeListenerWithCapture\n };\n }\n\n function getSlideSelector() {\n return \".\".concat(swiper.params.slideClass);\n }\n\n function toggleGestures(method) {\n var _getListeners = getListeners(),\n passiveListener = _getListeners.passiveListener;\n\n var slideSelector = getSlideSelector();\n swiper.$wrapperEl[method]('gesturestart', slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl[method]('gesturechange', slideSelector, onGestureChange, passiveListener);\n swiper.$wrapperEl[method]('gestureend', slideSelector, onGestureEnd, passiveListener);\n }\n\n function enableGestures() {\n if (gesturesEnabled) return;\n gesturesEnabled = true;\n toggleGestures('on');\n }\n\n function disableGestures() {\n if (!gesturesEnabled) return;\n gesturesEnabled = false;\n toggleGestures('off');\n } // Attach/Detach Events\n\n\n function enable() {\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\n var support = swiper.support;\n\n var _getListeners2 = getListeners(),\n passiveListener = _getListeners2.passiveListener,\n activeListenerWithCapture = _getListeners2.activeListenerWithCapture;\n\n var slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n }\n\n function disable() {\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n zoom.enabled = false;\n\n var _getListeners3 = getListeners(),\n passiveListener = _getListeners3.passiveListener,\n activeListenerWithCapture = _getListeners3.activeListenerWithCapture;\n\n var slideSelector = getSlideSelector(); // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\".concat(swiper.params.zoom.containerClass), onTouchMove, activeListenerWithCapture);\n }\n\n on('init', function () {\n if (swiper.params.zoom.enabled) {\n enable();\n }\n });\n on('destroy', function () {\n disable();\n });\n on('touchStart', function (_s, e) {\n if (!swiper.zoom.enabled) return;\n onTouchStart(e);\n });\n on('touchEnd', function (_s, e) {\n if (!swiper.zoom.enabled) return;\n onTouchEnd();\n });\n on('doubleTap', function (_s, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n zoomToggle(e);\n }\n });\n on('transitionEnd', function () {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n onTransitionEnd();\n }\n });\n on('slideChange', function () {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n onTransitionEnd();\n }\n });\n Object.assign(swiper.zoom, {\n enable: enable,\n disable: disable,\n in: zoomIn,\n out: zoomOut,\n toggle: zoomToggle\n });\n }\n\n function Lazy(_ref15) {\n var swiper = _ref15.swiper,\n extendParams = _ref15.extendParams,\n on = _ref15.on,\n emit = _ref15.emit;\n extendParams({\n lazy: {\n checkInView: false,\n enabled: false,\n loadPrevNext: false,\n loadPrevNextAmount: 1,\n loadOnTransitionStart: false,\n scrollingElement: '',\n elementClass: 'swiper-lazy',\n loadingClass: 'swiper-lazy-loading',\n loadedClass: 'swiper-lazy-loaded',\n preloaderClass: 'swiper-lazy-preloader'\n }\n });\n swiper.lazy = {};\n var scrollHandlerAttached = false;\n var initialImageLoaded = false;\n\n function loadInSlide(index) {\n var loadInDuplicate = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n var params = swiper.params.lazy;\n if (typeof index === 'undefined') return;\n if (swiper.slides.length === 0) return;\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var $slideEl = isVirtual ? swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")) : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\".concat(params.elementClass, \":not(.\").concat(params.loadedClass, \"):not(.\").concat(params.loadingClass, \")\"));\n\n if ($slideEl.hasClass(params.elementClass) && !$slideEl.hasClass(params.loadedClass) && !$slideEl.hasClass(params.loadingClass)) {\n $images.push($slideEl[0]);\n }\n\n if ($images.length === 0) return;\n $images.each(function (imageEl) {\n var $imageEl = $(imageEl);\n $imageEl.addClass(params.loadingClass);\n var background = $imageEl.attr('data-background');\n var src = $imageEl.attr('data-src');\n var srcset = $imageEl.attr('data-srcset');\n var sizes = $imageEl.attr('data-sizes');\n var $pictureEl = $imageEl.parent('picture');\n swiper.loadImage($imageEl[0], src || background, srcset, sizes, false, function () {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper && !swiper.params || swiper.destroyed) return;\n\n if (background) {\n $imageEl.css('background-image', \"url(\\\"\".concat(background, \"\\\")\"));\n $imageEl.removeAttr('data-background');\n } else {\n if (srcset) {\n $imageEl.attr('srcset', srcset);\n $imageEl.removeAttr('data-srcset');\n }\n\n if (sizes) {\n $imageEl.attr('sizes', sizes);\n $imageEl.removeAttr('data-sizes');\n }\n\n if ($pictureEl.length) {\n $pictureEl.children('source').each(function (sourceEl) {\n var $source = $(sourceEl);\n\n if ($source.attr('data-srcset')) {\n $source.attr('srcset', $source.attr('data-srcset'));\n $source.removeAttr('data-srcset');\n }\n });\n }\n\n if (src) {\n $imageEl.attr('src', src);\n $imageEl.removeAttr('data-src');\n }\n }\n\n $imageEl.addClass(params.loadedClass).removeClass(params.loadingClass);\n $slideEl.find(\".\".concat(params.preloaderClass)).remove();\n\n if (swiper.params.loop && loadInDuplicate) {\n var slideOriginalIndex = $slideEl.attr('data-swiper-slide-index');\n\n if ($slideEl.hasClass(swiper.params.slideDuplicateClass)) {\n var originalSlide = swiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(slideOriginalIndex, \"\\\"]:not(.\").concat(swiper.params.slideDuplicateClass, \")\"));\n loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideDuplicateClass, \"[data-swiper-slide-index=\\\"\").concat(slideOriginalIndex, \"\\\"]\"));\n loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n }\n\n function load() {\n var $wrapperEl = swiper.$wrapperEl,\n swiperParams = swiper.params,\n slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var isVirtual = swiper.virtual && swiperParams.virtual.enabled;\n var params = swiperParams.lazy;\n var slidesPerView = swiperParams.slidesPerView;\n\n if (slidesPerView === 'auto') {\n slidesPerView = 0;\n }\n\n function slideExist(index) {\n if (isVirtual) {\n if ($wrapperEl.children(\".\".concat(swiperParams.slideClass, \"[data-swiper-slide-index=\\\"\").concat(index, \"\\\"]\")).length) {\n return true;\n }\n } else if (slides[index]) return true;\n\n return false;\n }\n\n function slideIndex(slideEl) {\n if (isVirtual) {\n return $(slideEl).attr('data-swiper-slide-index');\n }\n\n return $(slideEl).index();\n }\n\n if (!initialImageLoaded) initialImageLoaded = true;\n\n if (swiper.params.watchSlidesProgress) {\n $wrapperEl.children(\".\".concat(swiperParams.slideVisibleClass)).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) loadInSlide(i);\n }\n } else {\n loadInSlide(activeIndex);\n }\n\n if (params.loadPrevNext) {\n if (slidesPerView > 1 || params.loadPrevNextAmount && params.loadPrevNextAmount > 1) {\n var amount = params.loadPrevNextAmount;\n var spv = slidesPerView;\n var maxIndex = Math.min(activeIndex + spv + Math.max(amount, spv), slides.length);\n var minIndex = Math.max(activeIndex - Math.max(spv, amount), 0); // Next Slides\n\n for (var _i9 = activeIndex + slidesPerView; _i9 < maxIndex; _i9 += 1) {\n if (slideExist(_i9)) loadInSlide(_i9);\n } // Prev Slides\n\n\n for (var _i10 = minIndex; _i10 < activeIndex; _i10 += 1) {\n if (slideExist(_i10)) loadInSlide(_i10);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\".concat(swiperParams.slideNextClass));\n if (nextSlide.length > 0) loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\".concat(swiperParams.slidePrevClass));\n if (prevSlide.length > 0) loadInSlide(slideIndex(prevSlide));\n }\n }\n }\n\n function checkInViewOnLoad() {\n var window = getWindow();\n if (!swiper || swiper.destroyed) return;\n var $scrollElement = swiper.params.lazy.scrollingElement ? $(swiper.params.lazy.scrollingElement) : $(window);\n var isWindow = $scrollElement[0] === window;\n var scrollElementWidth = isWindow ? window.innerWidth : $scrollElement[0].offsetWidth;\n var scrollElementHeight = isWindow ? window.innerHeight : $scrollElement[0].offsetHeight;\n var swiperOffset = swiper.$el.offset();\n var rtl = swiper.rtlTranslate;\n var inView = false;\n if (rtl) swiperOffset.left -= swiper.$el[0].scrollLeft;\n var swiperCoord = [[swiperOffset.left, swiperOffset.top], [swiperOffset.left + swiper.width, swiperOffset.top], [swiperOffset.left, swiperOffset.top + swiper.height], [swiperOffset.left + swiper.width, swiperOffset.top + swiper.height]];\n\n for (var i = 0; i < swiperCoord.length; i += 1) {\n var point = swiperCoord[i];\n\n if (point[0] >= 0 && point[0] <= scrollElementWidth && point[1] >= 0 && point[1] <= scrollElementHeight) {\n if (point[0] === 0 && point[1] === 0) continue; // eslint-disable-line\n\n inView = true;\n }\n }\n\n var passiveListener = swiper.touchEvents.start === 'touchstart' && swiper.support.passiveListener && swiper.params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n\n if (inView) {\n load();\n $scrollElement.off('scroll', checkInViewOnLoad, passiveListener);\n } else if (!scrollHandlerAttached) {\n scrollHandlerAttached = true;\n $scrollElement.on('scroll', checkInViewOnLoad, passiveListener);\n }\n }\n\n on('beforeInit', function () {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n });\n on('init', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('scroll', function () {\n if (swiper.params.freeMode && swiper.params.freeMode.enabled && !swiper.params.freeMode.sticky) {\n load();\n }\n });\n on('scrollbarDragMove resize _freeModeNoMomentumRelease', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('transitionStart', function () {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !initialImageLoaded) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n }\n });\n on('transitionEnd', function () {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n if (swiper.params.lazy.checkInView) {\n checkInViewOnLoad();\n } else {\n load();\n }\n }\n });\n on('slideChange', function () {\n var _swiper$params2 = swiper.params,\n lazy = _swiper$params2.lazy,\n cssMode = _swiper$params2.cssMode,\n watchSlidesProgress = _swiper$params2.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params2.touchReleaseOnEdges,\n resistanceRatio = _swiper$params2.resistanceRatio;\n\n if (lazy.enabled && (cssMode || watchSlidesProgress && (touchReleaseOnEdges || resistanceRatio === 0))) {\n load();\n }\n });\n Object.assign(swiper.lazy, {\n load: load,\n loadInSlide: loadInSlide\n });\n }\n /* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\n\n\n function Controller(_ref16) {\n var swiper = _ref16.swiper,\n extendParams = _ref16.extendParams,\n on = _ref16.on;\n extendParams({\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n });\n swiper.controller = {\n control: undefined\n };\n\n function LinearSpline(x, y) {\n var binarySearch = function search() {\n var maxIndex;\n var minIndex;\n var guess;\n return function (array, val) {\n minIndex = -1;\n maxIndex = array.length;\n\n while (maxIndex - minIndex > 1) {\n guess = maxIndex + minIndex >> 1;\n\n if (array[guess] <= val) {\n minIndex = guess;\n } else {\n maxIndex = guess;\n }\n }\n\n return maxIndex;\n };\n }();\n\n this.x = x;\n this.y = y;\n this.lastIndex = x.length - 1; // Given an x value (x2), return the expected y2 value:\n // (x1,y1) is the known point before given value,\n // (x3,y3) is the known point after given value.\n\n var i1;\n var i3;\n\n this.interpolate = function interpolate(x2) {\n if (!x2) return 0; // Get the indexes of x1 and x3 (the array indexes before and after given x2):\n\n i3 = binarySearch(this.x, x2);\n i1 = i3 - 1; // We have our indexes i1 & i3, so we can calculate already:\n // y2 := ((x2−x1) × (y3−y1)) ÷ (x3−x1) + y1\n\n return (x2 - this.x[i1]) * (this.y[i3] - this.y[i1]) / (this.x[i3] - this.x[i1]) + this.y[i1];\n };\n\n return this;\n } // xxx: for now i will just save one spline function to to\n\n\n function getInterpolateFunction(c) {\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new LinearSpline(swiper.slidesGrid, c.slidesGrid) : new LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n }\n\n function setTranslate(_t, byController) {\n var controlled = swiper.controller.control;\n var multiplier;\n var controlledTranslate;\n var Swiper = swiper.constructor;\n\n function setControlledTranslate(c) {\n // this will create an Interpolate function based on the snapGrids\n // x is the Grid of the scrolled scroller and y will be the controlled scroller\n // it makes sense to create this only once and recall it for the interpolation\n // the function does a lot of value caching for performance\n var translate = swiper.rtlTranslate ? -swiper.translate : swiper.translate;\n\n if (swiper.params.controller.by === 'slide') {\n getInterpolateFunction(c); // i am not sure why the values have to be multiplicated this way, tried to invert the snapGrid\n // but it did not work out\n\n controlledTranslate = -swiper.controller.spline.interpolate(-translate);\n }\n\n if (!controlledTranslate || swiper.params.controller.by === 'container') {\n multiplier = (c.maxTranslate() - c.minTranslate()) / (swiper.maxTranslate() - swiper.minTranslate());\n controlledTranslate = (translate - swiper.minTranslate()) * multiplier + c.minTranslate();\n }\n\n if (swiper.params.controller.inverse) {\n controlledTranslate = c.maxTranslate() - controlledTranslate;\n }\n\n c.updateProgress(controlledTranslate);\n c.setTranslate(controlledTranslate, swiper);\n c.updateActiveIndex();\n c.updateSlidesClasses();\n }\n\n if (Array.isArray(controlled)) {\n for (var i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTranslate(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTranslate(controlled);\n }\n }\n\n function setTransition(duration, byController) {\n var Swiper = swiper.constructor;\n var controlled = swiper.controller.control;\n var i;\n\n function setControlledTransition(c) {\n c.setTransition(duration, swiper);\n\n if (duration !== 0) {\n c.transitionStart();\n\n if (c.params.autoHeight) {\n nextTick(function () {\n c.updateAutoHeight();\n });\n }\n\n c.$wrapperEl.transitionEnd(function () {\n if (!controlled) return;\n\n if (c.params.loop && swiper.params.controller.by === 'slide') {\n c.loopFix();\n }\n\n c.transitionEnd();\n });\n }\n }\n\n if (Array.isArray(controlled)) {\n for (i = 0; i < controlled.length; i += 1) {\n if (controlled[i] !== byController && controlled[i] instanceof Swiper) {\n setControlledTransition(controlled[i]);\n }\n }\n } else if (controlled instanceof Swiper && byController !== controlled) {\n setControlledTransition(controlled);\n }\n }\n\n function removeSpline() {\n if (!swiper.controller.control) return;\n\n if (swiper.controller.spline) {\n swiper.controller.spline = undefined;\n delete swiper.controller.spline;\n }\n }\n\n on('beforeInit', function () {\n swiper.controller.control = swiper.params.controller.control;\n });\n on('update', function () {\n removeSpline();\n });\n on('resize', function () {\n removeSpline();\n });\n on('observerUpdate', function () {\n removeSpline();\n });\n on('setTranslate', function (_s, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n });\n on('setTransition', function (_s, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n });\n Object.assign(swiper.controller, {\n setTranslate: setTranslate,\n setTransition: setTransition\n });\n }\n\n function A11y(_ref17) {\n var swiper = _ref17.swiper,\n extendParams = _ref17.extendParams,\n on = _ref17.on;\n extendParams({\n a11y: {\n enabled: true,\n notificationClass: 'swiper-notification',\n prevSlideMessage: 'Previous slide',\n nextSlideMessage: 'Next slide',\n firstSlideMessage: 'This is the first slide',\n lastSlideMessage: 'This is the last slide',\n paginationBulletMessage: 'Go to slide {{index}}',\n slideLabelMessage: '{{index}} / {{slidesLength}}',\n containerMessage: null,\n containerRoleDescriptionMessage: null,\n itemRoleDescriptionMessage: null,\n slideRole: 'group'\n }\n });\n var liveRegion = null;\n\n function notify(message) {\n var notification = liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n }\n\n function getRandomNumber() {\n var size = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 16;\n\n var randomChar = function randomChar() {\n return Math.round(16 * Math.random()).toString(16);\n };\n\n return 'x'.repeat(size).replace(/x/g, randomChar);\n }\n\n function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n }\n\n function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n }\n\n function addElRole($el, role) {\n $el.attr('role', role);\n }\n\n function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n }\n\n function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n }\n\n function addElLabel($el, label) {\n $el.attr('aria-label', label);\n }\n\n function addElId($el, id) {\n $el.attr('id', id);\n }\n\n function addElLive($el, live) {\n $el.attr('aria-live', live);\n }\n\n function disableEl($el) {\n $el.attr('aria-disabled', true);\n }\n\n function enableEl($el) {\n $el.attr('aria-disabled', false);\n }\n\n function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var params = swiper.params.a11y;\n var $targetEl = $(e.target);\n\n if (swiper.navigation && swiper.navigation.$nextEl && $targetEl.is(swiper.navigation.$nextEl)) {\n if (!(swiper.isEnd && !swiper.params.loop)) {\n swiper.slideNext();\n }\n\n if (swiper.isEnd) {\n notify(params.lastSlideMessage);\n } else {\n notify(params.nextSlideMessage);\n }\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl && $targetEl.is(swiper.navigation.$prevEl)) {\n if (!(swiper.isBeginning && !swiper.params.loop)) {\n swiper.slidePrev();\n }\n\n if (swiper.isBeginning) {\n notify(params.firstSlideMessage);\n } else {\n notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n }\n\n function updateNavigation() {\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation5 = swiper.navigation,\n $nextEl = _swiper$navigation5.$nextEl,\n $prevEl = _swiper$navigation5.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n disableEl($prevEl);\n makeElNotFocusable($prevEl);\n } else {\n enableEl($prevEl);\n makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n disableEl($nextEl);\n makeElNotFocusable($nextEl);\n } else {\n enableEl($nextEl);\n makeElFocusable($nextEl);\n }\n }\n }\n\n function hasPagination() {\n return swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length;\n }\n\n function updatePagination() {\n var params = swiper.params.a11y;\n\n if (hasPagination()) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n addElRole($bulletEl, 'button');\n addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n }\n\n var initNavEl = function initNavEl($el, wrapperId, message) {\n makeElFocusable($el);\n\n if ($el[0].tagName !== 'BUTTON') {\n addElRole($el, 'button');\n $el.on('keydown', onEnterOrSpaceKey);\n }\n\n addElLabel($el, message);\n addElControls($el, wrapperId);\n };\n\n function init() {\n var params = swiper.params.a11y;\n swiper.$el.append(liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\".concat(getRandomNumber(16));\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n addElId($wrapperEl, wrapperId);\n addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n addElRole($(swiper.slides), params.slideRole);\n var slidesLength = swiper.params.loop ? swiper.slides.filter(function (el) {\n return !el.classList.contains(swiper.params.slideDuplicateClass);\n }).length : swiper.slides.length;\n swiper.slides.each(function (slideEl, index) {\n var $slideEl = $(slideEl);\n var slideIndex = swiper.params.loop ? parseInt($slideEl.attr('data-swiper-slide-index'), 10) : index;\n var ariaLabelMessage = params.slideLabelMessage.replace(/\\{\\{index\\}\\}/, slideIndex + 1).replace(/\\{\\{slidesLength\\}\\}/, slidesLength);\n addElLabel($slideEl, ariaLabelMessage);\n }); // Navigation\n\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl && $nextEl.length) {\n initNavEl($nextEl, wrapperId, params.nextSlideMessage);\n }\n\n if ($prevEl && $prevEl.length) {\n initNavEl($prevEl, wrapperId, params.prevSlideMessage);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n function destroy() {\n if (liveRegion && liveRegion.length > 0) liveRegion.remove();\n var $nextEl;\n var $prevEl;\n\n if (swiper.navigation && swiper.navigation.$nextEl) {\n $nextEl = swiper.navigation.$nextEl;\n }\n\n if (swiper.navigation && swiper.navigation.$prevEl) {\n $prevEl = swiper.navigation.$prevEl;\n }\n\n if ($nextEl) {\n $nextEl.off('keydown', onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', onEnterOrSpaceKey);\n } // Pagination\n\n\n if (hasPagination()) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), onEnterOrSpaceKey);\n }\n }\n\n on('beforeInit', function () {\n liveRegion = $(\"\"));\n });\n on('afterInit', function () {\n if (!swiper.params.a11y.enabled) return;\n init();\n updateNavigation();\n });\n on('toEdge', function () {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('fromEdge', function () {\n if (!swiper.params.a11y.enabled) return;\n updateNavigation();\n });\n on('paginationUpdate', function () {\n if (!swiper.params.a11y.enabled) return;\n updatePagination();\n });\n on('destroy', function () {\n if (!swiper.params.a11y.enabled) return;\n destroy();\n });\n }\n\n function History(_ref18) {\n var swiper = _ref18.swiper,\n extendParams = _ref18.extendParams,\n on = _ref18.on;\n extendParams({\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n });\n var initialized = false;\n var paths = {};\n\n var slugify = function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n };\n\n var getPathValues = function getPathValues(urlOverride) {\n var window = getWindow();\n var location;\n\n if (urlOverride) {\n location = new URL(urlOverride);\n } else {\n location = window.location;\n }\n\n var pathArray = location.pathname.slice(1).split('/').filter(function (part) {\n return part !== '';\n });\n var total = pathArray.length;\n var key = pathArray[total - 2];\n var value = pathArray[total - 1];\n return {\n key: key,\n value: value\n };\n };\n\n var setHistory = function setHistory(key, index) {\n var window = getWindow();\n if (!initialized || !swiper.params.history.enabled) return;\n var location;\n\n if (swiper.params.url) {\n location = new URL(swiper.params.url);\n } else {\n location = window.location;\n }\n\n var slide = swiper.slides.eq(index);\n var value = slugify(slide.attr('data-history'));\n\n if (swiper.params.history.root.length > 0) {\n var root = swiper.params.history.root;\n if (root[root.length - 1] === '/') root = root.slice(0, root.length - 1);\n value = \"\".concat(root, \"/\").concat(key, \"/\").concat(value);\n } else if (!location.pathname.includes(key)) {\n value = \"\".concat(key, \"/\").concat(value);\n }\n\n var currentState = window.history.state;\n\n if (currentState && currentState.value === value) {\n return;\n }\n\n if (swiper.params.history.replaceState) {\n window.history.replaceState({\n value: value\n }, null, value);\n } else {\n window.history.pushState({\n value: value\n }, null, value);\n }\n };\n\n var scrollToSlide = function scrollToSlide(speed, value, runCallbacks) {\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var _slide3 = swiper.slides.eq(i);\n\n var slideHistory = slugify(_slide3.attr('data-history'));\n\n if (slideHistory === value && !_slide3.hasClass(swiper.params.slideDuplicateClass)) {\n var _index2 = _slide3.index();\n\n swiper.slideTo(_index2, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n };\n\n var setHistoryPopState = function setHistoryPopState() {\n paths = getPathValues(swiper.params.url);\n scrollToSlide(swiper.params.speed, swiper.paths.value, false);\n };\n\n var init = function init() {\n var window = getWindow();\n if (!swiper.params.history) return;\n\n if (!window.history || !window.history.pushState) {\n swiper.params.history.enabled = false;\n swiper.params.hashNavigation.enabled = true;\n return;\n }\n\n initialized = true;\n paths = getPathValues(swiper.params.url);\n if (!paths.key && !paths.value) return;\n scrollToSlide(0, paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', setHistoryPopState);\n }\n };\n\n var destroy = function destroy() {\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', setHistoryPopState);\n }\n };\n\n on('init', function () {\n if (swiper.params.history.enabled) {\n init();\n }\n });\n on('destroy', function () {\n if (swiper.params.history.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', function () {\n if (initialized) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n on('slideChange', function () {\n if (initialized && swiper.params.cssMode) {\n setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n });\n }\n\n function HashNavigation(_ref19) {\n var swiper = _ref19.swiper,\n extendParams = _ref19.extendParams,\n emit = _ref19.emit,\n on = _ref19.on;\n var initialized = false;\n var document = getDocument();\n var window = getWindow();\n extendParams({\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n });\n\n var onHashChange = function onHashChange() {\n emit('hashChange');\n var newHash = document.location.hash.replace('#', '');\n var activeSlideHash = swiper.slides.eq(swiper.activeIndex).attr('data-hash');\n\n if (newHash !== activeSlideHash) {\n var newIndex = swiper.$wrapperEl.children(\".\".concat(swiper.params.slideClass, \"[data-hash=\\\"\").concat(newHash, \"\\\"]\")).index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n };\n\n var setHash = function setHash() {\n if (!initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\".concat(swiper.slides.eq(swiper.activeIndex).attr('data-hash')) || '');\n emit('hashSet');\n } else {\n var _slide4 = swiper.slides.eq(swiper.activeIndex);\n\n var hash = _slide4.attr('data-hash') || _slide4.attr('data-history');\n\n document.location.hash = hash || '';\n emit('hashSet');\n }\n };\n\n var init = function init() {\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n initialized = true;\n var hash = document.location.hash.replace('#', '');\n\n if (hash) {\n var speed = 0;\n\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var _slide5 = swiper.slides.eq(i);\n\n var slideHash = _slide5.attr('data-hash') || _slide5.attr('data-history');\n\n if (slideHash === hash && !_slide5.hasClass(swiper.params.slideDuplicateClass)) {\n var _index3 = _slide5.index();\n\n swiper.slideTo(_index3, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', onHashChange);\n }\n };\n\n var destroy = function destroy() {\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', onHashChange);\n }\n };\n\n on('init', function () {\n if (swiper.params.hashNavigation.enabled) {\n init();\n }\n });\n on('destroy', function () {\n if (swiper.params.hashNavigation.enabled) {\n destroy();\n }\n });\n on('transitionEnd _freeModeNoMomentumRelease', function () {\n if (initialized) {\n setHash();\n }\n });\n on('slideChange', function () {\n if (initialized && swiper.params.cssMode) {\n setHash();\n }\n });\n }\n /* eslint no-underscore-dangle: \"off\" */\n\n\n function Autoplay(_ref20) {\n var swiper = _ref20.swiper,\n extendParams = _ref20.extendParams,\n on = _ref20.on,\n emit = _ref20.emit;\n var timeout;\n swiper.autoplay = {\n running: false,\n paused: false\n };\n extendParams({\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n });\n\n function run() {\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(timeout);\n 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 emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n emit('autoplay');\n } else {\n stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) run();else if (autoplayResult === false) {\n run();\n }\n }, delay);\n }\n\n function start() {\n if (typeof timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n emit('autoplayStart');\n run();\n return true;\n }\n\n function stop() {\n if (!swiper.autoplay.running) return false;\n if (typeof timeout === 'undefined') return false;\n\n if (timeout) {\n clearTimeout(timeout);\n timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n emit('autoplayStop');\n return true;\n }\n\n function pause(speed) {\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (timeout) clearTimeout(timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, onTransitionEnd);\n });\n }\n }\n\n function onVisibilityChange() {\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n run();\n swiper.autoplay.paused = false;\n }\n }\n\n function onTransitionEnd(e) {\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n stop();\n } else {\n run();\n }\n }\n\n function onMouseEnter() {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, onTransitionEnd);\n });\n }\n\n function onMouseLeave() {\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n run();\n }\n\n function attachMouseEvents() {\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', onMouseEnter);\n swiper.$el.on('mouseleave', onMouseLeave);\n }\n }\n\n function detachMouseEvents() {\n swiper.$el.off('mouseenter', onMouseEnter);\n swiper.$el.off('mouseleave', onMouseLeave);\n }\n\n on('init', function () {\n if (swiper.params.autoplay.enabled) {\n start();\n\n var _document3 = getDocument();\n\n _document3.addEventListener('visibilitychange', onVisibilityChange);\n\n attachMouseEvents();\n }\n });\n on('beforeTransitionStart', function (_s, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n stop();\n }\n }\n });\n on('sliderFirstMove', function () {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n stop();\n } else {\n pause();\n }\n }\n });\n on('touchEnd', function () {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n run();\n }\n });\n on('destroy', function () {\n detachMouseEvents();\n\n if (swiper.autoplay.running) {\n stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', onVisibilityChange);\n });\n Object.assign(swiper.autoplay, {\n pause: pause,\n run: run,\n start: start,\n stop: stop\n });\n }\n\n function Thumb(_ref21) {\n var swiper = _ref21.swiper,\n extendParams = _ref21.extendParams,\n on = _ref21.on;\n extendParams({\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-thumbs'\n }\n });\n var initialized = false;\n var swiperCreated = false;\n swiper.thumbs = {\n swiper: null\n };\n\n function onThumbClick() {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var clickedIndex = thumbsSwiper.clickedIndex;\n var clickedSlide = thumbsSwiper.clickedSlide;\n if (clickedSlide && $(clickedSlide).hasClass(swiper.params.thumbs.slideThumbActiveClass)) return;\n if (typeof clickedIndex === 'undefined' || clickedIndex === null) return;\n var slideToIndex;\n\n if (thumbsSwiper.params.loop) {\n slideToIndex = parseInt($(thumbsSwiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n } else {\n slideToIndex = clickedIndex;\n }\n\n if (swiper.params.loop) {\n var currentIndex = swiper.activeIndex;\n\n if (swiper.slides.eq(currentIndex).hasClass(swiper.params.slideDuplicateClass)) {\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n currentIndex = swiper.activeIndex;\n }\n\n var prevIndex = swiper.slides.eq(currentIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(slideToIndex, \"\\\"]\")).eq(0).index();\n if (typeof prevIndex === 'undefined') slideToIndex = nextIndex;else if (typeof nextIndex === 'undefined') slideToIndex = prevIndex;else if (nextIndex - currentIndex < currentIndex - prevIndex) slideToIndex = nextIndex;else slideToIndex = prevIndex;\n }\n\n swiper.slideTo(slideToIndex);\n }\n\n function init() {\n var thumbsParams = swiper.params.thumbs;\n if (initialized) return false;\n initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n Object.assign(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n Object.assign(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n var thumbsSwiperParams = Object.assign({}, thumbsParams.swiper);\n Object.assign(thumbsSwiperParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n swiper.thumbs.swiper = new SwiperClass(thumbsSwiperParams);\n swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', onThumbClick);\n return true;\n }\n\n function update(initial) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n var slidesPerView = thumbsSwiper.params.slidesPerView === 'auto' ? thumbsSwiper.slidesPerViewDynamic() : thumbsSwiper.params.slidesPerView;\n var autoScrollOffset = swiper.params.thumbs.autoScrollOffset;\n var useOffset = autoScrollOffset && !thumbsSwiper.params.loop;\n\n if (swiper.realIndex !== thumbsSwiper.realIndex || useOffset) {\n var currentThumbsIndex = thumbsSwiper.activeIndex;\n var newThumbsIndex;\n var direction;\n\n if (thumbsSwiper.params.loop) {\n if (thumbsSwiper.slides.eq(currentThumbsIndex).hasClass(thumbsSwiper.params.slideDuplicateClass)) {\n thumbsSwiper.loopFix(); // eslint-disable-next-line\n\n thumbsSwiper._clientLeft = thumbsSwiper.$wrapperEl[0].clientLeft;\n currentThumbsIndex = thumbsSwiper.activeIndex;\n } // Find actual thumbs index to slide to\n\n\n var prevThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).prevAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex, \"\\\"]\")).eq(0).index();\n\n if (typeof prevThumbsIndex === 'undefined') {\n newThumbsIndex = nextThumbsIndex;\n } else if (typeof nextThumbsIndex === 'undefined') {\n newThumbsIndex = prevThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex === currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = thumbsSwiper.params.slidesPerGroup > 1 ? nextThumbsIndex : currentThumbsIndex;\n } else if (nextThumbsIndex - currentThumbsIndex < currentThumbsIndex - prevThumbsIndex) {\n newThumbsIndex = nextThumbsIndex;\n } else {\n newThumbsIndex = prevThumbsIndex;\n }\n\n direction = swiper.activeIndex > swiper.previousIndex ? 'next' : 'prev';\n } else {\n newThumbsIndex = swiper.realIndex;\n direction = newThumbsIndex > swiper.previousIndex ? 'next' : 'prev';\n }\n\n if (useOffset) {\n newThumbsIndex += direction === 'next' ? autoScrollOffset : -1 * autoScrollOffset;\n }\n\n if (thumbsSwiper.visibleSlidesIndexes && thumbsSwiper.visibleSlidesIndexes.indexOf(newThumbsIndex) < 0) {\n if (thumbsSwiper.params.centeredSlides) {\n if (newThumbsIndex > currentThumbsIndex) {\n newThumbsIndex = newThumbsIndex - Math.floor(slidesPerView / 2) + 1;\n } else {\n newThumbsIndex = newThumbsIndex + Math.floor(slidesPerView / 2) - 1;\n }\n } else if (newThumbsIndex > currentThumbsIndex && thumbsSwiper.params.slidesPerGroup === 1) ;\n\n thumbsSwiper.slideTo(newThumbsIndex, initial ? 0 : undefined);\n }\n } // Activate thumbs\n\n\n var thumbsToActivate = 1;\n var thumbActiveClass = swiper.params.thumbs.slideThumbActiveClass;\n\n if (swiper.params.slidesPerView > 1 && !swiper.params.centeredSlides) {\n thumbsToActivate = swiper.params.slidesPerView;\n }\n\n if (!swiper.params.thumbs.multipleActiveThumbs) {\n thumbsToActivate = 1;\n }\n\n thumbsToActivate = Math.floor(thumbsToActivate);\n thumbsSwiper.slides.removeClass(thumbActiveClass);\n\n if (thumbsSwiper.params.loop || thumbsSwiper.params.virtual && thumbsSwiper.params.virtual.enabled) {\n for (var i = 0; i < thumbsToActivate; i += 1) {\n thumbsSwiper.$wrapperEl.children(\"[data-swiper-slide-index=\\\"\".concat(swiper.realIndex + i, \"\\\"]\")).addClass(thumbActiveClass);\n }\n } else {\n for (var _i11 = 0; _i11 < thumbsToActivate; _i11 += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i11).addClass(thumbActiveClass);\n }\n }\n }\n\n on('beforeInit', function () {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n init();\n update(true);\n });\n on('slideChange update resize observerUpdate', function () {\n if (!swiper.thumbs.swiper) return;\n update();\n });\n on('setTransition', function (_s, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n });\n on('beforeDestroy', function () {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n });\n Object.assign(swiper.thumbs, {\n init: init,\n update: update\n });\n }\n\n function freeMode(_ref22) {\n var swiper = _ref22.swiper,\n extendParams = _ref22.extendParams,\n emit = _ref22.emit,\n once = _ref22.once;\n extendParams({\n freeMode: {\n enabled: false,\n momentum: true,\n momentumRatio: 1,\n momentumBounce: true,\n momentumBounceRatio: 1,\n momentumVelocityRatio: 1,\n sticky: false,\n minimumVelocity: 0.02\n }\n });\n\n function onTouchMove() {\n var data = swiper.touchEventsData,\n touches = swiper.touches; // Velocity\n\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 }\n\n function onTouchEnd(_ref23) {\n var currentPos = _ref23.currentPos;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n rtl = swiper.rtlTranslate,\n snapGrid = swiper.snapGrid,\n data = swiper.touchEventsData; // Time diff\n\n var touchEndTime = now();\n var timeDiff = touchEndTime - data.touchStartTime;\n\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.freeMode.momentum) {\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.freeMode.minimumVelocity) {\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.freeMode.momentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeMode.momentumRatio;\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.freeMode.momentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeMode.momentumBounce) {\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.freeMode.momentumBounce) {\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.freeMode.sticky) {\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 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.freeMode.sticky) {\n // If freeMode.sticky 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.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeMode.momentumBounce && 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 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 emit('_freeModeNoMomentumRelease');\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.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeMode.sticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeMode.momentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n }\n\n Object.assign(swiper, {\n freeMode: {\n onTouchMove: onTouchMove,\n onTouchEnd: onTouchEnd\n }\n });\n }\n\n function Grid(_ref24) {\n var swiper = _ref24.swiper,\n extendParams = _ref24.extendParams;\n extendParams({\n grid: {\n rows: 1,\n fill: 'column'\n }\n });\n var slidesNumberEvenToRows;\n var slidesPerRow;\n var numFullColumns;\n\n var initSlides = function initSlides(slidesLength) {\n var slidesPerView = swiper.params.slidesPerView;\n var _swiper$params$grid = swiper.params.grid,\n rows = _swiper$params$grid.rows,\n fill = _swiper$params$grid.fill;\n slidesPerRow = slidesNumberEvenToRows / rows;\n numFullColumns = Math.floor(slidesLength / rows);\n\n if (Math.floor(slidesLength / rows) === slidesLength / rows) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / rows) * rows;\n }\n\n if (slidesPerView !== 'auto' && fill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, slidesPerView * rows);\n }\n };\n\n var updateSlide = function updateSlide(i, slide, slidesLength, getDirectionLabel) {\n var _swiper$params3 = swiper.params,\n slidesPerGroup = _swiper$params3.slidesPerGroup,\n spaceBetween = _swiper$params3.spaceBetween;\n var _swiper$params$grid2 = swiper.params.grid,\n rows = _swiper$params$grid2.rows,\n fill = _swiper$params$grid2.fill; // Set slides order\n\n var newSlideOrderIndex;\n var column;\n var row;\n\n if (fill === 'row' && slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (slidesPerGroup * rows));\n var slideIndexInGroup = i - rows * slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * rows * slidesPerGroup) / rows), slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / rows;\n slide.css({\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (fill === 'column') {\n column = Math.floor(i / rows);\n row = i - column * rows;\n\n if (column > numFullColumns || column === numFullColumns && row === rows - 1) {\n row += 1;\n\n if (row >= rows) {\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 ? spaceBetween && \"\".concat(spaceBetween, \"px\") : '');\n };\n\n var updateWrapperSize = function updateWrapperSize(slideSize, snapGrid, getDirectionLabel) {\n var _swiper$params4 = swiper.params,\n spaceBetween = _swiper$params4.spaceBetween,\n centeredSlides = _swiper$params4.centeredSlides,\n roundLengths = _swiper$params4.roundLengths;\n var rows = swiper.params.grid.rows;\n swiper.virtualSize = (slideSize + spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / rows) - spaceBetween;\n swiper.$wrapperEl.css(_defineProperty({}, getDirectionLabel('width'), \"\".concat(swiper.virtualSize + spaceBetween, \"px\")));\n\n if (centeredSlides) {\n snapGrid.splice(0, snapGrid.length);\n var newSlidesGrid = [];\n\n for (var i = 0; i < snapGrid.length; i += 1) {\n var slidesGridItem = snapGrid[i];\n if (roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid.push.apply(snapGrid, newSlidesGrid);\n }\n };\n\n swiper.grid = {\n initSlides: initSlides,\n updateSlide: updateSlide,\n updateWrapperSize: updateWrapperSize\n };\n }\n\n 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) {\n swiper.update();\n }\n }\n\n 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) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n }\n\n 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(\".\".concat(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 _i12 = 0; _i12 < slides.length; _i12 += 1) {\n if (slides[_i12]) $wrapperEl.append(slides[_i12]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i13 = 0; _i13 < slidesBuffer.length; _i13 += 1) {\n $wrapperEl.append(slidesBuffer[_i13]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!params.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 }\n\n 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(\".\".concat(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) {\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 }\n\n 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 }\n\n function Manipulation(_ref25) {\n var swiper = _ref25.swiper;\n Object.assign(swiper, {\n appendSlide: appendSlide.bind(swiper),\n prependSlide: prependSlide.bind(swiper),\n addSlide: addSlide.bind(swiper),\n removeSlide: removeSlide.bind(swiper),\n removeAllSlides: removeAllSlides.bind(swiper)\n });\n }\n\n function effectInit(params) {\n var effect = params.effect,\n swiper = params.swiper,\n on = params.on,\n setTranslate = params.setTranslate,\n setTransition = params.setTransition,\n overwriteParams = params.overwriteParams,\n perspective = params.perspective;\n on('beforeInit', function () {\n if (swiper.params.effect !== effect) return;\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass).concat(effect));\n\n if (perspective && perspective()) {\n swiper.classNames.push(\"\".concat(swiper.params.containerModifierClass, \"3d\"));\n }\n\n var overwriteParamsResult = overwriteParams ? overwriteParams() : {};\n Object.assign(swiper.params, overwriteParamsResult);\n Object.assign(swiper.originalParams, overwriteParamsResult);\n });\n on('setTranslate', function () {\n if (swiper.params.effect !== effect) return;\n setTranslate();\n });\n on('setTransition', function (_s, duration) {\n if (swiper.params.effect !== effect) return;\n setTransition(duration);\n });\n }\n\n function effectTarget(effectParams, $slideEl) {\n if (effectParams.transformEl) {\n return $slideEl.find(effectParams.transformEl).css({\n 'backface-visibility': 'hidden',\n '-webkit-backface-visibility': 'hidden'\n });\n }\n\n return $slideEl;\n }\n\n function effectVirtualTransitionEnd(_ref26) {\n var swiper = _ref26.swiper,\n duration = _ref26.duration,\n transformEl = _ref26.transformEl,\n allSlides = _ref26.allSlides;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n var $transitionEndTarget;\n\n if (allSlides) {\n $transitionEndTarget = transformEl ? slides.find(transformEl) : slides;\n } else {\n $transitionEndTarget = transformEl ? slides.eq(activeIndex).find(transformEl) : slides.eq(activeIndex);\n }\n\n $transitionEndTarget.transitionEnd(function () {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return;\n eventTriggered = true;\n swiper.animating = false;\n var triggerEvents = ['webkitTransitionEnd', 'transitionend'];\n\n for (var i = 0; i < triggerEvents.length; i += 1) {\n $wrapperEl.trigger(triggerEvents[i]);\n }\n });\n }\n }\n\n function EffectFade(_ref27) {\n var swiper = _ref27.swiper,\n extendParams = _ref27.extendParams,\n on = _ref27.on;\n extendParams({\n fadeEffect: {\n crossFade: false,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides;\n var params = swiper.params.fadeEffect;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = swiper.slides.eq(i);\n var _offset = $slideEl[0].swiperSlideOffset;\n var tx = -_offset;\n if (!swiper.params.virtualTranslate) tx -= swiper.translate;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n }\n\n var slideOpacity = swiper.params.fadeEffect.crossFade ? Math.max(1 - Math.abs($slideEl[0].progress), 0) : 1 + Math.min(Math.max($slideEl[0].progress, -1), 0);\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px)\"));\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.fadeEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'fade',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n overwriteParams: function overwriteParams() {\n return {\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n }\n\n function EffectCube(_ref28) {\n var swiper = _ref28.swiper,\n extendParams = _ref28.extendParams,\n on = _ref28.on;\n extendParams({\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n });\n\n var setTranslate = function setTranslate() {\n var $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides,\n swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n rtl = swiper.rtlTranslate,\n swiperSize = swiper.size,\n browser = swiper.browser;\n var params = swiper.params.cubeEffect;\n var isHorizontal = swiper.isHorizontal();\n var isVirtual = swiper.virtual && swiper.params.virtual.enabled;\n var wrapperRotate = 0;\n var $cubeShadowEl;\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl = $wrapperEl.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: \"\".concat(swiperWidth, \"px\")\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('
');\n $el.append($cubeShadowEl);\n }\n }\n }\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideIndex = i;\n\n if (isVirtual) {\n slideIndex = parseInt($slideEl.attr('data-swiper-slide-index'), 10);\n }\n\n var slideAngle = slideIndex * 90;\n var round = Math.floor(slideAngle / 360);\n\n if (rtl) {\n slideAngle = -slideAngle;\n round = Math.floor(-slideAngle / 360);\n }\n\n var progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n var tx = 0;\n var ty = 0;\n var tz = 0;\n\n if (slideIndex % 4 === 0) {\n tx = -round * 4 * swiperSize;\n tz = 0;\n } else if ((slideIndex - 1) % 4 === 0) {\n tx = 0;\n tz = -round * 4 * swiperSize;\n } else if ((slideIndex - 2) % 4 === 0) {\n tx = swiperSize + round * 4 * swiperSize;\n tz = swiperSize;\n } else if ((slideIndex - 3) % 4 === 0) {\n tx = -swiperSize;\n tz = 3 * swiperSize + swiperSize * 4 * round;\n }\n\n if (rtl) {\n tx = -tx;\n }\n\n if (!isHorizontal) {\n ty = tx;\n tx = 0;\n }\n\n var _transform = \"rotateX(\".concat(isHorizontal ? 0 : -slideAngle, \"deg) rotateY(\").concat(isHorizontal ? slideAngle : 0, \"deg) translate3d(\").concat(tx, \"px, \").concat(ty, \"px, \").concat(tz, \"px)\");\n\n if (progress <= 1 && progress > -1) {\n wrapperRotate = slideIndex * 90 + progress * 90;\n if (rtl) wrapperRotate = -slideIndex * 90 - progress * 90;\n }\n\n $slideEl.transform(_transform);\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = $(\"
\"));\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"
\"));\n $slideEl.append(shadowAfter);\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n }\n\n $wrapperEl.css({\n '-webkit-transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\"),\n 'transform-origin': \"50% 50% -\".concat(swiperSize / 2, \"px\")\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \".concat(swiperWidth / 2 + params.shadowOffset, \"px, \").concat(-swiperWidth / 2, \"px) rotateX(90deg) rotateZ(0deg) scale(\").concat(params.shadowScale, \")\"));\n } else {\n var shadowAngle = Math.abs(wrapperRotate) - Math.floor(Math.abs(wrapperRotate) / 90) * 90;\n var multiplier = 1.5 - (Math.sin(shadowAngle * 2 * Math.PI / 360) / 2 + Math.cos(shadowAngle * 2 * Math.PI / 360) / 2);\n var scale1 = params.shadowScale;\n var scale2 = params.shadowScale / multiplier;\n var _offset2 = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\".concat(scale1, \", 1, \").concat(scale2, \") translate3d(0px, \").concat(swiperHeight / 2 + _offset2, \"px, \").concat(-swiperHeight / 2 / scale2, \"px) rotateX(-90deg)\"));\n }\n }\n\n var zFactor = browser.isSafari || browser.isWebView ? -swiperSize / 2 : 0;\n $wrapperEl.transform(\"translate3d(0px,0,\".concat(zFactor, \"px) rotateX(\").concat(swiper.isHorizontal() ? 0 : wrapperRotate, \"deg) rotateY(\").concat(swiper.isHorizontal() ? -wrapperRotate : 0, \"deg)\"));\n };\n\n var setTransition = function setTransition(duration) {\n var $el = swiper.$el,\n slides = swiper.slides;\n slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n\n if (swiper.params.cubeEffect.shadow && !swiper.isHorizontal()) {\n $el.find('.swiper-cube-shadow').transition(duration);\n }\n };\n\n effectInit({\n effect: 'cube',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n }\n });\n }\n\n function createShadow(params, $slideEl, side) {\n var shadowClass = \"swiper-slide-shadow\".concat(side ? \"-\".concat(side) : '');\n var $shadowContainer = params.transformEl ? $slideEl.find(params.transformEl) : $slideEl;\n var $shadowEl = $shadowContainer.children(\".\".concat(shadowClass));\n\n if (!$shadowEl.length) {\n $shadowEl = $(\"
\"));\n $shadowContainer.append($shadowEl);\n }\n\n return $shadowEl;\n }\n\n function EffectFlip(_ref29) {\n var swiper = _ref29.swiper,\n extendParams = _ref29.extendParams,\n on = _ref29.on;\n extendParams({\n flipEffect: {\n slideShadows: true,\n limitRotation: true,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n var params = swiper.params.flipEffect;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var progress = $slideEl[0].progress;\n\n if (swiper.params.flipEffect.limitRotation) {\n progress = Math.max(Math.min($slideEl[0].progress, 1), -1);\n }\n\n var _offset3 = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = swiper.params.cssMode ? -_offset3 - swiper.translate : -_offset3;\n var ty = 0;\n\n if (!swiper.isHorizontal()) {\n ty = tx;\n tx = 0;\n rotateX = -rotateY;\n rotateY = 0;\n } else if (rtl) {\n rotateY = -rotateY;\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(progress)) + slides.length;\n\n if (params.slideShadows) {\n // Set shadows\n var shadowBefore = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var shadowAfter = swiper.isHorizontal() ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if (shadowBefore.length === 0) {\n shadowBefore = createShadow(params, $slideEl, swiper.isHorizontal() ? 'left' : 'top');\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = createShadow(params, $slideEl, swiper.isHorizontal() ? 'right' : 'bottom');\n }\n\n if (shadowBefore.length) shadowBefore[0].style.opacity = Math.max(-progress, 0);\n if (shadowAfter.length) shadowAfter[0].style.opacity = Math.max(progress, 0);\n }\n\n var _transform2 = \"translate3d(\".concat(tx, \"px, \").concat(ty, \"px, 0px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg)\");\n\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(_transform2);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.flipEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl\n });\n };\n\n effectInit({\n effect: 'flip',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n slidesPerView: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n }\n\n function EffectCoverflow(_ref30) {\n var swiper = _ref30.swiper,\n extendParams = _ref30.extendParams,\n on = _ref30.on;\n extendParams({\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var swiperWidth = swiper.width,\n swiperHeight = swiper.height,\n slides = swiper.slides,\n slidesSizesGrid = swiper.slidesSizesGrid;\n var params = swiper.params.coverflowEffect;\n var isHorizontal = swiper.isHorizontal();\n var transform = swiper.translate;\n var center = isHorizontal ? -transform + swiperWidth / 2 : -transform + swiperHeight / 2;\n var rotate = isHorizontal ? params.rotate : -params.rotate;\n var translate = params.depth; // Each slide offset from center\n\n for (var i = 0, length = slides.length; i < length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideSize = slidesSizesGrid[i];\n var slideOffset = $slideEl[0].swiperSlideOffset;\n var offsetMultiplier = (center - slideOffset - slideSize / 2) / slideSize * params.modifier;\n var rotateY = isHorizontal ? rotate * offsetMultiplier : 0;\n var rotateX = isHorizontal ? 0 : rotate * offsetMultiplier; // var rotateZ = 0\n\n var translateZ = -translate * Math.abs(offsetMultiplier);\n var stretch = params.stretch; // Allow percentage to make a relative stretch for responsive sliders\n\n if (typeof stretch === 'string' && stretch.indexOf('%') !== -1) {\n stretch = parseFloat(params.stretch) / 100 * slideSize;\n }\n\n var translateY = isHorizontal ? 0 : stretch * offsetMultiplier;\n var translateX = isHorizontal ? stretch * offsetMultiplier : 0;\n var scale = 1 - (1 - params.scale) * Math.abs(offsetMultiplier); // Fix for ultra small values\n\n if (Math.abs(translateX) < 0.001) translateX = 0;\n if (Math.abs(translateY) < 0.001) translateY = 0;\n if (Math.abs(translateZ) < 0.001) translateZ = 0;\n if (Math.abs(rotateY) < 0.001) rotateY = 0;\n if (Math.abs(rotateX) < 0.001) rotateX = 0;\n if (Math.abs(scale) < 0.001) scale = 0;\n var slideTransform = \"translate3d(\".concat(translateX, \"px,\").concat(translateY, \"px,\").concat(translateZ, \"px) rotateX(\").concat(rotateX, \"deg) rotateY(\").concat(rotateY, \"deg) scale(\").concat(scale, \")\");\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(slideTransform);\n $slideEl[0].style.zIndex = -Math.abs(Math.round(offsetMultiplier)) + 1;\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowBeforeEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-left') : $slideEl.find('.swiper-slide-shadow-top');\n var $shadowAfterEl = isHorizontal ? $slideEl.find('.swiper-slide-shadow-right') : $slideEl.find('.swiper-slide-shadow-bottom');\n\n if ($shadowBeforeEl.length === 0) {\n $shadowBeforeEl = createShadow(params, $slideEl, isHorizontal ? 'left' : 'top');\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = createShadow(params, $slideEl, isHorizontal ? 'right' : 'bottom');\n }\n\n if ($shadowBeforeEl.length) $shadowBeforeEl[0].style.opacity = offsetMultiplier > 0 ? offsetMultiplier : 0;\n if ($shadowAfterEl.length) $shadowAfterEl[0].style.opacity = -offsetMultiplier > 0 ? -offsetMultiplier : 0;\n }\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.coverflowEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n };\n\n effectInit({\n effect: 'coverflow',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true\n };\n }\n });\n }\n\n function EffectCreative(_ref31) {\n var swiper = _ref31.swiper,\n extendParams = _ref31.extendParams,\n on = _ref31.on;\n extendParams({\n creativeEffect: {\n transformEl: null,\n limitProgress: 1,\n shadowPerProgress: false,\n progressMultiplier: 1,\n perspective: true,\n prev: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n },\n next: {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n opacity: 1,\n scale: 1\n }\n }\n });\n\n var getTranslateValue = function getTranslateValue(value) {\n if (typeof value === 'string') return value;\n return \"\".concat(value, \"px\");\n };\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides;\n var params = swiper.params.creativeEffect;\n var multiplier = params.progressMultiplier;\n\n var _loop = function _loop(i) {\n var $slideEl = slides.eq(i);\n var slideProgress = $slideEl[0].progress;\n var progress = Math.min(Math.max($slideEl[0].progress, -params.limitProgress), params.limitProgress);\n var offset = $slideEl[0].swiperSlideOffset;\n var t = [swiper.params.cssMode ? -offset - swiper.translate : -offset, 0, 0];\n var r = [0, 0, 0];\n var custom = false;\n\n if (!swiper.isHorizontal()) {\n t[1] = t[0];\n t[0] = 0;\n }\n\n var data = {\n translate: [0, 0, 0],\n rotate: [0, 0, 0],\n scale: 1,\n opacity: 1\n };\n\n if (progress < 0) {\n data = params.next;\n custom = true;\n } else if (progress > 0) {\n data = params.prev;\n custom = true;\n } // set translate\n\n\n t.forEach(function (value, index) {\n t[index] = \"calc(\".concat(value, \"px + (\").concat(getTranslateValue(data.translate[index]), \" * \").concat(Math.abs(progress * multiplier), \"))\");\n }); // set rotates\n\n r.forEach(function (value, index) {\n r[index] = data.rotate[index] * Math.abs(progress * multiplier);\n });\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n var translateString = t.join(', ');\n var rotateString = \"rotateX(\".concat(r[0], \"deg) rotateY(\").concat(r[1], \"deg) rotateZ(\").concat(r[2], \"deg)\");\n var scaleString = progress < 0 ? \"scale(\".concat(1 + (1 - data.scale) * progress * multiplier, \")\") : \"scale(\".concat(1 - (1 - data.scale) * progress * multiplier, \")\");\n var opacityString = progress < 0 ? 1 + (1 - data.opacity) * progress * multiplier : 1 - (1 - data.opacity) * progress * multiplier;\n var transform = \"translate3d(\".concat(translateString, \") \").concat(rotateString, \" \").concat(scaleString); // Set shadows\n\n if (custom && data.shadow || !custom) {\n var $shadowEl = $slideEl.children('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0 && data.shadow) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) {\n var shadowOpacity = params.shadowPerProgress ? progress * (1 / params.limitProgress) : progress;\n $shadowEl[0].style.opacity = Math.min(Math.max(Math.abs(shadowOpacity), 0), 1);\n }\n }\n\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(transform).css({\n opacity: opacityString\n });\n\n if (data.origin) {\n $targetEl.css('transform-origin', data.origin);\n }\n };\n\n for (var i = 0; i < slides.length; i += 1) {\n _loop(i);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.creativeEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl,\n allSlides: true\n });\n };\n\n effectInit({\n effect: 'creative',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return swiper.params.creativeEffect.perspective;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n }\n\n function EffectCards(_ref32) {\n var swiper = _ref32.swiper,\n extendParams = _ref32.extendParams,\n on = _ref32.on;\n extendParams({\n cardsEffect: {\n slideShadows: true,\n transformEl: null\n }\n });\n\n var setTranslate = function setTranslate() {\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex;\n var params = swiper.params.cardsEffect;\n var _swiper$touchEventsDa = swiper.touchEventsData,\n startTranslate = _swiper$touchEventsDa.startTranslate,\n isTouched = _swiper$touchEventsDa.isTouched;\n var currentTranslate = swiper.translate;\n\n for (var i = 0; i < slides.length; i += 1) {\n var $slideEl = slides.eq(i);\n var slideProgress = $slideEl[0].progress;\n var progress = Math.min(Math.max(slideProgress, -4), 4);\n var _offset4 = $slideEl[0].swiperSlideOffset;\n\n if (swiper.params.centeredSlides && !swiper.params.cssMode) {\n swiper.$wrapperEl.transform(\"translateX(\".concat(swiper.minTranslate(), \"px)\"));\n }\n\n if (swiper.params.centeredSlides && swiper.params.cssMode) {\n _offset4 -= slides[0].swiperSlideOffset;\n }\n\n var tX = swiper.params.cssMode ? -_offset4 - swiper.translate : -_offset4;\n var tY = 0;\n var tZ = -100 * Math.abs(progress);\n var scale = 1;\n var rotate = -2 * progress;\n var tXAdd = 8 - Math.abs(progress) * 0.75;\n var isSwipeToNext = (i === activeIndex || i === activeIndex - 1) && progress > 0 && progress < 1 && (isTouched || swiper.params.cssMode) && currentTranslate < startTranslate;\n var isSwipeToPrev = (i === activeIndex || i === activeIndex + 1) && progress < 0 && progress > -1 && (isTouched || swiper.params.cssMode) && currentTranslate > startTranslate;\n\n if (isSwipeToNext || isSwipeToPrev) {\n var subProgress = Math.pow(1 - Math.abs((Math.abs(progress) - 0.5) / 0.5), 0.5);\n rotate += -28 * progress * subProgress;\n scale += -0.5 * subProgress;\n tXAdd += 96 * subProgress;\n tY = \"\".concat(-25 * subProgress * Math.abs(progress), \"%\");\n }\n\n if (progress < 0) {\n // next\n tX = \"calc(\".concat(tX, \"px + (\").concat(tXAdd * Math.abs(progress), \"%))\");\n } else if (progress > 0) {\n // prev\n tX = \"calc(\".concat(tX, \"px + (-\").concat(tXAdd * Math.abs(progress), \"%))\");\n } else {\n tX = \"\".concat(tX, \"px\");\n }\n\n if (!swiper.isHorizontal()) {\n var prevY = tY;\n tY = tX;\n tX = prevY;\n }\n\n var scaleString = progress < 0 ? \"\".concat(1 + (1 - scale) * progress) : \"\".concat(1 - (1 - scale) * progress);\n\n var _transform3 = \"\\n translate3d(\".concat(tX, \", \").concat(tY, \", \").concat(tZ, \"px)\\n rotateZ(\").concat(rotate, \"deg)\\n scale(\").concat(scaleString, \")\\n \");\n\n if (params.slideShadows) {\n // Set shadows\n var $shadowEl = $slideEl.find('.swiper-slide-shadow');\n\n if ($shadowEl.length === 0) {\n $shadowEl = createShadow(params, $slideEl);\n }\n\n if ($shadowEl.length) $shadowEl[0].style.opacity = Math.min(Math.max((Math.abs(progress) - 0.5) / 0.5, 0), 1);\n }\n\n $slideEl[0].style.zIndex = -Math.abs(Math.round(slideProgress)) + slides.length;\n var $targetEl = effectTarget(params, $slideEl);\n $targetEl.transform(_transform3);\n }\n };\n\n var setTransition = function setTransition(duration) {\n var transformEl = swiper.params.cardsEffect.transformEl;\n var $transitionElements = transformEl ? swiper.slides.find(transformEl) : swiper.slides;\n $transitionElements.transition(duration).find('.swiper-slide-shadow').transition(duration);\n effectVirtualTransitionEnd({\n swiper: swiper,\n duration: duration,\n transformEl: transformEl\n });\n };\n\n effectInit({\n effect: 'cards',\n swiper: swiper,\n on: on,\n setTranslate: setTranslate,\n setTransition: setTransition,\n perspective: function perspective() {\n return true;\n },\n overwriteParams: function overwriteParams() {\n return {\n watchSlidesProgress: true,\n virtualTranslate: !swiper.params.cssMode\n };\n }\n });\n } // Swiper Class\n\n\n var modules = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, Thumb, freeMode, Grid, Manipulation, EffectFade, EffectCube, EffectFlip, EffectCoverflow, EffectCreative, EffectCards];\n Swiper.use(modules);\n return Swiper;\n});","// Load all the channels within this directory and all subdirectories.\n// Channel files must be named *_channel.js.\n\nconst channels = require.context('.', true, /_channel\\.js$/)\nchannels.keys().forEach(channels)\n","function webpackEmptyContext(req) {\n\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\te.code = 'MODULE_NOT_FOUND';\n\tthrow e;\n}\nwebpackEmptyContext.keys = function() { return []; };\nwebpackEmptyContext.resolve = webpackEmptyContext;\nmodule.exports = webpackEmptyContext;\nwebpackEmptyContext.id = 235;","/**\n * Copyright (c) 2014-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nvar runtime = (function (exports) {\n \"use strict\";\n\n var Op = Object.prototype;\n var hasOwn = Op.hasOwnProperty;\n var undefined; // More compressible than void 0.\n var $Symbol = typeof Symbol === \"function\" ? Symbol : {};\n var iteratorSymbol = $Symbol.iterator || \"@@iterator\";\n var asyncIteratorSymbol = $Symbol.asyncIterator || \"@@asyncIterator\";\n var toStringTagSymbol = $Symbol.toStringTag || \"@@toStringTag\";\n\n function define(obj, key, value) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n return obj[key];\n }\n try {\n // IE 8 has a broken Object.defineProperty that only works on DOM objects.\n define({}, \"\");\n } catch (err) {\n define = function(obj, key, value) {\n return obj[key] = value;\n };\n }\n\n function wrap(innerFn, outerFn, self, tryLocsList) {\n // If outerFn provided and outerFn.prototype is a Generator, then outerFn.prototype instanceof Generator.\n var protoGenerator = outerFn && outerFn.prototype instanceof Generator ? outerFn : Generator;\n var generator = Object.create(protoGenerator.prototype);\n var context = new Context(tryLocsList || []);\n\n // The ._invoke method unifies the implementations of the .next,\n // .throw, and .return methods.\n generator._invoke = makeInvokeMethod(innerFn, self, context);\n\n return generator;\n }\n exports.wrap = wrap;\n\n // Try/catch helper to minimize deoptimizations. Returns a completion\n // record like context.tryEntries[i].completion. This interface could\n // have been (and was previously) designed to take a closure to be\n // invoked without arguments, but in all the cases we care about we\n // already have an existing method we want to call, so there's no need\n // to create a new function object. We can even get away with assuming\n // the method takes exactly one argument, since that happens to be true\n // in every case, so we don't have to touch the arguments object. The\n // only additional allocation required is the completion record, which\n // has a stable shape and so hopefully should be cheap to allocate.\n function tryCatch(fn, obj, arg) {\n try {\n return { type: \"normal\", arg: fn.call(obj, arg) };\n } catch (err) {\n return { type: \"throw\", arg: err };\n }\n }\n\n var GenStateSuspendedStart = \"suspendedStart\";\n var GenStateSuspendedYield = \"suspendedYield\";\n var GenStateExecuting = \"executing\";\n var GenStateCompleted = \"completed\";\n\n // Returning this object from the innerFn has the same effect as\n // breaking out of the dispatch switch statement.\n var ContinueSentinel = {};\n\n // Dummy constructor functions that we use as the .constructor and\n // .constructor.prototype properties for functions that return Generator\n // objects. For full spec compliance, you may wish to configure your\n // minifier not to mangle the names of these two functions.\n function Generator() {}\n function GeneratorFunction() {}\n function GeneratorFunctionPrototype() {}\n\n // This is a polyfill for %IteratorPrototype% for environments that\n // don't natively support it.\n var IteratorPrototype = {};\n define(IteratorPrototype, iteratorSymbol, function () {\n return this;\n });\n\n var getProto = Object.getPrototypeOf;\n var NativeIteratorPrototype = getProto && getProto(getProto(values([])));\n if (NativeIteratorPrototype &&\n NativeIteratorPrototype !== Op &&\n hasOwn.call(NativeIteratorPrototype, iteratorSymbol)) {\n // This environment has a native %IteratorPrototype%; use it instead\n // of the polyfill.\n IteratorPrototype = NativeIteratorPrototype;\n }\n\n var Gp = GeneratorFunctionPrototype.prototype =\n Generator.prototype = Object.create(IteratorPrototype);\n GeneratorFunction.prototype = GeneratorFunctionPrototype;\n define(Gp, \"constructor\", GeneratorFunctionPrototype);\n define(GeneratorFunctionPrototype, \"constructor\", GeneratorFunction);\n GeneratorFunction.displayName = define(\n GeneratorFunctionPrototype,\n toStringTagSymbol,\n \"GeneratorFunction\"\n );\n\n // Helper for defining the .next, .throw, and .return methods of the\n // Iterator interface in terms of a single ._invoke method.\n function defineIteratorMethods(prototype) {\n [\"next\", \"throw\", \"return\"].forEach(function(method) {\n define(prototype, method, function(arg) {\n return this._invoke(method, arg);\n });\n });\n }\n\n exports.isGeneratorFunction = function(genFun) {\n var ctor = typeof genFun === \"function\" && genFun.constructor;\n return ctor\n ? ctor === GeneratorFunction ||\n // For the native GeneratorFunction constructor, the best we can\n // do is to check its .name property.\n (ctor.displayName || ctor.name) === \"GeneratorFunction\"\n : false;\n };\n\n exports.mark = function(genFun) {\n if (Object.setPrototypeOf) {\n Object.setPrototypeOf(genFun, GeneratorFunctionPrototype);\n } else {\n genFun.__proto__ = GeneratorFunctionPrototype;\n define(genFun, toStringTagSymbol, \"GeneratorFunction\");\n }\n genFun.prototype = Object.create(Gp);\n return genFun;\n };\n\n // Within the body of any async function, `await x` is transformed to\n // `yield regeneratorRuntime.awrap(x)`, so that the runtime can test\n // `hasOwn.call(value, \"__await\")` to determine if the yielded value is\n // meant to be awaited.\n exports.awrap = function(arg) {\n return { __await: arg };\n };\n\n function AsyncIterator(generator, PromiseImpl) {\n function invoke(method, arg, resolve, reject) {\n var record = tryCatch(generator[method], generator, arg);\n if (record.type === \"throw\") {\n reject(record.arg);\n } else {\n var result = record.arg;\n var value = result.value;\n if (value &&\n typeof value === \"object\" &&\n hasOwn.call(value, \"__await\")) {\n return PromiseImpl.resolve(value.__await).then(function(value) {\n invoke(\"next\", value, resolve, reject);\n }, function(err) {\n invoke(\"throw\", err, resolve, reject);\n });\n }\n\n return PromiseImpl.resolve(value).then(function(unwrapped) {\n // When a yielded Promise is resolved, its final value becomes\n // the .value of the Promise<{value,done}> result for the\n // current iteration.\n result.value = unwrapped;\n resolve(result);\n }, function(error) {\n // If a rejected Promise was yielded, throw the rejection back\n // into the async generator function so it can be handled there.\n return invoke(\"throw\", error, resolve, reject);\n });\n }\n }\n\n var previousPromise;\n\n function enqueue(method, arg) {\n function callInvokeWithMethodAndArg() {\n return new PromiseImpl(function(resolve, reject) {\n invoke(method, arg, resolve, reject);\n });\n }\n\n return previousPromise =\n // If enqueue has been called before, then we want to wait until\n // all previous Promises have been resolved before calling invoke,\n // so that results are always delivered in the correct order. If\n // enqueue has not been called before, then it is important to\n // call invoke immediately, without waiting on a callback to fire,\n // so that the async generator function has the opportunity to do\n // any necessary setup in a predictable way. This predictability\n // is why the Promise constructor synchronously invokes its\n // executor callback, and why async functions synchronously\n // execute code before the first await. Since we implement simple\n // async functions in terms of async generators, it is especially\n // important to get this right, even though it requires care.\n previousPromise ? previousPromise.then(\n callInvokeWithMethodAndArg,\n // Avoid propagating failures to Promises returned by later\n // invocations of the iterator.\n callInvokeWithMethodAndArg\n ) : callInvokeWithMethodAndArg();\n }\n\n // Define the unified helper method that is used to implement .next,\n // .throw, and .return (see defineIteratorMethods).\n this._invoke = enqueue;\n }\n\n defineIteratorMethods(AsyncIterator.prototype);\n define(AsyncIterator.prototype, asyncIteratorSymbol, function () {\n return this;\n });\n exports.AsyncIterator = AsyncIterator;\n\n // Note that simple async functions are implemented on top of\n // AsyncIterator objects; they just return a Promise for the value of\n // the final result produced by the iterator.\n exports.async = function(innerFn, outerFn, self, tryLocsList, PromiseImpl) {\n if (PromiseImpl === void 0) PromiseImpl = Promise;\n\n var iter = new AsyncIterator(\n wrap(innerFn, outerFn, self, tryLocsList),\n PromiseImpl\n );\n\n return exports.isGeneratorFunction(outerFn)\n ? iter // If outerFn is a generator, return the full iterator.\n : iter.next().then(function(result) {\n return result.done ? result.value : iter.next();\n });\n };\n\n function makeInvokeMethod(innerFn, self, context) {\n var state = GenStateSuspendedStart;\n\n return function invoke(method, arg) {\n if (state === GenStateExecuting) {\n throw new Error(\"Generator is already running\");\n }\n\n if (state === GenStateCompleted) {\n if (method === \"throw\") {\n throw arg;\n }\n\n // Be forgiving, per 25.3.3.3.3 of the spec:\n // https://people.mozilla.org/~jorendorff/es6-draft.html#sec-generatorresume\n return doneResult();\n }\n\n context.method = method;\n context.arg = arg;\n\n while (true) {\n var delegate = context.delegate;\n if (delegate) {\n var delegateResult = maybeInvokeDelegate(delegate, context);\n if (delegateResult) {\n if (delegateResult === ContinueSentinel) continue;\n return delegateResult;\n }\n }\n\n if (context.method === \"next\") {\n // Setting context._sent for legacy support of Babel's\n // function.sent implementation.\n context.sent = context._sent = context.arg;\n\n } else if (context.method === \"throw\") {\n if (state === GenStateSuspendedStart) {\n state = GenStateCompleted;\n throw context.arg;\n }\n\n context.dispatchException(context.arg);\n\n } else if (context.method === \"return\") {\n context.abrupt(\"return\", context.arg);\n }\n\n state = GenStateExecuting;\n\n var record = tryCatch(innerFn, self, context);\n if (record.type === \"normal\") {\n // If an exception is thrown from innerFn, we leave state ===\n // GenStateExecuting and loop back for another invocation.\n state = context.done\n ? GenStateCompleted\n : GenStateSuspendedYield;\n\n if (record.arg === ContinueSentinel) {\n continue;\n }\n\n return {\n value: record.arg,\n done: context.done\n };\n\n } else if (record.type === \"throw\") {\n state = GenStateCompleted;\n // Dispatch the exception by looping back around to the\n // context.dispatchException(context.arg) call above.\n context.method = \"throw\";\n context.arg = record.arg;\n }\n }\n };\n }\n\n // Call delegate.iterator[context.method](context.arg) and handle the\n // result, either by returning a { value, done } result from the\n // delegate iterator, or by modifying context.method and context.arg,\n // setting context.delegate to null, and returning the ContinueSentinel.\n function maybeInvokeDelegate(delegate, context) {\n var method = delegate.iterator[context.method];\n if (method === undefined) {\n // A .throw or .return when the delegate iterator has no .throw\n // method always terminates the yield* loop.\n context.delegate = null;\n\n if (context.method === \"throw\") {\n // Note: [\"return\"] must be used for ES3 parsing compatibility.\n if (delegate.iterator[\"return\"]) {\n // If the delegate iterator has a return method, give it a\n // chance to clean up.\n context.method = \"return\";\n context.arg = undefined;\n maybeInvokeDelegate(delegate, context);\n\n if (context.method === \"throw\") {\n // If maybeInvokeDelegate(context) changed context.method from\n // \"return\" to \"throw\", let that override the TypeError below.\n return ContinueSentinel;\n }\n }\n\n context.method = \"throw\";\n context.arg = new TypeError(\n \"The iterator does not provide a 'throw' method\");\n }\n\n return ContinueSentinel;\n }\n\n var record = tryCatch(method, delegate.iterator, context.arg);\n\n if (record.type === \"throw\") {\n context.method = \"throw\";\n context.arg = record.arg;\n context.delegate = null;\n return ContinueSentinel;\n }\n\n var info = record.arg;\n\n if (! info) {\n context.method = \"throw\";\n context.arg = new TypeError(\"iterator result is not an object\");\n context.delegate = null;\n return ContinueSentinel;\n }\n\n if (info.done) {\n // Assign the result of the finished delegate to the temporary\n // variable specified by delegate.resultName (see delegateYield).\n context[delegate.resultName] = info.value;\n\n // Resume execution at the desired location (see delegateYield).\n context.next = delegate.nextLoc;\n\n // If context.method was \"throw\" but the delegate handled the\n // exception, let the outer generator proceed normally. If\n // context.method was \"next\", forget context.arg since it has been\n // \"consumed\" by the delegate iterator. If context.method was\n // \"return\", allow the original .return call to continue in the\n // outer generator.\n if (context.method !== \"return\") {\n context.method = \"next\";\n context.arg = undefined;\n }\n\n } else {\n // Re-yield the result returned by the delegate method.\n return info;\n }\n\n // The delegate iterator is finished, so forget it and continue with\n // the outer generator.\n context.delegate = null;\n return ContinueSentinel;\n }\n\n // Define Generator.prototype.{next,throw,return} in terms of the\n // unified ._invoke helper method.\n defineIteratorMethods(Gp);\n\n define(Gp, toStringTagSymbol, \"Generator\");\n\n // A Generator should always return itself as the iterator object when the\n // @@iterator function is called on it. Some browsers' implementations of the\n // iterator prototype chain incorrectly implement this, causing the Generator\n // object to not be returned from this call. This ensures that doesn't happen.\n // See https://github.com/facebook/regenerator/issues/274 for more details.\n define(Gp, iteratorSymbol, function() {\n return this;\n });\n\n define(Gp, \"toString\", function() {\n return \"[object Generator]\";\n });\n\n function pushTryEntry(locs) {\n var entry = { tryLoc: locs[0] };\n\n if (1 in locs) {\n entry.catchLoc = locs[1];\n }\n\n if (2 in locs) {\n entry.finallyLoc = locs[2];\n entry.afterLoc = locs[3];\n }\n\n this.tryEntries.push(entry);\n }\n\n function resetTryEntry(entry) {\n var record = entry.completion || {};\n record.type = \"normal\";\n delete record.arg;\n entry.completion = record;\n }\n\n function Context(tryLocsList) {\n // The root entry object (effectively a try statement without a catch\n // or a finally block) gives us a place to store values thrown from\n // locations where there is no enclosing try statement.\n this.tryEntries = [{ tryLoc: \"root\" }];\n tryLocsList.forEach(pushTryEntry, this);\n this.reset(true);\n }\n\n exports.keys = function(object) {\n var keys = [];\n for (var key in object) {\n keys.push(key);\n }\n keys.reverse();\n\n // Rather than returning an object with a next method, we keep\n // things simple and return the next function itself.\n return function next() {\n while (keys.length) {\n var key = keys.pop();\n if (key in object) {\n next.value = key;\n next.done = false;\n return next;\n }\n }\n\n // To avoid creating an additional object, we just hang the .value\n // and .done properties off the next function object itself. This\n // also ensures that the minifier will not anonymize the function.\n next.done = true;\n return next;\n };\n };\n\n function values(iterable) {\n if (iterable) {\n var iteratorMethod = iterable[iteratorSymbol];\n if (iteratorMethod) {\n return iteratorMethod.call(iterable);\n }\n\n if (typeof iterable.next === \"function\") {\n return iterable;\n }\n\n if (!isNaN(iterable.length)) {\n var i = -1, next = function next() {\n while (++i < iterable.length) {\n if (hasOwn.call(iterable, i)) {\n next.value = iterable[i];\n next.done = false;\n return next;\n }\n }\n\n next.value = undefined;\n next.done = true;\n\n return next;\n };\n\n return next.next = next;\n }\n }\n\n // Return an iterator with no values.\n return { next: doneResult };\n }\n exports.values = values;\n\n function doneResult() {\n return { value: undefined, done: true };\n }\n\n Context.prototype = {\n constructor: Context,\n\n reset: function(skipTempReset) {\n this.prev = 0;\n this.next = 0;\n // Resetting context._sent for legacy support of Babel's\n // function.sent implementation.\n this.sent = this._sent = undefined;\n this.done = false;\n this.delegate = null;\n\n this.method = \"next\";\n this.arg = undefined;\n\n this.tryEntries.forEach(resetTryEntry);\n\n if (!skipTempReset) {\n for (var name in this) {\n // Not sure about the optimal order of these conditions:\n if (name.charAt(0) === \"t\" &&\n hasOwn.call(this, name) &&\n !isNaN(+name.slice(1))) {\n this[name] = undefined;\n }\n }\n }\n },\n\n stop: function() {\n this.done = true;\n\n var rootEntry = this.tryEntries[0];\n var rootRecord = rootEntry.completion;\n if (rootRecord.type === \"throw\") {\n throw rootRecord.arg;\n }\n\n return this.rval;\n },\n\n dispatchException: function(exception) {\n if (this.done) {\n throw exception;\n }\n\n var context = this;\n function handle(loc, caught) {\n record.type = \"throw\";\n record.arg = exception;\n context.next = loc;\n\n if (caught) {\n // If the dispatched exception was caught by a catch block,\n // then let that catch block handle the exception normally.\n context.method = \"next\";\n context.arg = undefined;\n }\n\n return !! caught;\n }\n\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n var record = entry.completion;\n\n if (entry.tryLoc === \"root\") {\n // Exception thrown outside of any try block that could handle\n // it, so set the completion value of the entire function to\n // throw the exception.\n return handle(\"end\");\n }\n\n if (entry.tryLoc <= this.prev) {\n var hasCatch = hasOwn.call(entry, \"catchLoc\");\n var hasFinally = hasOwn.call(entry, \"finallyLoc\");\n\n if (hasCatch && hasFinally) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n } else if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else if (hasCatch) {\n if (this.prev < entry.catchLoc) {\n return handle(entry.catchLoc, true);\n }\n\n } else if (hasFinally) {\n if (this.prev < entry.finallyLoc) {\n return handle(entry.finallyLoc);\n }\n\n } else {\n throw new Error(\"try statement without catch or finally\");\n }\n }\n }\n },\n\n abrupt: function(type, arg) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc <= this.prev &&\n hasOwn.call(entry, \"finallyLoc\") &&\n this.prev < entry.finallyLoc) {\n var finallyEntry = entry;\n break;\n }\n }\n\n if (finallyEntry &&\n (type === \"break\" ||\n type === \"continue\") &&\n finallyEntry.tryLoc <= arg &&\n arg <= finallyEntry.finallyLoc) {\n // Ignore the finally entry if control is not jumping to a\n // location outside the try/catch block.\n finallyEntry = null;\n }\n\n var record = finallyEntry ? finallyEntry.completion : {};\n record.type = type;\n record.arg = arg;\n\n if (finallyEntry) {\n this.method = \"next\";\n this.next = finallyEntry.finallyLoc;\n return ContinueSentinel;\n }\n\n return this.complete(record);\n },\n\n complete: function(record, afterLoc) {\n if (record.type === \"throw\") {\n throw record.arg;\n }\n\n if (record.type === \"break\" ||\n record.type === \"continue\") {\n this.next = record.arg;\n } else if (record.type === \"return\") {\n this.rval = this.arg = record.arg;\n this.method = \"return\";\n this.next = \"end\";\n } else if (record.type === \"normal\" && afterLoc) {\n this.next = afterLoc;\n }\n\n return ContinueSentinel;\n },\n\n finish: function(finallyLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.finallyLoc === finallyLoc) {\n this.complete(entry.completion, entry.afterLoc);\n resetTryEntry(entry);\n return ContinueSentinel;\n }\n }\n },\n\n \"catch\": function(tryLoc) {\n for (var i = this.tryEntries.length - 1; i >= 0; --i) {\n var entry = this.tryEntries[i];\n if (entry.tryLoc === tryLoc) {\n var record = entry.completion;\n if (record.type === \"throw\") {\n var thrown = record.arg;\n resetTryEntry(entry);\n }\n return thrown;\n }\n }\n\n // The context.catch method must only be called with a location\n // argument that corresponds to a known catch block.\n throw new Error(\"illegal catch attempt\");\n },\n\n delegateYield: function(iterable, resultName, nextLoc) {\n this.delegate = {\n iterator: values(iterable),\n resultName: resultName,\n nextLoc: nextLoc\n };\n\n if (this.method === \"next\") {\n // Deliberately forget the last sent value so that we don't\n // accidentally pass it on to the delegate.\n this.arg = undefined;\n }\n\n return ContinueSentinel;\n }\n };\n\n // Regardless of whether this script is executing as a CommonJS module\n // or not, return the runtime object so that we can declare the variable\n // regeneratorRuntime in the outer scope, which allows this module to be\n // injected easily by `bin/regenerator --include-runtime script.js`.\n return exports;\n\n}(\n // If this script is executing as a CommonJS module, use module.exports\n // as the regeneratorRuntime namespace. Otherwise create a new empty\n // object. Either way, the resulting object will be used to initialize\n // the regeneratorRuntime variable at the top of this file.\n typeof module === \"object\" ? module.exports : {}\n));\n\ntry {\n regeneratorRuntime = runtime;\n} catch (accidentalStrictMode) {\n // This module should not be running in strict mode, so the above\n // assignment should always work unless something is misconfigured. Just\n // in case runtime.js accidentally runs in strict mode, in modern engines\n // we can explicitly access globalThis. In older engines we can escape\n // strict mode using a global Function call. This could conceivably fail\n // if a Content Security Policy forbids using Function, but in that case\n // the proper solution is to fix the accidental strict mode problem. If\n // you've misconfigured your bundler to force strict mode and applied a\n // CSP to forbid Function, and you're not willing to fix either of those\n // problems, please detail your unique predicament in a GitHub issue.\n if (typeof globalThis === \"object\") {\n globalThis.regeneratorRuntime = runtime;\n } else {\n Function(\"r\", \"regeneratorRuntime = r\")(runtime);\n }\n}\n","var map = {\n\t\"./anchor_jump_controller.js\": 238,\n\t\"./chrome_controller.js\": 239,\n\t\"./clinic_info_widget_controller.js\": 252,\n\t\"./default/pages/questions/search_bar_controller.js\": 240,\n\t\"./default/pages/questions/sticky_navbar_controller.js\": 241,\n\t\"./default/shared/body_slide_controller.js\": 254,\n\t\"./default/shared/copitable_controller.js\": 242,\n\t\"./default/shared/detect_header_mode_controller.js\": 244,\n\t\"./default/shared/header_mode_controller.js\": 245,\n\t\"./default/shared/siema_slide_controller.js\": 246,\n\t\"./default/shared/swiper_slide_controller.js\": 247,\n\t\"./label_noscroll_controller.js\": 249\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 237;","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n connect () {\n if (!this._isChrome()) {\n return\n }\n\n this.jump()\n }\n\n jump () {\n if (!location.hash.match(/^#/)) {\n return\n }\n\n const target = document.querySelector(decodeURI(location.hash))\n if (!target) {\n return\n }\n\n this.element.scrollTo(0, target.offsetTop)\n }\n\n _isChrome () {\n return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nconst BREAKPOINT = 768\nconst WIDTH_BASE = 1440.0\n\nexport default class extends Controller {\n connect () {\n if (this._isChrome()) {\n this._setClass()\n this.setScale()\n }\n }\n\n setScale () {\n if (!this._isChrome()) {\n return\n }\n\n // 抓window的可視範圍\n const width = window.innerWidth\n const height = window.innerHeight\n\n if (width < BREAKPOINT) {\n this.element.style.height = ''\n this.element.style.transform = ''\n return\n }\n\n // 需要scale的比率\n const ratio = width / WIDTH_BASE\n // 放大高度,再scale才會正常\n const finalHeight = height * WIDTH_BASE / width\n this.element.style.height = `${finalHeight}px`\n this.element.style.transform = `scale(${ratio})`\n }\n\n _isChrome () {\n return /Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor)\n }\n\n _setClass () {\n document.querySelector('html').classList.add('chrome-browser')\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nfunction highlightText (text, searchTerm) {\n return text.replace(\n searchTerm,\n `${searchTerm}`\n )\n}\n\n// questions的json結構:\n// {\n// \"診療\": [\n// { \"accordionHeader\": \"Q1 xxxx\", \"accordionContent\": [\"xxx1\", \"xxx2\", \"xxx3\"] },\n// { \"accordionHeader\": \"Q2 xxxx\", \"accordionContent\": [\"xxx1\", \"xxx2\", \"xxx3\"] }\n// ],\n// \"就診\": [\n// { \"accordionHeader\": \"Q1 xxxx\", \"accordionContent\": [\"xxx1\", \"xxx2\", \"xxx3\"] },\n// { \"accordionHeader\": \"Q2 xxxx\", \"accordionContent\": [\"xxx1\", \"xxx2\", \"xxx3\"] }\n// ]\n// }\n\nexport default class extends Controller {\n static targets = ['input', 'suggestions', 'blankSlate']\n static values = {\n questions: { type: Object, default: {} }\n }\n\n connect() {\n this.renderAll()\n }\n\n toggleBlankSlate (cond) {\n this.blankSlateTarget.classList.toggle('hidden', cond)\n }\n\n renderAll () {\n const sections = Object.entries(this.questionsValue).flatMap(\n ([sectionName, questions], i) => {\n const accordions = questions.map(\n ({ accordionHeader, accordionContent }, j) => {\n return `\n
\n ${accordionHeader}\n
\n ${accordionContent\n .map((p) => `

${p}

`)\n .join('')}\n
\n
\n `\n }\n )\n return `\n

\n \n ${sectionName}\n

\n
${accordions.join('')}
\n `\n }\n )\n this.suggestionsTarget.innerHTML = sections.join('')\n this.toggleBlankSlate(true)\n }\n\n filterInput (event) {\n event.preventDefault()\n const searchTerm = this.inputTarget.value.trim()\n if (!searchTerm) {\n this.renderAll()\n } else {\n this.renderFilteredResult(searchTerm)\n }\n }\n\n renderFilteredResult (term) {\n const filteredResult = Object.entries(this.questionsValue).flatMap(\n ([sectionName, questions], i) => {\n return questions\n .map((question, j) => ({ ...question, j }))\n .filter(({ accordionHeader }) => {\n return accordionHeader.includes(term)\n })\n .map(\n ({ accordionHeader, j }) => `\n default--pages--questions--search-bar#renderSelectedSection\"\n data-section=\"#${sectionName}\"\n data-article=\"${i},${j}\"\n class='cursor-pointer border-b border-solid border-line last:border-0 p-4 bg-gray04 text-gray01 text-14px md:text-16px'\n >\n ${sectionName}\n |\n ${highlightText(accordionHeader, term)}\n

\n `\n )\n }\n )\n if (filteredResult.length > 0) {\n this.suggestionsTarget.innerHTML = `\n
\n

\n 共找到${filteredResult.length}筆結果\n

\n ${filteredResult.join('')}\n
\n `\n } else {\n this.suggestionsTarget.innerHTML = ''\n }\n this.toggleBlankSlate(filteredResult.length)\n }\n\n renderSelectedSection (event) {\n const { section, article } = event.currentTarget.dataset\n this.renderAll()\n location.hash = section\n const selectedAccordion = document.getElementById(article)\n selectedAccordion.open = true\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = ['questionsNav'];\n\n connect () {\n const scrollTarget = document.querySelector('[data-controller~=\"anchor-jump\"]')\n const nav = this.questionsNavTarget\n // 頁面載入時的offsetTop高度\n const navOffsetTop = nav.offsetTop\n this.scroll = (e) => {\n // 如果offsetTop高度改變則需要反白\n const isWhite = navOffsetTop != nav.offsetTop\n this.questionsNavTarget.classList.toggle('bg-white01', isWhite)\n }\n scrollTarget.addEventListener('scroll', this.scroll, true)\n }\n\n disconnect () {\n const scrollTarget = document.querySelector('[data-controller~=\"anchor-jump\"]')\n scrollTarget.removeEventListener('scroll', this.scroll, true)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\nimport * as copy from 'copy-to-clipboard';\n\nexport default class extends Controller {\n toClipboard(e) {\n copy(e.currentTarget.dataset.copied);\n let tooltip = document.getElementById(e.currentTarget.dataset.tiptext)\n tooltip.innerHTML = \"已複製!\"\n\n setTimeout(function(){\n tooltip.innerHTML = \"複製到剪貼簿\"\n }, 3000)\n }\n}\n","module.exports = function () {\n var selection = document.getSelection();\n\n if (!selection.rangeCount) {\n return function () {};\n }\n\n var active = document.activeElement;\n var ranges = [];\n\n for (var i = 0; i < selection.rangeCount; i++) {\n ranges.push(selection.getRangeAt(i));\n }\n\n switch (active.tagName.toUpperCase()) {\n // .toUpperCase handles XHTML\n case 'INPUT':\n case 'TEXTAREA':\n active.blur();\n break;\n\n default:\n active = null;\n break;\n }\n\n selection.removeAllRanges();\n return function () {\n selection.type === 'Caret' && selection.removeAllRanges();\n\n if (!selection.rangeCount) {\n ranges.forEach(function (range) {\n selection.addRange(range);\n });\n }\n\n active && active.focus();\n };\n};","import { Controller } from '@hotwired/stimulus'\n\nconst MODES = [\n 'blue',\n 'white',\n 'normal'\n]\n\nexport default class extends Controller {\n static targets = [\n 'scrollContainer',\n 'whitePoint',\n 'normalPoint',\n 'header',\n 'darkenMask',\n ]\n\n connect () {\n this.scrollTimer = null\n\n this.scrollContainerTarget.addEventListener('scroll', (e) => {\n // 暫時註解掉debounce效果,因為目前不使用首頁不使用snap-mandatory\n // 偵測scroll停下來,才執行偵測,若不是停下來的狀態,此時設定class會有神奇的抖動\n // if (this.scrollTimer) { clearTimeout(this.scrollTimer) }\n // this.scrollTimer = setTimeout(() => {\n this.detectMode(e)\n // }, 100)\n })\n window.addEventListener('resize', (e) => {\n this.detectMode(e)\n })\n\n this.detectMode()\n }\n\n detectMode () {\n const mode = MODES[this._findModeIdx()]\n if (mode !== this.currentMode) {\n MODES.forEach(mode => {\n this.headerTarget.classList.remove(`${mode}-mode`)\n })\n this.headerTarget.classList.add(`${mode}-mode`)\n this.currentMode = mode\n }\n\n this._darkenMaskWhenWhiteMode(mode)\n }\n\n // 不可為cache variable,當RWD時,offetTop可能會變\n _pointsTopMapping () {\n return [this.whitePointTarget, this.normalPointTarget].map(point => point.offsetTop)\n }\n\n _findModeIdx () {\n const currentScrollTop = this.scrollContainerTarget.scrollTop\n const idx = this._pointsTopMapping().findIndex(pointTop => currentScrollTop < pointTop)\n\n return (idx < 0 ? this._pointsTopMapping().length : idx)\n }\n\n _darkenMaskWhenWhiteMode (mode) {\n const enabled = mode === 'white'\n\n this.darkenMaskTarget.classList.toggle('invisible', !enabled)\n this.darkenMaskTarget.classList.toggle('visible', enabled)\n this.darkenMaskTarget.previousElementSibling.previousElementSibling.classList.toggle('visible', !enabled)\n this.darkenMaskTarget.previousElementSibling.previousElementSibling.classList.toggle('invisible', enabled)\n this.darkenMaskTarget.previousElementSibling.classList.toggle('visible', !enabled)\n this.darkenMaskTarget.previousElementSibling.classList.toggle('invisible', enabled)\n this.darkenMaskTarget.nextElementSibling.classList.toggle('invisible', !enabled)\n this.darkenMaskTarget.nextElementSibling.classList.toggle('visible', enabled)\n }\n}\n","// 此功能暫時不使用\n\nimport { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n static targets = [\n 'header',\n 'darkenMask',\n 'bgImg'\n ]\n\n static values = {\n blueIndex: { type: Number, default: -1 },\n whiteIndex: { type: Number, default: -1 },\n normalIndex: { type: Number, default: -1 }\n }\n\n connect () {\n this.currentIndex = 0\n this.mappingClasses = {}\n this._buildMapping()\n }\n\n changeMode ({ detail: { activeIndex, previousIndex } }) {\n ['blue', 'white', 'normal'].forEach(key => {\n const targetIndex = this[`${key}IndexValue`]\n const targetClass = this.mappingClasses[targetIndex]\n\n if (this._isLeave(targetIndex, activeIndex, previousIndex)) {\n this.headerTarget.classList.remove(targetClass)\n this._darkenMaskWhenWhiteMode(key, { enabled: false })\n } else if (this._isArrived(targetIndex, activeIndex, previousIndex)) {\n this.headerTarget.classList.add(targetClass)\n this._darkenMaskWhenWhiteMode(key, { enabled: true })\n }\n })\n\n this.currentIndex = activeIndex\n }\n\n _buildMapping () {\n ['blue', 'white', 'normal'].forEach(key => {\n if (this[`${key}IndexValue`] > -1) {\n this.mappingClasses[this[`${key}IndexValue`]] = `${key}-mode`\n }\n })\n }\n\n _isLeave (targetIndex, activeIndex, previousIndex) {\n return (targetIndex === previousIndex)\n }\n\n _isArrived (targetIndex, activeIndex, previousIndex) {\n return (targetIndex === activeIndex)\n }\n\n _darkenMaskWhenWhiteMode (mode, { enabled }) {\n if (mode === 'white') {\n this.darkenMaskTarget.classList.toggle('invisible', !enabled)\n this.darkenMaskTarget.classList.toggle('visible', enabled)\n this.darkenMaskTarget.previousElementSibling.previousElementSibling.classList.toggle('visible', !enabled)\n this.darkenMaskTarget.previousElementSibling.previousElementSibling.classList.toggle('invisible', enabled)\n this.darkenMaskTarget.previousElementSibling.classList.toggle('visible', !enabled)\n this.darkenMaskTarget.previousElementSibling.classList.toggle('invisible', enabled)\n this.darkenMaskTarget.nextElementSibling.classList.toggle('invisible', !enabled)\n this.darkenMaskTarget.nextElementSibling.classList.toggle('visible', enabled)\n }\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nimport Siema from 'siema'\n\nexport default class extends Controller {\n static targets = ['panel', 'prev', 'next']\n\n connect () {\n this.instance = new Siema({\n selector: this.panelTarget,\n perPage: {\n 0: 1.15,\n 768: 1.9,\n 1024: 2.5,\n 1440: 3\n }\n })\n this._renderButtons()\n }\n\n prev () {\n this.instance.prev()\n this._renderButtons()\n }\n\n next () {\n this.instance.next()\n this._renderButtons()\n }\n\n _renderButtons () {\n const prevToggleClass = this.prevTarget.dataset.toggleClass\n const isPrevShow = this.instance.currentSlide !== 0\n this.prevTarget.classList.toggle(prevToggleClass, isPrevShow)\n\n const nextToggleClass = this.nextTarget.dataset.toggleClass\n const isNextShow = this.instance.currentSlide + this.instance.perPage < this.instance.innerElements.length\n this.nextTarget.classList.toggle(nextToggleClass, isNextShow)\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nimport Swiper from 'swiper/swiper-bundle'\nimport 'swiper/swiper-bundle.css'\n\nexport default class extends Controller {\n static targets = ['slide']\n\n static values = {\n index: { type: Number, default: 0 },\n vertical: { type: Boolean, default: false },\n pagination: { type: Boolean, default: false },\n bulletClass: { type: String, default: '' },\n bulletActiveClass: { type: String, default: '' }\n }\n\n connect () {\n this._addClassForTargets()\n\n this.instance = new Swiper(this.element, {\n direction: this.verticalValue ? 'vertical' : 'horizontal',\n freeMode: this.verticalValue,\n slidesPerView: 'auto',\n centeredSlides: true,\n keyboard: {\n enabled: true\n },\n mousewheel: this.verticalValue,\n pagination: this.paginationValue\n ? {\n el: '.swiper-pagination',\n clickable: true,\n bulletClass: `swiper-pagination-bullet ${this.bulletClassValue}`.trim(),\n bulletActiveClass: `swiper-pagination-bullet-active ${this.bulletActiveClassValue}`.trim()\n }\n : false\n })\n\n this.instance.slideTo(this.indexValue, 0, false)\n }\n\n _addClassForTargets () {\n this.slideTargets.forEach((target) => {\n target.classList.add('swiper-slide')\n })\n }\n}\n","import { Controller } from '@hotwired/stimulus'\n\nexport default class extends Controller {\n noscroll (e) {\n const target = window[e.currentTarget.htmlFor]\n if (target) {\n const type = target.type.toLowerCase()\n if (type === 'checkbox') {\n target.checked = !target.checked\n } else if (type === 'radio') {\n target.checked = true\n }\n }\n e.preventDefault()\n }\n}\n","var map = {\n\t\"./default/homepage/about/Icn-56-1\": 3,\n\t\"./default/homepage/about/Icn-56-1.svg\": 3,\n\t\"./default/homepage/about/Icn-56-2\": 4,\n\t\"./default/homepage/about/Icn-56-2.svg\": 4,\n\t\"./default/homepage/about/bike\": 5,\n\t\"./default/homepage/about/bike.svg\": 5,\n\t\"./default/homepage/about/bus\": 6,\n\t\"./default/homepage/about/bus.svg\": 6,\n\t\"./default/homepage/about/driving\": 7,\n\t\"./default/homepage/about/driving.svg\": 7,\n\t\"./default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 1\": 8,\n\t\"./default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 1.jpeg\": 8,\n\t\"./default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 2\": 9,\n\t\"./default/homepage/about/senior-woman-with-young-female-doctor-at-home-LEPMKPB 2.jpeg\": 9,\n\t\"./default/homepage/about/train\": 10,\n\t\"./default/homepage/about/train.svg\": 10,\n\t\"./default/homepage/environment/group_33676_orange\": 11,\n\t\"./default/homepage/environment/group_33676_orange.svg\": 11,\n\t\"./default/homepage/environment/group_33676_orange_140\": 12,\n\t\"./default/homepage/environment/group_33676_orange_140.svg\": 12,\n\t\"./default/homepage/experience/cross\": 13,\n\t\"./default/homepage/experience/cross.svg\": 13,\n\t\"./default/homepage/experience/documents\": 14,\n\t\"./default/homepage/experience/documents.svg\": 14,\n\t\"./default/homepage/experience/experience01\": 15,\n\t\"./default/homepage/experience/experience01.svg\": 15,\n\t\"./default/homepage/experience/experience02\": 16,\n\t\"./default/homepage/experience/experience02.svg\": 16,\n\t\"./default/homepage/experience/experience03\": 17,\n\t\"./default/homepage/experience/experience03.svg\": 17,\n\t\"./default/homepage/experience/experience04\": 18,\n\t\"./default/homepage/experience/experience04.svg\": 18,\n\t\"./default/homepage/experience/experience05\": 19,\n\t\"./default/homepage/experience/experience05.svg\": 19,\n\t\"./default/homepage/experience/hospital\": 20,\n\t\"./default/homepage/experience/hospital.svg\": 20,\n\t\"./default/homepage/experience/love\": 21,\n\t\"./default/homepage/experience/love.svg\": 21,\n\t\"./default/homepage/experience/stethoscope\": 22,\n\t\"./default/homepage/experience/stethoscope.svg\": 22,\n\t\"./default/homepage/news/news_default\": 23,\n\t\"./default/homepage/news/news_default.jpeg\": 23,\n\t\"./default/homepage/news/wave\": 24,\n\t\"./default/homepage/news/wave.svg\": 24,\n\t\"./default/join_us/assistant\": 25,\n\t\"./default/join_us/assistant.jpg\": 25,\n\t\"./default/join_us/doctor\": 26,\n\t\"./default/join_us/doctor.jpg\": 26,\n\t\"./default/join_us/druggist\": 27,\n\t\"./default/join_us/druggist.jpg\": 27,\n\t\"./default/join_us/it\": 28,\n\t\"./default/join_us/it.jpg\": 28,\n\t\"./default/join_us/nurse\": 29,\n\t\"./default/join_us/nurse.jpg\": 29,\n\t\"./default/join_us/recruit\": 30,\n\t\"./default/join_us/recruit.jpg\": 30,\n\t\"./default/join_us/recruit_ipad\": 31,\n\t\"./default/join_us/recruit_ipad.jpg\": 31,\n\t\"./default/join_us/recruit_mobile\": 32,\n\t\"./default/join_us/recruit_mobile.jpg\": 32,\n\t\"./default/pages/about/1\": 33,\n\t\"./default/pages/about/1.jpg\": 33,\n\t\"./default/pages/about/2\": 34,\n\t\"./default/pages/about/2.jpg\": 34,\n\t\"./default/pages/about/3\": 35,\n\t\"./default/pages/about/3.jpg\": 35,\n\t\"./default/pages/about/33676\": 36,\n\t\"./default/pages/about/33676.svg\": 36,\n\t\"./default/pages/about/4\": 37,\n\t\"./default/pages/about/4.jpg\": 37,\n\t\"./default/pages/about/5\": 38,\n\t\"./default/pages/about/5.jpg\": 38,\n\t\"./default/pages/about/6\": 39,\n\t\"./default/pages/about/6.jpg\": 39,\n\t\"./default/pages/about/clinic-1\": 40,\n\t\"./default/pages/about/clinic-1.jpeg\": 40,\n\t\"./default/pages/about/clinic-2\": 41,\n\t\"./default/pages/about/clinic-2.jpeg\": 41,\n\t\"./default/pages/about/clinic-3\": 42,\n\t\"./default/pages/about/clinic-3.jpeg\": 42,\n\t\"./default/pages/about/clinic-4\": 43,\n\t\"./default/pages/about/clinic-4.jpeg\": 43,\n\t\"./default/pages/about/clinic-5\": 44,\n\t\"./default/pages/about/clinic-5.jpeg\": 44,\n\t\"./default/pages/about/clinic-new-2\": 45,\n\t\"./default/pages/about/clinic-new-2.jpeg\": 45,\n\t\"./default/pages/about/clinic-new-5\": 46,\n\t\"./default/pages/about/clinic-new-5.jpeg\": 46,\n\t\"./default/pages/about/doctor-1\": 47,\n\t\"./default/pages/about/doctor-1.jpg\": 47,\n\t\"./default/pages/about/doctor-2\": 48,\n\t\"./default/pages/about/doctor-2.jpg\": 48,\n\t\"./default/pages/about/doctor-3\": 49,\n\t\"./default/pages/about/doctor-3.jpg\": 49,\n\t\"./default/pages/about/happy-asian-family-laying-on-bed-with-smile-FSAN5FC 1\": 50,\n\t\"./default/pages/about/happy-asian-family-laying-on-bed-with-smile-FSAN5FC 1.png\": 50,\n\t\"./default/pages/about/main/33819\": 51,\n\t\"./default/pages/about/main/33819.svg\": 51,\n\t\"./default/pages/about/main/33820\": 52,\n\t\"./default/pages/about/main/33820.svg\": 52,\n\t\"./default/pages/about/main/33821\": 53,\n\t\"./default/pages/about/main/33821.svg\": 53,\n\t\"./default/pages/about/main/33822\": 54,\n\t\"./default/pages/about/main/33822.svg\": 54,\n\t\"./default/pages/about/main/33823\": 55,\n\t\"./default/pages/about/main/33823.svg\": 55,\n\t\"./default/pages/about/main/34436\": 56,\n\t\"./default/pages/about/main/34436.svg\": 56,\n\t\"./default/pages/about/main/ear\": 57,\n\t\"./default/pages/about/main/ear.svg\": 57,\n\t\"./default/pages/about/main/flower-field\": 58,\n\t\"./default/pages/about/main/flower-field.jpeg\": 58,\n\t\"./default/pages/about/main/heart\": 59,\n\t\"./default/pages/about/main/heart.svg\": 59,\n\t\"./default/pages/about/main/lock\": 60,\n\t\"./default/pages/about/main/lock.svg\": 60,\n\t\"./default/pages/about/main/message\": 61,\n\t\"./default/pages/about/main/message.svg\": 61,\n\t\"./default/pages/about/main/protected-heart\": 62,\n\t\"./default/pages/about/main/protected-heart.svg\": 62,\n\t\"./default/pages/about/upload\": 63,\n\t\"./default/pages/about/upload.svg\": 63,\n\t\"./default/pages/about/wave-white\": 64,\n\t\"./default/pages/about/wave-white.svg\": 64,\n\t\"./default/pages/about/郭家穎\": 65,\n\t\"./default/pages/about/郭家穎.jpeg\": 65,\n\t\"./default/pages/business_cooperation/main/1\": 66,\n\t\"./default/pages/business_cooperation/main/1.svg\": 66,\n\t\"./default/pages/business_cooperation/main/2\": 67,\n\t\"./default/pages/business_cooperation/main/2.svg\": 67,\n\t\"./default/pages/business_cooperation/main/3\": 68,\n\t\"./default/pages/business_cooperation/main/3.svg\": 68,\n\t\"./default/pages/business_cooperation/main/4\": 69,\n\t\"./default/pages/business_cooperation/main/4.svg\": 69,\n\t\"./default/pages/business_cooperation/main/5\": 70,\n\t\"./default/pages/business_cooperation/main/5.svg\": 70,\n\t\"./default/pages/business_cooperation/main/6\": 71,\n\t\"./default/pages/business_cooperation/main/6.svg\": 71,\n\t\"./default/pages/business_cooperation/main/7\": 72,\n\t\"./default/pages/business_cooperation/main/7.svg\": 72,\n\t\"./default/pages/business_cooperation/main/8\": 73,\n\t\"./default/pages/business_cooperation/main/8.svg\": 73,\n\t\"./default/pages/business_cooperation/main/medical-team\": 74,\n\t\"./default/pages/business_cooperation/main/medical-team.jpg\": 74,\n\t\"./default/pages/depth_views/1\": 75,\n\t\"./default/pages/depth_views/1.jpg\": 75,\n\t\"./default/pages/depth_views/2\": 76,\n\t\"./default/pages/depth_views/2.jpg\": 76,\n\t\"./default/pages/depth_views/fb-gray\": 77,\n\t\"./default/pages/depth_views/fb-gray.svg\": 77,\n\t\"./default/pages/depth_views/fb-orange\": 78,\n\t\"./default/pages/depth_views/fb-orange.svg\": 78,\n\t\"./default/pages/depth_views/line-gray\": 79,\n\t\"./default/pages/depth_views/line-gray.svg\": 79,\n\t\"./default/pages/depth_views/line-orange\": 80,\n\t\"./default/pages/depth_views/line-orange.svg\": 80,\n\t\"./default/pages/depth_views/link-gray\": 81,\n\t\"./default/pages/depth_views/link-gray.svg\": 81,\n\t\"./default/pages/depth_views/link-orange\": 82,\n\t\"./default/pages/depth_views/link-orange.svg\": 82,\n\t\"./default/pages/depth_views/pagination/first\": 83,\n\t\"./default/pages/depth_views/pagination/first.svg\": 83,\n\t\"./default/pages/depth_views/pagination/last\": 84,\n\t\"./default/pages/depth_views/pagination/last.svg\": 84,\n\t\"./default/pages/depth_views/pagination/next\": 85,\n\t\"./default/pages/depth_views/pagination/next.svg\": 85,\n\t\"./default/pages/depth_views/pagination/prev\": 86,\n\t\"./default/pages/depth_views/pagination/prev.svg\": 86,\n\t\"./default/pages/depth_views/toggle\": 87,\n\t\"./default/pages/depth_views/toggle.svg\": 87,\n\t\"./default/pages/homepage/about/1\": 88,\n\t\"./default/pages/homepage/about/1-mobile\": 89,\n\t\"./default/pages/homepage/about/1-mobile.jpg\": 89,\n\t\"./default/pages/homepage/about/1.jpg\": 88,\n\t\"./default/pages/homepage/depth_views/01\": 90,\n\t\"./default/pages/homepage/depth_views/01.png\": 90,\n\t\"./default/pages/homepage/depth_views/1\": 91,\n\t\"./default/pages/homepage/depth_views/1.jpg\": 91,\n\t\"./default/pages/homepage/depth_views/2\": 92,\n\t\"./default/pages/homepage/depth_views/2.jpg\": 92,\n\t\"./default/pages/homepage/depth_views/3\": 93,\n\t\"./default/pages/homepage/depth_views/3.jpg\": 93,\n\t\"./default/pages/homepage/founder/1\": 94,\n\t\"./default/pages/homepage/founder/1-ipad\": 95,\n\t\"./default/pages/homepage/founder/1-ipad.jpg\": 95,\n\t\"./default/pages/homepage/founder/1-mobile\": 96,\n\t\"./default/pages/homepage/founder/1-mobile.jpg\": 96,\n\t\"./default/pages/homepage/founder/1.jpg\": 94,\n\t\"./default/pages/homepage/founder_doctor/1\": 97,\n\t\"./default/pages/homepage/founder_doctor/1-mobile\": 98,\n\t\"./default/pages/homepage/founder_doctor/1-mobile.jpg\": 98,\n\t\"./default/pages/homepage/founder_doctor/1.jpg\": 97,\n\t\"./default/pages/homepage/founder_doctor/arc_md\": 99,\n\t\"./default/pages/homepage/founder_doctor/arc_md.svg\": 99,\n\t\"./default/pages/homepage/patient_recommends/1\": 100,\n\t\"./default/pages/homepage/patient_recommends/1.svg\": 100,\n\t\"./default/pages/homepage/patient_recommends/2\": 101,\n\t\"./default/pages/homepage/patient_recommends/2.svg\": 101,\n\t\"./default/pages/homepage/patient_recommends/3\": 102,\n\t\"./default/pages/homepage/patient_recommends/3.svg\": 102,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_01\": 103,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_01.png\": 103,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_02\": 104,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_02.png\": 104,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_03\": 105,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_03.png\": 105,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_04\": 106,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_04.png\": 106,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_05\": 107,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_05.png\": 107,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_06\": 108,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_06.png\": 108,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_07\": 109,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_07.png\": 109,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_08\": 110,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_08.png\": 110,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_09\": 111,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_09.png\": 111,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_10\": 112,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_10.png\": 112,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_11\": 113,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_11.png\": 113,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_12\": 114,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_12.png\": 114,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_13\": 115,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_13.png\": 115,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_14\": 116,\n\t\"./default/pages/homepage/patient_recommends/img_avatar_14.png\": 116,\n\t\"./default/pages/homepage/public_sciences/1\": 117,\n\t\"./default/pages/homepage/public_sciences/1.jpg\": 117,\n\t\"./default/pages/homepage/public_sciences/2\": 118,\n\t\"./default/pages/homepage/public_sciences/2.jpg\": 118,\n\t\"./default/pages/homepage/questions/1\": 119,\n\t\"./default/pages/homepage/questions/1.svg\": 119,\n\t\"./default/pages/homepage/questions/2\": 120,\n\t\"./default/pages/homepage/questions/2.svg\": 120,\n\t\"./default/pages/homepage/questions/3\": 121,\n\t\"./default/pages/homepage/questions/3.svg\": 121,\n\t\"./default/pages/public_science_1/1\": 122,\n\t\"./default/pages/public_science_1/1.jpeg\": 122,\n\t\"./default/pages/public_science_1/2\": 123,\n\t\"./default/pages/public_science_1/2.jpeg\": 123,\n\t\"./default/pages/public_science_1/3\": 124,\n\t\"./default/pages/public_science_1/3.jpeg\": 124,\n\t\"./default/pages/public_science_1/4\": 125,\n\t\"./default/pages/public_science_1/4.jpeg\": 125,\n\t\"./default/pages/public_science_1/5\": 126,\n\t\"./default/pages/public_science_1/5.jpeg\": 126,\n\t\"./default/pages/public_science_1/an-insomnia-woman-on-bed\": 127,\n\t\"./default/pages/public_science_1/an-insomnia-woman-on-bed.jpeg\": 127,\n\t\"./default/pages/public_science_1/autonomic-nervous-system\": 128,\n\t\"./default/pages/public_science_1/autonomic-nervous-system.jpeg\": 128,\n\t\"./default/pages/public_science_1/brain\": 129,\n\t\"./default/pages/public_science_1/brain.jpeg\": 129,\n\t\"./default/pages/public_science_1/check\": 130,\n\t\"./default/pages/public_science_1/check.svg\": 130,\n\t\"./default/pages/public_science_1/happy-asian-family-laying-on-bed-with-smile\": 131,\n\t\"./default/pages/public_science_1/happy-asian-family-laying-on-bed-with-smile.jpeg\": 131,\n\t\"./default/pages/public_science_1/meditation-on-beach\": 132,\n\t\"./default/pages/public_science_1/meditation-on-beach.jpeg\": 132,\n\t\"./default/pages/public_science_1/meditation-on-beach_720px\": 133,\n\t\"./default/pages/public_science_1/meditation-on-beach_720px.jpeg\": 133,\n\t\"./default/pages/public_science_1/nerve\": 134,\n\t\"./default/pages/public_science_1/nerve.jpeg\": 134,\n\t\"./default/pages/public_science_1/pathology\": 135,\n\t\"./default/pages/public_science_1/pathology.jpeg\": 135,\n\t\"./default/pages/public_science_1/public-sciences-1\": 136,\n\t\"./default/pages/public_science_1/public-sciences-1.png\": 136,\n\t\"./default/pages/public_science_1/public-sciences-2\": 137,\n\t\"./default/pages/public_science_1/public-sciences-2.jpg\": 137,\n\t\"./default/pages/public_science_1/public-sciences-3\": 138,\n\t\"./default/pages/public_science_1/public-sciences-3.png\": 138,\n\t\"./default/pages/public_science_1/upset-working-woman\": 139,\n\t\"./default/pages/public_science_1/upset-working-woman-1\": 140,\n\t\"./default/pages/public_science_1/upset-working-woman-1.jpeg\": 140,\n\t\"./default/pages/public_science_1/upset-working-woman.jpeg\": 139,\n\t\"./default/pages/public_science_2/1\": 141,\n\t\"./default/pages/public_science_2/1.jpg\": 141,\n\t\"./default/pages/public_science_2/2\": 142,\n\t\"./default/pages/public_science_2/2-1\": 143,\n\t\"./default/pages/public_science_2/2-1.png\": 143,\n\t\"./default/pages/public_science_2/2-2\": 144,\n\t\"./default/pages/public_science_2/2-2.png\": 144,\n\t\"./default/pages/public_science_2/2-3\": 145,\n\t\"./default/pages/public_science_2/2-3.png\": 145,\n\t\"./default/pages/public_science_2/2-4\": 146,\n\t\"./default/pages/public_science_2/2-4.png\": 146,\n\t\"./default/pages/public_science_2/2-5\": 147,\n\t\"./default/pages/public_science_2/2-5.png\": 147,\n\t\"./default/pages/public_science_2/2-6\": 148,\n\t\"./default/pages/public_science_2/2-6.png\": 148,\n\t\"./default/pages/public_science_2/2.jpg\": 142,\n\t\"./default/pages/public_science_2/3\": 149,\n\t\"./default/pages/public_science_2/3.jpg\": 149,\n\t\"./default/pages/public_science_2/4\": 150,\n\t\"./default/pages/public_science_2/4.jpg\": 150,\n\t\"./default/pages/public_science_2/5\": 151,\n\t\"./default/pages/public_science_2/5.jpg\": 151,\n\t\"./default/pages/public_science_2/6\": 152,\n\t\"./default/pages/public_science_2/6.jpg\": 152,\n\t\"./default/pages/public_sciences/Frame175\": 153,\n\t\"./default/pages/public_sciences/Frame175.png\": 153,\n\t\"./default/pages/public_sciences/Frame176\": 154,\n\t\"./default/pages/public_sciences/Frame176.png\": 154,\n\t\"./default/pages/public_sciences/Frame177\": 155,\n\t\"./default/pages/public_sciences/Frame177.png\": 155,\n\t\"./default/pages/public_sciences/main/1\": 156,\n\t\"./default/pages/public_sciences/main/1.svg\": 156,\n\t\"./default/pages/public_sciences/main/2\": 157,\n\t\"./default/pages/public_sciences/main/2.svg\": 157,\n\t\"./default/pages/public_sciences/main/3\": 158,\n\t\"./default/pages/public_sciences/main/3.svg\": 158,\n\t\"./default/pages/public_sciences/main/4\": 159,\n\t\"./default/pages/public_sciences/main/4.svg\": 159,\n\t\"./default/pages/shared/34436\": 160,\n\t\"./default/pages/shared/34436.jpeg\": 160,\n\t\"./default/pages/shared/arrow_downward\": 161,\n\t\"./default/pages/shared/arrow_downward.svg\": 161,\n\t\"./default/pages/shared/search\": 162,\n\t\"./default/pages/shared/search.svg\": 162,\n\t\"./default/pages/shared/testing\": 163,\n\t\"./default/pages/shared/testing.svg\": 163,\n\t\"./default/pages/treatment_features/features/1\": 164,\n\t\"./default/pages/treatment_features/features/1.svg\": 164,\n\t\"./default/pages/treatment_features/features/2\": 165,\n\t\"./default/pages/treatment_features/features/2.svg\": 165,\n\t\"./default/pages/treatment_features/features/3\": 166,\n\t\"./default/pages/treatment_features/features/3.svg\": 166,\n\t\"./default/pages/treatment_features/features/4\": 167,\n\t\"./default/pages/treatment_features/features/4.svg\": 167,\n\t\"./default/pages/treatment_features/features/5\": 168,\n\t\"./default/pages/treatment_features/features/5.svg\": 168,\n\t\"./default/pages/treatment_features/features/6\": 169,\n\t\"./default/pages/treatment_features/features/6.svg\": 169,\n\t\"./default/pages/treatment_features/introduces/01\": 170,\n\t\"./default/pages/treatment_features/introduces/01.jpeg\": 170,\n\t\"./default/pages/treatment_features/introduces/02\": 171,\n\t\"./default/pages/treatment_features/introduces/02.png\": 171,\n\t\"./default/pages/treatment_features/introduces/03\": 172,\n\t\"./default/pages/treatment_features/introduces/03.jpg\": 172,\n\t\"./default/pages/treatment_features/introduces/04\": 173,\n\t\"./default/pages/treatment_features/introduces/04.jpg\": 173,\n\t\"./default/pages/treatment_features/introduces/05\": 174,\n\t\"./default/pages/treatment_features/introduces/05.jpg\": 174,\n\t\"./default/pages/treatment_features/introduces/06\": 175,\n\t\"./default/pages/treatment_features/introduces/06.jpg\": 175,\n\t\"./default/pages/treatment_features/introduces/07\": 176,\n\t\"./default/pages/treatment_features/introduces/07.jpg\": 176,\n\t\"./default/pages/treatment_features/introduces/08\": 177,\n\t\"./default/pages/treatment_features/introduces/08.jpg\": 177,\n\t\"./default/pages/treatment_features/introduces/09\": 178,\n\t\"./default/pages/treatment_features/introduces/09.jpg\": 178,\n\t\"./default/pages/treatment_features/introduces/10\": 179,\n\t\"./default/pages/treatment_features/introduces/10.jpg\": 179,\n\t\"./default/pay_services/1\": 180,\n\t\"./default/pay_services/1.jpg\": 180,\n\t\"./default/pay_services/1_md\": 181,\n\t\"./default/pay_services/1_md.jpg\": 181,\n\t\"./default/pay_services/2\": 182,\n\t\"./default/pay_services/2.jpg\": 182,\n\t\"./default/pay_services/2_md\": 183,\n\t\"./default/pay_services/2_md.jpg\": 183,\n\t\"./default/pay_services/3\": 184,\n\t\"./default/pay_services/3.jpg\": 184,\n\t\"./default/pay_services/3_md\": 185,\n\t\"./default/pay_services/3_md.jpg\": 185,\n\t\"./default/pay_services/4\": 186,\n\t\"./default/pay_services/4.jpg\": 186,\n\t\"./default/pay_services/4_md\": 187,\n\t\"./default/pay_services/4_md.jpg\": 187,\n\t\"./default/shared/down-arrow\": 188,\n\t\"./default/shared/down-arrow.svg\": 188,\n\t\"./default/shared/favicon\": 189,\n\t\"./default/shared/favicon.png\": 189,\n\t\"./default/shared/footer/bg\": 190,\n\t\"./default/shared/footer/bg-lg\": 191,\n\t\"./default/shared/footer/bg-lg.svg\": 191,\n\t\"./default/shared/footer/bg-line\": 192,\n\t\"./default/shared/footer/bg-line-lg\": 193,\n\t\"./default/shared/footer/bg-line-lg.svg\": 193,\n\t\"./default/shared/footer/bg-line-md\": 194,\n\t\"./default/shared/footer/bg-line-md.svg\": 194,\n\t\"./default/shared/footer/bg-line-xl\": 195,\n\t\"./default/shared/footer/bg-line-xl.svg\": 195,\n\t\"./default/shared/footer/bg-line.svg\": 192,\n\t\"./default/shared/footer/bg-md\": 196,\n\t\"./default/shared/footer/bg-md.svg\": 196,\n\t\"./default/shared/footer/bg-xl\": 197,\n\t\"./default/shared/footer/bg-xl.svg\": 197,\n\t\"./default/shared/footer/bg.svg\": 190,\n\t\"./default/shared/footer/facebook\": 198,\n\t\"./default/shared/footer/facebook.svg\": 198,\n\t\"./default/shared/footer/line\": 199,\n\t\"./default/shared/footer/line.svg\": 199,\n\t\"./default/shared/footer/map\": 200,\n\t\"./default/shared/footer/map.svg\": 200,\n\t\"./default/shared/footer/top\": 201,\n\t\"./default/shared/footer/top.svg\": 201,\n\t\"./default/shared/header/bg\": 202,\n\t\"./default/shared/header/bg-md\": 203,\n\t\"./default/shared/header/bg-md.svg\": 203,\n\t\"./default/shared/header/bg.svg\": 202,\n\t\"./default/shared/header/booking\": 204,\n\t\"./default/shared/header/booking.svg\": 204,\n\t\"./default/shared/header/close\": 205,\n\t\"./default/shared/header/close.svg\": 205,\n\t\"./default/shared/header/hamburger\": 206,\n\t\"./default/shared/header/hamburger.svg\": 206,\n\t\"./default/shared/header/line\": 207,\n\t\"./default/shared/header/line.svg\": 207,\n\t\"./default/shared/header/logo\": 208,\n\t\"./default/shared/header/logo-black\": 209,\n\t\"./default/shared/header/logo-black.svg\": 209,\n\t\"./default/shared/header/logo-color\": 210,\n\t\"./default/shared/header/logo-color.jpg\": 210,\n\t\"./default/shared/header/logo-white\": 211,\n\t\"./default/shared/header/logo-white.svg\": 211,\n\t\"./default/shared/header/logo.svg\": 208,\n\t\"./default/shared/header/main\": 212,\n\t\"./default/shared/header/main-375\": 213,\n\t\"./default/shared/header/main-375.jpg\": 213,\n\t\"./default/shared/header/main-lg\": 214,\n\t\"./default/shared/header/main-lg.jpg\": 214,\n\t\"./default/shared/header/main-md\": 215,\n\t\"./default/shared/header/main-md.jpg\": 215,\n\t\"./default/shared/header/main-xl\": 216,\n\t\"./default/shared/header/main-xl.jpg\": 216,\n\t\"./default/shared/header/main.jpg\": 212,\n\t\"./default/shared/header/nav-cover0\": 217,\n\t\"./default/shared/header/nav-cover0.jpg\": 217,\n\t\"./default/shared/header/nav-cover1\": 218,\n\t\"./default/shared/header/nav-cover1.jpg\": 218,\n\t\"./default/shared/header/nav-cover2\": 219,\n\t\"./default/shared/header/nav-cover2.jpg\": 219,\n\t\"./default/shared/header/nav-cover3\": 220,\n\t\"./default/shared/header/nav-cover3.jpg\": 220,\n\t\"./default/shared/header/nav-cover4\": 221,\n\t\"./default/shared/header/nav-cover4.jpg\": 221,\n\t\"./default/shared/header/nav-cover5\": 222,\n\t\"./default/shared/header/nav-cover5.jpg\": 222,\n\t\"./default/shared/header/nav-cover7\": 223,\n\t\"./default/shared/header/nav-cover7.jpg\": 223,\n\t\"./default/shared/header/time\": 224,\n\t\"./default/shared/header/time.svg\": 224,\n\t\"./default/shared/left-arrow\": 225,\n\t\"./default/shared/left-arrow.svg\": 225,\n\t\"./default/shared/right-arrow\": 226,\n\t\"./default/shared/right-arrow.svg\": 226,\n\t\"./default/shared/up-arrow\": 227,\n\t\"./default/shared/up-arrow.svg\": 227,\n\t\"./default/shared/wave\": 228,\n\t\"./default/shared/wave.svg\": 228\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 251;","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nexport var FetchResponse = /*#__PURE__*/function () {\n function FetchResponse(response) {\n _classCallCheck(this, FetchResponse);\n\n this.response = response;\n }\n\n _createClass(FetchResponse, [{\n key: \"statusCode\",\n get: function get() {\n return this.response.status;\n }\n }, {\n key: \"redirected\",\n get: function get() {\n return this.response.redirected;\n }\n }, {\n key: \"ok\",\n get: function get() {\n return this.response.ok;\n }\n }, {\n key: \"unauthenticated\",\n get: function get() {\n return this.statusCode === 401;\n }\n }, {\n key: \"unprocessableEntity\",\n get: function get() {\n return this.statusCode === 422;\n }\n }, {\n key: \"authenticationURL\",\n get: function get() {\n return this.response.headers.get('WWW-Authenticate');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n var contentType = this.response.headers.get('Content-Type') || '';\n return contentType.replace(/;.*$/, '');\n }\n }, {\n key: \"headers\",\n get: function get() {\n return this.response.headers;\n }\n }, {\n key: \"html\",\n get: function get() {\n if (this.contentType.match(/^(application|text)\\/(html|xhtml\\+xml)$/)) {\n return this.text;\n }\n\n return Promise.reject(new Error(\"Expected an HTML response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"json\",\n get: function get() {\n if (this.contentType.match(/^application\\/.*json$/)) {\n return this.responseJson || (this.responseJson = this.response.json());\n }\n\n return Promise.reject(new Error(\"Expected a JSON response but got \\\"\".concat(this.contentType, \"\\\" instead\")));\n }\n }, {\n key: \"text\",\n get: function get() {\n return this.responseText || (this.responseText = this.response.text());\n }\n }, {\n key: \"isTurboStream\",\n get: function get() {\n return this.contentType.match(/^text\\/vnd\\.turbo-stream\\.html/);\n }\n }, {\n key: \"renderTurboStream\",\n value: function () {\n var _renderTurboStream = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n if (!this.isTurboStream) {\n _context.next = 13;\n break;\n }\n\n if (!window.Turbo) {\n _context.next = 10;\n break;\n }\n\n _context.t0 = window.Turbo;\n _context.next = 5;\n return this.text;\n\n case 5:\n _context.t1 = _context.sent;\n _context.next = 8;\n return _context.t0.renderStreamMessage.call(_context.t0, _context.t1);\n\n case 8:\n _context.next = 11;\n break;\n\n case 10:\n console.warn('You must set `window.Turbo = Turbo` to automatically process Turbo Stream events with request.js');\n\n case 11:\n _context.next = 14;\n break;\n\n case 13:\n return _context.abrupt(\"return\", Promise.reject(new Error(\"Expected a Turbo Stream response but got \\\"\".concat(this.contentType, \"\\\" instead\"))));\n\n case 14:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this);\n }));\n\n function renderTurboStream() {\n return _renderTurboStream.apply(this, arguments);\n }\n\n return renderTurboStream;\n }()\n }]);\n\n return FetchResponse;\n}();","function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nexport var RequestInterceptor = /*#__PURE__*/function () {\n function RequestInterceptor() {\n _classCallCheck(this, RequestInterceptor);\n }\n\n _createClass(RequestInterceptor, null, [{\n key: \"register\",\n value: function register(interceptor) {\n this.interceptor = interceptor;\n }\n }, {\n key: \"get\",\n value: function get() {\n return this.interceptor;\n }\n }, {\n key: \"reset\",\n value: function reset() {\n this.interceptor = undefined;\n }\n }]);\n\n return RequestInterceptor;\n}();","function _createForOfIteratorHelper(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (!it) { if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; var F = function F() {}; return { s: F, n: function n() { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }, e: function e(_e2) { throw _e2; }, f: F }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); } var normalCompletion = true, didErr = false, err; return { s: function s() { it = it.call(o); }, n: function n() { var step = it.next(); normalCompletion = step.done; return step; }, e: function e(_e3) { didErr = true; err = _e3; }, f: function f() { try { if (!normalCompletion && it.return != null) it.return(); } finally { if (didErr) throw err; } } }; }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nexport function getCookie(name) {\n var cookies = document.cookie ? document.cookie.split('; ') : [];\n var prefix = \"\".concat(encodeURIComponent(name), \"=\");\n var cookie = cookies.find(function (cookie) {\n return cookie.startsWith(prefix);\n });\n\n if (cookie) {\n var value = cookie.split('=').slice(1).join('=');\n\n if (value) {\n return decodeURIComponent(value);\n }\n }\n}\nexport function compact(object) {\n var result = {};\n\n for (var key in object) {\n var value = object[key];\n\n if (value !== undefined) {\n result[key] = value;\n }\n }\n\n return result;\n}\nexport function metaContent(name) {\n var element = document.head.querySelector(\"meta[name=\\\"\".concat(name, \"\\\"]\"));\n return element && element.content;\n}\nexport function stringEntriesFromFormData(formData) {\n return _toConsumableArray(formData).reduce(function (entries, _ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n name = _ref2[0],\n value = _ref2[1];\n\n return entries.concat(typeof value === 'string' ? [[name, value]] : []);\n }, []);\n}\nexport function mergeEntries(searchParams, entries) {\n var _iterator = _createForOfIteratorHelper(entries),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var _ref5 = _step.value;\n\n var _ref4 = _slicedToArray(_ref5, 2);\n\n var name = _ref4[0];\n var value = _ref4[1];\n if (value instanceof window.File) continue;\n\n if (searchParams.has(name)) {\n searchParams.delete(name);\n searchParams.set(name, value);\n } else {\n searchParams.append(name, value);\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n}","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\n\nfunction _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\nimport { FetchResponse } from './fetch_response';\nimport { RequestInterceptor } from './request_interceptor';\nimport { getCookie, compact, metaContent, stringEntriesFromFormData, mergeEntries } from './lib/utils';\nexport var FetchRequest = /*#__PURE__*/function () {\n function FetchRequest(method, url) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n _classCallCheck(this, FetchRequest);\n\n this.method = method;\n this.options = options;\n this.originalUrl = url.toString();\n }\n\n _createClass(FetchRequest, [{\n key: \"perform\",\n value: function () {\n var _perform = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee() {\n var requestInterceptor, response;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n _context.prev = 0;\n requestInterceptor = RequestInterceptor.get();\n\n if (!requestInterceptor) {\n _context.next = 5;\n break;\n }\n\n _context.next = 5;\n return requestInterceptor(this);\n\n case 5:\n _context.next = 10;\n break;\n\n case 7:\n _context.prev = 7;\n _context.t0 = _context[\"catch\"](0);\n console.error(_context.t0);\n\n case 10:\n _context.t1 = FetchResponse;\n _context.next = 13;\n return window.fetch(this.url, this.fetchOptions);\n\n case 13:\n _context.t2 = _context.sent;\n response = new _context.t1(_context.t2);\n\n if (!(response.unauthenticated && response.authenticationURL)) {\n _context.next = 17;\n break;\n }\n\n return _context.abrupt(\"return\", Promise.reject(window.location.href = response.authenticationURL));\n\n case 17:\n if (!(response.ok && response.isTurboStream)) {\n _context.next = 20;\n break;\n }\n\n _context.next = 20;\n return response.renderTurboStream();\n\n case 20:\n return _context.abrupt(\"return\", response);\n\n case 21:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, this, [[0, 7]]);\n }));\n\n function perform() {\n return _perform.apply(this, arguments);\n }\n\n return perform;\n }()\n }, {\n key: \"addHeader\",\n value: function addHeader(key, value) {\n var headers = this.additionalHeaders;\n headers[key] = value;\n this.options.headers = headers;\n }\n }, {\n key: \"fetchOptions\",\n get: function get() {\n return {\n method: this.method.toUpperCase(),\n headers: this.headers,\n body: this.formattedBody,\n signal: this.signal,\n credentials: 'same-origin',\n redirect: this.redirect\n };\n }\n }, {\n key: \"headers\",\n get: function get() {\n return compact(Object.assign({\n 'X-Requested-With': 'XMLHttpRequest',\n 'X-CSRF-Token': this.csrfToken,\n 'Content-Type': this.contentType,\n Accept: this.accept\n }, this.additionalHeaders));\n }\n }, {\n key: \"csrfToken\",\n get: function get() {\n return getCookie(metaContent('csrf-param')) || metaContent('csrf-token');\n }\n }, {\n key: \"contentType\",\n get: function get() {\n if (this.options.contentType) {\n return this.options.contentType;\n } else if (this.body == null || this.body instanceof window.FormData) {\n return undefined;\n } else if (this.body instanceof window.File) {\n return this.body.type;\n }\n\n return 'application/json';\n }\n }, {\n key: \"accept\",\n get: function get() {\n switch (this.responseKind) {\n case 'html':\n return 'text/html, application/xhtml+xml';\n\n case 'turbo-stream':\n return 'text/vnd.turbo-stream.html, text/html, application/xhtml+xml';\n\n case 'json':\n return 'application/json, application/vnd.api+json';\n\n default:\n return '*/*';\n }\n }\n }, {\n key: \"body\",\n get: function get() {\n return this.options.body;\n }\n }, {\n key: \"query\",\n get: function get() {\n var originalQuery = (this.originalUrl.split('?')[1] || '').split('#')[0];\n var params = new URLSearchParams(originalQuery);\n var requestQuery = this.options.query;\n\n if (requestQuery instanceof window.FormData) {\n requestQuery = stringEntriesFromFormData(requestQuery);\n } else if (requestQuery instanceof window.URLSearchParams) {\n requestQuery = requestQuery.entries();\n } else {\n requestQuery = Object.entries(requestQuery || {});\n }\n\n mergeEntries(params, requestQuery);\n var query = params.toString();\n return query.length > 0 ? \"?\".concat(query) : '';\n }\n }, {\n key: \"url\",\n get: function get() {\n return this.originalUrl.split('?')[0].split('#')[0] + this.query;\n }\n }, {\n key: \"responseKind\",\n get: function get() {\n return this.options.responseKind || 'html';\n }\n }, {\n key: \"signal\",\n get: function get() {\n return this.options.signal;\n }\n }, {\n key: \"redirect\",\n get: function get() {\n return this.options.redirect || 'follow';\n }\n }, {\n key: \"additionalHeaders\",\n get: function get() {\n return this.options.headers || {};\n }\n }, {\n key: \"formattedBody\",\n get: function get() {\n var bodyIsAString = Object.prototype.toString.call(this.body) === '[object String]';\n var contentTypeIsJson = this.headers['Content-Type'] === 'application/json';\n\n if (contentTypeIsJson && !bodyIsAString) {\n return JSON.stringify(this.body);\n }\n\n return this.body;\n }\n }]);\n\n return FetchRequest;\n}();","import _regeneratorRuntime from \"@babel/runtime/regenerator\";\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }\n\nfunction _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err); } _next(undefined); }); }; }\n\nimport { FetchRequest } from './fetch_request';\n\nfunction get(_x, _x2) {\n return _get.apply(this, arguments);\n}\n\nfunction _get() {\n _get = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n request = new FetchRequest('get', url, options);\n return _context.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee);\n }));\n return _get.apply(this, arguments);\n}\n\nfunction post(_x3, _x4) {\n return _post.apply(this, arguments);\n}\n\nfunction _post() {\n _post = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee2$(_context2) {\n while (1) {\n switch (_context2.prev = _context2.next) {\n case 0:\n request = new FetchRequest('post', url, options);\n return _context2.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context2.stop();\n }\n }\n }, _callee2);\n }));\n return _post.apply(this, arguments);\n}\n\nfunction put(_x5, _x6) {\n return _put.apply(this, arguments);\n}\n\nfunction _put() {\n _put = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee3$(_context3) {\n while (1) {\n switch (_context3.prev = _context3.next) {\n case 0:\n request = new FetchRequest('put', url, options);\n return _context3.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context3.stop();\n }\n }\n }, _callee3);\n }));\n return _put.apply(this, arguments);\n}\n\nfunction patch(_x7, _x8) {\n return _patch.apply(this, arguments);\n}\n\nfunction _patch() {\n _patch = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee4(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee4$(_context4) {\n while (1) {\n switch (_context4.prev = _context4.next) {\n case 0:\n request = new FetchRequest('patch', url, options);\n return _context4.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context4.stop();\n }\n }\n }, _callee4);\n }));\n return _patch.apply(this, arguments);\n}\n\nfunction destroy(_x9, _x10) {\n return _destroy.apply(this, arguments);\n}\n\nfunction _destroy() {\n _destroy = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee5(url, options) {\n var request;\n return _regeneratorRuntime.wrap(function _callee5$(_context5) {\n while (1) {\n switch (_context5.prev = _context5.next) {\n case 0:\n request = new FetchRequest('delete', url, options);\n return _context5.abrupt(\"return\", request.perform());\n\n case 2:\n case \"end\":\n return _context5.stop();\n }\n }\n }, _callee5);\n }));\n return _destroy.apply(this, arguments);\n}\n\nexport { get, post, put, patch, destroy };","import { Controller } from '@hotwired/stimulus'\nimport { get } from '@rails/request.js'\n\nexport default class extends Controller {\n static values = {\n apiUrl: String\n }\n static targets = ['clinicName', 'currentNum', 'nextNum']\n connect(){\n this.fetchClinic()\n }\n\n async fetchClinic(){\n const response = await get(this.apiUrlValue, {responseKind: 'json'})\n if(response.ok){\n const resp = await response.json\n const respData = resp.data\n this.clinicNameTarget.innerText = respData.clinic_name\n this.currentNumTarget.innerText = respData.current_num\n this.nextNumTarget.innerText = respData.next_num\n }\n }\n}\n","import { Application } from '@hotwired/stimulus'\n\n// Import and register all your controllers within this directory and all subdirectories\n// Controller files must be named *_controller.js or *_controller.ts\nimport { definitionsFromContext } from '@hotwired/stimulus-webpack-helpers'\n\nconst application = Application.start()\n\n// Configure Stimulus development experience\napplication.warnings = true\napplication.debug = false\nif (process.env.NODE_ENV === 'development') {\n application.debug = true\n window.Stimulus = application\n}\nconst context = require.context('controllers', true, /_controller\\.(js|ts)$/)\napplication.load(definitionsFromContext(context))\n","/*\nStimulus Webpack Helpers 1.0.0\nCopyright © 2021 Basecamp, LLC\n */\nfunction definitionsFromContext(context) {\n return context.keys().map(function (key) {\n return definitionForModuleWithContextAndKey(context, key);\n }).filter(function (value) {\n return value;\n });\n}\n\nfunction definitionForModuleWithContextAndKey(context, key) {\n var identifier = identifierForContextKey(key);\n\n if (identifier) {\n return definitionForModuleAndIdentifier(context(key), identifier);\n }\n}\n\nfunction definitionForModuleAndIdentifier(module, identifier) {\n var controllerConstructor = module.default;\n\n if (typeof controllerConstructor == \"function\") {\n return {\n identifier: identifier,\n controllerConstructor: controllerConstructor\n };\n }\n}\n\nfunction identifierForContextKey(key) {\n var logicalName = (key.match(/^(?:\\.\\/)?(.+)(?:[_-]controller\\..+?)$/) || [])[1];\n\n if (logicalName) {\n return logicalName.replace(/_/g, \"-\").replace(/\\//g, \"--\");\n }\n}\n\nexport { definitionForModuleAndIdentifier, definitionForModuleWithContextAndKey, definitionsFromContext, identifierForContextKey };","// This file is automatically compiled by Webpack, along with any other files\n// present in this directory. You're encouraged to place your actual application logic in\n// a relevant structure within app/javascript and only use these pack files to reference\n// that code so it'll be compiled.\n\nimport Rails from '@rails/ujs'\nimport * as ActiveStorage from '@rails/activestorage'\nimport 'channels'\nimport 'controllers'\n\nimport 'stylesheets/application.scss'\n\nRails.start()\nActiveStorage.start()\n\nrequire.context('../images', true)\n","// queryParent(selector)(dom)\nconst queryParent = (selector) => (dom) => {\n if (!dom) {\n return\n }\n\n let parent = dom.parentNode\n\n while (parent) {\n if (parent === document) {\n parent = null\n break\n } else if (parent.matches(selector)) {\n break\n }\n parent = parent.parentNode\n }\n\n return parent\n}\n\nexport { queryParent }\n","// 此功能暫時不使用\n\nimport { Controller } from '@hotwired/stimulus'\n\nimport { queryParent } from 'components/selector_tools'\n\n// unit: micro seconds\nconst SLIDE_PERIOD = {\n wheel: 1250,\n touch: 1000,\n keyup: 750\n}\n\n// unit: seconds\nconst TRANSITION_TIME = 0.5\n\nconst EXCLUDE_SELECTOR = 'label'\n\nexport default class extends Controller {\n static targets = [\n 'slide'\n ]\n\n static values = {\n enable: { type: Boolean, default: false }\n }\n\n connect () {\n this.lastIndex = 0\n this.currentIndex = 0\n this.lastTouchPos = null\n this.lastSlideTimeStamp = 0\n this.changeEnableProcessing = false\n\n this.enableSlideOne = this.enableValue\n this._changeEnable(this.enableSlideOne)\n }\n\n scrollSlide (e) {\n if (!this.enableSlideOne) {\n this._detectCurrentIndex()\n }\n }\n\n wheelSlide (e) {\n if (this.changeEnableProcessing) {\n e.preventDefault()\n e.stopPropagation()\n return false\n }\n\n if (!this.enableSlideOne) {\n this._detectCurrentIndex()\n return true\n }\n\n e.preventDefault()\n e.stopPropagation()\n\n const direction = this._wheelDirection(e.deltaY)\n this._scrollOne('wheel', direction)\n\n return false\n }\n\n touchSlideStart (e) {\n if (this.changeEnableProcessing) {\n e.preventDefault()\n e.stopPropagation()\n return false\n }\n\n // 避免按下label時,會無法使用label來改變checkbox的功能\n if (e.target.matches(EXCLUDE_SELECTOR) || queryParent(EXCLUDE_SELECTOR)(e.target)) {\n return true\n }\n\n if (!this.enableSlideOne) {\n return true\n }\n\n this.lastTouchPos = e.changedTouches[0].pageY\n }\n\n touchSlideEnd (e) {\n if (this.changeEnableProcessing) {\n e.preventDefault()\n e.stopPropagation()\n return false\n }\n\n // 避免按下label時,會無法使用label來改變checkbox的功能\n if (e.target.matches(EXCLUDE_SELECTOR) || queryParent(EXCLUDE_SELECTOR)(e.target)) {\n return true\n }\n\n if (!this.enableSlideOne) {\n this._detectCurrentIndex()\n return true\n }\n\n if (!this.lastTouchPos) {\n return false\n }\n\n const currentTouchPos = e.changedTouches[0].pageY\n const direction = this._touchDirection(currentTouchPos, this.lastTouchPos)\n this._scrollOne('touch', direction)\n\n this.lastTouchPos = null\n\n return false\n }\n\n keyupSlide (e) {\n if (this.changeEnableProcessing) {\n e.preventDefault()\n e.stopPropagation()\n return false\n }\n\n if (!this.enableSlideOne) {\n this._detectCurrentIndex()\n return true\n }\n\n const direction = this._keyupDirection(e)\n this._scrollOne('keyup', direction)\n\n return false\n }\n\n moveCurrentPos () {\n if (!this.enableSlideOne) {\n return\n }\n\n const targetDom = this.slideTargets[this.currentIndex]\n this._moveTargetPos(targetDom, { animation: false })\n }\n\n _changeEnable (enable) {\n this.changeEnableProcessing = true\n this.enableSlideOne = enable\n const offsetTop = this.slideTargets[this.currentIndex].offsetTop - this.element.offsetTop\n\n if (enable) {\n this.element.style.overflowY = ''\n this.element.scrollTo(0, 0)\n this._moveTargetPos(this.slideTargets[this.lastIndex], { animation: false })\n setTimeout(() => {\n this._moveTargetPos(this.slideTargets[this.currentIndex])\n }, 0)\n } else {\n const disableStyles = () => {\n this.element.style.overflowY = 'auto'\n this.element.scrollTo(0, offsetTop)\n this.element.style.marginTop = '0'\n this.element.style.transition = ''\n }\n // 若已經開啟,需要等animation結束\n if (this.element.style.transition) {\n const transitionendEvent = () => {\n disableStyles()\n this.element.removeEventListener('transitionend', transitionendEvent)\n }\n this.element.addEventListener('transitionend', transitionendEvent)\n } else {\n disableStyles()\n }\n }\n window.setTimeout(() => {\n this.changeEnableProcessing = false\n }, TRANSITION_TIME * 1000)\n }\n\n _scrollOne (type, direction) {\n const now = Date.now()\n if (now - this.lastSlideTimeStamp <= SLIDE_PERIOD[type]) {\n return\n }\n\n const nextIndex = this._getNextIndex(direction)\n if (nextIndex === undefined || this.currentIndex === nextIndex) {\n return\n }\n\n const targetDom = this.slideTargets[nextIndex]\n this._moveTargetPos(targetDom)\n\n this.dispatch('activeIndexChange', {\n detail: {\n activeIndex: nextIndex, previousIndex: this.currentIndex\n }\n })\n\n this.lastIndex = this.currentIndex\n this.currentIndex = nextIndex\n this.lastSlideTimeStamp = now\n\n // Try Lock\n // if (nextIndex === 2) {\n // this._changeEnable(false)\n // }\n }\n\n _wheelDirection (delta) {\n if (delta > 0) {\n return 'DOWN'\n } else if (delta < 0) {\n return 'UP'\n } else {\n return 'NO'\n }\n }\n\n _touchDirection (currentTouchPos, lastTouchPos) {\n if (Math.abs(currentTouchPos - lastTouchPos) <= 30) {\n return 'NO'\n } else if (currentTouchPos > lastTouchPos) {\n return 'UP'\n } else if (currentTouchPos < lastTouchPos) {\n return 'DOWN'\n } else {\n return 'NO'\n }\n }\n\n _keyupDirection (e) {\n if (e.key === 'ArrowUp' || e.key === 'PageUp') {\n return 'UP'\n } else if (e.key === 'ArrowDown' || e.key === 'PageDown') {\n return 'DOWN'\n } else {\n return 'NO'\n }\n }\n\n _getNextIndex (direction) {\n if (direction === 'UP') {\n return (this.currentIndex === 0 ? 0 : this.currentIndex - 1)\n } else if (direction === 'DOWN') {\n return (this.currentIndex === this.slideTargets.length - 1 ? this.currentIndex : this.currentIndex + 1)\n }\n }\n\n _moveTargetPos (targetDom, { animation = true } = {}) {\n const targetParentDom = targetDom.parentNode\n const offsetTop = targetDom.offsetTop - targetParentDom.offsetTop\n\n this.element.style.marginTop = `${offsetTop * -1}px`\n this.element.style.transition = animation ? `margin-top ${TRANSITION_TIME}s linear` : ''\n }\n\n _detectCurrentIndex () {\n const currentScrollTop = this.element.scrollTop\n let nextIndex = null\n\n for (let i = 0; i < this.slideTargets.length; i++) {\n const thisSlide = this.slideTargets[i]\n // const thisSlideOffsetTop = thisSlide.offsetTop - this.element.offsetTop\n const nextSlide = this.slideTargets[i + 1]\n // const nextSlideOffsetTop = nextSlide ? (nextSlide.offsetTop - this.element.offsetTop) : 0\n if (currentScrollTop >= thisSlide.offsetTop) {\n nextIndex = i\n if (nextSlide && currentScrollTop < nextSlide.offsetTop) {\n break\n }\n }\n }\n\n if (this.currentIndex !== nextIndex) {\n this.dispatch('activeIndexChange', {\n detail: {\n activeIndex: nextIndex, previousIndex: this.currentIndex\n }\n })\n\n this.lastIndex = this.currentIndex\n this.currentIndex = nextIndex\n\n // Try Lock\n // if (nextIndex === 1) {\n // this._changeEnable(true)\n // }\n }\n }\n}\n"],"sourceRoot":""}