@tarojs/components 3.6.0-canary.9 → 3.6.1-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +119 -1
- package/dist/cjs/index-dfd8638f.js +40 -0
- package/dist/cjs/index-dfd8638f.js.map +1 -0
- package/dist/cjs/index-e1b469cd.js +2066 -0
- package/dist/cjs/index-e1b469cd.js.map +1 -0
- package/dist/cjs/loader.cjs.js +4 -3
- package/dist/cjs/loader.cjs.js.map +1 -1
- package/dist/cjs/taro-ad-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-ad-custom-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-animation-video-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-animation-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-ar-camera-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-audio-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-aweme-data-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-block-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-button-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-camera-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-canvas-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-checkbox-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-comment-detail-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-comment-list-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-components.cjs.js +7 -3
- package/dist/cjs/taro-components.cjs.js.map +1 -1
- package/dist/cjs/taro-contact-button-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-cover-image-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-cover-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-custom-wrapper-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-editor-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-follow-swan-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-form-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-functional-page-navigator-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-icon-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-image-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-inline-payment-panel-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-input-core.cjs.entry.js +2 -2
- package/dist/cjs/taro-input-core.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-keyboard-accessory-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-label-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-lifestyle-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-like-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-live-player-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-live-pusher-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-login-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-lottie-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-map-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-match-media-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-movable-area-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-native-slot-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-navigation-bar-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-navigator-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-navigator-core.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-official-account-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-open-data-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-page-container-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-page-meta-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-picker-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-picker-view-column-core_2.cjs.entry.js +2 -2
- package/dist/cjs/taro-progress-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-pull-to-refresh.cjs.entry.js +1 -1
- package/dist/cjs/taro-radio-core_2.cjs.entry.js +1 -1
- package/dist/cjs/taro-rich-text-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-root-portal-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-rtc-room-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-rtc-room-item-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-scroll-view-core.cjs.entry.js +48 -52
- package/dist/cjs/taro-scroll-view-core.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-share-element-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-slider-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-slot-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-swiper-core_2.cjs.entry.js +49 -8
- package/dist/cjs/taro-swiper-core_2.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-switch-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-tab-item-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-tabbar.cjs.entry.js +18 -20
- package/dist/cjs/taro-tabbar.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-tabs-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-text-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-textarea-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-video-control_3.cjs.entry.js +6 -2
- package/dist/cjs/taro-video-control_3.cjs.entry.js.map +1 -1
- package/dist/cjs/taro-view-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-voip-room-core.cjs.entry.js +1 -1
- package/dist/cjs/taro-web-view-core.cjs.entry.js +1 -1
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/input/input.js +6 -2
- package/dist/collection/components/input/input.js.map +1 -1
- package/dist/collection/components/navigator/navigator.js +0 -16
- package/dist/collection/components/navigator/navigator.js.map +1 -1
- package/dist/collection/components/scroll-view/scroll-view.js +93 -51
- package/dist/collection/components/scroll-view/scroll-view.js.map +1 -1
- package/dist/collection/components/swiper/swiper-item.js +37 -1
- package/dist/collection/components/swiper/swiper-item.js.map +1 -1
- package/dist/collection/components/swiper/swiper.js +12 -5
- package/dist/collection/components/swiper/swiper.js.map +1 -1
- package/dist/collection/components/tabbar/tabbar-item.js +7 -1
- package/dist/collection/components/tabbar/tabbar-item.js.map +1 -1
- package/dist/collection/components/tabbar/tabbar.js +4 -17
- package/dist/collection/components/tabbar/tabbar.js.map +1 -1
- package/dist/collection/components/video/video.js +23 -0
- package/dist/collection/components/video/video.js.map +1 -1
- package/dist/collection/utils/index.js +3 -0
- package/dist/collection/utils/index.js.map +1 -1
- package/dist/components/helper.js +15 -0
- package/dist/components/helper.js.map +1 -0
- package/dist/components/hls.js +27622 -0
- package/dist/components/hls.js.map +1 -0
- package/dist/components/index.d.ts +106 -0
- package/dist/components/index.js +79 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/index2.js +78 -0
- package/dist/components/index2.js.map +1 -0
- package/dist/components/index3.js +36 -0
- package/dist/components/index3.js.map +1 -0
- package/dist/components/intersection-observer.js +728 -0
- package/dist/components/intersection-observer.js.map +1 -0
- package/dist/components/picker-group.js +220 -0
- package/dist/components/picker-group.js.map +1 -0
- package/dist/components/taro-ad-core.d.ts +11 -0
- package/dist/components/taro-ad-core.js +35 -0
- package/dist/components/taro-ad-core.js.map +1 -0
- package/dist/components/taro-ad-custom-core.d.ts +11 -0
- package/dist/components/taro-ad-custom-core.js +35 -0
- package/dist/components/taro-ad-custom-core.js.map +1 -0
- package/dist/components/taro-animation-video-core.d.ts +11 -0
- package/dist/components/taro-animation-video-core.js +35 -0
- package/dist/components/taro-animation-video-core.js.map +1 -0
- package/dist/components/taro-animation-view-core.d.ts +11 -0
- package/dist/components/taro-animation-view-core.js +35 -0
- package/dist/components/taro-animation-view-core.js.map +1 -0
- package/dist/components/taro-ar-camera-core.d.ts +11 -0
- package/dist/components/taro-ar-camera-core.js +35 -0
- package/dist/components/taro-ar-camera-core.js.map +1 -0
- package/dist/components/taro-audio-core.d.ts +11 -0
- package/dist/components/taro-audio-core.js +80 -0
- package/dist/components/taro-audio-core.js.map +1 -0
- package/dist/components/taro-aweme-data-core.d.ts +11 -0
- package/dist/components/taro-aweme-data-core.js +35 -0
- package/dist/components/taro-aweme-data-core.js.map +1 -0
- package/dist/components/taro-block-core.d.ts +11 -0
- package/dist/components/taro-block-core.js +31 -0
- package/dist/components/taro-block-core.js.map +1 -0
- package/dist/components/taro-button-core.d.ts +11 -0
- package/dist/components/taro-button-core.js +102 -0
- package/dist/components/taro-button-core.js.map +1 -0
- package/dist/components/taro-camera-core.d.ts +11 -0
- package/dist/components/taro-camera-core.js +35 -0
- package/dist/components/taro-camera-core.js.map +1 -0
- package/dist/components/taro-canvas-core.d.ts +11 -0
- package/dist/components/taro-canvas-core.js +57 -0
- package/dist/components/taro-canvas-core.js.map +1 -0
- package/dist/components/taro-checkbox-core.d.ts +11 -0
- package/dist/components/taro-checkbox-core.js +81 -0
- package/dist/components/taro-checkbox-core.js.map +1 -0
- package/dist/components/taro-checkbox-group-core.d.ts +11 -0
- package/dist/components/taro-checkbox-group-core.js +71 -0
- package/dist/components/taro-checkbox-group-core.js.map +1 -0
- package/dist/components/taro-comment-detail-core.d.ts +11 -0
- package/dist/components/taro-comment-detail-core.js +35 -0
- package/dist/components/taro-comment-detail-core.js.map +1 -0
- package/dist/components/taro-comment-list-core.d.ts +11 -0
- package/dist/components/taro-comment-list-core.js +35 -0
- package/dist/components/taro-comment-list-core.js.map +1 -0
- package/dist/components/taro-contact-button-core.d.ts +11 -0
- package/dist/components/taro-contact-button-core.js +35 -0
- package/dist/components/taro-contact-button-core.js.map +1 -0
- package/dist/components/taro-cover-image-core.d.ts +11 -0
- package/dist/components/taro-cover-image-core.js +52 -0
- package/dist/components/taro-cover-image-core.js.map +1 -0
- package/dist/components/taro-cover-view-core.d.ts +11 -0
- package/dist/components/taro-cover-view-core.js +89 -0
- package/dist/components/taro-cover-view-core.js.map +1 -0
- package/dist/components/taro-custom-wrapper-core.d.ts +11 -0
- package/dist/components/taro-custom-wrapper-core.js +31 -0
- package/dist/components/taro-custom-wrapper-core.js.map +1 -0
- package/dist/components/taro-editor-core.d.ts +11 -0
- package/dist/components/taro-editor-core.js +35 -0
- package/dist/components/taro-editor-core.js.map +1 -0
- package/dist/components/taro-follow-swan-core.d.ts +11 -0
- package/dist/components/taro-follow-swan-core.js +35 -0
- package/dist/components/taro-follow-swan-core.js.map +1 -0
- package/dist/components/taro-form-core.d.ts +11 -0
- package/dist/components/taro-form-core.js +140 -0
- package/dist/components/taro-form-core.js.map +1 -0
- package/dist/components/taro-functional-page-navigator-core.d.ts +11 -0
- package/dist/components/taro-functional-page-navigator-core.js +35 -0
- package/dist/components/taro-functional-page-navigator-core.js.map +1 -0
- package/dist/components/taro-icon-core.d.ts +11 -0
- package/dist/components/taro-icon-core.js +48 -0
- package/dist/components/taro-icon-core.js.map +1 -0
- package/dist/components/taro-image-core.d.ts +11 -0
- package/dist/components/taro-image-core.js +81 -0
- package/dist/components/taro-image-core.js.map +1 -0
- package/dist/components/taro-inline-payment-panel-core.d.ts +11 -0
- package/dist/components/taro-inline-payment-panel-core.js +35 -0
- package/dist/components/taro-inline-payment-panel-core.js.map +1 -0
- package/dist/components/taro-input-core.d.ts +11 -0
- package/dist/components/taro-input-core.js +246 -0
- package/dist/components/taro-input-core.js.map +1 -0
- package/dist/components/taro-keyboard-accessory-core.d.ts +11 -0
- package/dist/components/taro-keyboard-accessory-core.js +35 -0
- package/dist/components/taro-keyboard-accessory-core.js.map +1 -0
- package/dist/components/taro-label-core.d.ts +11 -0
- package/dist/components/taro-label-core.js +34 -0
- package/dist/components/taro-label-core.js.map +1 -0
- package/dist/components/taro-lifestyle-core.d.ts +11 -0
- package/dist/components/taro-lifestyle-core.js +35 -0
- package/dist/components/taro-lifestyle-core.js.map +1 -0
- package/dist/components/taro-like-core.d.ts +11 -0
- package/dist/components/taro-like-core.js +35 -0
- package/dist/components/taro-like-core.js.map +1 -0
- package/dist/components/taro-live-player-core.d.ts +11 -0
- package/dist/components/taro-live-player-core.js +35 -0
- package/dist/components/taro-live-player-core.js.map +1 -0
- package/dist/components/taro-live-pusher-core.d.ts +11 -0
- package/dist/components/taro-live-pusher-core.js +35 -0
- package/dist/components/taro-live-pusher-core.js.map +1 -0
- package/dist/components/taro-login-core.d.ts +11 -0
- package/dist/components/taro-login-core.js +35 -0
- package/dist/components/taro-login-core.js.map +1 -0
- package/dist/components/taro-lottie-core.d.ts +11 -0
- package/dist/components/taro-lottie-core.js +35 -0
- package/dist/components/taro-lottie-core.js.map +1 -0
- package/dist/components/taro-map-core.d.ts +11 -0
- package/dist/components/taro-map-core.js +35 -0
- package/dist/components/taro-map-core.js.map +1 -0
- package/dist/components/taro-match-media-core.d.ts +11 -0
- package/dist/components/taro-match-media-core.js +35 -0
- package/dist/components/taro-match-media-core.js.map +1 -0
- package/dist/components/taro-movable-area-core.d.ts +11 -0
- package/dist/components/taro-movable-area-core.js +175 -0
- package/dist/components/taro-movable-area-core.js.map +1 -0
- package/dist/components/taro-movable-view-core.d.ts +11 -0
- package/dist/components/taro-movable-view-core.js +361 -0
- package/dist/components/taro-movable-view-core.js.map +1 -0
- package/dist/components/taro-native-slot-core.d.ts +11 -0
- package/dist/components/taro-native-slot-core.js +35 -0
- package/dist/components/taro-native-slot-core.js.map +1 -0
- package/dist/components/taro-navigation-bar-core.d.ts +11 -0
- package/dist/components/taro-navigation-bar-core.js +35 -0
- package/dist/components/taro-navigation-bar-core.js.map +1 -0
- package/dist/components/taro-navigator-core.d.ts +11 -0
- package/dist/components/taro-navigator-core.js +96 -0
- package/dist/components/taro-navigator-core.js.map +1 -0
- package/dist/components/taro-official-account-core.d.ts +11 -0
- package/dist/components/taro-official-account-core.js +35 -0
- package/dist/components/taro-official-account-core.js.map +1 -0
- package/dist/components/taro-open-data-core.d.ts +11 -0
- package/dist/components/taro-open-data-core.js +35 -0
- package/dist/components/taro-open-data-core.js.map +1 -0
- package/dist/components/taro-page-container-core.d.ts +11 -0
- package/dist/components/taro-page-container-core.js +35 -0
- package/dist/components/taro-page-container-core.js.map +1 -0
- package/dist/components/taro-page-meta-core.d.ts +11 -0
- package/dist/components/taro-page-meta-core.js +35 -0
- package/dist/components/taro-page-meta-core.js.map +1 -0
- package/dist/components/taro-picker-core.d.ts +11 -0
- package/dist/components/taro-picker-core.js +538 -0
- package/dist/components/taro-picker-core.js.map +1 -0
- package/dist/components/taro-picker-group.d.ts +11 -0
- package/dist/components/taro-picker-group.js +8 -0
- package/dist/components/taro-picker-group.js.map +1 -0
- package/dist/components/taro-picker-view-column-core.d.ts +11 -0
- package/dist/components/taro-picker-view-column-core.js +115 -0
- package/dist/components/taro-picker-view-column-core.js.map +1 -0
- package/dist/components/taro-picker-view-core.d.ts +11 -0
- package/dist/components/taro-picker-view-core.js +114 -0
- package/dist/components/taro-picker-view-core.js.map +1 -0
- package/dist/components/taro-progress-core.d.ts +11 -0
- package/dist/components/taro-progress-core.js +62 -0
- package/dist/components/taro-progress-core.js.map +1 -0
- package/dist/components/taro-pull-to-refresh.d.ts +11 -0
- package/dist/components/taro-pull-to-refresh.js +284 -0
- package/dist/components/taro-pull-to-refresh.js.map +1 -0
- package/dist/components/taro-radio-core.d.ts +11 -0
- package/dist/components/taro-radio-core.js +83 -0
- package/dist/components/taro-radio-core.js.map +1 -0
- package/dist/components/taro-radio-group-core.d.ts +11 -0
- package/dist/components/taro-radio-group-core.js +82 -0
- package/dist/components/taro-radio-group-core.js.map +1 -0
- package/dist/components/taro-rich-text-core.d.ts +11 -0
- package/dist/components/taro-rich-text-core.js +86 -0
- package/dist/components/taro-rich-text-core.js.map +1 -0
- package/dist/components/taro-root-portal-core.d.ts +11 -0
- package/dist/components/taro-root-portal-core.js +35 -0
- package/dist/components/taro-root-portal-core.js.map +1 -0
- package/dist/components/taro-rtc-room-core.d.ts +11 -0
- package/dist/components/taro-rtc-room-core.js +35 -0
- package/dist/components/taro-rtc-room-core.js.map +1 -0
- package/dist/components/taro-rtc-room-item-core.d.ts +11 -0
- package/dist/components/taro-rtc-room-item-core.js +35 -0
- package/dist/components/taro-rtc-room-item-core.js.map +1 -0
- package/dist/components/taro-scroll-view-core.d.ts +11 -0
- package/dist/components/taro-scroll-view-core.js +182 -0
- package/dist/components/taro-scroll-view-core.js.map +1 -0
- package/dist/components/taro-share-element-core.d.ts +11 -0
- package/dist/components/taro-share-element-core.js +35 -0
- package/dist/components/taro-share-element-core.js.map +1 -0
- package/dist/components/taro-slider-core.d.ts +11 -0
- package/dist/components/taro-slider-core.js +196 -0
- package/dist/components/taro-slider-core.js.map +1 -0
- package/dist/components/taro-slot-core.d.ts +11 -0
- package/dist/components/taro-slot-core.js +35 -0
- package/dist/components/taro-slot-core.js.map +1 -0
- package/dist/components/taro-swiper-core.d.ts +11 -0
- package/dist/components/taro-swiper-core.js +10172 -0
- package/dist/components/taro-swiper-core.js.map +1 -0
- package/dist/components/taro-swiper-item-core.d.ts +11 -0
- package/dist/components/taro-swiper-item-core.js +70 -0
- package/dist/components/taro-swiper-item-core.js.map +1 -0
- package/dist/components/taro-switch-core.d.ts +11 -0
- package/dist/components/taro-switch-core.js +87 -0
- package/dist/components/taro-switch-core.js.map +1 -0
- package/dist/components/taro-tab-item-core.d.ts +11 -0
- package/dist/components/taro-tab-item-core.js +35 -0
- package/dist/components/taro-tab-item-core.js.map +1 -0
- package/dist/components/taro-tabbar.d.ts +11 -0
- package/dist/components/taro-tabbar.js +455 -0
- package/dist/components/taro-tabbar.js.map +1 -0
- package/dist/components/taro-tabs-core.d.ts +11 -0
- package/dist/components/taro-tabs-core.js +35 -0
- package/dist/components/taro-tabs-core.js.map +1 -0
- package/dist/components/taro-text-core.d.ts +11 -0
- package/dist/components/taro-text-core.js +41 -0
- package/dist/components/taro-text-core.js.map +1 -0
- package/dist/components/taro-textarea-core.d.ts +11 -0
- package/dist/components/taro-textarea-core.js +164 -0
- package/dist/components/taro-textarea-core.js.map +1 -0
- package/dist/components/taro-video-control.d.ts +11 -0
- package/dist/components/taro-video-control.js +8 -0
- package/dist/components/taro-video-control.js.map +1 -0
- package/dist/components/taro-video-core.d.ts +11 -0
- package/dist/components/taro-video-core.js +490 -0
- package/dist/components/taro-video-core.js.map +1 -0
- package/dist/components/taro-video-danmu.d.ts +11 -0
- package/dist/components/taro-video-danmu.js +8 -0
- package/dist/components/taro-video-danmu.js.map +1 -0
- package/dist/components/taro-view-core.d.ts +11 -0
- package/dist/components/taro-view-core.js +101 -0
- package/dist/components/taro-view-core.js.map +1 -0
- package/dist/components/taro-voip-room-core.d.ts +11 -0
- package/dist/components/taro-voip-room-core.js +35 -0
- package/dist/components/taro-voip-room-core.js.map +1 -0
- package/dist/components/taro-web-view-core.d.ts +11 -0
- package/dist/components/taro-web-view-core.js +46 -0
- package/dist/components/taro-web-view-core.js.map +1 -0
- package/dist/components/video-control.js +233 -0
- package/dist/components/video-control.js.map +1 -0
- package/dist/components/video-danmu.js +110 -0
- package/dist/components/video-danmu.js.map +1 -0
- package/dist/esm/index-c948674f.js +2037 -0
- package/dist/esm/index-c948674f.js.map +1 -0
- package/dist/esm/index-d1b03e47.js +36 -0
- package/dist/esm/index-d1b03e47.js.map +1 -0
- package/dist/esm/loader.js +4 -3
- package/dist/esm/loader.js.map +1 -1
- package/dist/esm/polyfills/css-shim.js +1 -1
- package/dist/esm/taro-ad-core.entry.js +1 -1
- package/dist/esm/taro-ad-custom-core.entry.js +1 -1
- package/dist/esm/taro-animation-video-core.entry.js +1 -1
- package/dist/esm/taro-animation-view-core.entry.js +1 -1
- package/dist/esm/taro-ar-camera-core.entry.js +1 -1
- package/dist/esm/taro-audio-core.entry.js +1 -1
- package/dist/esm/taro-aweme-data-core.entry.js +1 -1
- package/dist/esm/taro-block-core.entry.js +1 -1
- package/dist/esm/taro-button-core.entry.js +1 -1
- package/dist/esm/taro-camera-core.entry.js +1 -1
- package/dist/esm/taro-canvas-core.entry.js +1 -1
- package/dist/esm/taro-checkbox-core_2.entry.js +1 -1
- package/dist/esm/taro-comment-detail-core.entry.js +1 -1
- package/dist/esm/taro-comment-list-core.entry.js +1 -1
- package/dist/esm/taro-components.js +4 -3
- package/dist/esm/taro-components.js.map +1 -1
- package/dist/esm/taro-contact-button-core.entry.js +1 -1
- package/dist/esm/taro-cover-image-core.entry.js +1 -1
- package/dist/esm/taro-cover-view-core.entry.js +1 -1
- package/dist/esm/taro-custom-wrapper-core.entry.js +1 -1
- package/dist/esm/taro-editor-core.entry.js +1 -1
- package/dist/esm/taro-follow-swan-core.entry.js +1 -1
- package/dist/esm/taro-form-core.entry.js +1 -1
- package/dist/esm/taro-functional-page-navigator-core.entry.js +1 -1
- package/dist/esm/taro-icon-core.entry.js +1 -1
- package/dist/esm/taro-image-core.entry.js +1 -1
- package/dist/esm/taro-inline-payment-panel-core.entry.js +1 -1
- package/dist/esm/taro-input-core.entry.js +2 -2
- package/dist/esm/taro-input-core.entry.js.map +1 -1
- package/dist/esm/taro-keyboard-accessory-core.entry.js +1 -1
- package/dist/esm/taro-label-core.entry.js +1 -1
- package/dist/esm/taro-lifestyle-core.entry.js +1 -1
- package/dist/esm/taro-like-core.entry.js +1 -1
- package/dist/esm/taro-live-player-core.entry.js +1 -1
- package/dist/esm/taro-live-pusher-core.entry.js +1 -1
- package/dist/esm/taro-login-core.entry.js +1 -1
- package/dist/esm/taro-lottie-core.entry.js +1 -1
- package/dist/esm/taro-map-core.entry.js +1 -1
- package/dist/esm/taro-match-media-core.entry.js +1 -1
- package/dist/esm/taro-movable-area-core_2.entry.js +1 -1
- package/dist/esm/taro-native-slot-core.entry.js +1 -1
- package/dist/esm/taro-navigation-bar-core.entry.js +1 -1
- package/dist/esm/taro-navigator-core.entry.js +1 -1
- package/dist/esm/taro-navigator-core.entry.js.map +1 -1
- package/dist/esm/taro-official-account-core.entry.js +1 -1
- package/dist/esm/taro-open-data-core.entry.js +1 -1
- package/dist/esm/taro-page-container-core.entry.js +1 -1
- package/dist/esm/taro-page-meta-core.entry.js +1 -1
- package/dist/esm/taro-picker-core_2.entry.js +1 -1
- package/dist/esm/taro-picker-view-column-core_2.entry.js +2 -2
- package/dist/esm/taro-progress-core.entry.js +1 -1
- package/dist/esm/taro-pull-to-refresh.entry.js +1 -1
- package/dist/esm/taro-radio-core_2.entry.js +1 -1
- package/dist/esm/taro-rich-text-core.entry.js +1 -1
- package/dist/esm/taro-root-portal-core.entry.js +1 -1
- package/dist/esm/taro-rtc-room-core.entry.js +1 -1
- package/dist/esm/taro-rtc-room-item-core.entry.js +1 -1
- package/dist/esm/taro-scroll-view-core.entry.js +48 -52
- package/dist/esm/taro-scroll-view-core.entry.js.map +1 -1
- package/dist/esm/taro-share-element-core.entry.js +1 -1
- package/dist/esm/taro-slider-core.entry.js +1 -1
- package/dist/esm/taro-slot-core.entry.js +1 -1
- package/dist/esm/taro-swiper-core_2.entry.js +49 -8
- package/dist/esm/taro-swiper-core_2.entry.js.map +1 -1
- package/dist/esm/taro-switch-core.entry.js +1 -1
- package/dist/esm/taro-tab-item-core.entry.js +1 -1
- package/dist/esm/taro-tabbar.entry.js +16 -18
- package/dist/esm/taro-tabbar.entry.js.map +1 -1
- package/dist/esm/taro-tabs-core.entry.js +1 -1
- package/dist/esm/taro-text-core.entry.js +1 -1
- package/dist/esm/taro-textarea-core.entry.js +1 -1
- package/dist/esm/taro-video-control_3.entry.js +6 -2
- package/dist/esm/taro-video-control_3.entry.js.map +1 -1
- package/dist/esm/taro-view-core.entry.js +1 -1
- package/dist/esm/taro-voip-room-core.entry.js +1 -1
- package/dist/esm/taro-web-view-core.entry.js +1 -1
- package/dist/esm-es5/helper-3d0ecf0f.js.map +1 -1
- package/dist/esm-es5/hls-221423a1.js.map +1 -1
- package/dist/esm-es5/index-1d8e8acd.js.map +1 -1
- package/dist/esm-es5/index-c948674f.js +3 -0
- package/dist/esm-es5/index-c948674f.js.map +1 -0
- package/dist/esm-es5/index-d1b03e47.js +2 -0
- package/dist/esm-es5/index-d1b03e47.js.map +1 -0
- package/dist/esm-es5/index.js.map +1 -1
- package/dist/esm-es5/intersection-observer-8e4c7135.js.map +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/loader.js.map +1 -1
- package/dist/esm-es5/taro-ad-core.entry.js +1 -1
- package/dist/esm-es5/taro-ad-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-ad-custom-core.entry.js +1 -1
- package/dist/esm-es5/taro-ad-custom-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-animation-video-core.entry.js +1 -1
- package/dist/esm-es5/taro-animation-video-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-animation-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-animation-view-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-ar-camera-core.entry.js +1 -1
- package/dist/esm-es5/taro-ar-camera-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-audio-core.entry.js +1 -1
- package/dist/esm-es5/taro-audio-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-aweme-data-core.entry.js +1 -1
- package/dist/esm-es5/taro-aweme-data-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-block-core.entry.js +1 -1
- package/dist/esm-es5/taro-block-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-button-core.entry.js +1 -1
- package/dist/esm-es5/taro-button-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-camera-core.entry.js +1 -1
- package/dist/esm-es5/taro-camera-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-canvas-core.entry.js +1 -1
- package/dist/esm-es5/taro-canvas-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-checkbox-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-checkbox-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-comment-detail-core.entry.js +1 -1
- package/dist/esm-es5/taro-comment-detail-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-comment-list-core.entry.js +1 -1
- package/dist/esm-es5/taro-comment-list-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-components.js +1 -1
- package/dist/esm-es5/taro-components.js.map +1 -1
- package/dist/esm-es5/taro-contact-button-core.entry.js +1 -1
- package/dist/esm-es5/taro-contact-button-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-cover-image-core.entry.js +1 -1
- package/dist/esm-es5/taro-cover-image-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-cover-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-cover-view-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-custom-wrapper-core.entry.js +1 -1
- package/dist/esm-es5/taro-custom-wrapper-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-editor-core.entry.js +1 -1
- package/dist/esm-es5/taro-editor-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-follow-swan-core.entry.js +1 -1
- package/dist/esm-es5/taro-follow-swan-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-form-core.entry.js +1 -1
- package/dist/esm-es5/taro-form-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-functional-page-navigator-core.entry.js +1 -1
- package/dist/esm-es5/taro-functional-page-navigator-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-icon-core.entry.js +1 -1
- package/dist/esm-es5/taro-icon-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-image-core.entry.js +1 -1
- package/dist/esm-es5/taro-image-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-inline-payment-panel-core.entry.js +1 -1
- package/dist/esm-es5/taro-inline-payment-panel-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-input-core.entry.js +1 -1
- package/dist/esm-es5/taro-input-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-keyboard-accessory-core.entry.js +1 -1
- package/dist/esm-es5/taro-keyboard-accessory-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-label-core.entry.js +1 -1
- package/dist/esm-es5/taro-label-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-lifestyle-core.entry.js +1 -1
- package/dist/esm-es5/taro-lifestyle-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-like-core.entry.js +1 -1
- package/dist/esm-es5/taro-like-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-live-player-core.entry.js +1 -1
- package/dist/esm-es5/taro-live-player-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-live-pusher-core.entry.js +1 -1
- package/dist/esm-es5/taro-live-pusher-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-login-core.entry.js +1 -1
- package/dist/esm-es5/taro-login-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-lottie-core.entry.js +1 -1
- package/dist/esm-es5/taro-lottie-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-map-core.entry.js +1 -1
- package/dist/esm-es5/taro-map-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-match-media-core.entry.js +1 -1
- package/dist/esm-es5/taro-match-media-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-movable-area-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-movable-area-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-native-slot-core.entry.js +1 -1
- package/dist/esm-es5/taro-native-slot-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-navigation-bar-core.entry.js +1 -1
- package/dist/esm-es5/taro-navigation-bar-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-navigator-core.entry.js +1 -1
- package/dist/esm-es5/taro-navigator-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-official-account-core.entry.js +1 -1
- package/dist/esm-es5/taro-official-account-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-open-data-core.entry.js +1 -1
- package/dist/esm-es5/taro-open-data-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-page-container-core.entry.js +1 -1
- package/dist/esm-es5/taro-page-container-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-page-meta-core.entry.js +1 -1
- package/dist/esm-es5/taro-page-meta-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-picker-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-picker-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-picker-view-column-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-picker-view-column-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-progress-core.entry.js +1 -1
- package/dist/esm-es5/taro-progress-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-pull-to-refresh.entry.js +1 -1
- package/dist/esm-es5/taro-pull-to-refresh.entry.js.map +1 -1
- package/dist/esm-es5/taro-radio-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-radio-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-rich-text-core.entry.js +1 -1
- package/dist/esm-es5/taro-rich-text-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-root-portal-core.entry.js +1 -1
- package/dist/esm-es5/taro-root-portal-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-rtc-room-core.entry.js +1 -1
- package/dist/esm-es5/taro-rtc-room-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-rtc-room-item-core.entry.js +1 -1
- package/dist/esm-es5/taro-rtc-room-item-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-scroll-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-scroll-view-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-share-element-core.entry.js +1 -1
- package/dist/esm-es5/taro-share-element-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-slider-core.entry.js +1 -1
- package/dist/esm-es5/taro-slider-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-slot-core.entry.js +1 -1
- package/dist/esm-es5/taro-slot-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-swiper-core_2.entry.js +1 -1
- package/dist/esm-es5/taro-swiper-core_2.entry.js.map +1 -1
- package/dist/esm-es5/taro-switch-core.entry.js +1 -1
- package/dist/esm-es5/taro-switch-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-tab-item-core.entry.js +1 -1
- package/dist/esm-es5/taro-tab-item-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-tabbar.entry.js +1 -1
- package/dist/esm-es5/taro-tabbar.entry.js.map +1 -1
- package/dist/esm-es5/taro-tabs-core.entry.js +1 -1
- package/dist/esm-es5/taro-tabs-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-text-core.entry.js +1 -1
- package/dist/esm-es5/taro-text-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-textarea-core.entry.js +1 -1
- package/dist/esm-es5/taro-textarea-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-video-control_3.entry.js +1 -1
- package/dist/esm-es5/taro-video-control_3.entry.js.map +1 -1
- package/dist/esm-es5/taro-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-view-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-voip-room-core.entry.js +1 -1
- package/dist/esm-es5/taro-voip-room-core.entry.js.map +1 -1
- package/dist/esm-es5/taro-web-view-core.entry.js +1 -1
- package/dist/esm-es5/taro-web-view-core.entry.js.map +1 -1
- package/dist/taro-components/index.esm.js.map +1 -1
- package/dist/taro-components/p-020bcd8c.entry.js +2 -0
- package/dist/taro-components/p-020bcd8c.entry.js.map +1 -0
- package/dist/taro-components/p-03d4de13.entry.js +2 -0
- package/dist/taro-components/p-03d4de13.entry.js.map +1 -0
- package/dist/taro-components/p-05f3f84a.entry.js +2 -0
- package/dist/taro-components/p-05f3f84a.entry.js.map +1 -0
- package/dist/taro-components/p-087bf23a.system.entry.js +2 -0
- package/dist/taro-components/p-087bf23a.system.entry.js.map +1 -0
- package/dist/taro-components/p-0895120a.system.entry.js +2 -0
- package/dist/taro-components/p-0895120a.system.entry.js.map +1 -0
- package/dist/taro-components/p-08bb8dfc.system.entry.js +2 -0
- package/dist/taro-components/p-08bb8dfc.system.entry.js.map +1 -0
- package/dist/taro-components/p-09db02e6.entry.js +2 -0
- package/dist/taro-components/p-09db02e6.entry.js.map +1 -0
- package/dist/taro-components/p-0a165ad3.system.entry.js +2 -0
- package/dist/taro-components/p-0a165ad3.system.entry.js.map +1 -0
- package/dist/taro-components/p-0a9b984e.system.entry.js +2 -0
- package/dist/taro-components/p-0a9b984e.system.entry.js.map +1 -0
- package/dist/taro-components/p-0accc602.entry.js +2 -0
- package/dist/taro-components/p-0accc602.entry.js.map +1 -0
- package/dist/taro-components/p-0faf45d5.entry.js +2 -0
- package/dist/taro-components/p-0faf45d5.entry.js.map +1 -0
- package/dist/taro-components/p-10046f1a.system.entry.js +2 -0
- package/dist/taro-components/p-10046f1a.system.entry.js.map +1 -0
- package/dist/taro-components/p-10be7fb5.system.entry.js +2 -0
- package/dist/taro-components/p-10be7fb5.system.entry.js.map +1 -0
- package/dist/taro-components/p-15e45ed6.system.js.map +1 -1
- package/dist/taro-components/p-17302fe9.system.entry.js +2 -0
- package/dist/taro-components/p-17302fe9.system.entry.js.map +1 -0
- package/dist/taro-components/p-1743a04b.system.js.map +1 -1
- package/dist/taro-components/p-1941d333.system.entry.js +2 -0
- package/dist/taro-components/p-1941d333.system.entry.js.map +1 -0
- package/dist/taro-components/p-19e87e18.entry.js +2 -0
- package/dist/taro-components/p-19e87e18.entry.js.map +1 -0
- package/dist/taro-components/p-1a0e1932.system.js +3 -0
- package/dist/taro-components/p-1a0e1932.system.js.map +1 -0
- package/dist/taro-components/p-1c320250.system.entry.js +2 -0
- package/dist/taro-components/p-1c320250.system.entry.js.map +1 -0
- package/dist/taro-components/p-1c446c65.system.js +2 -0
- package/dist/taro-components/p-1c446c65.system.js.map +1 -0
- package/dist/taro-components/p-2024e133.system.entry.js +2 -0
- package/dist/taro-components/p-2024e133.system.entry.js.map +1 -0
- package/dist/taro-components/p-2049bdc4.entry.js +2 -0
- package/dist/taro-components/p-2049bdc4.entry.js.map +1 -0
- package/dist/taro-components/p-2357313b.entry.js +2 -0
- package/dist/taro-components/p-2357313b.entry.js.map +1 -0
- package/dist/taro-components/p-24c2fd23.entry.js +2 -0
- package/dist/taro-components/p-24c2fd23.entry.js.map +1 -0
- package/dist/taro-components/p-26889f3c.system.entry.js +2 -0
- package/dist/taro-components/p-26889f3c.system.entry.js.map +1 -0
- package/dist/taro-components/p-281278cf.entry.js +2 -0
- package/dist/taro-components/p-281278cf.entry.js.map +1 -0
- package/dist/taro-components/p-30f32fa2.system.entry.js +2 -0
- package/dist/taro-components/p-30f32fa2.system.entry.js.map +1 -0
- package/dist/taro-components/p-30fe0e81.system.entry.js +2 -0
- package/dist/taro-components/p-30fe0e81.system.entry.js.map +1 -0
- package/dist/taro-components/p-33223303.system.entry.js +2 -0
- package/dist/taro-components/p-33223303.system.entry.js.map +1 -0
- package/dist/taro-components/p-386ae2b2.entry.js +2 -0
- package/dist/taro-components/p-386ae2b2.entry.js.map +1 -0
- package/dist/taro-components/p-3b1d2d37.system.js.map +1 -1
- package/dist/taro-components/p-3bce88d9.entry.js +2 -0
- package/dist/taro-components/p-3bce88d9.entry.js.map +1 -0
- package/dist/taro-components/p-3f07f3d3.entry.js +2 -0
- package/dist/taro-components/p-3f07f3d3.entry.js.map +1 -0
- package/dist/taro-components/p-4086e546.system.entry.js +2 -0
- package/dist/taro-components/p-4086e546.system.entry.js.map +1 -0
- package/dist/taro-components/p-4190e20b.system.entry.js +2 -0
- package/dist/taro-components/p-4190e20b.system.entry.js.map +1 -0
- package/dist/taro-components/p-4263c9d9.entry.js +2 -0
- package/dist/taro-components/p-4263c9d9.entry.js.map +1 -0
- package/dist/taro-components/p-46244579.system.entry.js +2 -0
- package/dist/taro-components/p-46244579.system.entry.js.map +1 -0
- package/dist/taro-components/p-4915fdc1.system.entry.js +2 -0
- package/dist/taro-components/p-4915fdc1.system.entry.js.map +1 -0
- package/dist/taro-components/p-4a462c95.entry.js +2 -0
- package/dist/taro-components/p-4a462c95.entry.js.map +1 -0
- package/dist/taro-components/p-4bc85eb7.entry.js +2 -0
- package/dist/taro-components/p-4bc85eb7.entry.js.map +1 -0
- package/dist/taro-components/p-4d0da795.system.entry.js +2 -0
- package/dist/taro-components/p-4d0da795.system.entry.js.map +1 -0
- package/dist/taro-components/p-50ea2036.system.js.map +1 -1
- package/dist/taro-components/p-518146fd.system.entry.js +2 -0
- package/dist/taro-components/p-518146fd.system.entry.js.map +1 -0
- package/dist/taro-components/p-51b6fc09.system.entry.js +2 -0
- package/dist/taro-components/p-51b6fc09.system.entry.js.map +1 -0
- package/dist/taro-components/p-51caa3f3.entry.js +2 -0
- package/dist/taro-components/p-51caa3f3.entry.js.map +1 -0
- package/dist/taro-components/p-56da1da3.system.entry.js +2 -0
- package/dist/taro-components/p-56da1da3.system.entry.js.map +1 -0
- package/dist/taro-components/p-58877ef2.system.entry.js +2 -0
- package/dist/taro-components/p-58877ef2.system.entry.js.map +1 -0
- package/dist/taro-components/p-59590806.system.entry.js +2 -0
- package/dist/taro-components/p-59590806.system.entry.js.map +1 -0
- package/dist/taro-components/p-5d3acf86.entry.js +2 -0
- package/dist/taro-components/p-5d3acf86.entry.js.map +1 -0
- package/dist/taro-components/p-5f3c65f0.entry.js +2 -0
- package/dist/taro-components/p-5f3c65f0.entry.js.map +1 -0
- package/dist/taro-components/p-603ceecd.entry.js +2 -0
- package/dist/taro-components/p-603ceecd.entry.js.map +1 -0
- package/dist/taro-components/p-61f225ef.system.js.map +1 -1
- package/dist/taro-components/p-623b3eb6.system.entry.js +2 -0
- package/dist/taro-components/p-623b3eb6.system.entry.js.map +1 -0
- package/dist/taro-components/p-651586f8.system.entry.js +2 -0
- package/dist/taro-components/p-651586f8.system.entry.js.map +1 -0
- package/dist/taro-components/p-663e27a0.entry.js +2 -0
- package/dist/taro-components/p-663e27a0.entry.js.map +1 -0
- package/dist/taro-components/p-66b07ac0.entry.js +2 -0
- package/dist/taro-components/p-66b07ac0.entry.js.map +1 -0
- package/dist/taro-components/p-67c3a0ba.entry.js +2 -0
- package/dist/taro-components/p-67c3a0ba.entry.js.map +1 -0
- package/dist/taro-components/p-69f6784d.system.entry.js +2 -0
- package/dist/taro-components/p-69f6784d.system.entry.js.map +1 -0
- package/dist/taro-components/p-69fa7272.system.entry.js +2 -0
- package/dist/taro-components/p-69fa7272.system.entry.js.map +1 -0
- package/dist/taro-components/p-6a96da58.js.map +1 -1
- package/dist/taro-components/p-6bb1fdf2.entry.js +2 -0
- package/dist/taro-components/p-6bb1fdf2.entry.js.map +1 -0
- package/dist/taro-components/p-6dae898a.system.entry.js +2 -0
- package/dist/taro-components/p-6dae898a.system.entry.js.map +1 -0
- package/dist/taro-components/p-6f048097.system.entry.js +2 -0
- package/dist/taro-components/p-6f048097.system.entry.js.map +1 -0
- package/dist/taro-components/p-6f214fc3.system.entry.js +2 -0
- package/dist/taro-components/p-6f214fc3.system.entry.js.map +1 -0
- package/dist/taro-components/p-72f327e1.js.map +1 -1
- package/dist/taro-components/p-736053bb.system.entry.js +2 -0
- package/dist/taro-components/p-736053bb.system.entry.js.map +1 -0
- package/dist/taro-components/p-74bf8246.system.entry.js +2 -0
- package/dist/taro-components/p-74bf8246.system.entry.js.map +1 -0
- package/dist/taro-components/p-76724e58.js.map +1 -1
- package/dist/taro-components/p-76e6fbff.entry.js +2 -0
- package/dist/taro-components/p-76e6fbff.entry.js.map +1 -0
- package/dist/taro-components/p-780870eb.entry.js +2 -0
- package/dist/taro-components/p-780870eb.entry.js.map +1 -0
- package/dist/taro-components/p-78c30850.system.entry.js +2 -0
- package/dist/taro-components/p-78c30850.system.entry.js.map +1 -0
- package/dist/taro-components/p-78e3ebb9.js +3 -0
- package/dist/taro-components/p-78e3ebb9.js.map +1 -0
- package/dist/taro-components/p-7a2f11dc.entry.js +2 -0
- package/dist/taro-components/p-7a2f11dc.entry.js.map +1 -0
- package/dist/taro-components/p-7c1fec76.entry.js +2 -0
- package/dist/taro-components/p-7c1fec76.entry.js.map +1 -0
- package/dist/taro-components/p-7c6f0d5c.entry.js +2 -0
- package/dist/taro-components/p-7c6f0d5c.entry.js.map +1 -0
- package/dist/taro-components/p-7dd9c8da.system.entry.js +2 -0
- package/dist/taro-components/p-7dd9c8da.system.entry.js.map +1 -0
- package/dist/taro-components/p-8027e1c6.system.entry.js +2 -0
- package/dist/taro-components/p-8027e1c6.system.entry.js.map +1 -0
- package/dist/taro-components/p-828bd091.entry.js +2 -0
- package/dist/taro-components/p-828bd091.entry.js.map +1 -0
- package/dist/taro-components/p-8425ff09.entry.js +2 -0
- package/dist/taro-components/p-8425ff09.entry.js.map +1 -0
- package/dist/taro-components/p-8594d1e5.entry.js +2 -0
- package/dist/taro-components/p-8594d1e5.entry.js.map +1 -0
- package/dist/taro-components/p-8625c29c.entry.js +2 -0
- package/dist/taro-components/p-8625c29c.entry.js.map +1 -0
- package/dist/taro-components/p-88d64daa.system.entry.js +2 -0
- package/dist/taro-components/p-88d64daa.system.entry.js.map +1 -0
- package/dist/taro-components/p-88fbacdb.entry.js +2 -0
- package/dist/taro-components/p-88fbacdb.entry.js.map +1 -0
- package/dist/taro-components/p-895cd7c9.system.entry.js +2 -0
- package/dist/taro-components/p-895cd7c9.system.entry.js.map +1 -0
- package/dist/taro-components/p-8d2101be.system.entry.js +2 -0
- package/dist/taro-components/p-8d2101be.system.entry.js.map +1 -0
- package/dist/taro-components/p-8e5cc8fe.system.entry.js +2 -0
- package/dist/taro-components/p-8e5cc8fe.system.entry.js.map +1 -0
- package/dist/taro-components/p-908ddbb0.entry.js +2 -0
- package/dist/taro-components/p-908ddbb0.entry.js.map +1 -0
- package/dist/taro-components/p-91f8cd40.entry.js +2 -0
- package/dist/taro-components/p-91f8cd40.entry.js.map +1 -0
- package/dist/taro-components/p-93ccd68a.entry.js +2 -0
- package/dist/taro-components/p-93ccd68a.entry.js.map +1 -0
- package/dist/taro-components/p-955fbcfa.entry.js +2 -0
- package/dist/taro-components/p-955fbcfa.entry.js.map +1 -0
- package/dist/taro-components/p-95f70aea.system.entry.js +2 -0
- package/dist/taro-components/p-95f70aea.system.entry.js.map +1 -0
- package/dist/taro-components/p-97782cdd.system.entry.js +2 -0
- package/dist/taro-components/p-97782cdd.system.entry.js.map +1 -0
- package/dist/taro-components/p-982e431d.entry.js +2 -0
- package/dist/taro-components/p-982e431d.entry.js.map +1 -0
- package/dist/taro-components/p-9bc9f3a0.entry.js +2 -0
- package/dist/taro-components/p-9bc9f3a0.entry.js.map +1 -0
- package/dist/taro-components/p-9d4fa0d3.system.entry.js +2 -0
- package/dist/taro-components/p-9d4fa0d3.system.entry.js.map +1 -0
- package/dist/taro-components/p-a23a21e1.entry.js +2 -0
- package/dist/taro-components/p-a23a21e1.entry.js.map +1 -0
- package/dist/taro-components/p-a7789ed6.entry.js +2 -0
- package/dist/taro-components/p-a7789ed6.entry.js.map +1 -0
- package/dist/taro-components/p-adc37a00.entry.js +2 -0
- package/dist/taro-components/p-adc37a00.entry.js.map +1 -0
- package/dist/taro-components/p-ae3f1ed4.system.entry.js +2 -0
- package/dist/taro-components/p-ae3f1ed4.system.entry.js.map +1 -0
- package/dist/taro-components/p-b1249ebb.system.entry.js +2 -0
- package/dist/taro-components/p-b1249ebb.system.entry.js.map +1 -0
- package/dist/taro-components/p-b1c972e2.system.entry.js +2 -0
- package/dist/taro-components/p-b1c972e2.system.entry.js.map +1 -0
- package/dist/taro-components/p-b2bb02d7.system.entry.js +2 -0
- package/dist/taro-components/p-b2bb02d7.system.entry.js.map +1 -0
- package/dist/taro-components/p-b313c11a.entry.js +2 -0
- package/dist/taro-components/p-b313c11a.entry.js.map +1 -0
- package/dist/taro-components/p-b39b973e.entry.js +2 -0
- package/dist/taro-components/p-b39b973e.entry.js.map +1 -0
- package/dist/taro-components/p-b4419d86.entry.js +2 -0
- package/dist/taro-components/p-b4419d86.entry.js.map +1 -0
- package/dist/taro-components/p-b8ba5d0a.entry.js +2 -0
- package/dist/taro-components/p-b8ba5d0a.entry.js.map +1 -0
- package/dist/taro-components/p-bac3deb0.system.entry.js +2 -0
- package/dist/taro-components/p-bac3deb0.system.entry.js.map +1 -0
- package/dist/taro-components/p-bba8c3a7.system.entry.js +2 -0
- package/dist/taro-components/p-bba8c3a7.system.entry.js.map +1 -0
- package/dist/taro-components/p-bd5177d3.system.js +2 -0
- package/dist/taro-components/p-bd5177d3.system.js.map +1 -0
- package/dist/taro-components/p-c0bb8610.entry.js +2 -0
- package/dist/taro-components/p-c0bb8610.entry.js.map +1 -0
- package/dist/taro-components/p-c1c0e16d.entry.js +2 -0
- package/dist/taro-components/p-c1c0e16d.entry.js.map +1 -0
- package/dist/taro-components/p-c2ac8f08.entry.js +2 -0
- package/dist/taro-components/p-c2ac8f08.entry.js.map +1 -0
- package/dist/taro-components/p-c33733b3.system.entry.js +2 -0
- package/dist/taro-components/p-c33733b3.system.entry.js.map +1 -0
- package/dist/taro-components/p-c3e98fdf.entry.js +2 -0
- package/dist/taro-components/p-c3e98fdf.entry.js.map +1 -0
- package/dist/taro-components/p-c4fdb669.system.entry.js +2 -0
- package/dist/taro-components/p-c4fdb669.system.entry.js.map +1 -0
- package/dist/taro-components/p-c50087fd.entry.js +2 -0
- package/dist/taro-components/p-c50087fd.entry.js.map +1 -0
- package/dist/taro-components/p-c586a796.system.entry.js +2 -0
- package/dist/taro-components/p-c586a796.system.entry.js.map +1 -0
- package/dist/taro-components/p-c6385fc2.system.entry.js +2 -0
- package/dist/taro-components/p-c6385fc2.system.entry.js.map +1 -0
- package/dist/taro-components/p-c6e6dab1.system.entry.js +2 -0
- package/dist/taro-components/p-c6e6dab1.system.entry.js.map +1 -0
- package/dist/taro-components/p-c70dd956.system.entry.js +2 -0
- package/dist/taro-components/p-c70dd956.system.entry.js.map +1 -0
- package/dist/taro-components/p-d1d19ce9.entry.js +2 -0
- package/dist/taro-components/p-d1d19ce9.entry.js.map +1 -0
- package/dist/taro-components/p-d3c7f87d.js +2 -0
- package/dist/taro-components/p-d3c7f87d.js.map +1 -0
- package/dist/taro-components/p-d5234e7e.js.map +1 -1
- package/dist/taro-components/p-d562aae3.entry.js +2 -0
- package/dist/taro-components/p-d562aae3.entry.js.map +1 -0
- package/dist/taro-components/p-d61d3394.entry.js +2 -0
- package/dist/taro-components/p-d61d3394.entry.js.map +1 -0
- package/dist/taro-components/p-d621d190.entry.js +2 -0
- package/dist/taro-components/p-d621d190.entry.js.map +1 -0
- package/dist/taro-components/p-d8c8c63f.entry.js +2 -0
- package/dist/taro-components/p-d8c8c63f.entry.js.map +1 -0
- package/dist/taro-components/p-da5cdbf5.system.entry.js +2 -0
- package/dist/taro-components/p-da5cdbf5.system.entry.js.map +1 -0
- package/dist/taro-components/p-de2d8e2e.system.entry.js +2 -0
- package/dist/taro-components/p-de2d8e2e.system.entry.js.map +1 -0
- package/dist/taro-components/p-de356b29.system.entry.js +2 -0
- package/dist/taro-components/p-de356b29.system.entry.js.map +1 -0
- package/dist/taro-components/p-e0e4a403.entry.js +2 -0
- package/dist/taro-components/p-e0e4a403.entry.js.map +1 -0
- package/dist/taro-components/p-e3f8265d.system.entry.js +2 -0
- package/dist/taro-components/p-e3f8265d.system.entry.js.map +1 -0
- package/dist/taro-components/p-e53feb03.system.entry.js +2 -0
- package/dist/taro-components/p-e53feb03.system.entry.js.map +1 -0
- package/dist/taro-components/p-e67165fd.entry.js +2 -0
- package/dist/taro-components/p-e67165fd.entry.js.map +1 -0
- package/dist/taro-components/p-eb2a7609.entry.js +2 -0
- package/dist/taro-components/p-eb2a7609.entry.js.map +1 -0
- package/dist/taro-components/p-eb9adf17.entry.js +2 -0
- package/dist/taro-components/p-eb9adf17.entry.js.map +1 -0
- package/dist/taro-components/p-ef4c1fd4.entry.js +2 -0
- package/dist/taro-components/p-ef4c1fd4.entry.js.map +1 -0
- package/dist/taro-components/p-ef7e7d73.system.entry.js +2 -0
- package/dist/taro-components/p-ef7e7d73.system.entry.js.map +1 -0
- package/dist/taro-components/p-efa51030.system.entry.js +2 -0
- package/dist/taro-components/p-efa51030.system.entry.js.map +1 -0
- package/dist/taro-components/p-efe31b23.entry.js +2 -0
- package/dist/taro-components/p-efe31b23.entry.js.map +1 -0
- package/dist/taro-components/p-f034fb11.system.entry.js +2 -0
- package/dist/taro-components/p-f034fb11.system.entry.js.map +1 -0
- package/dist/taro-components/p-f499c0a0.system.entry.js +2 -0
- package/dist/taro-components/p-f499c0a0.system.entry.js.map +1 -0
- package/dist/taro-components/p-f88f0f55.entry.js +2 -0
- package/dist/taro-components/p-f88f0f55.entry.js.map +1 -0
- package/dist/taro-components/p-f9ac515e.system.entry.js +2 -0
- package/dist/taro-components/p-f9ac515e.system.entry.js.map +1 -0
- package/dist/taro-components/p-fa36fe8e.system.entry.js +2 -0
- package/dist/taro-components/p-fa36fe8e.system.entry.js.map +1 -0
- package/dist/taro-components/p-fcdac6ec.system.entry.js +2 -0
- package/dist/taro-components/p-fcdac6ec.system.entry.js.map +1 -0
- package/dist/taro-components/p-fda82bc1.entry.js +2 -0
- package/dist/taro-components/p-fda82bc1.entry.js.map +1 -0
- package/dist/taro-components/p-fe58b450.entry.js +2 -0
- package/dist/taro-components/p-fe58b450.entry.js.map +1 -0
- package/dist/taro-components/p-fec6746d.entry.js +2 -0
- package/dist/taro-components/p-fec6746d.entry.js.map +1 -0
- package/dist/taro-components/taro-components.esm.js +1 -1
- package/dist/taro-components/taro-components.esm.js.map +1 -1
- package/dist/taro-components/taro-components.js +1 -1
- package/dist/types/components/icon/icon.d.ts +1 -1
- package/dist/types/components/image/image.d.ts +1 -1
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/navigator/navigator.d.ts +0 -16
- package/dist/types/components/picker/picker.d.ts +3 -3
- package/dist/types/components/rich-text/rich-text.d.ts +3 -3
- package/dist/types/components/scroll-view/scroll-view.d.ts +4 -1
- package/dist/types/components/swiper/swiper-item.d.ts +2 -0
- package/dist/types/components/swiper/swiper.d.ts +1 -0
- package/dist/types/components/tabbar/tabbar-item.d.ts +2 -1
- package/dist/types/components.d.ts +26 -2
- package/dist/types/stencil-public-runtime.d.ts +59 -3
- package/dist/types/utils/index.d.ts +1 -0
- package/lib/react/component-lib/index.d.ts +55 -0
- package/lib/react/component-lib/index.js +68 -0
- package/lib/react/component-lib/index.js.map +1 -0
- package/lib/react/component-lib/input.d.ts +3 -0
- package/lib/react/component-lib/input.js +17 -0
- package/lib/react/component-lib/input.js.map +1 -0
- package/lib/react/component-lib/reactify-wc.d.ts +7 -0
- package/lib/react/component-lib/reactify-wc.js +176 -0
- package/lib/react/component-lib/reactify-wc.js.map +1 -0
- package/lib/react/components.d.ts +82 -0
- package/lib/react/components.js +85 -0
- package/lib/react/components.js.map +1 -0
- package/lib/react/helper.d.ts +10 -0
- package/lib/react/helper.js +7 -0
- package/lib/react/helper.js.map +1 -0
- package/lib/react/index.d.ts +1 -0
- package/lib/react/index.js +2 -0
- package/lib/react/index.js.map +1 -0
- package/lib/react/interfaces-4f837811.d.ts +30 -0
- package/lib/react/react-component-lib/createComponent.d.ts +10 -0
- package/lib/react/react-component-lib/createComponent.js +70 -0
- package/lib/react/react-component-lib/createComponent.js.map +1 -0
- package/lib/react/react-component-lib/createOverlayComponent.d.ts +21 -0
- package/lib/react/react-component-lib/createOverlayComponent.js +91 -0
- package/lib/react/react-component-lib/createOverlayComponent.js.map +1 -0
- package/lib/react/react-component-lib/index.d.ts +2 -0
- package/lib/react/react-component-lib/index.js +3 -0
- package/lib/react/react-component-lib/index.js.map +1 -0
- package/lib/react/react-component-lib/utils/attachProps.d.ts +13 -0
- package/lib/react/react-component-lib/utils/attachProps.js +87 -0
- package/lib/react/react-component-lib/utils/attachProps.js.map +1 -0
- package/lib/react/react-component-lib/utils/case.d.ts +3 -0
- package/lib/react/react-component-lib/utils/case.js +9 -0
- package/lib/react/react-component-lib/utils/case.js.map +1 -0
- package/lib/react/react-component-lib/utils/index.d.ts +11 -0
- package/lib/react/react-component-lib/utils/index.js +37 -0
- package/lib/react/react-component-lib/utils/index.js.map +1 -0
- package/lib/vue2/component-lib/components.d.ts +111 -0
- package/lib/vue2/component-lib/components.js +74 -0
- package/lib/vue2/component-lib/components.js.map +1 -0
- package/lib/vue2/component-lib/createComponent.d.ts +14 -0
- package/lib/vue2/component-lib/createComponent.js +23 -0
- package/lib/vue2/component-lib/createComponent.js.map +1 -0
- package/lib/vue2/component-lib/createFormsComponent.d.ts +22 -0
- package/lib/vue2/component-lib/createFormsComponent.js +53 -0
- package/lib/vue2/component-lib/createFormsComponent.js.map +1 -0
- package/lib/vue2/component-lib/icon.d.ts +16 -0
- package/lib/vue2/component-lib/icon.js +23 -0
- package/lib/vue2/component-lib/icon.js.map +1 -0
- package/lib/vue2/component-lib/image.d.ts +16 -0
- package/lib/vue2/component-lib/image.js +24 -0
- package/lib/vue2/component-lib/image.js.map +1 -0
- package/lib/vue2/component-lib/index.d.ts +1 -0
- package/lib/vue2/component-lib/index.js +30 -0
- package/lib/vue2/component-lib/index.js.map +1 -0
- package/lib/vue2/component-lib/mixins/listeners.d.ts +6 -0
- package/lib/vue2/component-lib/mixins/listeners.js +14 -0
- package/lib/vue2/component-lib/mixins/listeners.js.map +1 -0
- package/lib/vue2/component-lib/mixins/refs.d.ts +5 -0
- package/lib/vue2/component-lib/mixins/refs.js +53 -0
- package/lib/vue2/component-lib/mixins/refs.js.map +1 -0
- package/lib/vue2/component-lib/picker.d.ts +25 -0
- package/lib/vue2/component-lib/picker.js +41 -0
- package/lib/vue2/component-lib/picker.js.map +1 -0
- package/lib/vue2/component-lib/scroll-view.d.ts +17 -0
- package/lib/vue2/component-lib/scroll-view.js +35 -0
- package/lib/vue2/component-lib/scroll-view.js.map +1 -0
- package/lib/vue2/component-lib/text.d.ts +16 -0
- package/lib/vue2/component-lib/text.js +24 -0
- package/lib/vue2/component-lib/text.js.map +1 -0
- package/lib/vue2/components.d.ts +356 -0
- package/lib/vue2/components.js +645 -0
- package/lib/vue2/components.js.map +1 -0
- package/lib/vue2/index.d.ts +3 -0
- package/lib/vue2/index.js +23 -0
- package/lib/vue2/index.js.map +1 -0
- package/lib/vue2/node_modules/.pnpm/registry.npmjs.org_vue-fragment@1.6.0_vue@2.6.14/node_modules/vue-fragment/dist/vue-fragment.esm.js +4 -0
- package/lib/vue2/node_modules/.pnpm/registry.npmjs.org_vue-fragment@1.6.0_vue@2.6.14/node_modules/vue-fragment/dist/vue-fragment.esm.js.map +1 -0
- package/lib/vue2/vue-component-lib/utils.d.ts +6 -0
- package/lib/vue2/vue-component-lib/utils.js +34 -0
- package/lib/vue2/vue-component-lib/utils.js.map +1 -0
- package/lib/vue3/component-lib/createComponent.d.ts +10 -0
- package/lib/vue3/component-lib/createComponent.js +21 -0
- package/lib/vue3/component-lib/createComponent.js.map +1 -0
- package/lib/vue3/component-lib/createFormsComponent.d.ts +11 -0
- package/lib/vue3/component-lib/createFormsComponent.js +38 -0
- package/lib/vue3/component-lib/createFormsComponent.js.map +1 -0
- package/lib/vue3/component-lib/forwardRef.d.ts +2 -0
- package/lib/vue3/component-lib/forwardRef.js +13 -0
- package/lib/vue3/component-lib/forwardRef.js.map +1 -0
- package/lib/vue3/component-lib/icon.d.ts +11 -0
- package/lib/vue3/component-lib/icon.js +20 -0
- package/lib/vue3/component-lib/icon.js.map +1 -0
- package/lib/vue3/component-lib/image.d.ts +11 -0
- package/lib/vue3/component-lib/image.js +21 -0
- package/lib/vue3/component-lib/image.js.map +1 -0
- package/lib/vue3/component-lib/index.d.ts +442 -0
- package/lib/vue3/component-lib/index.js +68 -0
- package/lib/vue3/component-lib/index.js.map +1 -0
- package/lib/vue3/component-lib/scroll-view.d.ts +11 -0
- package/lib/vue3/component-lib/scroll-view.js +27 -0
- package/lib/vue3/component-lib/scroll-view.js.map +1 -0
- package/lib/vue3/component-lib/text.d.ts +11 -0
- package/lib/vue3/component-lib/text.js +21 -0
- package/lib/vue3/component-lib/text.js.map +1 -0
- package/lib/vue3/components.d.ts +82 -0
- package/lib/vue3/components.js +387 -0
- package/lib/vue3/components.js.map +1 -0
- package/lib/vue3/index.d.ts +3 -0
- package/lib/vue3/index.js +15 -0
- package/lib/vue3/index.js.map +1 -0
- package/lib/vue3/vue-component-lib/utils.d.ts +21 -0
- package/lib/vue3/vue-component-lib/utils.js +163 -0
- package/lib/vue3/vue-component-lib/utils.js.map +1 -0
- package/loader/index.d.ts +9 -0
- package/package.json +15 -13
- package/types/ChannelLive.d.ts +22 -0
- package/types/CommentList.d.ts +1 -0
- package/types/CoverImage.d.ts +4 -4
- package/types/CoverView.d.ts +2 -2
- package/types/Input.d.ts +11 -6
- package/types/LivePusher.d.ts +39 -0
- package/types/Map.d.ts +6 -0
- package/types/MovableArea.d.ts +2 -2
- package/types/Navigator.d.ts +8 -8
- package/types/Radio.d.ts +6 -6
- package/types/RadioGroup.d.ts +2 -2
- package/types/RootPortal.d.ts +0 -1
- package/types/ScrollView.d.ts +1 -1
- package/types/ShareElement.d.ts +0 -5
- package/types/Swiper.d.ts +2 -2
- package/types/Textarea.d.ts +22 -28
- package/types/Video.d.ts +13 -9
- package/types/VoipRoom.d.ts +6 -0
- package/types/index.d.ts +1 -0
- package/types/index.vue3.d.ts +4 -4
- package/dist/cjs/index-47a1959e.js +0 -36
- package/dist/cjs/index-47a1959e.js.map +0 -1
- package/dist/cjs/index-9174e0b1.js +0 -1957
- package/dist/cjs/index-9174e0b1.js.map +0 -1
- package/dist/esm/index-5d881caf.js +0 -1929
- package/dist/esm/index-5d881caf.js.map +0 -1
- package/dist/esm/index-cad8203e.js +0 -33
- package/dist/esm/index-cad8203e.js.map +0 -1
- package/dist/esm-es5/index-5d881caf.js +0 -3
- package/dist/esm-es5/index-5d881caf.js.map +0 -1
- package/dist/esm-es5/index-cad8203e.js +0 -2
- package/dist/esm-es5/index-cad8203e.js.map +0 -1
- package/dist/react/component-lib/index.js +0 -74
- package/dist/react/component-lib/input.js +0 -17
- package/dist/react/component-lib/reactify-wc.js +0 -206
- package/dist/react/components.js +0 -82
- package/dist/react/helper.js +0 -8
- package/dist/react/index.js +0 -1
- package/dist/react/react-component-lib/createComponent.js +0 -99
- package/dist/react/react-component-lib/createOverlayComponent.js +0 -178
- package/dist/react/react-component-lib/index.js +0 -2
- package/dist/react/react-component-lib/interfaces.js +0 -0
- package/dist/react/react-component-lib/utils/attachProps.js +0 -98
- package/dist/react/react-component-lib/utils/case.js +0 -10
- package/dist/react/react-component-lib/utils/dev.js +0 -12
- package/dist/react/react-component-lib/utils/index.js +0 -37
- package/dist/taro-components/p-001ef419.system.entry.js +0 -2
- package/dist/taro-components/p-001ef419.system.entry.js.map +0 -1
- package/dist/taro-components/p-01dc54a5.entry.js +0 -2
- package/dist/taro-components/p-01dc54a5.entry.js.map +0 -1
- package/dist/taro-components/p-0382d7d0.system.entry.js +0 -2
- package/dist/taro-components/p-0382d7d0.system.entry.js.map +0 -1
- package/dist/taro-components/p-0a896bc7.entry.js +0 -2
- package/dist/taro-components/p-0a896bc7.entry.js.map +0 -1
- package/dist/taro-components/p-0b38e6c7.system.entry.js +0 -2
- package/dist/taro-components/p-0b38e6c7.system.entry.js.map +0 -1
- package/dist/taro-components/p-0be383a9.system.entry.js +0 -2
- package/dist/taro-components/p-0be383a9.system.entry.js.map +0 -1
- package/dist/taro-components/p-0d36ef6b.entry.js +0 -2
- package/dist/taro-components/p-0d36ef6b.entry.js.map +0 -1
- package/dist/taro-components/p-0ee6a068.entry.js +0 -2
- package/dist/taro-components/p-0ee6a068.entry.js.map +0 -1
- package/dist/taro-components/p-12e4b019.entry.js +0 -2
- package/dist/taro-components/p-12e4b019.entry.js.map +0 -1
- package/dist/taro-components/p-15dced71.system.entry.js +0 -2
- package/dist/taro-components/p-15dced71.system.entry.js.map +0 -1
- package/dist/taro-components/p-17657dca.entry.js +0 -2
- package/dist/taro-components/p-17657dca.entry.js.map +0 -1
- package/dist/taro-components/p-186ad7ff.entry.js +0 -2
- package/dist/taro-components/p-186ad7ff.entry.js.map +0 -1
- package/dist/taro-components/p-19afe402.entry.js +0 -2
- package/dist/taro-components/p-19afe402.entry.js.map +0 -1
- package/dist/taro-components/p-1a47133c.system.entry.js +0 -2
- package/dist/taro-components/p-1a47133c.system.entry.js.map +0 -1
- package/dist/taro-components/p-1ad0aa95.system.entry.js +0 -2
- package/dist/taro-components/p-1ad0aa95.system.entry.js.map +0 -1
- package/dist/taro-components/p-1b1420c9.system.entry.js +0 -2
- package/dist/taro-components/p-1b1420c9.system.entry.js.map +0 -1
- package/dist/taro-components/p-1b2556e2.system.entry.js +0 -2
- package/dist/taro-components/p-1b2556e2.system.entry.js.map +0 -1
- package/dist/taro-components/p-1b64d2a2.entry.js +0 -2
- package/dist/taro-components/p-1b64d2a2.entry.js.map +0 -1
- package/dist/taro-components/p-1bd3d09b.system.entry.js +0 -2
- package/dist/taro-components/p-1bd3d09b.system.entry.js.map +0 -1
- package/dist/taro-components/p-1cb76199.entry.js +0 -2
- package/dist/taro-components/p-1cb76199.entry.js.map +0 -1
- package/dist/taro-components/p-2096bc5f.entry.js +0 -2
- package/dist/taro-components/p-2096bc5f.entry.js.map +0 -1
- package/dist/taro-components/p-20ec6387.entry.js +0 -2
- package/dist/taro-components/p-20ec6387.entry.js.map +0 -1
- package/dist/taro-components/p-21b77a13.system.entry.js +0 -2
- package/dist/taro-components/p-21b77a13.system.entry.js.map +0 -1
- package/dist/taro-components/p-2243a376.entry.js +0 -2
- package/dist/taro-components/p-2243a376.entry.js.map +0 -1
- package/dist/taro-components/p-281a2bcf.entry.js +0 -2
- package/dist/taro-components/p-281a2bcf.entry.js.map +0 -1
- package/dist/taro-components/p-28dade4f.entry.js +0 -2
- package/dist/taro-components/p-28dade4f.entry.js.map +0 -1
- package/dist/taro-components/p-29f04296.entry.js +0 -2
- package/dist/taro-components/p-29f04296.entry.js.map +0 -1
- package/dist/taro-components/p-301a8b85.system.entry.js +0 -2
- package/dist/taro-components/p-301a8b85.system.entry.js.map +0 -1
- package/dist/taro-components/p-31e10d77.system.entry.js +0 -2
- package/dist/taro-components/p-31e10d77.system.entry.js.map +0 -1
- package/dist/taro-components/p-36c64ed0.system.entry.js +0 -2
- package/dist/taro-components/p-36c64ed0.system.entry.js.map +0 -1
- package/dist/taro-components/p-37d71e63.entry.js +0 -2
- package/dist/taro-components/p-37d71e63.entry.js.map +0 -1
- package/dist/taro-components/p-386b9de8.entry.js +0 -2
- package/dist/taro-components/p-386b9de8.entry.js.map +0 -1
- package/dist/taro-components/p-3b9a1125.entry.js +0 -2
- package/dist/taro-components/p-3b9a1125.entry.js.map +0 -1
- package/dist/taro-components/p-3c256e0e.entry.js +0 -2
- package/dist/taro-components/p-3c256e0e.entry.js.map +0 -1
- package/dist/taro-components/p-3e6b29c6.entry.js +0 -2
- package/dist/taro-components/p-3e6b29c6.entry.js.map +0 -1
- package/dist/taro-components/p-427a2872.entry.js +0 -2
- package/dist/taro-components/p-427a2872.entry.js.map +0 -1
- package/dist/taro-components/p-439a3349.system.entry.js +0 -2
- package/dist/taro-components/p-439a3349.system.entry.js.map +0 -1
- package/dist/taro-components/p-447386b2.system.entry.js +0 -2
- package/dist/taro-components/p-447386b2.system.entry.js.map +0 -1
- package/dist/taro-components/p-45b6ea0c.system.entry.js +0 -2
- package/dist/taro-components/p-45b6ea0c.system.entry.js.map +0 -1
- package/dist/taro-components/p-49a6cae4.system.entry.js +0 -2
- package/dist/taro-components/p-49a6cae4.system.entry.js.map +0 -1
- package/dist/taro-components/p-4b05e003.entry.js +0 -2
- package/dist/taro-components/p-4b05e003.entry.js.map +0 -1
- package/dist/taro-components/p-4b27df71.system.entry.js +0 -2
- package/dist/taro-components/p-4b27df71.system.entry.js.map +0 -1
- package/dist/taro-components/p-4b71c926.entry.js +0 -2
- package/dist/taro-components/p-4b71c926.entry.js.map +0 -1
- package/dist/taro-components/p-4fbb8b4c.system.entry.js +0 -2
- package/dist/taro-components/p-4fbb8b4c.system.entry.js.map +0 -1
- package/dist/taro-components/p-51040638.entry.js +0 -2
- package/dist/taro-components/p-51040638.entry.js.map +0 -1
- package/dist/taro-components/p-55519002.entry.js +0 -2
- package/dist/taro-components/p-55519002.entry.js.map +0 -1
- package/dist/taro-components/p-570222e2.entry.js +0 -2
- package/dist/taro-components/p-570222e2.entry.js.map +0 -1
- package/dist/taro-components/p-5746d7ce.js +0 -2
- package/dist/taro-components/p-5746d7ce.js.map +0 -1
- package/dist/taro-components/p-580a72d1.system.entry.js +0 -2
- package/dist/taro-components/p-580a72d1.system.entry.js.map +0 -1
- package/dist/taro-components/p-59418be7.system.entry.js +0 -2
- package/dist/taro-components/p-59418be7.system.entry.js.map +0 -1
- package/dist/taro-components/p-59e02aca.system.entry.js +0 -2
- package/dist/taro-components/p-59e02aca.system.entry.js.map +0 -1
- package/dist/taro-components/p-5b552407.entry.js +0 -2
- package/dist/taro-components/p-5b552407.entry.js.map +0 -1
- package/dist/taro-components/p-5bd1c1a1.entry.js +0 -2
- package/dist/taro-components/p-5bd1c1a1.entry.js.map +0 -1
- package/dist/taro-components/p-5bfefd19.js +0 -3
- package/dist/taro-components/p-5bfefd19.js.map +0 -1
- package/dist/taro-components/p-62d750a7.entry.js +0 -2
- package/dist/taro-components/p-62d750a7.entry.js.map +0 -1
- package/dist/taro-components/p-632f9a72.system.entry.js +0 -2
- package/dist/taro-components/p-632f9a72.system.entry.js.map +0 -1
- package/dist/taro-components/p-65971d99.entry.js +0 -2
- package/dist/taro-components/p-65971d99.entry.js.map +0 -1
- package/dist/taro-components/p-663d1bb9.system.js +0 -2
- package/dist/taro-components/p-663d1bb9.system.js.map +0 -1
- package/dist/taro-components/p-6831f7b1.system.entry.js +0 -2
- package/dist/taro-components/p-6831f7b1.system.entry.js.map +0 -1
- package/dist/taro-components/p-6af8be19.entry.js +0 -2
- package/dist/taro-components/p-6af8be19.entry.js.map +0 -1
- package/dist/taro-components/p-6c622fa2.system.entry.js +0 -2
- package/dist/taro-components/p-6c622fa2.system.entry.js.map +0 -1
- package/dist/taro-components/p-6cd941bc.entry.js +0 -2
- package/dist/taro-components/p-6cd941bc.entry.js.map +0 -1
- package/dist/taro-components/p-6ea2995b.entry.js +0 -2
- package/dist/taro-components/p-6ea2995b.entry.js.map +0 -1
- package/dist/taro-components/p-6f8af69f.entry.js +0 -2
- package/dist/taro-components/p-6f8af69f.entry.js.map +0 -1
- package/dist/taro-components/p-701b0286.system.entry.js +0 -2
- package/dist/taro-components/p-701b0286.system.entry.js.map +0 -1
- package/dist/taro-components/p-70defa84.entry.js +0 -2
- package/dist/taro-components/p-70defa84.entry.js.map +0 -1
- package/dist/taro-components/p-72f626ab.system.entry.js +0 -2
- package/dist/taro-components/p-72f626ab.system.entry.js.map +0 -1
- package/dist/taro-components/p-73106bc9.entry.js +0 -2
- package/dist/taro-components/p-73106bc9.entry.js.map +0 -1
- package/dist/taro-components/p-755be847.system.entry.js +0 -2
- package/dist/taro-components/p-755be847.system.entry.js.map +0 -1
- package/dist/taro-components/p-7afc274a.entry.js +0 -2
- package/dist/taro-components/p-7afc274a.entry.js.map +0 -1
- package/dist/taro-components/p-7bafbe22.entry.js +0 -2
- package/dist/taro-components/p-7bafbe22.entry.js.map +0 -1
- package/dist/taro-components/p-7e7a1e62.entry.js +0 -2
- package/dist/taro-components/p-7e7a1e62.entry.js.map +0 -1
- package/dist/taro-components/p-8231e748.entry.js +0 -2
- package/dist/taro-components/p-8231e748.entry.js.map +0 -1
- package/dist/taro-components/p-876edf66.entry.js +0 -2
- package/dist/taro-components/p-876edf66.entry.js.map +0 -1
- package/dist/taro-components/p-898aba38.system.entry.js +0 -2
- package/dist/taro-components/p-898aba38.system.entry.js.map +0 -1
- package/dist/taro-components/p-8a3620a6.system.entry.js +0 -2
- package/dist/taro-components/p-8a3620a6.system.entry.js.map +0 -1
- package/dist/taro-components/p-8a8f286f.system.js +0 -3
- package/dist/taro-components/p-8a8f286f.system.js.map +0 -1
- package/dist/taro-components/p-8bec95d4.system.entry.js +0 -2
- package/dist/taro-components/p-8bec95d4.system.entry.js.map +0 -1
- package/dist/taro-components/p-8c8fe164.system.entry.js +0 -2
- package/dist/taro-components/p-8c8fe164.system.entry.js.map +0 -1
- package/dist/taro-components/p-93cc7adc.entry.js +0 -2
- package/dist/taro-components/p-93cc7adc.entry.js.map +0 -1
- package/dist/taro-components/p-96a784f1.entry.js +0 -2
- package/dist/taro-components/p-96a784f1.entry.js.map +0 -1
- package/dist/taro-components/p-98901e99.system.entry.js +0 -2
- package/dist/taro-components/p-98901e99.system.entry.js.map +0 -1
- package/dist/taro-components/p-99bbe34a.system.entry.js +0 -2
- package/dist/taro-components/p-99bbe34a.system.entry.js.map +0 -1
- package/dist/taro-components/p-9e20c25c.entry.js +0 -2
- package/dist/taro-components/p-9e20c25c.entry.js.map +0 -1
- package/dist/taro-components/p-9f1ca602.system.entry.js +0 -2
- package/dist/taro-components/p-9f1ca602.system.entry.js.map +0 -1
- package/dist/taro-components/p-9f780103.system.entry.js +0 -2
- package/dist/taro-components/p-9f780103.system.entry.js.map +0 -1
- package/dist/taro-components/p-a1ace8c7.system.entry.js +0 -2
- package/dist/taro-components/p-a1ace8c7.system.entry.js.map +0 -1
- package/dist/taro-components/p-a29509fa.system.entry.js +0 -2
- package/dist/taro-components/p-a29509fa.system.entry.js.map +0 -1
- package/dist/taro-components/p-a4961ddd.entry.js +0 -2
- package/dist/taro-components/p-a4961ddd.entry.js.map +0 -1
- package/dist/taro-components/p-a6f2dc54.system.entry.js +0 -2
- package/dist/taro-components/p-a6f2dc54.system.entry.js.map +0 -1
- package/dist/taro-components/p-ab105c26.entry.js +0 -2
- package/dist/taro-components/p-ab105c26.entry.js.map +0 -1
- package/dist/taro-components/p-ad25cc91.system.entry.js +0 -2
- package/dist/taro-components/p-ad25cc91.system.entry.js.map +0 -1
- package/dist/taro-components/p-b04a56bd.system.entry.js +0 -2
- package/dist/taro-components/p-b04a56bd.system.entry.js.map +0 -1
- package/dist/taro-components/p-b10cb428.entry.js +0 -2
- package/dist/taro-components/p-b10cb428.entry.js.map +0 -1
- package/dist/taro-components/p-b4cccb3e.system.entry.js +0 -2
- package/dist/taro-components/p-b4cccb3e.system.entry.js.map +0 -1
- package/dist/taro-components/p-b4ec48c3.entry.js +0 -2
- package/dist/taro-components/p-b4ec48c3.entry.js.map +0 -1
- package/dist/taro-components/p-b500c116.system.entry.js +0 -2
- package/dist/taro-components/p-b500c116.system.entry.js.map +0 -1
- package/dist/taro-components/p-b6733e23.system.entry.js +0 -2
- package/dist/taro-components/p-b6733e23.system.entry.js.map +0 -1
- package/dist/taro-components/p-b832f4e8.entry.js +0 -2
- package/dist/taro-components/p-b832f4e8.entry.js.map +0 -1
- package/dist/taro-components/p-b88a55b4.system.entry.js +0 -2
- package/dist/taro-components/p-b88a55b4.system.entry.js.map +0 -1
- package/dist/taro-components/p-b90926cc.entry.js +0 -2
- package/dist/taro-components/p-b90926cc.entry.js.map +0 -1
- package/dist/taro-components/p-ba743573.entry.js +0 -2
- package/dist/taro-components/p-ba743573.entry.js.map +0 -1
- package/dist/taro-components/p-be3f5ac0.entry.js +0 -2
- package/dist/taro-components/p-be3f5ac0.entry.js.map +0 -1
- package/dist/taro-components/p-beea63a7.entry.js +0 -2
- package/dist/taro-components/p-beea63a7.entry.js.map +0 -1
- package/dist/taro-components/p-c0e3c822.system.entry.js +0 -2
- package/dist/taro-components/p-c0e3c822.system.entry.js.map +0 -1
- package/dist/taro-components/p-c3bb8fa6.entry.js +0 -2
- package/dist/taro-components/p-c3bb8fa6.entry.js.map +0 -1
- package/dist/taro-components/p-c43fe342.system.entry.js +0 -2
- package/dist/taro-components/p-c43fe342.system.entry.js.map +0 -1
- package/dist/taro-components/p-c4cf58af.system.entry.js +0 -2
- package/dist/taro-components/p-c4cf58af.system.entry.js.map +0 -1
- package/dist/taro-components/p-c5c331bf.system.entry.js +0 -2
- package/dist/taro-components/p-c5c331bf.system.entry.js.map +0 -1
- package/dist/taro-components/p-cb17d8bd.system.js +0 -2
- package/dist/taro-components/p-cb17d8bd.system.js.map +0 -1
- package/dist/taro-components/p-cbe2436d.system.entry.js +0 -2
- package/dist/taro-components/p-cbe2436d.system.entry.js.map +0 -1
- package/dist/taro-components/p-cd6a7eea.entry.js +0 -2
- package/dist/taro-components/p-cd6a7eea.entry.js.map +0 -1
- package/dist/taro-components/p-d388c097.entry.js +0 -2
- package/dist/taro-components/p-d388c097.entry.js.map +0 -1
- package/dist/taro-components/p-d4b6f19e.system.entry.js +0 -2
- package/dist/taro-components/p-d4b6f19e.system.entry.js.map +0 -1
- package/dist/taro-components/p-d619f198.system.entry.js +0 -2
- package/dist/taro-components/p-d619f198.system.entry.js.map +0 -1
- package/dist/taro-components/p-d6441fd8.entry.js +0 -2
- package/dist/taro-components/p-d6441fd8.entry.js.map +0 -1
- package/dist/taro-components/p-d7ab3e23.system.entry.js +0 -2
- package/dist/taro-components/p-d7ab3e23.system.entry.js.map +0 -1
- package/dist/taro-components/p-d7f4b10f.entry.js +0 -2
- package/dist/taro-components/p-d7f4b10f.entry.js.map +0 -1
- package/dist/taro-components/p-d85b216d.entry.js +0 -2
- package/dist/taro-components/p-d85b216d.entry.js.map +0 -1
- package/dist/taro-components/p-dcb48fd9.system.entry.js +0 -2
- package/dist/taro-components/p-dcb48fd9.system.entry.js.map +0 -1
- package/dist/taro-components/p-dcfb7d97.system.entry.js +0 -2
- package/dist/taro-components/p-dcfb7d97.system.entry.js.map +0 -1
- package/dist/taro-components/p-de762042.entry.js +0 -2
- package/dist/taro-components/p-de762042.entry.js.map +0 -1
- package/dist/taro-components/p-df862d0c.entry.js +0 -2
- package/dist/taro-components/p-df862d0c.entry.js.map +0 -1
- package/dist/taro-components/p-e0d6b00b.entry.js +0 -2
- package/dist/taro-components/p-e0d6b00b.entry.js.map +0 -1
- package/dist/taro-components/p-e4f1cc50.entry.js +0 -2
- package/dist/taro-components/p-e4f1cc50.entry.js.map +0 -1
- package/dist/taro-components/p-e5607803.system.entry.js +0 -2
- package/dist/taro-components/p-e5607803.system.entry.js.map +0 -1
- package/dist/taro-components/p-e59f999e.entry.js +0 -2
- package/dist/taro-components/p-e59f999e.entry.js.map +0 -1
- package/dist/taro-components/p-e7239faa.system.entry.js +0 -2
- package/dist/taro-components/p-e7239faa.system.entry.js.map +0 -1
- package/dist/taro-components/p-e7965c55.system.entry.js +0 -2
- package/dist/taro-components/p-e7965c55.system.entry.js.map +0 -1
- package/dist/taro-components/p-e98c07c3.system.entry.js +0 -2
- package/dist/taro-components/p-e98c07c3.system.entry.js.map +0 -1
- package/dist/taro-components/p-eddd00e9.system.entry.js +0 -2
- package/dist/taro-components/p-eddd00e9.system.entry.js.map +0 -1
- package/dist/taro-components/p-ef029c30.system.entry.js +0 -2
- package/dist/taro-components/p-ef029c30.system.entry.js.map +0 -1
- package/dist/taro-components/p-f00ee372.system.entry.js +0 -2
- package/dist/taro-components/p-f00ee372.system.entry.js.map +0 -1
- package/dist/taro-components/p-f0d0160d.system.entry.js +0 -2
- package/dist/taro-components/p-f0d0160d.system.entry.js.map +0 -1
- package/dist/taro-components/p-f120c272.entry.js +0 -2
- package/dist/taro-components/p-f120c272.entry.js.map +0 -1
- package/dist/taro-components/p-f2c75971.system.entry.js +0 -2
- package/dist/taro-components/p-f2c75971.system.entry.js.map +0 -1
- package/dist/taro-components/p-f81d14ad.entry.js +0 -2
- package/dist/taro-components/p-f81d14ad.entry.js.map +0 -1
- package/dist/taro-components/p-fae28cc1.system.entry.js +0 -2
- package/dist/taro-components/p-fae28cc1.system.entry.js.map +0 -1
- package/dist/taro-components/p-fb843ff2.system.entry.js +0 -2
- package/dist/taro-components/p-fb843ff2.system.entry.js.map +0 -1
- package/dist/taro-components/p-fc0fbcce.system.entry.js +0 -2
- package/dist/taro-components/p-fc0fbcce.system.entry.js.map +0 -1
- package/dist/taro-components/p-ffc44634.entry.js +0 -2
- package/dist/taro-components/p-ffc44634.entry.js.map +0 -1
- package/dist/vue2/component-lib/components.js +0 -71
- package/dist/vue2/component-lib/createComponent.js +0 -21
- package/dist/vue2/component-lib/createFormsComponent.js +0 -53
- package/dist/vue2/component-lib/icon.js +0 -19
- package/dist/vue2/component-lib/image.js +0 -20
- package/dist/vue2/component-lib/index.js +0 -28
- package/dist/vue2/component-lib/mixins/listeners.js +0 -14
- package/dist/vue2/component-lib/mixins/refs.js +0 -44
- package/dist/vue2/component-lib/picker.js +0 -40
- package/dist/vue2/component-lib/scroll-view.js +0 -32
- package/dist/vue2/component-lib/text.js +0 -20
- package/dist/vue2/components.js +0 -542
- package/dist/vue2/index.js +0 -22
- package/dist/vue2/vue-component-lib/utils.js +0 -40
- package/dist/vue3/component-lib/createComponent.js +0 -23
- package/dist/vue3/component-lib/createFormsComponent.js +0 -43
- package/dist/vue3/component-lib/forwardRef.js +0 -9
- package/dist/vue3/component-lib/icon.js +0 -21
- package/dist/vue3/component-lib/image.js +0 -22
- package/dist/vue3/component-lib/index.js +0 -76
- package/dist/vue3/component-lib/scroll-view.js +0 -28
- package/dist/vue3/component-lib/text.js +0 -22
- package/dist/vue3/components.js +0 -80
- package/dist/vue3/index.js +0 -17
- package/dist/vue3/vue-component-lib/utils.js +0 -175
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isObject","obj","constructor","Object","extend","target","src","keys","forEach","key","length","ssrDocument","body","addEventListener","removeEventListener","activeElement","blur","nodeName","querySelector","querySelectorAll","getElementById","createEvent","initEvent","createElement","children","childNodes","style","setAttribute","getElementsByTagName","createElementNS","importNode","location","hash","host","hostname","href","origin","pathname","protocol","search","getDocument","doc","document","ssrWindow","navigator","userAgent","history","replaceState","pushState","go","back","CustomEvent","this","getComputedStyle","getPropertyValue","Image","Date","screen","setTimeout","clearTimeout","matchMedia","requestAnimationFrame","callback","cancelAnimationFrame","id","getWindow","win","window","_inheritsLoose","subClass","superClass","prototype","create","__proto__","_getPrototypeOf","o","setPrototypeOf","getPrototypeOf","_setPrototypeOf","p","_isNativeReflectConstruct","Reflect","construct","sham","Proxy","toString","call","e","_construct","Parent","args","Class","a","push","apply","Constructor","Function","bind","instance","arguments","_isNativeFunction","fn","indexOf","_wrapNativeSuper","_cache","Map","undefined","TypeError","has","get","set","Wrapper","value","enumerable","writable","configurable","_assertThisInitialized","self","ReferenceError","makeReactive","proto","defineProperty","Dom7","_Array","items","_this","concat","Array","arrayFlat","arr","res","el","isArray","arrayFilter","filter","arrayUnique","uniqueArray","i","qsa","selector","context","$","html","trim","toCreate","tempParent","innerHTML","nodeType","addClass","_len","classes","_key","classNames","map","c","split","_el$classList","classList","add","removeClass","_len2","_key2","_el$classList2","remove","toggleClass","_len3","_key3","className","toggle","hasClass","_len4","_key4","contains","attr","attrs","getAttribute","attrName","removeAttr","removeAttribute","transform","transition","duration","transitionDuration","on","_len5","_key5","eventType","targetSelector","listener","capture","handleLiveEvent","eventData","dom7EventData","unshift","is","_parents","parents","k","handleEvent","events","j","event","dom7Listeners","proxyListener","_event","dom7LiveListeners","off","_len6","_key6","handlers","handler","splice","dom7proxy","trigger","_len9","_key9","evt","detail","bubbles","cancelable","data","dataIndex","dispatchEvent","transitionEnd","dom","fireCallBack","outerWidth","includeMargins","_styles","styles","offsetWidth","parseFloat","outerHeight","_styles2","offsetHeight","offset","box","getBoundingClientRect","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","css","props","_prop","each","index","result","text","textContent","compareWith","matches","webkitMatchesSelector","msMatchesSelector","child","previousSibling","eq","returnIndex","append","newChild","tempDiv","firstChild","appendChild","prepend","insertBefore","next","nextElementSibling","nextAll","nextEls","_next","prev","previousElementSibling","prevAll","prevEls","_prev","parent","parentNode","_parent","closest","find","foundElements","found","removeChild","Methods","methodName","deleteProps","object","nextTick","delay","now","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","webkitTransform","replace","join","MozTransform","OTransform","MsTransform","msTransform","m41","m42","slice","isNode","node","HTMLElement","to","noExtend","nextSource","keysArray","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","__swiper__","bindModuleMethods","subKey","classesToSelector","createElementIfNotDefined","$container","params","createElements","checkProps","auto","element","support","calcSupport","touch","DocumentTouch","pointerEvents","PointerEvent","maxTouchPoints","observer","checkObserver","passiveListener","checkPassiveListener","supportsPassive","opts","gestures","checkGestures","getSupport","device","calcDevice","_temp","_ref","platform","ua","ios","android","screenWidth","width","screenHeight","height","match","ipad","ipod","iphone","windows","macos","iPadScreens","os","getDevice","overrides","browser","calcBrowser","isSafari","toLowerCase","isEdge","isWebView","test","getBrowser","supportsResizeObserver","ResizeObserver","Resize","name","swiper","resize","createObserver","destroyed","initialized","entries","newWidth","newHeight","contentBoxSize","contentRect","inlineSize","blockSize","resizeHandler","observe","removeObserver","unobserve","emit","orientationChangeHandler","init","resizeObserver","destroy","_extends","assign","source","hasOwnProperty","Observer","attach","options","ObserverFunc","MutationObserver","WebkitMutationObserver","mutations","observerUpdate","attributes","childList","characterData","observers","observeParents","containerParents","$el","observeSlideChildren","$wrapperEl","disconnect","Observer$1","modular","useParams","instanceParams","modules","moduleName","module","useModules","modulesParams","moduleParams","moduleEventName","eventsEmitter","priority","method","eventsListeners","once","onceHandler","__emitterProxy","onAny","eventsAnyListeners","offAny","eventHandler","eventsArray","updateSize","clientWidth","clientHeight","isHorizontal","isVertical","parseInt","Number","isNaN","size","updateSlides","getDirectionLabel","property","marginRight","getDirectionPropertyValue","label","swiperSize","rtl","rtlTranslate","wrongRTL","isVirtual","virtual","enabled","previousSlidesLength","slides","slideClass","slidesLength","snapGrid","slidesGrid","slidesSizesGrid","offsetBefore","slidesOffsetBefore","offsetAfter","slidesOffsetAfter","previousSnapGridLength","previousSlidesGridLength","spaceBetween","slidePosition","prevSlideSize","virtualSize","marginLeft","marginTop","marginBottom","slidesNumberEvenToRows","slidesPerColumn","Math","floor","ceil","slidesPerView","slidesPerColumnFill","max","slideSize","slidesPerRow","numFullColumns","slide","newSlideOrderIndex","column","row","slidesPerGroup","groupIndex","slideIndexInGroup","columnsInGroup","min","order","slideStyles","currentTransform","currentWebKitTransform","roundLengths","paddingLeft","paddingRight","boxSizing","_slide$","swiperSlideSize","centeredSlides","abs","slidesPerGroupSkip","newSlidesGrid","effect","setWrapperSize","_$wrapperEl$css","_$wrapperEl$css2","_i","slidesGridItem","_i2","_slidesGridItem","_slides$filter$css","_","slideIndex","cssMode","centeredSlidesBounds","allSlidesSize","slideSizeValue","maxSnap","snap","centerInsufficientSlides","_allSlidesSize","allSlidesOffset","snapIndex","watchOverflow","checkOverflow","watchSlidesProgress","watchSlidesVisibility","updateSlidesOffset","updateAutoHeight","speed","activeSlides","setTransition","getSlideByIndex","visibleSlides","activeIndex","swiperSlideOffset","offsetLeft","offsetTop","updateSlidesProgress","translate","offsetCenter","slideVisibleClass","visibleSlidesIndexes","slideProgress","minTranslate","autoHeight","slideBefore","slideAfter","isVisible","progress","updateProgress","multiplier","translatesDiff","maxTranslate","isBeginning","isEnd","wasBeginning","wasEnd","updateSlidesClasses","realIndex","slideActiveClass","slideNextClass","slidePrevClass","slideDuplicateActiveClass","slideDuplicateNextClass","slideDuplicatePrevClass","activeSlide","loop","slideDuplicateClass","nextSlide","prevSlide","emitSlidesClasses","updateActiveIndex","newActiveIndex","previousIndex","previousRealIndex","previousSnapIndex","normalizeSlideIndex","skip","runCallbacksOnInit","updateClickedSlide","slideFound","clickedSlide","clickedIndex","slideToClickedSlide","update","getSwiperTranslate","virtualTranslate","currentTranslate","setTranslate","byController","wrapperEl","x","y","z","previousTranslate","newProgress","translateTo","runCallbacks","translateBounds","internal","animating","preventInteractionOnTransition","newTranslate","isH","scrollTo","_wrapperEl$scrollTo","behavior","onTranslateToWrapperTransitionEnd","transitionStart","direction","dir","slideTo","initial","Error","indexAsNumber","isValidNumber","isFinite","initialSlide","normalizedTranslate","normalizedGird","normalizedGridNext","allowSlideNext","allowSlidePrev","t","scrollWidth","onSlideToWrapperTransitionEnd","slideToLoop","newIndex","loopedSlides","slideNext","increment","loopPreventsSlide","loopFix","_clientLeft","slidePrev","normalize","val","normalizedSnapGrid","prevSnap","prevIndex","slideReset","slideToClosest","threshold","currentSnap","nextSnap","_currentSnap","slidesPerViewDynamic","slideToIndex","loopCreate","loopFillGroupWithBlank","blankSlidesNum","blankNode","slideBlankClass","loopAdditionalSlides","prependSlides","appendSlides","cloneNode","snapTranslate","diff","slideChanged","_slideChanged","loopDestroy","setGrabCursor","moving","simulateTouch","isLocked","cursor","unsetGrabCursor","grabCursor","appendSlide","prependSlide","addSlide","activeIndexBuffer","baseLength","slidesBuffer","currentSlide","removeSlide","slidesIndexes","indexToRemove","removeAllSlides","manipulation","onTouchStart","touchEventsData","touches","originalEvent","$targetEl","touchEventsTarget","isTouchEvent","type","which","button","isTouched","isMoved","swipingClassHasValue","noSwipingClass","shadowRoot","path","noSwiping","noSwipingSelector","allowClick","swipeHandler","currentX","targetTouches","pageX","currentY","pageY","startX","startY","edgeSwipeDetection","iOSEdgeSwipeDetection","edgeSwipeThreshold","iOSEdgeSwipeThreshold","innerWidth","preventDefault","allowTouchCallbacks","isScrolling","startMoving","touchStartTime","swipeDirection","allowThresholdMove","focusableElements","shouldPreventDefault","allowTouchMove","touchStartPreventDefault","touchStartForcePreventDefault","isContentEditable","onTouchMove","targetTouch","changedTouches","preventedByNestedSwiper","touchReleaseOnEdges","diffX","diffY","sqrt","pow","touchAngle","atan2","PI","touchMoveStopPropagation","nested","stopPropagation","startTranslate","allowMomentumBounce","touchRatio","disableParentSwiper","resistanceRatio","resistance","followFinger","freeMode","velocities","position","time","onTouchEnd","touchEndTime","timeDiff","lastClickTime","currentPos","freeModeMomentum","lastMoveEvent","pop","velocityEvent","distance","velocity","freeModeMinimumVelocity","freeModeMomentumVelocityRatio","momentumDuration","freeModeMomentumRatio","momentumDistance","newPosition","doBounce","afterBouncePosition","bounceAmount","freeModeMomentumBounceRatio","needsLoopFix","freeModeMomentumBounce","freeModeSticky","moveDistance","currentSlideSize","longSwipesMs","stopIndex","groupSize","_increment","ratio","longSwipes","longSwipesRatio","shortSwipes","isNavButtonTarget","navigation","nextEl","prevEl","onResize","breakpoints","setBreakpoint","autoplay","running","paused","run","onClick","preventClicks","preventClicksPropagation","stopImmediatePropagation","onScroll","dummyEventAttached","dummyEventListener","attachEvents","touchEvents","start","move","end","passiveListeners","passive","cancel","updateOnWindowResize","detachEvents","_swiper$loopedSlides","breakpoint","getBreakpoint","breakpointsBase","currentBreakpoint","breakpointOnlyParams","param","paramValue","breakpointParams","originalParams","wasMultiRow","isMultiRow","wasEnabled","containerModifierClass","emitContainerClasses","directionChanged","needsReLoop","changeDirection","isEnabled","disable","enable","base","containerEl","currentHeight","innerHeight","points","point","minRatio","substr","sort","b","_points$i","prepareClasses","prefix","resultClasses","item","addClasses","suffixes","autoheight","multirow","removeClasses","loadImage","imageEl","srcset","sizes","checkForComplete","image","onReady","isPicture","complete","onload","onerror","preloadImages","imagesToLoad","imagesLoaded","updateOnImagesReady","currentSrc","images","wasLocked","lastSlidePosition","checkOverflow$1","defaults","url","uniqueNavElements","wrapperClass","_emitClasses","_defineProperties","descriptor","_createClass","protoProps","staticProps","prototypes","extendedDefaults","Swiper","swipers","newParams","moduleParamName","swiperParams","passedParams","eventName","desktop","touchEventsTouch","touchEventsDesktop","clickTimeout","_proto","setProgress","current","getSlideClasses","slideEl","updates","spv","breakLoop","translateValue","translated","newDirection","needUpdate","currentDirection","mount","mounted","getWrapperSelector","getWrapper","wrapper","deleteInstance","cleanStyles","extendDefaults","newDefaults","installModule","use","m","prototypeGroup","protoMethod","Virtual","force","_swiper$params","_swiper$params$virtua","addSlidesBefore","addSlidesAfter","_swiper$virtual","previousFrom","from","previousTo","previousSlidesGrid","renderSlide","previousOffset","offsetProp","slidesAfter","slidesBefore","onRendered","lazy","load","renderExternal","getSlides","slidesToRender","renderExternalUpdate","prependIndexes","appendIndexes","cache","$slideEl","numberOfNewSlides","newCache","cachedIndex","$cachedEl","cachedElIndex","Virtual$1","beforeInit","overwriteParams","Keyboard","handle","kc","keyCode","charCode","pageUpDown","keyboard","isPageUp","isPageDown","isArrowLeft","isArrowRight","isArrowUp","isArrowDown","shiftKey","altKey","ctrlKey","metaKey","onlyInViewport","inView","swiperWidth","swiperHeight","windowWidth","windowHeight","swiperOffset","swiperCoord","returnValue","Keyboard$1","isEventSupported","isSupported","implementation","hasFeature","Mousewheel","lastScrollTime","lastEventBeforeSnap","recentWheelEvents","PIXEL_STEP","LINE_HEIGHT","PAGE_HEIGHT","sX","sY","pX","pY","wheelDelta","wheelDeltaY","wheelDeltaX","HORIZONTAL_AXIS","deltaY","deltaX","deltaMode","spinX","spinY","pixelX","pixelY","handleMouseEnter","mouseEntered","handleMouseLeave","mousewheel","eventsTarget","releaseOnEdges","delta","rtlFactor","forceToAxis","invert","positions","sensitivity","newEvent","sign","raw","shift","prevEvent","animateSlider","releaseScroll","_newEvent","ignoreWheelEvents","timeout","_recentWheelEvents","_prevEvent","firstEvent","snapToThreshold","autoplayDisableOnInteraction","stop","thresholdDelta","thresholdTime","getTime","Mousewheel$1","Navigation","toggleEl","disabled","disabledClass","tagName","_swiper$navigation","$nextEl","$prevEl","lockClass","onPrevClick","onNextClick","_swiper$navigation2","Navigation$1","hideOnClick","hiddenClass","toEdge","fromEdge","enableDisable","_swiper$navigation3","click","_swiper$navigation4","targetEl","pagination","clickable","isHidden","Pagination","total","paginationType","bullets","firstIndex","lastIndex","midIndex","dynamicBullets","bulletSize","dynamicMainBullets","dynamicBulletIndex","bulletActiveClass","bullet","$bullet","bulletIndex","$firstDisplayedBullet","$lastDisplayedBullet","dynamicBulletsLength","bulletsOffset","currentClass","formatFractionCurrent","totalClass","formatFractionTotal","progressbarDirection","progressbarOpposite","scale","scaleX","scaleY","progressbarFillClass","renderCustom","render","paginationHTML","numberOfBullets","renderBullet","bulletClass","bulletElement","renderFraction","renderProgressbar","clickableClass","modifierClass","progressbarOppositeClass","Pagination$1","number","activeIndexChange","snapIndexChange","slidesLengthChange","snapGridLengthChange","Scrollbar","scrollbar","dragSize","trackSize","$dragEl","newSize","newPos","hide","opacity","divider","moveDivider","display","getPointerPosition","clientX","clientY","setDragPosition","dragStartPos","positionRatio","onDragStart","dragTimeout","onDragMove","onDragEnd","snapOnRelease","enableDraggable","activeListener","disableDraggable","$swiperEl","dragClass","dragEl","draggable","Scrollbar$1","Parallax","setTransform","currentOpacity","currentScale","parallax","parallaxEl","$parallaxEl","parallaxDuration","Parallax$1","Zoom","getDistanceBetweenTouches","x1","y1","x2","y2","onGestureStart","zoom","gesture","fakeGestureTouched","fakeGestureMoved","scaleStart","$imageEl","$imageWrapEl","containerClass","maxRatio","isScaling","onGestureChange","scaleMove","onGestureEnd","touchesStart","slideWidth","slideHeight","scaledWidth","scaledHeight","minX","maxX","minY","maxY","touchesCurrent","prevPositionX","prevPositionY","prevTime","momentumDurationX","momentumDurationY","momentumDistanceX","newPositionX","momentumDistanceY","newPositionY","onTransitionEnd","out","in","_in","zoomedSlideClass","touchX","touchY","offsetX","offsetY","translateX","translateY","imageWidth","imageHeight","translateMinX","translateMinY","translateMaxX","translateMaxY","toggleGestures","slideSelector","enableGestures","gesturesEnabled","disableGestures","activeListenerWithCapture","Zoom$1","touchStart","touchEnd","doubleTap","slideChange","Lazy","loadInSlide","loadInDuplicate","$images","elementClass","loadedClass","loadingClass","background","$pictureEl","sourceEl","$source","preloaderClass","slideOriginalIndex","originalSlide","duplicatedSlide","slideExist","initialImageLoaded","loadPrevNext","loadPrevNextAmount","amount","maxIndex","minIndex","checkInViewOnLoad","$scrollElement","scrollingElement","isWindow","scrollElementWidth","scrollElementHeight","scrollHandlerAttached","Lazy$1","checkInView","loadOnTransitionStart","scroll","lazyLoad","Controller","LinearSpline","binarySearch","guess","array","i1","i3","interpolate","getInterpolateFunction","controller","spline","_setTranslate","controlled","control","controlledTranslate","setControlledTranslate","by","inverse","setControlledTransition","Controller$1","A11y","getRandomNumber","randomChar","round","random","repeat","makeElFocusable","makeElNotFocusable","addElRole","role","addElRoleDescription","description","addElControls","controls","addElLabel","addElId","addElLive","live","disableEl","enableEl","onEnterOrSpaceKey","a11y","notify","lastSlideMessage","nextSlideMessage","firstSlideMessage","prevSlideMessage","message","notification","liveRegion","updateNavigation","updatePagination","bulletEl","$bulletEl","paginationBulletMessage","$containerEl","containerRoleDescriptionMessage","containerMessage","wrapperId","itemRoleDescriptionMessage","slideRole","ariaLabelMessage","slideLabelMessage","A11y$1","notificationClass","afterInit","paginationUpdate","History","hashNavigation","paths","getPathValues","scrollToSlide","setHistoryPopState","urlOverride","URL","pathArray","part","setHistory","slugify","root","includes","currentState","state","slideHistory","History$1","transitionEnd_freeModeNoMomentumRelease","HashNavigation","onHashChange","newHash","activeSlideHash","setHash","slideHash","watchState","HashNavigation$1","Autoplay","$activeSlideEl","autoplayResult","reverseDirection","stopOnLastSlide","pause","waitForTransition","onVisibilityChange","visibilityState","onMouseEnter","disableOnInteraction","onMouseLeave","attachMouseEvents","pauseOnMouseEnter","detachMouseEvents","Autoplay$1","beforeTransitionStart","sliderFirstMove","Fade","tx","ty","slideOpacity","fadeEffect","crossFade","eventTriggered","triggerEvents","EffectFade","Cube","cubeEffect","wrapperRotate","$cubeShadowEl","shadow","slideAngle","tz","slideShadows","shadowBefore","shadowAfter","shadowOffset","shadowScale","shadowAngle","sin","cos","scale1","scale2","zFactor","EffectCube","Flip","flipEffect","limitRotation","rotate","rotateY","rotateX","zIndex","EffectFlip","Coverflow","coverflowEffect","center","depth","slideOffset","offsetMultiplier","modifier","translateZ","stretch","slideTransform","$shadowBeforeEl","$shadowAfterEl","EffectCoverflow","Thumbs","thumbsParams","thumbs","SwiperClass","swiperCreated","thumbsContainerClass","onThumbClick","thumbsSwiper","slideThumbActiveClass","currentIndex","autoScrollOffset","useOffset","currentThumbsIndex","newThumbsIndex","prevThumbsIndex","nextThumbsIndex","thumbsToActivate","thumbActiveClass","multipleActiveThumbs","Thumbs$1","beforeDestroy","components","indexCss","INSTANCE_ID","exports","_id","handleSwiperLoopListen","_a","_this_1","observerFirst","_b","observerLast","handleSwiperLoop","_c","list","debounce","circular","handleSwiperSize","class_1","watchCurrent","newVal","isWillLoadCalled","n","watchAutoplay","swiperAutoplay","interval","watchDuration","watchInterval","watchSwiperWrapper","refChild","replaceChild","oldChild","watchCircular","handleInit","watchDisplayMultipleItems","componentWillLoad","componentDidLoad","componentWillUpdate","componentDidRender","disconnectedCallback","_d","_f","_e","_g","displayMultipleItems","vertical","that","slideChangeTransitionStart","_swiper","onChange","onAnimationFinish","SwiperJS","swiperWrapper","indicatorDots","indicatorColor","indicatorActiveColor","hostStyle","overflow","full","_h","exec","previousMargin","_j","nextMargin","pM","nM","h","Host","class","isEqualTag","parseChildNodes","targets","values","isEqualNode","SwiperItem","class_2","parentElement","itemId"],"sources":["../../node_modules/.pnpm/registry.npmjs.org+ssr-window@3.0.0/node_modules/ssr-window/ssr-window.esm.js","../../node_modules/.pnpm/registry.npmjs.org+dom7@3.0.0/node_modules/dom7/dom7.esm.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/utils/dom.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/utils/utils.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/utils/get-support.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/utils/get-device.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/utils/get-browser.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/modules/resize/resize.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/modules/observer/observer.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/modular.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events-emitter.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateSize.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateSlides.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateAutoHeight.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateSlidesOffset.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateSlidesProgress.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateProgress.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateSlidesClasses.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateActiveIndex.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/updateClickedSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/update/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/getTranslate.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/setTranslate.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/minTranslate.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/maxTranslate.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/translateTo.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/translate/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/transition/setTransition.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/transition/transitionStart.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/transition/transitionEnd.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/transition/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideTo.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideToLoop.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideNext.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slidePrev.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideReset.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideToClosest.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/slideToClickedSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/slide/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/loop/loopCreate.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/loop/loopFix.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/loop/loopDestroy.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/loop/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/grab-cursor/setGrabCursor.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/grab-cursor/unsetGrabCursor.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/grab-cursor/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/appendSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/prependSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/addSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/removeSlide.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/removeAllSlides.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/manipulation/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onTouchStart.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onTouchMove.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onTouchEnd.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onResize.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onClick.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/onScroll.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/events/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/breakpoints/setBreakpoint.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/breakpoints/getBreakpoint.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/breakpoints/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/classes/addClasses.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/classes/removeClasses.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/classes/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/images/loadImage.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/images/preloadImages.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/images/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/check-overflow/index.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/defaults.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/core/core-class.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/virtual/virtual.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/keyboard/keyboard.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/mousewheel/mousewheel.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/navigation/navigation.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/pagination/pagination.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/scrollbar/scrollbar.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/parallax/parallax.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/zoom/zoom.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/lazy/lazy.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/controller/controller.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/a11y/a11y.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/history/history.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/hash-navigation/hash-navigation.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/autoplay/autoplay.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/effect-fade/effect-fade.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/effect-cube/effect-cube.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/effect-flip/effect-flip.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/effect-coverflow/effect-coverflow.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/esm/components/thumbs/thumbs.js","../../node_modules/.pnpm/registry.npmjs.org+swiper@6.8.0/node_modules/swiper/swiper-bundle.esm.js","src/components/swiper/style/index.scss?tag=taro-swiper-core","src/components/swiper/swiper.tsx","src/components/swiper/swiper-item.tsx"],"sourcesContent":["/**\n * SSR Window 3.0.0\n * Better handling for window object in SSR environment\n * https://github.com/nolimits4web/ssr-window\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\n/* eslint-disable no-param-reassign */\nfunction isObject(obj) {\n return (obj !== null &&\n typeof obj === 'object' &&\n 'constructor' in obj &&\n obj.constructor === Object);\n}\nfunction extend(target, src) {\n if (target === void 0) { target = {}; }\n if (src === void 0) { src = {}; }\n Object.keys(src).forEach(function (key) {\n if (typeof target[key] === 'undefined')\n target[key] = src[key];\n else if (isObject(src[key]) &&\n isObject(target[key]) &&\n Object.keys(src[key]).length > 0) {\n extend(target[key], src[key]);\n }\n });\n}\n\nvar ssrDocument = {\n body: {},\n addEventListener: function () { },\n removeEventListener: function () { },\n activeElement: {\n blur: function () { },\n nodeName: '',\n },\n querySelector: function () {\n return null;\n },\n querySelectorAll: function () {\n return [];\n },\n getElementById: function () {\n return null;\n },\n createEvent: function () {\n return {\n initEvent: function () { },\n };\n },\n createElement: function () {\n return {\n children: [],\n childNodes: [],\n style: {},\n setAttribute: function () { },\n getElementsByTagName: function () {\n return [];\n },\n };\n },\n createElementNS: function () {\n return {};\n },\n importNode: function () {\n return null;\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n};\nfunction getDocument() {\n var doc = typeof document !== 'undefined' ? document : {};\n extend(doc, ssrDocument);\n return doc;\n}\n\nvar ssrWindow = {\n document: ssrDocument,\n navigator: {\n userAgent: '',\n },\n location: {\n hash: '',\n host: '',\n hostname: '',\n href: '',\n origin: '',\n pathname: '',\n protocol: '',\n search: '',\n },\n history: {\n replaceState: function () { },\n pushState: function () { },\n go: function () { },\n back: function () { },\n },\n CustomEvent: function CustomEvent() {\n return this;\n },\n addEventListener: function () { },\n removeEventListener: function () { },\n getComputedStyle: function () {\n return {\n getPropertyValue: function () {\n return '';\n },\n };\n },\n Image: function () { },\n Date: function () { },\n screen: {},\n setTimeout: function () { },\n clearTimeout: function () { },\n matchMedia: function () {\n return {};\n },\n requestAnimationFrame: function (callback) {\n if (typeof setTimeout === 'undefined') {\n callback();\n return null;\n }\n return setTimeout(callback, 0);\n },\n cancelAnimationFrame: function (id) {\n if (typeof setTimeout === 'undefined') {\n return;\n }\n clearTimeout(id);\n },\n};\nfunction getWindow() {\n var win = typeof window !== 'undefined' ? window : {};\n extend(win, ssrWindow);\n return win;\n}\n\nexport { extend, getDocument, getWindow, ssrDocument, ssrWindow };\n","/**\n * Dom7 3.0.0\n * Minimalistic JavaScript library for DOM manipulation, with a jQuery-compatible API\n * https://framework7.io/docs/dom7.html\n *\n * Copyright 2020, Vladimir Kharlampidi\n *\n * Licensed under MIT\n *\n * Released on: November 9, 2020\n */\nimport { getWindow, getDocument } from 'ssr-window';\n\nfunction _inheritsLoose(subClass, superClass) {\n subClass.prototype = Object.create(superClass.prototype);\n subClass.prototype.constructor = subClass;\n subClass.__proto__ = superClass;\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _construct(Parent, args, Class) {\n if (_isNativeReflectConstruct()) {\n _construct = Reflect.construct;\n } else {\n _construct = function _construct(Parent, args, Class) {\n var a = [null];\n a.push.apply(a, args);\n var Constructor = Function.bind.apply(Parent, a);\n var instance = new Constructor();\n if (Class) _setPrototypeOf(instance, Class.prototype);\n return instance;\n };\n }\n\n return _construct.apply(null, arguments);\n}\n\nfunction _isNativeFunction(fn) {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n}\n\nfunction _wrapNativeSuper(Class) {\n var _cache = typeof Map === \"function\" ? new Map() : undefined;\n\n _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !_isNativeFunction(Class)) return Class;\n\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n\n _cache.set(Class, Wrapper);\n }\n\n function Wrapper() {\n return _construct(Class, arguments, _getPrototypeOf(this).constructor);\n }\n\n Wrapper.prototype = Object.create(Class.prototype, {\n constructor: {\n value: Wrapper,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n return _setPrototypeOf(Wrapper, Class);\n };\n\n return _wrapNativeSuper(Class);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\n/* eslint-disable no-proto */\nfunction makeReactive(obj) {\n var proto = obj.__proto__;\n Object.defineProperty(obj, '__proto__', {\n get: function get() {\n return proto;\n },\n set: function set(value) {\n proto.__proto__ = value;\n }\n });\n}\n\nvar Dom7 = /*#__PURE__*/function (_Array) {\n _inheritsLoose(Dom7, _Array);\n\n function Dom7(items) {\n var _this;\n\n _this = _Array.call.apply(_Array, [this].concat(items)) || this;\n makeReactive(_assertThisInitialized(_this));\n return _this;\n }\n\n return Dom7;\n}( /*#__PURE__*/_wrapNativeSuper(Array));\n\nfunction arrayFlat(arr) {\n if (arr === void 0) {\n arr = [];\n }\n\n var res = [];\n arr.forEach(function (el) {\n if (Array.isArray(el)) {\n res.push.apply(res, arrayFlat(el));\n } else {\n res.push(el);\n }\n });\n return res;\n}\nfunction arrayFilter(arr, callback) {\n return Array.prototype.filter.call(arr, callback);\n}\nfunction arrayUnique(arr) {\n var uniqueArray = [];\n\n for (var i = 0; i < arr.length; i += 1) {\n if (uniqueArray.indexOf(arr[i]) === -1) uniqueArray.push(arr[i]);\n }\n\n return uniqueArray;\n}\nfunction toCamelCase(string) {\n return string.toLowerCase().replace(/-(.)/g, function (match, group) {\n return group.toUpperCase();\n });\n}\n\nfunction qsa(selector, context) {\n if (typeof selector !== 'string') {\n return [selector];\n }\n\n var a = [];\n var res = context.querySelectorAll(selector);\n\n for (var i = 0; i < res.length; i += 1) {\n a.push(res[i]);\n }\n\n return a;\n}\n\nfunction $(selector, context) {\n var window = getWindow();\n var document = getDocument();\n var arr = [];\n\n if (!context && selector instanceof Dom7) {\n return selector;\n }\n\n if (!selector) {\n return new Dom7(arr);\n }\n\n if (typeof selector === 'string') {\n var html = selector.trim();\n\n if (html.indexOf('<') >= 0 && html.indexOf('>') >= 0) {\n var toCreate = 'div';\n if (html.indexOf('<li') === 0) toCreate = 'ul';\n if (html.indexOf('<tr') === 0) toCreate = 'tbody';\n if (html.indexOf('<td') === 0 || html.indexOf('<th') === 0) toCreate = 'tr';\n if (html.indexOf('<tbody') === 0) toCreate = 'table';\n if (html.indexOf('<option') === 0) toCreate = 'select';\n var tempParent = document.createElement(toCreate);\n tempParent.innerHTML = html;\n\n for (var i = 0; i < tempParent.childNodes.length; i += 1) {\n arr.push(tempParent.childNodes[i]);\n }\n } else {\n arr = qsa(selector.trim(), context || document);\n } // arr = qsa(selector, document);\n\n } else if (selector.nodeType || selector === window || selector === document) {\n arr.push(selector);\n } else if (Array.isArray(selector)) {\n if (selector instanceof Dom7) return selector;\n arr = selector;\n }\n\n return new Dom7(arrayUnique(arr));\n}\n\n$.fn = Dom7.prototype;\n\nfunction addClass() {\n for (var _len = arguments.length, classes = new Array(_len), _key = 0; _key < _len; _key++) {\n classes[_key] = arguments[_key];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList;\n\n (_el$classList = el.classList).add.apply(_el$classList, classNames);\n });\n return this;\n}\n\nfunction removeClass() {\n for (var _len2 = arguments.length, classes = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n classes[_key2] = arguments[_key2];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n var _el$classList2;\n\n (_el$classList2 = el.classList).remove.apply(_el$classList2, classNames);\n });\n return this;\n}\n\nfunction toggleClass() {\n for (var _len3 = arguments.length, classes = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n classes[_key3] = arguments[_key3];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n this.forEach(function (el) {\n classNames.forEach(function (className) {\n el.classList.toggle(className);\n });\n });\n}\n\nfunction hasClass() {\n for (var _len4 = arguments.length, classes = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n classes[_key4] = arguments[_key4];\n }\n\n var classNames = arrayFlat(classes.map(function (c) {\n return c.split(' ');\n }));\n return arrayFilter(this, function (el) {\n return classNames.filter(function (className) {\n return el.classList.contains(className);\n }).length > 0;\n }).length > 0;\n}\n\nfunction attr(attrs, value) {\n if (arguments.length === 1 && typeof attrs === 'string') {\n // Get attr\n if (this[0]) return this[0].getAttribute(attrs);\n return undefined;\n } // Set attrs\n\n\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i].setAttribute(attrs, value);\n } else {\n // Object\n for (var attrName in attrs) {\n this[i][attrName] = attrs[attrName];\n this[i].setAttribute(attrName, attrs[attrName]);\n }\n }\n }\n\n return this;\n}\n\nfunction removeAttr(attr) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].removeAttribute(attr);\n }\n\n return this;\n}\n\nfunction prop(props, value) {\n if (arguments.length === 1 && typeof props === 'string') {\n // Get prop\n if (this[0]) return this[0][props];\n } else {\n // Set props\n for (var i = 0; i < this.length; i += 1) {\n if (arguments.length === 2) {\n // String\n this[i][props] = value;\n } else {\n // Object\n for (var propName in props) {\n this[i][propName] = props[propName];\n }\n }\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction data(key, value) {\n var el;\n\n if (typeof value === 'undefined') {\n el = this[0];\n if (!el) return undefined; // Get value\n\n if (el.dom7ElementDataStorage && key in el.dom7ElementDataStorage) {\n return el.dom7ElementDataStorage[key];\n }\n\n var dataKey = el.getAttribute(\"data-\" + key);\n\n if (dataKey) {\n return dataKey;\n }\n\n return undefined;\n } // Set value\n\n\n for (var i = 0; i < this.length; i += 1) {\n el = this[i];\n if (!el.dom7ElementDataStorage) el.dom7ElementDataStorage = {};\n el.dom7ElementDataStorage[key] = value;\n }\n\n return this;\n}\n\nfunction removeData(key) {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.dom7ElementDataStorage && el.dom7ElementDataStorage[key]) {\n el.dom7ElementDataStorage[key] = null;\n delete el.dom7ElementDataStorage[key];\n }\n }\n}\n\nfunction dataset() {\n var el = this[0];\n if (!el) return undefined;\n var dataset = {}; // eslint-disable-line\n\n if (el.dataset) {\n for (var dataKey in el.dataset) {\n dataset[dataKey] = el.dataset[dataKey];\n }\n } else {\n for (var i = 0; i < el.attributes.length; i += 1) {\n var _attr = el.attributes[i];\n\n if (_attr.name.indexOf('data-') >= 0) {\n dataset[toCamelCase(_attr.name.split('data-')[1])] = _attr.value;\n }\n }\n }\n\n for (var key in dataset) {\n if (dataset[key] === 'false') dataset[key] = false;else if (dataset[key] === 'true') dataset[key] = true;else if (parseFloat(dataset[key]) === dataset[key] * 1) dataset[key] *= 1;\n }\n\n return dataset;\n}\n\nfunction val(value) {\n if (typeof value === 'undefined') {\n // get value\n var el = this[0];\n if (!el) return undefined;\n\n if (el.multiple && el.nodeName.toLowerCase() === 'select') {\n var values = [];\n\n for (var i = 0; i < el.selectedOptions.length; i += 1) {\n values.push(el.selectedOptions[i].value);\n }\n\n return values;\n }\n\n return el.value;\n } // set value\n\n\n for (var _i = 0; _i < this.length; _i += 1) {\n var _el = this[_i];\n\n if (Array.isArray(value) && _el.multiple && _el.nodeName.toLowerCase() === 'select') {\n for (var j = 0; j < _el.options.length; j += 1) {\n _el.options[j].selected = value.indexOf(_el.options[j].value) >= 0;\n }\n } else {\n _el.value = value;\n }\n }\n\n return this;\n}\n\nfunction value(value) {\n return this.val(value);\n}\n\nfunction transform(transform) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transform = transform;\n }\n\n return this;\n}\n\nfunction transition(duration) {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.transitionDuration = typeof duration !== 'string' ? duration + \"ms\" : duration;\n }\n\n return this;\n}\n\nfunction on() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n\n function handleLiveEvent(e) {\n var target = e.target;\n if (!target) return;\n var eventData = e.target.dom7EventData || [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n if ($(target).is(targetSelector)) listener.apply(target, eventData);else {\n var _parents = $(target).parents(); // eslint-disable-line\n\n\n for (var k = 0; k < _parents.length; k += 1) {\n if ($(_parents[k]).is(targetSelector)) listener.apply(_parents[k], eventData);\n }\n }\n }\n\n function handleEvent(e) {\n var eventData = e && e.target ? e.target.dom7EventData || [] : [];\n\n if (eventData.indexOf(e) < 0) {\n eventData.unshift(e);\n }\n\n listener.apply(this, eventData);\n }\n\n var events = eventType.split(' ');\n var j;\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (!targetSelector) {\n for (j = 0; j < events.length; j += 1) {\n var event = events[j];\n if (!el.dom7Listeners) el.dom7Listeners = {};\n if (!el.dom7Listeners[event]) el.dom7Listeners[event] = [];\n el.dom7Listeners[event].push({\n listener: listener,\n proxyListener: handleEvent\n });\n el.addEventListener(event, handleEvent, capture);\n }\n } else {\n // Live events\n for (j = 0; j < events.length; j += 1) {\n var _event = events[j];\n if (!el.dom7LiveListeners) el.dom7LiveListeners = {};\n if (!el.dom7LiveListeners[_event]) el.dom7LiveListeners[_event] = [];\n\n el.dom7LiveListeners[_event].push({\n listener: listener,\n proxyListener: handleLiveEvent\n });\n\n el.addEventListener(_event, handleLiveEvent, capture);\n }\n }\n }\n\n return this;\n}\n\nfunction off() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n\n var eventType = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventType = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n if (!capture) capture = false;\n var events = eventType.split(' ');\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n var handlers = void 0;\n\n if (!targetSelector && el.dom7Listeners) {\n handlers = el.dom7Listeners[event];\n } else if (targetSelector && el.dom7LiveListeners) {\n handlers = el.dom7LiveListeners[event];\n }\n\n if (handlers && handlers.length) {\n for (var k = handlers.length - 1; k >= 0; k -= 1) {\n var handler = handlers[k];\n\n if (listener && handler.listener === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (listener && handler.listener && handler.listener.dom7proxy && handler.listener.dom7proxy === listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n } else if (!listener) {\n el.removeEventListener(event, handler.proxyListener, capture);\n handlers.splice(k, 1);\n }\n }\n }\n }\n }\n\n return this;\n}\n\nfunction once() {\n var dom = this;\n\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n\n var eventName = args[0],\n targetSelector = args[1],\n listener = args[2],\n capture = args[3];\n\n if (typeof args[1] === 'function') {\n eventName = args[0];\n listener = args[1];\n capture = args[2];\n targetSelector = undefined;\n }\n\n function onceHandler() {\n for (var _len8 = arguments.length, eventArgs = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n eventArgs[_key8] = arguments[_key8];\n }\n\n listener.apply(this, eventArgs);\n dom.off(eventName, targetSelector, onceHandler, capture);\n\n if (onceHandler.dom7proxy) {\n delete onceHandler.dom7proxy;\n }\n }\n\n onceHandler.dom7proxy = listener;\n return dom.on(eventName, targetSelector, onceHandler, capture);\n}\n\nfunction trigger() {\n var window = getWindow();\n\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n\n var events = args[0].split(' ');\n var eventData = args[1];\n\n for (var i = 0; i < events.length; i += 1) {\n var event = events[i];\n\n for (var j = 0; j < this.length; j += 1) {\n var el = this[j];\n\n if (window.CustomEvent) {\n var evt = new window.CustomEvent(event, {\n detail: eventData,\n bubbles: true,\n cancelable: true\n });\n el.dom7EventData = args.filter(function (data, dataIndex) {\n return dataIndex > 0;\n });\n el.dispatchEvent(evt);\n el.dom7EventData = [];\n delete el.dom7EventData;\n }\n }\n }\n\n return this;\n}\n\nfunction transitionEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('transitionend', fireCallBack);\n }\n\n if (callback) {\n dom.on('transitionend', fireCallBack);\n }\n\n return this;\n}\n\nfunction animationEnd(callback) {\n var dom = this;\n\n function fireCallBack(e) {\n if (e.target !== this) return;\n callback.call(this, e);\n dom.off('animationend', fireCallBack);\n }\n\n if (callback) {\n dom.on('animationend', fireCallBack);\n }\n\n return this;\n}\n\nfunction width() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerWidth;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('width'));\n }\n\n return null;\n}\n\nfunction outerWidth(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles = this.styles();\n\n return this[0].offsetWidth + parseFloat(_styles.getPropertyValue('margin-right')) + parseFloat(_styles.getPropertyValue('margin-left'));\n }\n\n return this[0].offsetWidth;\n }\n\n return null;\n}\n\nfunction height() {\n var window = getWindow();\n\n if (this[0] === window) {\n return window.innerHeight;\n }\n\n if (this.length > 0) {\n return parseFloat(this.css('height'));\n }\n\n return null;\n}\n\nfunction outerHeight(includeMargins) {\n if (this.length > 0) {\n if (includeMargins) {\n var _styles2 = this.styles();\n\n return this[0].offsetHeight + parseFloat(_styles2.getPropertyValue('margin-top')) + parseFloat(_styles2.getPropertyValue('margin-bottom'));\n }\n\n return this[0].offsetHeight;\n }\n\n return null;\n}\n\nfunction offset() {\n if (this.length > 0) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var box = el.getBoundingClientRect();\n var body = document.body;\n var clientTop = el.clientTop || body.clientTop || 0;\n var clientLeft = el.clientLeft || body.clientLeft || 0;\n var scrollTop = el === window ? window.scrollY : el.scrollTop;\n var scrollLeft = el === window ? window.scrollX : el.scrollLeft;\n return {\n top: box.top + scrollTop - clientTop,\n left: box.left + scrollLeft - clientLeft\n };\n }\n\n return null;\n}\n\nfunction hide() {\n for (var i = 0; i < this.length; i += 1) {\n this[i].style.display = 'none';\n }\n\n return this;\n}\n\nfunction show() {\n var window = getWindow();\n\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.style.display === 'none') {\n el.style.display = '';\n }\n\n if (window.getComputedStyle(el, null).getPropertyValue('display') === 'none') {\n // Still not visible\n el.style.display = 'block';\n }\n }\n\n return this;\n}\n\nfunction styles() {\n var window = getWindow();\n if (this[0]) return window.getComputedStyle(this[0], null);\n return {};\n}\n\nfunction css(props, value) {\n var window = getWindow();\n var i;\n\n if (arguments.length === 1) {\n if (typeof props === 'string') {\n // .css('width')\n if (this[0]) return window.getComputedStyle(this[0], null).getPropertyValue(props);\n } else {\n // .css({ width: '100px' })\n for (i = 0; i < this.length; i += 1) {\n for (var _prop in props) {\n this[i].style[_prop] = props[_prop];\n }\n }\n\n return this;\n }\n }\n\n if (arguments.length === 2 && typeof props === 'string') {\n // .css('width', '100px')\n for (i = 0; i < this.length; i += 1) {\n this[i].style[props] = value;\n }\n\n return this;\n }\n\n return this;\n}\n\nfunction each(callback) {\n if (!callback) return this;\n this.forEach(function (el, index) {\n callback.apply(el, [el, index]);\n });\n return this;\n}\n\nfunction filter(callback) {\n var result = arrayFilter(this, callback);\n return $(result);\n}\n\nfunction html(html) {\n if (typeof html === 'undefined') {\n return this[0] ? this[0].innerHTML : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].innerHTML = html;\n }\n\n return this;\n}\n\nfunction text(text) {\n if (typeof text === 'undefined') {\n return this[0] ? this[0].textContent.trim() : null;\n }\n\n for (var i = 0; i < this.length; i += 1) {\n this[i].textContent = text;\n }\n\n return this;\n}\n\nfunction is(selector) {\n var window = getWindow();\n var document = getDocument();\n var el = this[0];\n var compareWith;\n var i;\n if (!el || typeof selector === 'undefined') return false;\n\n if (typeof selector === 'string') {\n if (el.matches) return el.matches(selector);\n if (el.webkitMatchesSelector) return el.webkitMatchesSelector(selector);\n if (el.msMatchesSelector) return el.msMatchesSelector(selector);\n compareWith = $(selector);\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n if (selector === document) {\n return el === document;\n }\n\n if (selector === window) {\n return el === window;\n }\n\n if (selector.nodeType || selector instanceof Dom7) {\n compareWith = selector.nodeType ? [selector] : selector;\n\n for (i = 0; i < compareWith.length; i += 1) {\n if (compareWith[i] === el) return true;\n }\n\n return false;\n }\n\n return false;\n}\n\nfunction index() {\n var child = this[0];\n var i;\n\n if (child) {\n i = 0; // eslint-disable-next-line\n\n while ((child = child.previousSibling) !== null) {\n if (child.nodeType === 1) i += 1;\n }\n\n return i;\n }\n\n return undefined;\n}\n\nfunction eq(index) {\n if (typeof index === 'undefined') return this;\n var length = this.length;\n\n if (index > length - 1) {\n return $([]);\n }\n\n if (index < 0) {\n var returnIndex = length + index;\n if (returnIndex < 0) return $([]);\n return $([this[returnIndex]]);\n }\n\n return $([this[index]]);\n}\n\nfunction append() {\n var newChild;\n var document = getDocument();\n\n for (var k = 0; k < arguments.length; k += 1) {\n newChild = k < 0 || arguments.length <= k ? undefined : arguments[k];\n\n for (var i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n while (tempDiv.firstChild) {\n this[i].appendChild(tempDiv.firstChild);\n }\n } else if (newChild instanceof Dom7) {\n for (var j = 0; j < newChild.length; j += 1) {\n this[i].appendChild(newChild[j]);\n }\n } else {\n this[i].appendChild(newChild);\n }\n }\n }\n\n return this;\n}\n\nfunction appendTo(parent) {\n $(parent).append(this);\n return this;\n}\n\nfunction prepend(newChild) {\n var document = getDocument();\n var i;\n var j;\n\n for (i = 0; i < this.length; i += 1) {\n if (typeof newChild === 'string') {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = newChild;\n\n for (j = tempDiv.childNodes.length - 1; j >= 0; j -= 1) {\n this[i].insertBefore(tempDiv.childNodes[j], this[i].childNodes[0]);\n }\n } else if (newChild instanceof Dom7) {\n for (j = 0; j < newChild.length; j += 1) {\n this[i].insertBefore(newChild[j], this[i].childNodes[0]);\n }\n } else {\n this[i].insertBefore(newChild, this[i].childNodes[0]);\n }\n }\n\n return this;\n}\n\nfunction prependTo(parent) {\n $(parent).prepend(this);\n return this;\n}\n\nfunction insertBefore(selector) {\n var before = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (before.length === 1) {\n before[0].parentNode.insertBefore(this[i], before[0]);\n } else if (before.length > 1) {\n for (var j = 0; j < before.length; j += 1) {\n before[j].parentNode.insertBefore(this[i].cloneNode(true), before[j]);\n }\n }\n }\n}\n\nfunction insertAfter(selector) {\n var after = $(selector);\n\n for (var i = 0; i < this.length; i += 1) {\n if (after.length === 1) {\n after[0].parentNode.insertBefore(this[i], after[0].nextSibling);\n } else if (after.length > 1) {\n for (var j = 0; j < after.length; j += 1) {\n after[j].parentNode.insertBefore(this[i].cloneNode(true), after[j].nextSibling);\n }\n }\n }\n}\n\nfunction next(selector) {\n if (this.length > 0) {\n if (selector) {\n if (this[0].nextElementSibling && $(this[0].nextElementSibling).is(selector)) {\n return $([this[0].nextElementSibling]);\n }\n\n return $([]);\n }\n\n if (this[0].nextElementSibling) return $([this[0].nextElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction nextAll(selector) {\n var nextEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.nextElementSibling) {\n var _next = el.nextElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_next).is(selector)) nextEls.push(_next);\n } else nextEls.push(_next);\n\n el = _next;\n }\n\n return $(nextEls);\n}\n\nfunction prev(selector) {\n if (this.length > 0) {\n var el = this[0];\n\n if (selector) {\n if (el.previousElementSibling && $(el.previousElementSibling).is(selector)) {\n return $([el.previousElementSibling]);\n }\n\n return $([]);\n }\n\n if (el.previousElementSibling) return $([el.previousElementSibling]);\n return $([]);\n }\n\n return $([]);\n}\n\nfunction prevAll(selector) {\n var prevEls = [];\n var el = this[0];\n if (!el) return $([]);\n\n while (el.previousElementSibling) {\n var _prev = el.previousElementSibling; // eslint-disable-line\n\n if (selector) {\n if ($(_prev).is(selector)) prevEls.push(_prev);\n } else prevEls.push(_prev);\n\n el = _prev;\n }\n\n return $(prevEls);\n}\n\nfunction siblings(selector) {\n return this.nextAll(selector).add(this.prevAll(selector));\n}\n\nfunction parent(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode !== null) {\n if (selector) {\n if ($(this[i].parentNode).is(selector)) parents.push(this[i].parentNode);\n } else {\n parents.push(this[i].parentNode);\n }\n }\n }\n\n return $(parents);\n}\n\nfunction parents(selector) {\n var parents = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var _parent = this[i].parentNode; // eslint-disable-line\n\n while (_parent) {\n if (selector) {\n if ($(_parent).is(selector)) parents.push(_parent);\n } else {\n parents.push(_parent);\n }\n\n _parent = _parent.parentNode;\n }\n }\n\n return $(parents);\n}\n\nfunction closest(selector) {\n var closest = this; // eslint-disable-line\n\n if (typeof selector === 'undefined') {\n return $([]);\n }\n\n if (!closest.is(selector)) {\n closest = closest.parents(selector).eq(0);\n }\n\n return closest;\n}\n\nfunction find(selector) {\n var foundElements = [];\n\n for (var i = 0; i < this.length; i += 1) {\n var found = this[i].querySelectorAll(selector);\n\n for (var j = 0; j < found.length; j += 1) {\n foundElements.push(found[j]);\n }\n }\n\n return $(foundElements);\n}\n\nfunction children(selector) {\n var children = []; // eslint-disable-line\n\n for (var i = 0; i < this.length; i += 1) {\n var childNodes = this[i].children;\n\n for (var j = 0; j < childNodes.length; j += 1) {\n if (!selector || $(childNodes[j]).is(selector)) {\n children.push(childNodes[j]);\n }\n }\n }\n\n return $(children);\n}\n\nfunction remove() {\n for (var i = 0; i < this.length; i += 1) {\n if (this[i].parentNode) this[i].parentNode.removeChild(this[i]);\n }\n\n return this;\n}\n\nfunction detach() {\n return this.remove();\n}\n\nfunction add() {\n var dom = this;\n var i;\n var j;\n\n for (var _len10 = arguments.length, els = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n els[_key10] = arguments[_key10];\n }\n\n for (i = 0; i < els.length; i += 1) {\n var toAdd = $(els[i]);\n\n for (j = 0; j < toAdd.length; j += 1) {\n dom.push(toAdd[j]);\n }\n }\n\n return dom;\n}\n\nfunction empty() {\n for (var i = 0; i < this.length; i += 1) {\n var el = this[i];\n\n if (el.nodeType === 1) {\n for (var j = 0; j < el.childNodes.length; j += 1) {\n if (el.childNodes[j].parentNode) {\n el.childNodes[j].parentNode.removeChild(el.childNodes[j]);\n }\n }\n\n el.textContent = '';\n }\n }\n\n return this;\n}\n\nfunction scrollTo() {\n var window = getWindow();\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var left = args[0],\n top = args[1],\n duration = args[2],\n easing = args[3],\n callback = args[4];\n\n if (args.length === 4 && typeof easing === 'function') {\n callback = easing;\n left = args[0];\n top = args[1];\n duration = args[2];\n callback = args[3];\n easing = args[4];\n }\n\n if (typeof easing === 'undefined') easing = 'swing';\n return this.each(function animate() {\n var el = this;\n var currentTop;\n var currentLeft;\n var maxTop;\n var maxLeft;\n var newTop;\n var newLeft;\n var scrollTop; // eslint-disable-line\n\n var scrollLeft; // eslint-disable-line\n\n var animateTop = top > 0 || top === 0;\n var animateLeft = left > 0 || left === 0;\n\n if (typeof easing === 'undefined') {\n easing = 'swing';\n }\n\n if (animateTop) {\n currentTop = el.scrollTop;\n\n if (!duration) {\n el.scrollTop = top;\n }\n }\n\n if (animateLeft) {\n currentLeft = el.scrollLeft;\n\n if (!duration) {\n el.scrollLeft = left;\n }\n }\n\n if (!duration) return;\n\n if (animateTop) {\n maxTop = el.scrollHeight - el.offsetHeight;\n newTop = Math.max(Math.min(top, maxTop), 0);\n }\n\n if (animateLeft) {\n maxLeft = el.scrollWidth - el.offsetWidth;\n newLeft = Math.max(Math.min(left, maxLeft), 0);\n }\n\n var startTime = null;\n if (animateTop && newTop === currentTop) animateTop = false;\n if (animateLeft && newLeft === currentLeft) animateLeft = false;\n\n function render(time) {\n if (time === void 0) {\n time = new Date().getTime();\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n var progress = Math.max(Math.min((time - startTime) / duration, 1), 0);\n var easeProgress = easing === 'linear' ? progress : 0.5 - Math.cos(progress * Math.PI) / 2;\n var done;\n if (animateTop) scrollTop = currentTop + easeProgress * (newTop - currentTop);\n if (animateLeft) scrollLeft = currentLeft + easeProgress * (newLeft - currentLeft);\n\n if (animateTop && newTop > currentTop && scrollTop >= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateTop && newTop < currentTop && scrollTop <= newTop) {\n el.scrollTop = newTop;\n done = true;\n }\n\n if (animateLeft && newLeft > currentLeft && scrollLeft >= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (animateLeft && newLeft < currentLeft && scrollLeft <= newLeft) {\n el.scrollLeft = newLeft;\n done = true;\n }\n\n if (done) {\n if (callback) callback();\n return;\n }\n\n if (animateTop) el.scrollTop = scrollTop;\n if (animateLeft) el.scrollLeft = scrollLeft;\n window.requestAnimationFrame(render);\n }\n\n window.requestAnimationFrame(render);\n });\n} // scrollTop(top, duration, easing, callback) {\n\n\nfunction scrollTop() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n var top = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n top = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof top === 'undefined') {\n if (dom.length > 0) return dom[0].scrollTop;\n return null;\n }\n\n return dom.scrollTo(undefined, top, duration, easing, callback);\n}\n\nfunction scrollLeft() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n\n var left = args[0],\n duration = args[1],\n easing = args[2],\n callback = args[3];\n\n if (args.length === 3 && typeof easing === 'function') {\n left = args[0];\n duration = args[1];\n callback = args[2];\n easing = args[3];\n }\n\n var dom = this;\n\n if (typeof left === 'undefined') {\n if (dom.length > 0) return dom[0].scrollLeft;\n return null;\n }\n\n return dom.scrollTo(left, undefined, duration, easing, callback);\n}\n\nfunction animate(initialProps, initialParams) {\n var window = getWindow();\n var els = this;\n var a = {\n props: Object.assign({}, initialProps),\n params: Object.assign({\n duration: 300,\n easing: 'swing' // or 'linear'\n\n /* Callbacks\n begin(elements)\n complete(elements)\n progress(elements, complete, remaining, start, tweenValue)\n */\n\n }, initialParams),\n elements: els,\n animating: false,\n que: [],\n easingProgress: function easingProgress(easing, progress) {\n if (easing === 'swing') {\n return 0.5 - Math.cos(progress * Math.PI) / 2;\n }\n\n if (typeof easing === 'function') {\n return easing(progress);\n }\n\n return progress;\n },\n stop: function stop() {\n if (a.frameId) {\n window.cancelAnimationFrame(a.frameId);\n }\n\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n a.que = [];\n },\n done: function done(complete) {\n a.animating = false;\n a.elements.each(function (el) {\n var element = el;\n delete element.dom7AnimateInstance;\n });\n if (complete) complete(els);\n\n if (a.que.length > 0) {\n var que = a.que.shift();\n a.animate(que[0], que[1]);\n }\n },\n animate: function animate(props, params) {\n if (a.animating) {\n a.que.push([props, params]);\n return a;\n }\n\n var elements = []; // Define & Cache Initials & Units\n\n a.elements.each(function (el, index) {\n var initialFullValue;\n var initialValue;\n var unit;\n var finalValue;\n var finalFullValue;\n if (!el.dom7AnimateInstance) a.elements[index].dom7AnimateInstance = a;\n elements[index] = {\n container: el\n };\n Object.keys(props).forEach(function (prop) {\n initialFullValue = window.getComputedStyle(el, null).getPropertyValue(prop).replace(',', '.');\n initialValue = parseFloat(initialFullValue);\n unit = initialFullValue.replace(initialValue, '');\n finalValue = parseFloat(props[prop]);\n finalFullValue = props[prop] + unit;\n elements[index][prop] = {\n initialFullValue: initialFullValue,\n initialValue: initialValue,\n unit: unit,\n finalValue: finalValue,\n finalFullValue: finalFullValue,\n currentValue: initialValue\n };\n });\n });\n var startTime = null;\n var time;\n var elementsDone = 0;\n var propsDone = 0;\n var done;\n var began = false;\n a.animating = true;\n\n function render() {\n time = new Date().getTime();\n var progress;\n var easeProgress; // let el;\n\n if (!began) {\n began = true;\n if (params.begin) params.begin(els);\n }\n\n if (startTime === null) {\n startTime = time;\n }\n\n if (params.progress) {\n // eslint-disable-next-line\n params.progress(els, Math.max(Math.min((time - startTime) / params.duration, 1), 0), startTime + params.duration - time < 0 ? 0 : startTime + params.duration - time, startTime);\n }\n\n elements.forEach(function (element) {\n var el = element;\n if (done || el.done) return;\n Object.keys(props).forEach(function (prop) {\n if (done || el.done) return;\n progress = Math.max(Math.min((time - startTime) / params.duration, 1), 0);\n easeProgress = a.easingProgress(params.easing, progress);\n var _el$prop = el[prop],\n initialValue = _el$prop.initialValue,\n finalValue = _el$prop.finalValue,\n unit = _el$prop.unit;\n el[prop].currentValue = initialValue + easeProgress * (finalValue - initialValue);\n var currentValue = el[prop].currentValue;\n\n if (finalValue > initialValue && currentValue >= finalValue || finalValue < initialValue && currentValue <= finalValue) {\n el.container.style[prop] = finalValue + unit;\n propsDone += 1;\n\n if (propsDone === Object.keys(props).length) {\n el.done = true;\n elementsDone += 1;\n }\n\n if (elementsDone === elements.length) {\n done = true;\n }\n }\n\n if (done) {\n a.done(params.complete);\n return;\n }\n\n el.container.style[prop] = currentValue + unit;\n });\n });\n if (done) return; // Then call\n\n a.frameId = window.requestAnimationFrame(render);\n }\n\n a.frameId = window.requestAnimationFrame(render);\n return a;\n }\n };\n\n if (a.elements.length === 0) {\n return els;\n }\n\n var animateInstance;\n\n for (var i = 0; i < a.elements.length; i += 1) {\n if (a.elements[i].dom7AnimateInstance) {\n animateInstance = a.elements[i].dom7AnimateInstance;\n } else a.elements[i].dom7AnimateInstance = a;\n }\n\n if (!animateInstance) {\n animateInstance = a;\n }\n\n if (initialProps === 'stop') {\n animateInstance.stop();\n } else {\n animateInstance.animate(a.props, a.params);\n }\n\n return els;\n}\n\nfunction stop() {\n var els = this;\n\n for (var i = 0; i < els.length; i += 1) {\n if (els[i].dom7AnimateInstance) {\n els[i].dom7AnimateInstance.stop();\n }\n }\n}\n\nvar noTrigger = 'resize scroll'.split(' ');\n\nfunction shortcut(name) {\n function eventHandler() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (typeof args[0] === 'undefined') {\n for (var i = 0; i < this.length; i += 1) {\n if (noTrigger.indexOf(name) < 0) {\n if (name in this[i]) this[i][name]();else {\n $(this[i]).trigger(name);\n }\n }\n }\n\n return this;\n }\n\n return this.on.apply(this, [name].concat(args));\n }\n\n return eventHandler;\n}\n\nvar click = shortcut('click');\nvar blur = shortcut('blur');\nvar focus = shortcut('focus');\nvar focusin = shortcut('focusin');\nvar focusout = shortcut('focusout');\nvar keyup = shortcut('keyup');\nvar keydown = shortcut('keydown');\nvar keypress = shortcut('keypress');\nvar submit = shortcut('submit');\nvar change = shortcut('change');\nvar mousedown = shortcut('mousedown');\nvar mousemove = shortcut('mousemove');\nvar mouseup = shortcut('mouseup');\nvar mouseenter = shortcut('mouseenter');\nvar mouseleave = shortcut('mouseleave');\nvar mouseout = shortcut('mouseout');\nvar mouseover = shortcut('mouseover');\nvar touchstart = shortcut('touchstart');\nvar touchend = shortcut('touchend');\nvar touchmove = shortcut('touchmove');\nvar resize = shortcut('resize');\nvar scroll = shortcut('scroll');\n\nexport default $;\nexport { $, add, addClass, animate, animationEnd, append, appendTo, attr, blur, change, children, click, closest, css, data, dataset, detach, each, empty, eq, filter, find, focus, focusin, focusout, hasClass, height, hide, html, index, insertAfter, insertBefore, is, keydown, keypress, keyup, mousedown, mouseenter, mouseleave, mousemove, mouseout, mouseover, mouseup, next, nextAll, off, offset, on, once, outerHeight, outerWidth, parent, parents, prepend, prependTo, prev, prevAll, prop, remove, removeAttr, removeClass, removeData, resize, scroll, scrollLeft, scrollTo, scrollTop, show, siblings, stop, styles, submit, text, toggleClass, touchend, touchmove, touchstart, transform, transition, transitionEnd, trigger, val, value, width };\n","import { $, addClass, removeClass, hasClass, toggleClass, attr, removeAttr, transform, transition, on, off, trigger, transitionEnd, outerWidth, outerHeight, styles, offset, css, each, html, text, is, index, eq, append, prepend, next, nextAll, prev, prevAll, parent, parents, closest, find, children, filter, remove } from 'dom7';\nvar Methods = {\n addClass: addClass,\n removeClass: removeClass,\n hasClass: hasClass,\n toggleClass: toggleClass,\n attr: attr,\n removeAttr: removeAttr,\n transform: transform,\n transition: transition,\n on: on,\n off: off,\n trigger: trigger,\n transitionEnd: transitionEnd,\n outerWidth: outerWidth,\n outerHeight: outerHeight,\n styles: styles,\n offset: offset,\n css: css,\n each: each,\n html: html,\n text: text,\n is: is,\n index: index,\n eq: eq,\n append: append,\n prepend: prepend,\n next: next,\n nextAll: nextAll,\n prev: prev,\n prevAll: prevAll,\n parent: parent,\n parents: parents,\n closest: closest,\n find: find,\n children: children,\n filter: filter,\n remove: remove\n};\nObject.keys(Methods).forEach(function (methodName) {\n Object.defineProperty($.fn, methodName, {\n value: Methods[methodName],\n writable: true\n });\n});\nexport default $;","import { getDocument, getWindow } from 'ssr-window';\n\nfunction deleteProps(obj) {\n var object = obj;\n Object.keys(object).forEach(function (key) {\n try {\n object[key] = null;\n } catch (e) {// no getter for object\n }\n\n try {\n delete object[key];\n } catch (e) {// something got wrong\n }\n });\n}\n\nfunction nextTick(callback, delay) {\n if (delay === void 0) {\n delay = 0;\n }\n\n return setTimeout(callback, delay);\n}\n\nfunction now() {\n return Date.now();\n}\n\nfunction getComputedStyle(el) {\n var window = getWindow();\n var style;\n\n if (window.getComputedStyle) {\n style = window.getComputedStyle(el, null);\n }\n\n if (!style && el.currentStyle) {\n style = el.currentStyle;\n }\n\n if (!style) {\n style = el.style;\n }\n\n return style;\n}\n\nfunction getTranslate(el, axis) {\n if (axis === void 0) {\n axis = 'x';\n }\n\n var window = getWindow();\n var matrix;\n var curTransform;\n var transformMatrix;\n var curStyle = getComputedStyle(el, null);\n\n if (window.WebKitCSSMatrix) {\n curTransform = curStyle.transform || curStyle.webkitTransform;\n\n if (curTransform.split(',').length > 6) {\n curTransform = curTransform.split(', ').map(function (a) {\n return a.replace(',', '.');\n }).join(', ');\n } // Some old versions of Webkit choke when 'none' is passed; pass\n // empty string instead in this case\n\n\n transformMatrix = new window.WebKitCSSMatrix(curTransform === 'none' ? '' : curTransform);\n } else {\n transformMatrix = curStyle.MozTransform || curStyle.OTransform || curStyle.MsTransform || curStyle.msTransform || curStyle.transform || curStyle.getPropertyValue('transform').replace('translate(', 'matrix(1, 0, 0, 1,');\n matrix = transformMatrix.toString().split(',');\n }\n\n if (axis === 'x') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m41; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[12]); // Normal Browsers\n else curTransform = parseFloat(matrix[4]);\n }\n\n if (axis === 'y') {\n // Latest Chrome and webkits Fix\n if (window.WebKitCSSMatrix) curTransform = transformMatrix.m42; // Crazy IE10 Matrix\n else if (matrix.length === 16) curTransform = parseFloat(matrix[13]); // Normal Browsers\n else curTransform = parseFloat(matrix[5]);\n }\n\n return curTransform || 0;\n}\n\nfunction isObject(o) {\n return typeof o === 'object' && o !== null && o.constructor && Object.prototype.toString.call(o).slice(8, -1) === 'Object';\n}\n\nfunction isNode(node) {\n // eslint-disable-next-line\n if (typeof window !== 'undefined') {\n return node instanceof HTMLElement;\n }\n\n return node && (node.nodeType === 1 || node.nodeType === 11);\n}\n\nfunction extend() {\n var to = Object(arguments.length <= 0 ? undefined : arguments[0]);\n var noExtend = ['__proto__', 'constructor', 'prototype'];\n\n for (var i = 1; i < arguments.length; i += 1) {\n var nextSource = i < 0 || arguments.length <= i ? undefined : arguments[i];\n\n if (nextSource !== undefined && nextSource !== null && !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\nfunction bindModuleMethods(instance, obj) {\n Object.keys(obj).forEach(function (key) {\n if (isObject(obj[key])) {\n Object.keys(obj[key]).forEach(function (subKey) {\n if (typeof obj[key][subKey] === 'function') {\n obj[key][subKey] = obj[key][subKey].bind(instance);\n }\n });\n }\n\n instance[key] = obj[key];\n });\n}\n\nfunction classesToSelector(classes) {\n if (classes === void 0) {\n classes = '';\n }\n\n return \".\" + classes.trim().replace(/([\\.:\\/])/g, '\\\\$1') // eslint-disable-line\n .replace(/ /g, '.');\n}\n\nfunction createElementIfNotDefined($container, params, createElements, checkProps) {\n var document = getDocument();\n\n if (createElements) {\n Object.keys(checkProps).forEach(function (key) {\n if (!params[key] && params.auto === true) {\n var element = document.createElement('div');\n element.className = checkProps[key];\n $container.append(element);\n params[key] = element;\n }\n });\n }\n\n return params;\n}\n\nexport { deleteProps, nextTick, now, getTranslate, isObject, extend, bindModuleMethods, getComputedStyle, classesToSelector, createElementIfNotDefined };","import { getWindow, getDocument } from 'ssr-window';\nvar support;\n\nfunction calcSupport() {\n var window = getWindow();\n var document = getDocument();\n return {\n touch: !!('ontouchstart' in window || window.DocumentTouch && document instanceof window.DocumentTouch),\n pointerEvents: !!window.PointerEvent && 'maxTouchPoints' in window.navigator && window.navigator.maxTouchPoints >= 0,\n observer: function checkObserver() {\n return 'MutationObserver' in window || 'WebkitMutationObserver' in window;\n }(),\n passiveListener: function checkPassiveListener() {\n var supportsPassive = false;\n\n try {\n var opts = Object.defineProperty({}, 'passive', {\n // eslint-disable-next-line\n get: function get() {\n supportsPassive = true;\n }\n });\n window.addEventListener('testPassiveListener', null, opts);\n } catch (e) {// No support\n }\n\n return supportsPassive;\n }(),\n gestures: function checkGestures() {\n return 'ongesturestart' in window;\n }()\n };\n}\n\nfunction getSupport() {\n if (!support) {\n support = calcSupport();\n }\n\n return support;\n}\n\nexport { getSupport };","import { getWindow } from 'ssr-window';\nimport { getSupport } from './get-support';\nvar device;\n\nfunction calcDevice(_temp) {\n var _ref = _temp === void 0 ? {} : _temp,\n userAgent = _ref.userAgent;\n\n var support = getSupport();\n var window = getWindow();\n var platform = window.navigator.platform;\n var ua = userAgent || window.navigator.userAgent;\n var device = {\n ios: false,\n android: false\n };\n var screenWidth = window.screen.width;\n var screenHeight = window.screen.height;\n var android = ua.match(/(Android);?[\\s\\/]+([\\d.]+)?/); // eslint-disable-line\n\n var ipad = ua.match(/(iPad).*OS\\s([\\d_]+)/);\n var ipod = ua.match(/(iPod)(.*OS\\s([\\d_]+))?/);\n var iphone = !ipad && ua.match(/(iPhone\\sOS|iOS)\\s([\\d_]+)/);\n var windows = platform === 'Win32';\n var macos = platform === 'MacIntel'; // iPadOs 13 fix\n\n var iPadScreens = ['1024x1366', '1366x1024', '834x1194', '1194x834', '834x1112', '1112x834', '768x1024', '1024x768', '820x1180', '1180x820', '810x1080', '1080x810'];\n\n if (!ipad && macos && support.touch && iPadScreens.indexOf(screenWidth + \"x\" + screenHeight) >= 0) {\n ipad = ua.match(/(Version)\\/([\\d.]+)/);\n if (!ipad) ipad = [0, 1, '13_0_0'];\n macos = false;\n } // Android\n\n\n if (android && !windows) {\n device.os = 'android';\n device.android = true;\n }\n\n if (ipad || iphone || ipod) {\n device.os = 'ios';\n device.ios = true;\n } // Export object\n\n\n return device;\n}\n\nfunction getDevice(overrides) {\n if (overrides === void 0) {\n overrides = {};\n }\n\n if (!device) {\n device = calcDevice(overrides);\n }\n\n return device;\n}\n\nexport { getDevice };","import { getWindow } from 'ssr-window';\nvar browser;\n\nfunction calcBrowser() {\n var window = getWindow();\n\n function isSafari() {\n var ua = window.navigator.userAgent.toLowerCase();\n return ua.indexOf('safari') >= 0 && ua.indexOf('chrome') < 0 && ua.indexOf('android') < 0;\n }\n\n return {\n isEdge: !!window.navigator.userAgent.match(/Edge/g),\n isSafari: isSafari(),\n isWebView: /(iPhone|iPod|iPad).*AppleWebKit(?!.*Safari)/i.test(window.navigator.userAgent)\n };\n}\n\nfunction getBrowser() {\n if (!browser) {\n browser = calcBrowser();\n }\n\n return browser;\n}\n\nexport { getBrowser };","import { getWindow } from 'ssr-window';\nimport { extend } from '../../utils/utils';\n\nvar supportsResizeObserver = function supportsResizeObserver() {\n var window = getWindow();\n return typeof window.ResizeObserver !== 'undefined';\n};\n\nexport default {\n name: 'resize',\n create: function create() {\n var swiper = this;\n extend(swiper, {\n resize: {\n observer: null,\n createObserver: function createObserver() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.resize.observer = new ResizeObserver(function (entries) {\n var width = swiper.width,\n height = swiper.height;\n var newWidth = width;\n var newHeight = height;\n entries.forEach(function (_ref) {\n var contentBoxSize = _ref.contentBoxSize,\n contentRect = _ref.contentRect,\n target = _ref.target;\n if (target && target !== swiper.el) return;\n newWidth = contentRect ? contentRect.width : (contentBoxSize[0] || contentBoxSize).inlineSize;\n newHeight = contentRect ? contentRect.height : (contentBoxSize[0] || contentBoxSize).blockSize;\n });\n\n if (newWidth !== width || newHeight !== height) {\n swiper.resize.resizeHandler();\n }\n });\n swiper.resize.observer.observe(swiper.el);\n },\n removeObserver: function removeObserver() {\n if (swiper.resize.observer && swiper.resize.observer.unobserve && swiper.el) {\n swiper.resize.observer.unobserve(swiper.el);\n swiper.resize.observer = null;\n }\n },\n resizeHandler: function resizeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('beforeResize');\n swiper.emit('resize');\n },\n orientationChangeHandler: function orientationChangeHandler() {\n if (!swiper || swiper.destroyed || !swiper.initialized) return;\n swiper.emit('orientationchange');\n }\n }\n });\n },\n on: {\n init: function init(swiper) {\n var window = getWindow();\n\n if (swiper.params.resizeObserver && supportsResizeObserver()) {\n swiper.resize.createObserver();\n return;\n } // Emit resize\n\n\n window.addEventListener('resize', swiper.resize.resizeHandler); // Emit orientationchange\n\n window.addEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n },\n destroy: function destroy(swiper) {\n var window = getWindow();\n swiper.resize.removeObserver();\n window.removeEventListener('resize', swiper.resize.resizeHandler);\n window.removeEventListener('orientationchange', swiper.resize.orientationChangeHandler);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Observer = {\n attach: function attach(target, options) {\n if (options === void 0) {\n options = {};\n }\n\n var window = getWindow();\n var swiper = this;\n var ObserverFunc = window.MutationObserver || window.WebkitMutationObserver;\n var observer = new ObserverFunc(function (mutations) {\n // The observerUpdate event should only be triggered\n // once despite the number of mutations. Additional\n // triggers are redundant and are very costly\n if (mutations.length === 1) {\n swiper.emit('observerUpdate', mutations[0]);\n return;\n }\n\n var observerUpdate = function observerUpdate() {\n swiper.emit('observerUpdate', mutations[0]);\n };\n\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(observerUpdate);\n } else {\n window.setTimeout(observerUpdate, 0);\n }\n });\n observer.observe(target, {\n attributes: typeof options.attributes === 'undefined' ? true : options.attributes,\n childList: typeof options.childList === 'undefined' ? true : options.childList,\n characterData: typeof options.characterData === 'undefined' ? true : options.characterData\n });\n swiper.observer.observers.push(observer);\n },\n init: function init() {\n var swiper = this;\n if (!swiper.support.observer || !swiper.params.observer) return;\n\n if (swiper.params.observeParents) {\n var containerParents = swiper.$el.parents();\n\n for (var i = 0; i < containerParents.length; i += 1) {\n swiper.observer.attach(containerParents[i]);\n }\n } // Observe container\n\n\n swiper.observer.attach(swiper.$el[0], {\n childList: swiper.params.observeSlideChildren\n }); // Observe wrapper\n\n swiper.observer.attach(swiper.$wrapperEl[0], {\n attributes: false\n });\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.observer.observers.forEach(function (observer) {\n observer.disconnect();\n });\n swiper.observer.observers = [];\n }\n};\nexport default {\n name: 'observer',\n params: {\n observer: false,\n observeParents: false,\n observeSlideChildren: false\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n observer: _extends({}, Observer, {\n observers: []\n })\n });\n },\n on: {\n init: function init(swiper) {\n swiper.observer.init();\n },\n destroy: function destroy(swiper) {\n swiper.observer.destroy();\n }\n }\n};","import { extend } from '../../utils/utils';\nexport default {\n useParams: function useParams(instanceParams) {\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName]; // Extend params\n\n if (module.params) {\n extend(instanceParams, module.params);\n }\n });\n },\n useModules: function useModules(modulesParams) {\n if (modulesParams === void 0) {\n modulesParams = {};\n }\n\n var instance = this;\n if (!instance.modules) return;\n Object.keys(instance.modules).forEach(function (moduleName) {\n var module = instance.modules[moduleName];\n var moduleParams = modulesParams[moduleName] || {}; // Add event listeners\n\n if (module.on && instance.on) {\n Object.keys(module.on).forEach(function (moduleEventName) {\n instance.on(moduleEventName, module.on[moduleEventName]);\n });\n } // Module create callback\n\n\n if (module.create) {\n module.create.bind(instance)(moduleParams);\n }\n });\n }\n};","/* eslint-disable no-underscore-dangle */\nexport default {\n on: function on(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n events.split(' ').forEach(function (event) {\n if (!self.eventsListeners[event]) self.eventsListeners[event] = [];\n self.eventsListeners[event][method](handler);\n });\n return self;\n },\n once: function once(events, handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n\n function onceHandler() {\n self.off(events, onceHandler);\n\n if (onceHandler.__emitterProxy) {\n delete onceHandler.__emitterProxy;\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n handler.apply(self, args);\n }\n\n onceHandler.__emitterProxy = handler;\n return self.on(events, onceHandler, priority);\n },\n onAny: function onAny(handler, priority) {\n var self = this;\n if (typeof handler !== 'function') return self;\n var method = priority ? 'unshift' : 'push';\n\n if (self.eventsAnyListeners.indexOf(handler) < 0) {\n self.eventsAnyListeners[method](handler);\n }\n\n return self;\n },\n offAny: function offAny(handler) {\n var self = this;\n if (!self.eventsAnyListeners) return self;\n var index = self.eventsAnyListeners.indexOf(handler);\n\n if (index >= 0) {\n self.eventsAnyListeners.splice(index, 1);\n }\n\n return self;\n },\n off: function off(events, handler) {\n var self = this;\n if (!self.eventsListeners) return self;\n events.split(' ').forEach(function (event) {\n if (typeof handler === 'undefined') {\n self.eventsListeners[event] = [];\n } else if (self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler, index) {\n if (eventHandler === handler || eventHandler.__emitterProxy && eventHandler.__emitterProxy === handler) {\n self.eventsListeners[event].splice(index, 1);\n }\n });\n }\n });\n return self;\n },\n emit: function emit() {\n var self = this;\n if (!self.eventsListeners) return self;\n var events;\n var data;\n var context;\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n if (typeof args[0] === 'string' || Array.isArray(args[0])) {\n events = args[0];\n data = args.slice(1, args.length);\n context = self;\n } else {\n events = args[0].events;\n data = args[0].data;\n context = args[0].context || self;\n }\n\n data.unshift(context);\n var eventsArray = Array.isArray(events) ? events : events.split(' ');\n eventsArray.forEach(function (event) {\n if (self.eventsAnyListeners && self.eventsAnyListeners.length) {\n self.eventsAnyListeners.forEach(function (eventHandler) {\n eventHandler.apply(context, [event].concat(data));\n });\n }\n\n if (self.eventsListeners && self.eventsListeners[event]) {\n self.eventsListeners[event].forEach(function (eventHandler) {\n eventHandler.apply(context, data);\n });\n }\n });\n return self;\n }\n};","import { extend } from '../../../utils/utils';\nexport default function updateSize() {\n var swiper = this;\n var width;\n var height;\n var $el = swiper.$el;\n\n if (typeof swiper.params.width !== 'undefined' && swiper.params.width !== null) {\n width = swiper.params.width;\n } else {\n width = $el[0].clientWidth;\n }\n\n if (typeof swiper.params.height !== 'undefined' && swiper.params.height !== null) {\n height = swiper.params.height;\n } else {\n height = $el[0].clientHeight;\n }\n\n if (width === 0 && swiper.isHorizontal() || height === 0 && swiper.isVertical()) {\n return;\n } // Subtract paddings\n\n\n width = width - parseInt($el.css('padding-left') || 0, 10) - parseInt($el.css('padding-right') || 0, 10);\n height = height - parseInt($el.css('padding-top') || 0, 10) - parseInt($el.css('padding-bottom') || 0, 10);\n if (Number.isNaN(width)) width = 0;\n if (Number.isNaN(height)) height = 0;\n extend(swiper, {\n width: width,\n height: height,\n size: swiper.isHorizontal() ? width : height\n });\n}","import { extend } from '../../../utils/utils';\nexport default function updateSlides() {\n var swiper = this;\n\n 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(\".\" + 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 marginTop: ''\n });else slides.css({\n marginRight: '',\n marginBottom: ''\n });\n var slidesNumberEvenToRows;\n\n if (params.slidesPerColumn > 1) {\n if (Math.floor(slidesLength / params.slidesPerColumn) === slidesLength / swiper.params.slidesPerColumn) {\n slidesNumberEvenToRows = slidesLength;\n } else {\n slidesNumberEvenToRows = Math.ceil(slidesLength / params.slidesPerColumn) * params.slidesPerColumn;\n }\n\n if (params.slidesPerView !== 'auto' && params.slidesPerColumnFill === 'row') {\n slidesNumberEvenToRows = Math.max(slidesNumberEvenToRows, params.slidesPerView * params.slidesPerColumn);\n }\n } // Calc slides\n\n\n var slideSize;\n var slidesPerColumn = params.slidesPerColumn;\n var slidesPerRow = slidesNumberEvenToRows / slidesPerColumn;\n var numFullColumns = Math.floor(slidesLength / params.slidesPerColumn);\n\n for (var i = 0; i < slidesLength; i += 1) {\n slideSize = 0;\n var slide = slides.eq(i);\n\n if (params.slidesPerColumn > 1) {\n // Set slides order\n var newSlideOrderIndex = void 0;\n var column = void 0;\n var row = void 0;\n\n if (params.slidesPerColumnFill === 'row' && params.slidesPerGroup > 1) {\n var groupIndex = Math.floor(i / (params.slidesPerGroup * params.slidesPerColumn));\n var slideIndexInGroup = i - params.slidesPerColumn * params.slidesPerGroup * groupIndex;\n var columnsInGroup = groupIndex === 0 ? params.slidesPerGroup : Math.min(Math.ceil((slidesLength - groupIndex * slidesPerColumn * params.slidesPerGroup) / slidesPerColumn), params.slidesPerGroup);\n row = Math.floor(slideIndexInGroup / columnsInGroup);\n column = slideIndexInGroup - row * columnsInGroup + groupIndex * params.slidesPerGroup;\n newSlideOrderIndex = column + row * slidesNumberEvenToRows / slidesPerColumn;\n slide.css({\n '-webkit-box-ordinal-group': newSlideOrderIndex,\n '-moz-box-ordinal-group': newSlideOrderIndex,\n '-ms-flex-order': newSlideOrderIndex,\n '-webkit-order': newSlideOrderIndex,\n order: newSlideOrderIndex\n });\n } else if (params.slidesPerColumnFill === 'column') {\n column = Math.floor(i / slidesPerColumn);\n row = i - column * slidesPerColumn;\n\n if (column > numFullColumns || column === numFullColumns && row === slidesPerColumn - 1) {\n row += 1;\n\n if (row >= slidesPerColumn) {\n row = 0;\n column += 1;\n }\n }\n } else {\n row = Math.floor(i / slidesPerRow);\n column = i - row * slidesPerRow;\n }\n\n slide.css(getDirectionLabel('margin-top'), row !== 0 ? params.spaceBetween && params.spaceBetween + \"px\" : '');\n }\n\n if (slide.css('display') === 'none') continue; // eslint-disable-line\n\n if (params.slidesPerView === 'auto') {\n var slideStyles = getComputedStyle(slide[0]);\n var currentTransform = slide[0].style.transform;\n var currentWebKitTransform = slide[0].style.webkitTransform;\n\n if (currentTransform) {\n slide[0].style.transform = 'none';\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = 'none';\n }\n\n if (params.roundLengths) {\n slideSize = swiper.isHorizontal() ? slide.outerWidth(true) : slide.outerHeight(true);\n } else {\n // eslint-disable-next-line\n var width = getDirectionPropertyValue(slideStyles, 'width');\n var paddingLeft = getDirectionPropertyValue(slideStyles, 'padding-left');\n var paddingRight = getDirectionPropertyValue(slideStyles, 'padding-right');\n var marginLeft = getDirectionPropertyValue(slideStyles, 'margin-left');\n var marginRight = getDirectionPropertyValue(slideStyles, 'margin-right');\n var boxSizing = slideStyles.getPropertyValue('box-sizing');\n\n if (boxSizing && boxSizing === 'border-box') {\n slideSize = width + marginLeft + marginRight;\n } else {\n var _slide$ = slide[0],\n clientWidth = _slide$.clientWidth,\n offsetWidth = _slide$.offsetWidth;\n slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);\n }\n }\n\n if (currentTransform) {\n slide[0].style.transform = currentTransform;\n }\n\n if (currentWebKitTransform) {\n slide[0].style.webkitTransform = currentWebKitTransform;\n }\n\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n } else {\n slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;\n if (params.roundLengths) slideSize = Math.floor(slideSize);\n\n if (slides[i]) {\n slides[i].style[getDirectionLabel('width')] = slideSize + \"px\";\n }\n }\n\n if (slides[i]) {\n slides[i].swiperSlideSize = slideSize;\n }\n\n slidesSizesGrid.push(slideSize);\n\n if (params.centeredSlides) {\n slidePosition = slidePosition + slideSize / 2 + prevSlideSize / 2 + spaceBetween;\n if (prevSlideSize === 0 && i !== 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (i === 0) slidePosition = slidePosition - swiperSize / 2 - spaceBetween;\n if (Math.abs(slidePosition) < 1 / 1000) slidePosition = 0;\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if (index % params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n } else {\n if (params.roundLengths) slidePosition = Math.floor(slidePosition);\n if ((index - Math.min(swiper.params.slidesPerGroupSkip, index)) % swiper.params.slidesPerGroup === 0) snapGrid.push(slidePosition);\n slidesGrid.push(slidePosition);\n slidePosition = slidePosition + slideSize + spaceBetween;\n }\n\n swiper.virtualSize += slideSize + spaceBetween;\n prevSlideSize = slideSize;\n index += 1;\n }\n\n swiper.virtualSize = Math.max(swiper.virtualSize, swiperSize) + offsetAfter;\n var newSlidesGrid;\n\n if (rtl && wrongRTL && (params.effect === 'slide' || params.effect === 'coverflow')) {\n $wrapperEl.css({\n width: swiper.virtualSize + params.spaceBetween + \"px\"\n });\n }\n\n if (params.setWrapperSize) {\n var _$wrapperEl$css;\n\n $wrapperEl.css((_$wrapperEl$css = {}, _$wrapperEl$css[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css));\n }\n\n if (params.slidesPerColumn > 1) {\n var _$wrapperEl$css2;\n\n swiper.virtualSize = (slideSize + params.spaceBetween) * slidesNumberEvenToRows;\n swiper.virtualSize = Math.ceil(swiper.virtualSize / params.slidesPerColumn) - params.spaceBetween;\n $wrapperEl.css((_$wrapperEl$css2 = {}, _$wrapperEl$css2[getDirectionLabel('width')] = swiper.virtualSize + params.spaceBetween + \"px\", _$wrapperEl$css2));\n\n if (params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i = 0; _i < snapGrid.length; _i += 1) {\n var slidesGridItem = snapGrid[_i];\n if (params.roundLengths) slidesGridItem = Math.floor(slidesGridItem);\n if (snapGrid[_i] < swiper.virtualSize + snapGrid[0]) newSlidesGrid.push(slidesGridItem);\n }\n\n snapGrid = newSlidesGrid;\n }\n } // Remove last grid elements depending on width\n\n\n if (!params.centeredSlides) {\n newSlidesGrid = [];\n\n for (var _i2 = 0; _i2 < snapGrid.length; _i2 += 1) {\n var _slidesGridItem = snapGrid[_i2];\n if (params.roundLengths) _slidesGridItem = Math.floor(_slidesGridItem);\n\n if (snapGrid[_i2] <= swiper.virtualSize - swiperSize) {\n newSlidesGrid.push(_slidesGridItem);\n }\n }\n\n snapGrid = newSlidesGrid;\n\n if (Math.floor(swiper.virtualSize - swiperSize) - Math.floor(snapGrid[snapGrid.length - 1]) > 1) {\n snapGrid.push(swiper.virtualSize - swiperSize);\n }\n }\n\n if (snapGrid.length === 0) snapGrid = [0];\n\n if (params.spaceBetween !== 0) {\n var _slides$filter$css;\n\n var key = swiper.isHorizontal() && rtl ? 'marginLeft' : getDirectionLabel('marginRight');\n slides.filter(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((_slides$filter$css = {}, _slides$filter$css[key] = spaceBetween + \"px\", _slides$filter$css));\n }\n\n if (params.centeredSlides && params.centeredSlidesBounds) {\n var allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n allSlidesSize -= params.spaceBetween;\n var maxSnap = allSlidesSize - swiperSize;\n snapGrid = snapGrid.map(function (snap) {\n if (snap < 0) return -offsetBefore;\n if (snap > maxSnap) return maxSnap + offsetAfter;\n return snap;\n });\n }\n\n if (params.centerInsufficientSlides) {\n var _allSlidesSize = 0;\n slidesSizesGrid.forEach(function (slideSizeValue) {\n _allSlidesSize += slideSizeValue + (params.spaceBetween ? params.spaceBetween : 0);\n });\n _allSlidesSize -= params.spaceBetween;\n\n if (_allSlidesSize < swiperSize) {\n var allSlidesOffset = (swiperSize - _allSlidesSize) / 2;\n snapGrid.forEach(function (snap, snapIndex) {\n snapGrid[snapIndex] = snap - allSlidesOffset;\n });\n slidesGrid.forEach(function (snap, snapIndex) {\n slidesGrid[snapIndex] = snap + allSlidesOffset;\n });\n }\n }\n\n extend(swiper, {\n slides: slides,\n snapGrid: snapGrid,\n slidesGrid: slidesGrid,\n slidesSizesGrid: slidesSizesGrid\n });\n\n if (slidesLength !== previousSlidesLength) {\n swiper.emit('slidesLengthChange');\n }\n\n if (snapGrid.length !== previousSnapGridLength) {\n if (swiper.params.watchOverflow) swiper.checkOverflow();\n swiper.emit('snapGridLengthChange');\n }\n\n if (slidesGrid.length !== previousSlidesGridLength) {\n swiper.emit('slidesGridLengthChange');\n }\n\n if (params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateSlidesOffset();\n }\n}","export default function updateAutoHeight(speed) {\n var swiper = this;\n var activeSlides = [];\n var 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 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', newHeight + \"px\");\n}","export default function updateSlidesOffset() {\n var swiper = this;\n var slides = swiper.slides;\n\n for (var i = 0; i < slides.length; i += 1) {\n slides[i].swiperSlideOffset = swiper.isHorizontal() ? slides[i].offsetLeft : slides[i].offsetTop;\n }\n}","import $ from '../../../utils/dom';\nexport default function updateSlidesProgress(translate) {\n if (translate === void 0) {\n translate = this && this.translate || 0;\n }\n\n var swiper = this;\n var params = swiper.params;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\n if (slides.length === 0) return;\n if (typeof slides[0].swiperSlideOffset === 'undefined') swiper.updateSlidesOffset();\n var offsetCenter = -translate;\n if (rtl) offsetCenter = translate; // Visible Slides\n\n slides.removeClass(params.slideVisibleClass);\n swiper.visibleSlidesIndexes = [];\n swiper.visibleSlides = [];\n\n for (var i = 0; i < slides.length; i += 1) {\n var slide = slides[i];\n var slideProgress = (offsetCenter + (params.centeredSlides ? swiper.minTranslate() : 0) - slide.swiperSlideOffset) / (slide.swiperSlideSize + params.spaceBetween);\n\n if (params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) {\n var slideBefore = -(offsetCenter - slide.swiperSlideOffset);\n var slideAfter = slideBefore + swiper.slidesSizesGrid[i];\n var isVisible = slideBefore >= 0 && slideBefore < swiper.size - 1 || slideAfter > 1 && slideAfter <= swiper.size || slideBefore <= 0 && slideAfter >= swiper.size;\n\n if (isVisible) {\n swiper.visibleSlides.push(slide);\n swiper.visibleSlidesIndexes.push(i);\n slides.eq(i).addClass(params.slideVisibleClass);\n }\n }\n\n slide.progress = rtl ? -slideProgress : slideProgress;\n }\n\n swiper.visibleSlides = $(swiper.visibleSlides);\n}","import { extend } from '../../../utils/utils';\nexport default function updateProgress(translate) {\n var swiper = this;\n\n if (typeof translate === 'undefined') {\n var multiplier = swiper.rtlTranslate ? -1 : 1; // eslint-disable-next-line\n\n translate = swiper && swiper.translate && swiper.translate * multiplier || 0;\n }\n\n var params = swiper.params;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n var progress = swiper.progress,\n isBeginning = swiper.isBeginning,\n isEnd = swiper.isEnd;\n var wasBeginning = isBeginning;\n var wasEnd = isEnd;\n\n if (translatesDiff === 0) {\n progress = 0;\n isBeginning = true;\n isEnd = true;\n } else {\n progress = (translate - swiper.minTranslate()) / translatesDiff;\n isBeginning = progress <= 0;\n isEnd = progress >= 1;\n }\n\n extend(swiper, {\n progress: progress,\n isBeginning: isBeginning,\n isEnd: isEnd\n });\n if (params.watchSlidesProgress || params.watchSlidesVisibility || params.centeredSlides && params.autoHeight) swiper.updateSlidesProgress(translate);\n\n if (isBeginning && !wasBeginning) {\n swiper.emit('reachBeginning toEdge');\n }\n\n if (isEnd && !wasEnd) {\n swiper.emit('reachEnd toEdge');\n }\n\n if (wasBeginning && !isBeginning || wasEnd && !isEnd) {\n swiper.emit('fromEdge');\n }\n\n swiper.emit('progress', progress);\n}","export default function updateSlidesClasses() {\n var swiper = this;\n var slides = swiper.slides,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex,\n realIndex = swiper.realIndex;\n var isVirtual = swiper.virtual && params.virtual.enabled;\n slides.removeClass(params.slideActiveClass + \" \" + params.slideNextClass + \" \" + params.slidePrevClass + \" \" + params.slideDuplicateActiveClass + \" \" + params.slideDuplicateNextClass + \" \" + params.slideDuplicatePrevClass);\n var activeSlide;\n\n if (isVirtual) {\n activeSlide = swiper.$wrapperEl.find(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + activeIndex + \"\\\"]\");\n } else {\n activeSlide = slides.eq(activeIndex);\n } // Active classes\n\n\n activeSlide.addClass(params.slideActiveClass);\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (activeSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]\").addClass(params.slideDuplicateActiveClass);\n }\n } // Next Slide\n\n\n var nextSlide = activeSlide.nextAll(\".\" + params.slideClass).eq(0).addClass(params.slideNextClass);\n\n if (params.loop && nextSlide.length === 0) {\n nextSlide = slides.eq(0);\n nextSlide.addClass(params.slideNextClass);\n } // Prev Slide\n\n\n var prevSlide = activeSlide.prevAll(\".\" + params.slideClass).eq(0).addClass(params.slidePrevClass);\n\n if (params.loop && prevSlide.length === 0) {\n prevSlide = slides.eq(-1);\n prevSlide.addClass(params.slidePrevClass);\n }\n\n if (params.loop) {\n // Duplicate to all looped slides\n if (nextSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + nextSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicateNextClass);\n }\n\n if (prevSlide.hasClass(params.slideDuplicateClass)) {\n $wrapperEl.children(\".\" + params.slideClass + \":not(.\" + params.slideDuplicateClass + \")[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n } else {\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + prevSlide.attr('data-swiper-slide-index') + \"\\\"]\").addClass(params.slideDuplicatePrevClass);\n }\n }\n\n swiper.emitSlidesClasses();\n}","import { extend } from '../../../utils/utils';\nexport default function updateActiveIndex(newActiveIndex) {\n var swiper = this;\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n var slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n params = swiper.params,\n previousIndex = swiper.activeIndex,\n previousRealIndex = swiper.realIndex,\n previousSnapIndex = swiper.snapIndex;\n var activeIndex = newActiveIndex;\n var snapIndex;\n\n if (typeof activeIndex === 'undefined') {\n for (var i = 0; i < slidesGrid.length; i += 1) {\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1] - (slidesGrid[i + 1] - slidesGrid[i]) / 2) {\n activeIndex = i;\n } else if (translate >= slidesGrid[i] && translate < slidesGrid[i + 1]) {\n activeIndex = i + 1;\n }\n } else if (translate >= slidesGrid[i]) {\n activeIndex = i;\n }\n } // Normalize slideIndex\n\n\n if (params.normalizeSlideIndex) {\n if (activeIndex < 0 || typeof activeIndex === 'undefined') activeIndex = 0;\n }\n }\n\n if (snapGrid.indexOf(translate) >= 0) {\n snapIndex = snapGrid.indexOf(translate);\n } else {\n var skip = Math.min(params.slidesPerGroupSkip, activeIndex);\n snapIndex = skip + Math.floor((activeIndex - skip) / params.slidesPerGroup);\n }\n\n if (snapIndex >= snapGrid.length) snapIndex = snapGrid.length - 1;\n\n if (activeIndex === previousIndex) {\n if (snapIndex !== previousSnapIndex) {\n swiper.snapIndex = snapIndex;\n swiper.emit('snapIndexChange');\n }\n\n return;\n } // Get real index\n\n\n var realIndex = parseInt(swiper.slides.eq(activeIndex).attr('data-swiper-slide-index') || activeIndex, 10);\n extend(swiper, {\n snapIndex: snapIndex,\n realIndex: realIndex,\n previousIndex: previousIndex,\n activeIndex: activeIndex\n });\n swiper.emit('activeIndexChange');\n swiper.emit('snapIndexChange');\n\n if (previousRealIndex !== realIndex) {\n swiper.emit('realIndexChange');\n }\n\n if (swiper.initialized || swiper.params.runCallbacksOnInit) {\n swiper.emit('slideChange');\n }\n}","import $ from '../../../utils/dom';\nexport default function updateClickedSlide(e) {\n var swiper = this;\n var params = swiper.params;\n var slide = $(e.target).closest(\".\" + params.slideClass)[0];\n var slideFound = false;\n var slideIndex;\n\n if (slide) {\n for (var i = 0; i < swiper.slides.length; i += 1) {\n if (swiper.slides[i] === slide) {\n slideFound = true;\n slideIndex = i;\n break;\n }\n }\n }\n\n if (slide && slideFound) {\n swiper.clickedSlide = slide;\n\n if (swiper.virtual && swiper.params.virtual.enabled) {\n swiper.clickedIndex = parseInt($(slide).attr('data-swiper-slide-index'), 10);\n } else {\n swiper.clickedIndex = slideIndex;\n }\n } else {\n swiper.clickedSlide = undefined;\n swiper.clickedIndex = undefined;\n return;\n }\n\n if (params.slideToClickedSlide && swiper.clickedIndex !== undefined && swiper.clickedIndex !== swiper.activeIndex) {\n swiper.slideToClickedSlide();\n }\n}","import updateSize from './updateSize';\nimport updateSlides from './updateSlides';\nimport updateAutoHeight from './updateAutoHeight';\nimport updateSlidesOffset from './updateSlidesOffset';\nimport updateSlidesProgress from './updateSlidesProgress';\nimport updateProgress from './updateProgress';\nimport updateSlidesClasses from './updateSlidesClasses';\nimport updateActiveIndex from './updateActiveIndex';\nimport updateClickedSlide from './updateClickedSlide';\nexport default {\n updateSize: updateSize,\n updateSlides: updateSlides,\n updateAutoHeight: updateAutoHeight,\n updateSlidesOffset: updateSlidesOffset,\n updateSlidesProgress: updateSlidesProgress,\n updateProgress: updateProgress,\n updateSlidesClasses: updateSlidesClasses,\n updateActiveIndex: updateActiveIndex,\n updateClickedSlide: updateClickedSlide\n};","import { getTranslate } from '../../../utils/utils';\nexport default function getSwiperTranslate(axis) {\n if (axis === void 0) {\n axis = this.isHorizontal() ? 'x' : 'y';\n }\n\n var swiper = this;\n var params = swiper.params,\n rtl = swiper.rtlTranslate,\n translate = swiper.translate,\n $wrapperEl = swiper.$wrapperEl;\n\n if (params.virtualTranslate) {\n return rtl ? -translate : translate;\n }\n\n if (params.cssMode) {\n return translate;\n }\n\n var currentTranslate = getTranslate($wrapperEl[0], axis);\n if (rtl) currentTranslate = -currentTranslate;\n return currentTranslate || 0;\n}","export default function setTranslate(translate, byController) {\n var swiper = this;\n var rtl = swiper.rtlTranslate,\n params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n wrapperEl = swiper.wrapperEl,\n progress = swiper.progress;\n var x = 0;\n var y = 0;\n var z = 0;\n\n if (swiper.isHorizontal()) {\n x = rtl ? -translate : translate;\n } else {\n y = translate;\n }\n\n if (params.roundLengths) {\n x = Math.floor(x);\n y = Math.floor(y);\n }\n\n if (params.cssMode) {\n wrapperEl[swiper.isHorizontal() ? 'scrollLeft' : 'scrollTop'] = swiper.isHorizontal() ? -x : -y;\n } else if (!params.virtualTranslate) {\n $wrapperEl.transform(\"translate3d(\" + x + \"px, \" + y + \"px, \" + z + \"px)\");\n }\n\n swiper.previousTranslate = swiper.translate;\n swiper.translate = swiper.isHorizontal() ? x : y; // Check if we need to update progress\n\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== progress) {\n swiper.updateProgress(translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, byController);\n}","export default function minTranslate() {\n return -this.snapGrid[0];\n}","export default function maxTranslate() {\n return -this.snapGrid[this.snapGrid.length - 1];\n}","export default function translateTo(translate, speed, runCallbacks, translateBounds, internal) {\n if (translate === void 0) {\n translate = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (translateBounds === void 0) {\n translateBounds = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n wrapperEl = swiper.wrapperEl;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return false;\n }\n\n var minTranslate = swiper.minTranslate();\n var maxTranslate = swiper.maxTranslate();\n var newTranslate;\n if (translateBounds && translate > minTranslate) newTranslate = minTranslate;else if (translateBounds && translate < maxTranslate) newTranslate = maxTranslate;else newTranslate = translate; // Update progress\n\n swiper.updateProgress(newTranslate);\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = -newTranslate, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -newTranslate;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionEnd');\n }\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(newTranslate);\n\n if (runCallbacks) {\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.emit('transitionStart');\n }\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onTranslateToWrapperTransitionEnd) {\n swiper.onTranslateToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n swiper.onTranslateToWrapperTransitionEnd = null;\n delete swiper.onTranslateToWrapperTransitionEnd;\n\n if (runCallbacks) {\n swiper.emit('transitionEnd');\n }\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onTranslateToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onTranslateToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","import getTranslate from './getTranslate';\nimport setTranslate from './setTranslate';\nimport minTranslate from './minTranslate';\nimport maxTranslate from './maxTranslate';\nimport translateTo from './translateTo';\nexport default {\n getTranslate: getTranslate,\n setTranslate: setTranslate,\n minTranslate: minTranslate,\n maxTranslate: maxTranslate,\n translateTo: translateTo\n};","export default function setTransition(duration, byController) {\n var swiper = this;\n\n if (!swiper.params.cssMode) {\n swiper.$wrapperEl.transition(duration);\n }\n\n swiper.emit('setTransition', duration, byController);\n}","export default function transitionStart(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n params = swiper.params,\n previousIndex = swiper.previousIndex;\n if (params.cssMode) return;\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionStart');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionStart');\n return;\n }\n\n swiper.emit('slideChangeTransitionStart');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionStart');\n } else {\n swiper.emit('slidePrevTransitionStart');\n }\n }\n}","export default function transitionEnd(runCallbacks, direction) {\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n previousIndex = swiper.previousIndex,\n params = swiper.params;\n swiper.animating = false;\n if (params.cssMode) return;\n swiper.setTransition(0);\n var dir = direction;\n\n if (!dir) {\n if (activeIndex > previousIndex) dir = 'next';else if (activeIndex < previousIndex) dir = 'prev';else dir = 'reset';\n }\n\n swiper.emit('transitionEnd');\n\n if (runCallbacks && activeIndex !== previousIndex) {\n if (dir === 'reset') {\n swiper.emit('slideResetTransitionEnd');\n return;\n }\n\n swiper.emit('slideChangeTransitionEnd');\n\n if (dir === 'next') {\n swiper.emit('slideNextTransitionEnd');\n } else {\n swiper.emit('slidePrevTransitionEnd');\n }\n }\n}","import setTransition from './setTransition';\nimport transitionStart from './transitionStart';\nimport transitionEnd from './transitionEnd';\nexport default {\n setTransition: setTransition,\n transitionStart: transitionStart,\n transitionEnd: transitionEnd\n};","export default function slideTo(index, speed, runCallbacks, internal, initial) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (typeof index !== 'number' && typeof index !== 'string') {\n throw new Error(\"The 'index' argument cannot have type other than 'number' or 'string'. [\" + typeof index + \"] given.\");\n }\n\n if (typeof index === 'string') {\n /**\n * The `index` argument converted from `string` to `number`.\n * @type {number}\n */\n var indexAsNumber = parseInt(index, 10);\n /**\n * Determines whether the `index` argument is a valid `number`\n * after being converted from the `string` type.\n * @type {boolean}\n */\n\n var isValidNumber = isFinite(indexAsNumber);\n\n if (!isValidNumber) {\n throw new Error(\"The passed-in 'index' (string) couldn't be converted to 'number'. [\" + index + \"] given.\");\n } // Knowing that the converted `index` is a valid number,\n // we can update the original argument's value.\n\n\n index = indexAsNumber;\n }\n\n var swiper = this;\n var slideIndex = index;\n if (slideIndex < 0) slideIndex = 0;\n var params = swiper.params,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n previousIndex = swiper.previousIndex,\n activeIndex = swiper.activeIndex,\n rtl = swiper.rtlTranslate,\n wrapperEl = swiper.wrapperEl,\n 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 normalizedGird = Math.floor(slidesGrid[i] * 100);\n var normalizedGridNext = Math.floor(slidesGrid[i + 1] * 100);\n\n if (typeof slidesGrid[i + 1] !== 'undefined') {\n if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext - (normalizedGridNext - normalizedGird) / 2) {\n slideIndex = i;\n } else if (normalizedTranslate >= normalizedGird && normalizedTranslate < normalizedGridNext) {\n slideIndex = i + 1;\n }\n } else if (normalizedTranslate >= normalizedGird) {\n slideIndex = i;\n }\n }\n } // Directions locks\n\n\n if (swiper.initialized && slideIndex !== activeIndex) {\n if (!swiper.allowSlideNext && translate < swiper.translate && translate < swiper.minTranslate()) {\n return false;\n }\n\n if (!swiper.allowSlidePrev && translate > swiper.translate && translate > swiper.maxTranslate()) {\n if ((activeIndex || 0) !== slideIndex) return false;\n }\n }\n\n var direction;\n if (slideIndex > activeIndex) direction = 'next';else if (slideIndex < activeIndex) direction = 'prev';else direction = 'reset'; // Update Index\n\n if (rtl && -translate === swiper.translate || !rtl && translate === swiper.translate) {\n swiper.updateActiveIndex(slideIndex); // Update Height\n\n if (params.autoHeight) {\n swiper.updateAutoHeight();\n }\n\n swiper.updateSlidesClasses();\n\n if (params.effect !== 'slide') {\n swiper.setTranslate(translate);\n }\n\n if (direction !== 'reset') {\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n }\n\n return false;\n }\n\n if (params.cssMode) {\n var isH = swiper.isHorizontal();\n var t = -translate;\n\n if (rtl) {\n t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t;\n }\n\n if (speed === 0) {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n } else {\n // eslint-disable-next-line\n if (wrapperEl.scrollTo) {\n var _wrapperEl$scrollTo;\n\n wrapperEl.scrollTo((_wrapperEl$scrollTo = {}, _wrapperEl$scrollTo[isH ? 'left' : 'top'] = t, _wrapperEl$scrollTo.behavior = 'smooth', _wrapperEl$scrollTo));\n } else {\n wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t;\n }\n }\n\n return true;\n }\n\n if (speed === 0) {\n swiper.setTransition(0);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n swiper.transitionEnd(runCallbacks, direction);\n } else {\n swiper.setTransition(speed);\n swiper.setTranslate(translate);\n swiper.updateActiveIndex(slideIndex);\n swiper.updateSlidesClasses();\n swiper.emit('beforeTransitionStart', speed, internal);\n swiper.transitionStart(runCallbacks, direction);\n\n if (!swiper.animating) {\n swiper.animating = true;\n\n if (!swiper.onSlideToWrapperTransitionEnd) {\n swiper.onSlideToWrapperTransitionEnd = function transitionEnd(e) {\n if (!swiper || swiper.destroyed) return;\n if (e.target !== this) return;\n swiper.$wrapperEl[0].removeEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].removeEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n swiper.onSlideToWrapperTransitionEnd = null;\n delete swiper.onSlideToWrapperTransitionEnd;\n swiper.transitionEnd(runCallbacks, direction);\n };\n }\n\n swiper.$wrapperEl[0].addEventListener('transitionend', swiper.onSlideToWrapperTransitionEnd);\n swiper.$wrapperEl[0].addEventListener('webkitTransitionEnd', swiper.onSlideToWrapperTransitionEnd);\n }\n }\n\n return true;\n}","export default function slideToLoop(index, speed, runCallbacks, internal) {\n if (index === void 0) {\n index = 0;\n }\n\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var newIndex = index;\n\n if (swiper.params.loop) {\n newIndex += swiper.loopedSlides;\n }\n\n return swiper.slideTo(newIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideNext(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n enabled = swiper.enabled;\n if (!enabled) return swiper;\n var increment = swiper.activeIndex < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup;\n\n if (params.loop) {\n if (animating && params.loopPreventsSlide) return false;\n swiper.loopFix(); // eslint-disable-next-line\n\n swiper._clientLeft = swiper.$wrapperEl[0].clientLeft;\n }\n\n return swiper.slideTo(swiper.activeIndex + increment, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slidePrev(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n animating = swiper.animating,\n snapGrid = swiper.snapGrid,\n slidesGrid = swiper.slidesGrid,\n rtlTranslate = swiper.rtlTranslate,\n 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 snapGrid.forEach(function (snap) {\n if (!prevSnap && normalizedTranslate >= snap) prevSnap = snap;\n });\n }\n\n var prevIndex;\n\n if (typeof prevSnap !== 'undefined') {\n prevIndex = slidesGrid.indexOf(prevSnap);\n if (prevIndex < 0) prevIndex = swiper.activeIndex - 1;\n }\n\n return swiper.slideTo(prevIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideReset(speed, runCallbacks, internal) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n var swiper = this;\n return swiper.slideTo(swiper.activeIndex, speed, runCallbacks, internal);\n}","/* eslint no-unused-vars: \"off\" */\nexport default function slideToClosest(speed, runCallbacks, internal, threshold) {\n if (speed === void 0) {\n speed = this.params.speed;\n }\n\n if (runCallbacks === void 0) {\n runCallbacks = true;\n }\n\n if (threshold === void 0) {\n threshold = 0.5;\n }\n\n var swiper = this;\n var index = swiper.activeIndex;\n var skip = Math.min(swiper.params.slidesPerGroupSkip, index);\n var snapIndex = skip + Math.floor((index - skip) / swiper.params.slidesPerGroup);\n var translate = swiper.rtlTranslate ? swiper.translate : -swiper.translate;\n\n if (translate >= swiper.snapGrid[snapIndex]) {\n // The current translate is on or after the current snap index, so the choice\n // is between the current index and the one after it.\n var currentSnap = swiper.snapGrid[snapIndex];\n var nextSnap = swiper.snapGrid[snapIndex + 1];\n\n if (translate - currentSnap > (nextSnap - currentSnap) * threshold) {\n index += swiper.params.slidesPerGroup;\n }\n } else {\n // The current translate is before the current snap index, so the choice\n // is between the current index and the one before it.\n var prevSnap = swiper.snapGrid[snapIndex - 1];\n var _currentSnap = swiper.snapGrid[snapIndex];\n\n if (translate - prevSnap <= (_currentSnap - prevSnap) * threshold) {\n index -= swiper.params.slidesPerGroup;\n }\n }\n\n index = Math.max(index, 0);\n index = Math.min(index, swiper.slidesGrid.length - 1);\n return swiper.slideTo(index, speed, runCallbacks, internal);\n}","import $ from '../../../utils/dom';\nimport { nextTick } from '../../../utils/utils';\nexport default function slideToClickedSlide() {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl;\n var slidesPerView = params.slidesPerView === 'auto' ? swiper.slidesPerViewDynamic() : params.slidesPerView;\n var slideToIndex = swiper.clickedIndex;\n var realIndex;\n\n if (params.loop) {\n if (swiper.animating) return;\n realIndex = parseInt($(swiper.clickedSlide).attr('data-swiper-slide-index'), 10);\n\n if (params.centeredSlides) {\n if (slideToIndex < swiper.loopedSlides - slidesPerView / 2 || slideToIndex > swiper.slides.length - swiper.loopedSlides + slidesPerView / 2) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else if (slideToIndex > swiper.slides.length - slidesPerView) {\n swiper.loopFix();\n slideToIndex = $wrapperEl.children(\".\" + params.slideClass + \"[data-swiper-slide-index=\\\"\" + realIndex + \"\\\"]:not(.\" + params.slideDuplicateClass + \")\").eq(0).index();\n nextTick(function () {\n swiper.slideTo(slideToIndex);\n });\n } else {\n swiper.slideTo(slideToIndex);\n }\n } else {\n swiper.slideTo(slideToIndex);\n }\n}","import slideTo from './slideTo';\nimport slideToLoop from './slideToLoop';\nimport slideNext from './slideNext';\nimport slidePrev from './slidePrev';\nimport slideReset from './slideReset';\nimport slideToClosest from './slideToClosest';\nimport slideToClickedSlide from './slideToClickedSlide';\nexport default {\n slideTo: slideTo,\n slideToLoop: slideToLoop,\n slideNext: slideNext,\n slidePrev: slidePrev,\n slideReset: slideReset,\n slideToClosest: slideToClosest,\n slideToClickedSlide: slideToClickedSlide\n};","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loopCreate() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl; // Remove duplicated slides\n\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass).remove();\n var slides = $wrapperEl.children(\".\" + params.slideClass);\n\n if (params.loopFillGroupWithBlank) {\n var blankSlidesNum = params.slidesPerGroup - slides.length % params.slidesPerGroup;\n\n if (blankSlidesNum !== params.slidesPerGroup) {\n for (var i = 0; i < blankSlidesNum; i += 1) {\n var blankNode = $(document.createElement('div')).addClass(params.slideClass + \" \" + params.slideBlankClass);\n $wrapperEl.append(blankNode);\n }\n\n slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n }\n\n if (params.slidesPerView === 'auto' && !params.loopedSlides) params.loopedSlides = slides.length;\n swiper.loopedSlides = Math.ceil(parseFloat(params.loopedSlides || params.slidesPerView, 10));\n swiper.loopedSlides += params.loopAdditionalSlides;\n\n if (swiper.loopedSlides > slides.length) {\n swiper.loopedSlides = slides.length;\n }\n\n var prependSlides = [];\n var appendSlides = [];\n slides.each(function (el, index) {\n var slide = $(el);\n\n if (index < swiper.loopedSlides) {\n appendSlides.push(el);\n }\n\n if (index < slides.length && index >= slides.length - swiper.loopedSlides) {\n prependSlides.push(el);\n }\n\n slide.attr('data-swiper-slide-index', index);\n });\n\n for (var _i = 0; _i < appendSlides.length; _i += 1) {\n $wrapperEl.append($(appendSlides[_i].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n\n for (var _i2 = prependSlides.length - 1; _i2 >= 0; _i2 -= 1) {\n $wrapperEl.prepend($(prependSlides[_i2].cloneNode(true)).addClass(params.slideDuplicateClass));\n }\n}","export default function loopFix() {\n var swiper = this;\n swiper.emit('beforeLoopFix');\n var activeIndex = swiper.activeIndex,\n slides = swiper.slides,\n loopedSlides = swiper.loopedSlides,\n allowSlidePrev = swiper.allowSlidePrev,\n allowSlideNext = swiper.allowSlideNext,\n snapGrid = swiper.snapGrid,\n rtl = swiper.rtlTranslate;\n var newIndex;\n swiper.allowSlidePrev = true;\n swiper.allowSlideNext = true;\n var snapTranslate = -snapGrid[activeIndex];\n var diff = snapTranslate - swiper.getTranslate(); // Fix For Negative Oversliding\n\n if (activeIndex < loopedSlides) {\n newIndex = slides.length - loopedSlides * 3 + activeIndex;\n newIndex += loopedSlides;\n var slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n } else if (activeIndex >= slides.length - loopedSlides) {\n // Fix For Positive Oversliding\n newIndex = -slides.length + activeIndex + loopedSlides;\n newIndex += loopedSlides;\n\n var _slideChanged = swiper.slideTo(newIndex, 0, false, true);\n\n if (_slideChanged && diff !== 0) {\n swiper.setTranslate((rtl ? -swiper.translate : swiper.translate) - diff);\n }\n }\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n swiper.emit('loopFix');\n}","export default function loopDestroy() {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n slides = swiper.slides;\n $wrapperEl.children(\".\" + params.slideClass + \".\" + params.slideDuplicateClass + \",.\" + params.slideClass + \".\" + params.slideBlankClass).remove();\n slides.removeAttr('data-swiper-slide-index');\n}","import loopCreate from './loopCreate';\nimport loopFix from './loopFix';\nimport loopDestroy from './loopDestroy';\nexport default {\n loopCreate: loopCreate,\n loopFix: loopFix,\n loopDestroy: loopDestroy\n};","export default function setGrabCursor(moving) {\n var swiper = this;\n if (swiper.support.touch || !swiper.params.simulateTouch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) return;\n var el = swiper.el;\n el.style.cursor = 'move';\n el.style.cursor = moving ? '-webkit-grabbing' : '-webkit-grab';\n el.style.cursor = moving ? '-moz-grabbin' : '-moz-grab';\n el.style.cursor = moving ? 'grabbing' : 'grab';\n}","export default function unsetGrabCursor() {\n var swiper = this;\n\n if (swiper.support.touch || swiper.params.watchOverflow && swiper.isLocked || swiper.params.cssMode) {\n return;\n }\n\n swiper.el.style.cursor = '';\n}","import setGrabCursor from './setGrabCursor';\nimport unsetGrabCursor from './unsetGrabCursor';\nexport default {\n setGrabCursor: setGrabCursor,\n unsetGrabCursor: unsetGrabCursor\n};","export default function appendSlide(slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.append(slides[i]);\n }\n } else {\n $wrapperEl.append(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n}","export default function prependSlide(slides) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n\n if (params.loop) {\n swiper.loopDestroy();\n }\n\n var newActiveIndex = activeIndex + 1;\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var i = 0; i < slides.length; i += 1) {\n if (slides[i]) $wrapperEl.prepend(slides[i]);\n }\n\n newActiveIndex = activeIndex + slides.length;\n } else {\n $wrapperEl.prepend(slides);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n swiper.slideTo(newActiveIndex, 0, false);\n}","export default function addSlide(index, slides) {\n var swiper = this;\n var $wrapperEl = swiper.$wrapperEl,\n params = swiper.params,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var baseLength = swiper.slides.length;\n\n if (index <= 0) {\n swiper.prependSlide(slides);\n return;\n }\n\n if (index >= baseLength) {\n swiper.appendSlide(slides);\n return;\n }\n\n var newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + 1 : activeIndexBuffer;\n var slidesBuffer = [];\n\n for (var i = baseLength - 1; i >= index; i -= 1) {\n var currentSlide = swiper.slides.eq(i);\n currentSlide.remove();\n slidesBuffer.unshift(currentSlide);\n }\n\n if (typeof slides === 'object' && 'length' in slides) {\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (slides[_i]) $wrapperEl.append(slides[_i]);\n }\n\n newActiveIndex = activeIndexBuffer > index ? activeIndexBuffer + slides.length : activeIndexBuffer;\n } else {\n $wrapperEl.append(slides);\n }\n\n for (var _i2 = 0; _i2 < slidesBuffer.length; _i2 += 1) {\n $wrapperEl.append(slidesBuffer[_i2]);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeSlide(slidesIndexes) {\n var swiper = this;\n var params = swiper.params,\n $wrapperEl = swiper.$wrapperEl,\n activeIndex = swiper.activeIndex;\n var activeIndexBuffer = activeIndex;\n\n if (params.loop) {\n activeIndexBuffer -= swiper.loopedSlides;\n swiper.loopDestroy();\n swiper.slides = $wrapperEl.children(\".\" + params.slideClass);\n }\n\n var newActiveIndex = activeIndexBuffer;\n var indexToRemove;\n\n if (typeof slidesIndexes === 'object' && 'length' in slidesIndexes) {\n for (var i = 0; i < slidesIndexes.length; i += 1) {\n indexToRemove = slidesIndexes[i];\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n }\n\n newActiveIndex = Math.max(newActiveIndex, 0);\n } else {\n indexToRemove = slidesIndexes;\n if (swiper.slides[indexToRemove]) swiper.slides.eq(indexToRemove).remove();\n if (indexToRemove < newActiveIndex) newActiveIndex -= 1;\n newActiveIndex = Math.max(newActiveIndex, 0);\n }\n\n if (params.loop) {\n swiper.loopCreate();\n }\n\n if (!(params.observer && swiper.support.observer)) {\n swiper.update();\n }\n\n if (params.loop) {\n swiper.slideTo(newActiveIndex + swiper.loopedSlides, 0, false);\n } else {\n swiper.slideTo(newActiveIndex, 0, false);\n }\n}","export default function removeAllSlides() {\n var swiper = this;\n var slidesIndexes = [];\n\n for (var i = 0; i < swiper.slides.length; i += 1) {\n slidesIndexes.push(i);\n }\n\n swiper.removeSlide(slidesIndexes);\n}","import appendSlide from './appendSlide';\nimport prependSlide from './prependSlide';\nimport addSlide from './addSlide';\nimport removeSlide from './removeSlide';\nimport removeAllSlides from './removeAllSlides';\nexport default {\n appendSlide: appendSlide,\n prependSlide: prependSlide,\n addSlide: addSlide,\n removeSlide: removeSlide,\n removeAllSlides: removeAllSlides\n};","import { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchStart(event) {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n enabled = swiper.enabled;\n if (!enabled) return;\n\n if (swiper.animating && params.preventInteractionOnTransition) {\n return;\n }\n\n var e = event;\n if (e.originalEvent) e = e.originalEvent;\n var $targetEl = $(e.target);\n\n if (params.touchEventsTarget === 'wrapper') {\n if (!$targetEl.closest(swiper.wrapperEl).length) return;\n }\n\n data.isTouchEvent = e.type === 'touchstart';\n if (!data.isTouchEvent && 'which' in e && e.which === 3) return;\n if (!data.isTouchEvent && 'button' in e && e.button > 0) return;\n if (data.isTouched && data.isMoved) return; // change target el for shadow root 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 if (params.noSwiping && $targetEl.closest(params.noSwipingSelector ? params.noSwipingSelector : \".\" + params.noSwipingClass)[0]) {\n swiper.allowClick = true;\n return;\n }\n\n if (params.swipeHandler) {\n if (!$targetEl.closest(params.swipeHandler)[0]) return;\n }\n\n touches.currentX = e.type === 'touchstart' ? e.targetTouches[0].pageX : e.pageX;\n touches.currentY = e.type === 'touchstart' ? e.targetTouches[0].pageY : e.pageY;\n var startX = touches.currentX;\n var startY = touches.currentY; // Do NOT start if iOS edge swipe is detected. Otherwise iOS app cannot swipe-to-go-back anymore\n\n var edgeSwipeDetection = params.edgeSwipeDetection || params.iOSEdgeSwipeDetection;\n var edgeSwipeThreshold = params.edgeSwipeThreshold || params.iOSEdgeSwipeThreshold;\n\n if (edgeSwipeDetection && (startX <= edgeSwipeThreshold || startX >= window.innerWidth - edgeSwipeThreshold)) {\n if (edgeSwipeDetection === 'prevent') {\n event.preventDefault();\n } else {\n return;\n }\n }\n\n extend(data, {\n isTouched: true,\n isMoved: false,\n allowTouchCallbacks: true,\n isScrolling: undefined,\n startMoving: undefined\n });\n touches.startX = startX;\n touches.startY = startY;\n data.touchStartTime = now();\n swiper.allowClick = true;\n swiper.updateSize();\n swiper.swipeDirection = undefined;\n if (params.threshold > 0) data.allowThresholdMove = false;\n\n if (e.type !== 'touchstart') {\n var preventDefault = true;\n if ($targetEl.is(data.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}","import { getDocument } from 'ssr-window';\nimport $ from '../../../utils/dom';\nimport { extend, now } from '../../../utils/utils';\nexport default function onTouchMove(event) {\n var document = getDocument();\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n 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 extend(touches, {\n startX: pageX,\n startY: pageY,\n currentX: pageX,\n currentY: pageY\n });\n data.touchStartTime = now();\n }\n\n return;\n }\n\n if (data.isTouchEvent && params.touchReleaseOnEdges && !params.loop) {\n if (swiper.isVertical()) {\n // Vertical\n if (pageY < touches.startY && swiper.translate <= swiper.maxTranslate() || pageY > touches.startY && swiper.translate >= swiper.minTranslate()) {\n data.isTouched = false;\n data.isMoved = false;\n return;\n }\n } else if (pageX < touches.startX && swiper.translate <= swiper.maxTranslate() || pageX > touches.startX && swiper.translate >= swiper.minTranslate()) {\n return;\n }\n }\n\n if (data.isTouchEvent && document.activeElement) {\n if (e.target === document.activeElement && $(e.target).is(data.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) {\n swiper.loopFix();\n }\n\n data.startTranslate = swiper.getTranslate();\n swiper.setTransition(0);\n\n if (swiper.animating) {\n swiper.$wrapperEl.trigger('webkitTransitionEnd transitionend');\n }\n\n data.allowMomentumBounce = false; // Grab Cursor\n\n if (params.grabCursor && (swiper.allowSlideNext === true || swiper.allowSlidePrev === true)) {\n swiper.setGrabCursor(true);\n }\n\n swiper.emit('sliderFirstMove', e);\n }\n\n swiper.emit('sliderMove', e);\n data.isMoved = true;\n var diff = swiper.isHorizontal() ? diffX : diffY;\n touches.diff = diff;\n diff *= params.touchRatio;\n if (rtl) diff = -diff;\n swiper.swipeDirection = diff > 0 ? 'prev' : 'next';\n data.currentTranslate = diff + data.startTranslate;\n var disableParentSwiper = true;\n var resistanceRatio = params.resistanceRatio;\n\n if (params.touchReleaseOnEdges) {\n resistanceRatio = 0;\n }\n\n if (diff > 0 && data.currentTranslate > swiper.minTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.minTranslate() - 1 + Math.pow(-swiper.minTranslate() + data.startTranslate + diff, resistanceRatio);\n } else if (diff < 0 && data.currentTranslate < swiper.maxTranslate()) {\n disableParentSwiper = false;\n if (params.resistance) data.currentTranslate = swiper.maxTranslate() + 1 - Math.pow(swiper.maxTranslate() - data.startTranslate - diff, resistanceRatio);\n }\n\n if (disableParentSwiper) {\n e.preventedByNestedSwiper = true;\n } // Directions locks\n\n\n if (!swiper.allowSlideNext && swiper.swipeDirection === 'next' && data.currentTranslate < data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && swiper.swipeDirection === 'prev' && data.currentTranslate > data.startTranslate) {\n data.currentTranslate = data.startTranslate;\n }\n\n if (!swiper.allowSlidePrev && !swiper.allowSlideNext) {\n data.currentTranslate = data.startTranslate;\n } // Threshold\n\n\n if (params.threshold > 0) {\n if (Math.abs(diff) > params.threshold || data.allowThresholdMove) {\n if (!data.allowThresholdMove) {\n data.allowThresholdMove = true;\n touches.startX = touches.currentX;\n touches.startY = touches.currentY;\n data.currentTranslate = data.startTranslate;\n touches.diff = swiper.isHorizontal() ? touches.currentX - touches.startX : touches.currentY - touches.startY;\n return;\n }\n } else {\n data.currentTranslate = data.startTranslate;\n return;\n }\n }\n\n if (!params.followFinger || params.cssMode) return; // Update active index in free mode\n\n if (params.freeMode || params.watchSlidesProgress || params.watchSlidesVisibility) {\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n if (params.freeMode) {\n // Velocity\n if (data.velocities.length === 0) {\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'startX' : 'startY'],\n time: data.touchStartTime\n });\n }\n\n data.velocities.push({\n position: touches[swiper.isHorizontal() ? 'currentX' : 'currentY'],\n time: now()\n });\n } // Update progress\n\n\n swiper.updateProgress(data.currentTranslate); // Update translate\n\n swiper.setTranslate(data.currentTranslate);\n}","import { now, nextTick } from '../../../utils/utils';\nexport default function onTouchEnd(event) {\n var swiper = this;\n var data = swiper.touchEventsData;\n var params = swiper.params,\n touches = swiper.touches,\n rtl = swiper.rtlTranslate,\n $wrapperEl = swiper.$wrapperEl,\n slidesGrid = swiper.slidesGrid,\n snapGrid = swiper.snapGrid,\n 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 (params.freeMode) {\n if (currentPos < -swiper.minTranslate()) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (currentPos > -swiper.maxTranslate()) {\n if (swiper.slides.length < snapGrid.length) {\n swiper.slideTo(snapGrid.length - 1);\n } else {\n swiper.slideTo(swiper.slides.length - 1);\n }\n\n return;\n }\n\n if (params.freeModeMomentum) {\n if (data.velocities.length > 1) {\n var lastMoveEvent = data.velocities.pop();\n var velocityEvent = data.velocities.pop();\n var distance = lastMoveEvent.position - velocityEvent.position;\n var time = lastMoveEvent.time - velocityEvent.time;\n swiper.velocity = distance / time;\n swiper.velocity /= 2;\n\n if (Math.abs(swiper.velocity) < params.freeModeMinimumVelocity) {\n swiper.velocity = 0;\n } // this implies that the user stopped moving a finger then released.\n // There would be no events with distance zero, so the last event is stale.\n\n\n if (time > 150 || now() - lastMoveEvent.time > 300) {\n swiper.velocity = 0;\n }\n } else {\n swiper.velocity = 0;\n }\n\n swiper.velocity *= params.freeModeMomentumVelocityRatio;\n data.velocities.length = 0;\n var momentumDuration = 1000 * params.freeModeMomentumRatio;\n var momentumDistance = swiper.velocity * momentumDuration;\n var newPosition = swiper.translate + momentumDistance;\n if (rtl) newPosition = -newPosition;\n var doBounce = false;\n var afterBouncePosition;\n var bounceAmount = Math.abs(swiper.velocity) * 20 * params.freeModeMomentumBounceRatio;\n var needsLoopFix;\n\n if (newPosition < swiper.maxTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition + swiper.maxTranslate() < -bounceAmount) {\n newPosition = swiper.maxTranslate() - bounceAmount;\n }\n\n afterBouncePosition = swiper.maxTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.maxTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (newPosition > swiper.minTranslate()) {\n if (params.freeModeMomentumBounce) {\n if (newPosition - swiper.minTranslate() > bounceAmount) {\n newPosition = swiper.minTranslate() + bounceAmount;\n }\n\n afterBouncePosition = swiper.minTranslate();\n doBounce = true;\n data.allowMomentumBounce = true;\n } else {\n newPosition = swiper.minTranslate();\n }\n\n if (params.loop && params.centeredSlides) needsLoopFix = true;\n } else if (params.freeModeSticky) {\n var nextSlide;\n\n for (var j = 0; j < snapGrid.length; j += 1) {\n if (snapGrid[j] > -newPosition) {\n nextSlide = j;\n break;\n }\n }\n\n if (Math.abs(snapGrid[nextSlide] - newPosition) < Math.abs(snapGrid[nextSlide - 1] - newPosition) || swiper.swipeDirection === 'next') {\n newPosition = snapGrid[nextSlide];\n } else {\n newPosition = snapGrid[nextSlide - 1];\n }\n\n newPosition = -newPosition;\n }\n\n if (needsLoopFix) {\n swiper.once('transitionEnd', function () {\n swiper.loopFix();\n });\n } // Fix duration\n\n\n if (swiper.velocity !== 0) {\n if (rtl) {\n momentumDuration = Math.abs((-newPosition - swiper.translate) / swiper.velocity);\n } else {\n momentumDuration = Math.abs((newPosition - swiper.translate) / swiper.velocity);\n }\n\n if (params.freeModeSticky) {\n // If freeModeSticky is active and the user ends a swipe with a slow-velocity\n // event, then durations can be 20+ seconds to slide one (or zero!) slides.\n // It's easy to see this when simulating touch with mouse events. To fix this,\n // limit single-slide swipes to the default slide duration. This also has the\n // nice side effect of matching slide speed if the user stopped moving before\n // lifting finger or mouse vs. moving slowly before lifting the finger/mouse.\n // For faster swipes, also apply limits (albeit higher ones).\n var moveDistance = Math.abs((rtl ? -newPosition : newPosition) - swiper.translate);\n var currentSlideSize = swiper.slidesSizesGrid[swiper.activeIndex];\n\n if (moveDistance < currentSlideSize) {\n momentumDuration = params.speed;\n } else if (moveDistance < 2 * currentSlideSize) {\n momentumDuration = params.speed * 1.5;\n } else {\n momentumDuration = params.speed * 2.5;\n }\n }\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n }\n\n if (params.freeModeMomentumBounce && doBounce) {\n swiper.updateProgress(afterBouncePosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed || !data.allowMomentumBounce) return;\n swiper.emit('momentumBounce');\n swiper.setTransition(params.speed);\n setTimeout(function () {\n swiper.setTranslate(afterBouncePosition);\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }, 0);\n });\n } else if (swiper.velocity) {\n swiper.updateProgress(newPosition);\n swiper.setTransition(momentumDuration);\n swiper.setTranslate(newPosition);\n swiper.transitionStart(true, swiper.swipeDirection);\n\n if (!swiper.animating) {\n swiper.animating = true;\n $wrapperEl.transitionEnd(function () {\n if (!swiper || swiper.destroyed) return;\n swiper.transitionEnd();\n });\n }\n } else {\n swiper.emit('_freeModeNoMomentumRelease');\n swiper.updateProgress(newPosition);\n }\n\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n } else if (params.freeModeSticky) {\n swiper.slideToClosest();\n return;\n } else if (params.freeMode) {\n swiper.emit('_freeModeNoMomentumRelease');\n }\n\n if (!params.freeModeMomentum || timeDiff >= params.longSwipesMs) {\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n return;\n } // Find current slide\n\n\n var stopIndex = 0;\n var groupSize = swiper.slidesSizesGrid[0];\n\n for (var i = 0; i < slidesGrid.length; i += i < params.slidesPerGroupSkip ? 1 : params.slidesPerGroup) {\n var _increment = i < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (typeof slidesGrid[i + _increment] !== 'undefined') {\n if (currentPos >= slidesGrid[i] && currentPos < slidesGrid[i + _increment]) {\n stopIndex = i;\n groupSize = slidesGrid[i + _increment] - slidesGrid[i];\n }\n } else if (currentPos >= slidesGrid[i]) {\n stopIndex = i;\n groupSize = slidesGrid[slidesGrid.length - 1] - slidesGrid[slidesGrid.length - 2];\n }\n } // Find current slide size\n\n\n var ratio = (currentPos - slidesGrid[stopIndex]) / groupSize;\n var increment = stopIndex < params.slidesPerGroupSkip - 1 ? 1 : params.slidesPerGroup;\n\n if (timeDiff > params.longSwipesMs) {\n // Long touches\n if (!params.longSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n if (swiper.swipeDirection === 'next') {\n if (ratio >= params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n\n if (swiper.swipeDirection === 'prev') {\n if (ratio > 1 - params.longSwipesRatio) swiper.slideTo(stopIndex + increment);else swiper.slideTo(stopIndex);\n }\n } else {\n // Short swipes\n if (!params.shortSwipes) {\n swiper.slideTo(swiper.activeIndex);\n return;\n }\n\n var isNavButtonTarget = swiper.navigation && (e.target === swiper.navigation.nextEl || e.target === swiper.navigation.prevEl);\n\n if (!isNavButtonTarget) {\n if (swiper.swipeDirection === 'next') {\n swiper.slideTo(stopIndex + increment);\n }\n\n if (swiper.swipeDirection === 'prev') {\n swiper.slideTo(stopIndex);\n }\n } else if (e.target === swiper.navigation.nextEl) {\n swiper.slideTo(stopIndex + increment);\n } else {\n swiper.slideTo(stopIndex);\n }\n }\n}","export default function onResize() {\n var swiper = this;\n var params = swiper.params,\n el = swiper.el;\n if (el && el.offsetWidth === 0) return; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n } // Save locks\n\n\n var allowSlideNext = swiper.allowSlideNext,\n allowSlidePrev = swiper.allowSlidePrev,\n snapGrid = swiper.snapGrid; // Disable locks on resize\n\n swiper.allowSlideNext = true;\n swiper.allowSlidePrev = true;\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateSlidesClasses();\n\n if ((params.slidesPerView === 'auto' || params.slidesPerView > 1) && swiper.isEnd && !swiper.isBeginning && !swiper.params.centeredSlides) {\n swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (swiper.autoplay && swiper.autoplay.running && swiper.autoplay.paused) {\n swiper.autoplay.run();\n } // Return locks after resize\n\n\n swiper.allowSlidePrev = allowSlidePrev;\n swiper.allowSlideNext = allowSlideNext;\n\n if (swiper.params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n}","export default function onClick(e) {\n var swiper = this;\n if (!swiper.enabled) return;\n\n if (!swiper.allowClick) {\n if (swiper.params.preventClicks) e.preventDefault();\n\n if (swiper.params.preventClicksPropagation && swiper.animating) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n }\n }\n}","export default function onScroll() {\n 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 if (rtlTranslate) {\n swiper.translate = wrapperEl.scrollWidth - wrapperEl.offsetWidth - wrapperEl.scrollLeft;\n } else {\n swiper.translate = -wrapperEl.scrollLeft;\n }\n } else {\n swiper.translate = -wrapperEl.scrollTop;\n } // eslint-disable-next-line\n\n\n if (swiper.translate === -0) swiper.translate = 0;\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n var newProgress;\n var translatesDiff = swiper.maxTranslate() - swiper.minTranslate();\n\n if (translatesDiff === 0) {\n newProgress = 0;\n } else {\n newProgress = (swiper.translate - swiper.minTranslate()) / translatesDiff;\n }\n\n if (newProgress !== swiper.progress) {\n swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate);\n }\n\n swiper.emit('setTranslate', swiper.translate, false);\n}","import { getDocument } from 'ssr-window';\nimport onTouchStart from './onTouchStart';\nimport onTouchMove from './onTouchMove';\nimport onTouchEnd from './onTouchEnd';\nimport onResize from './onResize';\nimport onClick from './onClick';\nimport onScroll from './onScroll';\nvar dummyEventAttached = false;\n\nfunction dummyEventListener() {}\n\nfunction attachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n swiper.onTouchStart = onTouchStart.bind(swiper);\n swiper.onTouchMove = onTouchMove.bind(swiper);\n swiper.onTouchEnd = onTouchEnd.bind(swiper);\n\n if (params.cssMode) {\n swiper.onScroll = onScroll.bind(swiper);\n }\n\n swiper.onClick = onClick.bind(swiper);\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.addEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.addEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.addEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'touchstart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.addEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.addEventListener(touchEvents.move, swiper.onTouchMove, support.passiveListener ? {\n passive: false,\n capture: capture\n } : capture);\n el.addEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.addEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n\n if (!dummyEventAttached) {\n document.addEventListener('touchstart', dummyEventListener);\n dummyEventAttached = true;\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.addEventListener('mousedown', swiper.onTouchStart, false);\n document.addEventListener('mousemove', swiper.onTouchMove, capture);\n document.addEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.addEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.addEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n if (params.updateOnWindowResize) {\n swiper.on(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize, true);\n } else {\n swiper.on('observerUpdate', onResize, true);\n }\n}\n\nfunction detachEvents() {\n var swiper = this;\n var document = getDocument();\n var params = swiper.params,\n touchEvents = swiper.touchEvents,\n el = swiper.el,\n wrapperEl = swiper.wrapperEl,\n device = swiper.device,\n support = swiper.support;\n var capture = !!params.nested; // Touch Events\n\n if (!support.touch && support.pointerEvents) {\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, false);\n document.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n document.removeEventListener(touchEvents.end, swiper.onTouchEnd, false);\n } else {\n if (support.touch) {\n var passiveListener = touchEvents.start === 'onTouchStart' && support.passiveListener && params.passiveListeners ? {\n passive: true,\n capture: false\n } : false;\n el.removeEventListener(touchEvents.start, swiper.onTouchStart, passiveListener);\n el.removeEventListener(touchEvents.move, swiper.onTouchMove, capture);\n el.removeEventListener(touchEvents.end, swiper.onTouchEnd, passiveListener);\n\n if (touchEvents.cancel) {\n el.removeEventListener(touchEvents.cancel, swiper.onTouchEnd, passiveListener);\n }\n }\n\n if (params.simulateTouch && !device.ios && !device.android || params.simulateTouch && !support.touch && device.ios) {\n el.removeEventListener('mousedown', swiper.onTouchStart, false);\n document.removeEventListener('mousemove', swiper.onTouchMove, capture);\n document.removeEventListener('mouseup', swiper.onTouchEnd, false);\n }\n } // Prevent Links Clicks\n\n\n if (params.preventClicks || params.preventClicksPropagation) {\n el.removeEventListener('click', swiper.onClick, true);\n }\n\n if (params.cssMode) {\n wrapperEl.removeEventListener('scroll', swiper.onScroll);\n } // Resize handler\n\n\n swiper.off(device.ios || device.android ? 'resize orientationchange observerUpdate' : 'resize observerUpdate', onResize);\n}\n\nexport default {\n attachEvents: attachEvents,\n detachEvents: detachEvents\n};","import { extend } from '../../../utils/utils';\nexport default function setBreakpoint() {\n var swiper = this;\n var activeIndex = swiper.activeIndex,\n initialized = swiper.initialized,\n _swiper$loopedSlides = swiper.loopedSlides,\n loopedSlides = _swiper$loopedSlides === void 0 ? 0 : _swiper$loopedSlides,\n params = swiper.params,\n $el = swiper.$el;\n var breakpoints = params.breakpoints;\n if (!breakpoints || breakpoints && Object.keys(breakpoints).length === 0) return; // Get breakpoint for window width and update parameters\n\n var breakpoint = swiper.getBreakpoint(breakpoints, swiper.params.breakpointsBase, swiper.el);\n if (!breakpoint || swiper.currentBreakpoint === breakpoint) return;\n var breakpointOnlyParams = breakpoint in breakpoints ? breakpoints[breakpoint] : undefined;\n\n if (breakpointOnlyParams) {\n ['slidesPerView', 'spaceBetween', 'slidesPerGroup', 'slidesPerGroupSkip', 'slidesPerColumn'].forEach(function (param) {\n var paramValue = breakpointOnlyParams[param];\n if (typeof paramValue === 'undefined') return;\n\n if (param === 'slidesPerView' && (paramValue === 'AUTO' || paramValue === 'auto')) {\n breakpointOnlyParams[param] = 'auto';\n } else if (param === 'slidesPerView') {\n breakpointOnlyParams[param] = parseFloat(paramValue);\n } else {\n breakpointOnlyParams[param] = parseInt(paramValue, 10);\n }\n });\n }\n\n var breakpointParams = breakpointOnlyParams || swiper.originalParams;\n var wasMultiRow = params.slidesPerColumn > 1;\n var isMultiRow = breakpointParams.slidesPerColumn > 1;\n var wasEnabled = params.enabled;\n\n if (wasMultiRow && !isMultiRow) {\n $el.removeClass(params.containerModifierClass + \"multirow \" + params.containerModifierClass + \"multirow-column\");\n swiper.emitContainerClasses();\n } else if (!wasMultiRow && isMultiRow) {\n $el.addClass(params.containerModifierClass + \"multirow\");\n\n if (breakpointParams.slidesPerColumnFill === 'column') {\n $el.addClass(params.containerModifierClass + \"multirow-column\");\n }\n\n swiper.emitContainerClasses();\n }\n\n var directionChanged = breakpointParams.direction && breakpointParams.direction !== params.direction;\n var needsReLoop = params.loop && (breakpointParams.slidesPerView !== params.slidesPerView || directionChanged);\n\n if (directionChanged && initialized) {\n swiper.changeDirection();\n }\n\n extend(swiper.params, breakpointParams);\n var isEnabled = swiper.params.enabled;\n extend(swiper, {\n allowTouchMove: swiper.params.allowTouchMove,\n allowSlideNext: swiper.params.allowSlideNext,\n allowSlidePrev: swiper.params.allowSlidePrev\n });\n\n if (wasEnabled && !isEnabled) {\n swiper.disable();\n } else if (!wasEnabled && isEnabled) {\n swiper.enable();\n }\n\n swiper.currentBreakpoint = breakpoint;\n swiper.emit('_beforeBreakpoint', breakpointParams);\n\n if (needsReLoop && initialized) {\n swiper.loopDestroy();\n swiper.loopCreate();\n swiper.updateSlides();\n swiper.slideTo(activeIndex - loopedSlides + swiper.loopedSlides, 0, false);\n }\n\n swiper.emit('breakpoint', breakpointParams);\n}","import { getWindow } from 'ssr-window';\nexport default function getBreakpoint(breakpoints, base, containerEl) {\n if (base === void 0) {\n base = 'window';\n }\n\n if (!breakpoints || base === 'container' && !containerEl) return undefined;\n var breakpoint = false;\n var window = getWindow();\n var 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: \" + value + \"px)\").matches) {\n breakpoint = point;\n }\n } else if (value <= containerEl.clientWidth) {\n breakpoint = point;\n }\n }\n\n return breakpoint || 'max';\n}","import setBreakpoint from './setBreakpoint';\nimport getBreakpoint from './getBreakpoint';\nexport default {\n setBreakpoint: setBreakpoint,\n getBreakpoint: getBreakpoint\n};","function prepareClasses(entries, prefix) {\n var resultClasses = [];\n entries.forEach(function (item) {\n if (typeof item === 'object') {\n Object.keys(item).forEach(function (classNames) {\n if (item[classNames]) {\n resultClasses.push(prefix + classNames);\n }\n });\n } else if (typeof item === 'string') {\n resultClasses.push(prefix + item);\n }\n });\n return resultClasses;\n}\n\nexport default function addClasses() {\n var swiper = this;\n var classNames = swiper.classNames,\n params = swiper.params,\n rtl = swiper.rtl,\n $el = swiper.$el,\n device = swiper.device,\n support = swiper.support; // prettier-ignore\n\n var suffixes = prepareClasses(['initialized', params.direction, {\n 'pointer-events': support.pointerEvents && !support.touch\n }, {\n 'free-mode': params.freeMode\n }, {\n 'autoheight': params.autoHeight\n }, {\n 'rtl': rtl\n }, {\n 'multirow': params.slidesPerColumn > 1\n }, {\n 'multirow-column': params.slidesPerColumn > 1 && params.slidesPerColumnFill === 'column'\n }, {\n 'android': device.android\n }, {\n 'ios': device.ios\n }, {\n 'css-mode': params.cssMode\n }], params.containerModifierClass);\n classNames.push.apply(classNames, suffixes);\n $el.addClass([].concat(classNames).join(' '));\n swiper.emitContainerClasses();\n}","export default function removeClasses() {\n var swiper = this;\n var $el = swiper.$el,\n classNames = swiper.classNames;\n $el.removeClass(classNames.join(' '));\n swiper.emitContainerClasses();\n}","import addClasses from './addClasses';\nimport removeClasses from './removeClasses';\nexport default {\n addClasses: addClasses,\n removeClasses: removeClasses\n};","import { getWindow } from 'ssr-window';\nimport $ from '../../../utils/dom';\nexport default function loadImage(imageEl, src, srcset, sizes, checkForComplete, callback) {\n var window = getWindow();\n var image;\n\n function onReady() {\n if (callback) callback();\n }\n\n var isPicture = $(imageEl).parent('picture')[0];\n\n if (!isPicture && (!imageEl.complete || !checkForComplete)) {\n if (src) {\n image = new window.Image();\n image.onload = onReady;\n image.onerror = onReady;\n\n if (sizes) {\n image.sizes = sizes;\n }\n\n if (srcset) {\n image.srcset = srcset;\n }\n\n if (src) {\n image.src = src;\n }\n } else {\n onReady();\n }\n } else {\n // image already loaded...\n onReady();\n }\n}","export default function preloadImages() {\n var swiper = this;\n swiper.imagesToLoad = swiper.$el.find('img');\n\n function onReady() {\n if (typeof swiper === 'undefined' || swiper === null || !swiper || swiper.destroyed) return;\n if (swiper.imagesLoaded !== undefined) swiper.imagesLoaded += 1;\n\n if (swiper.imagesLoaded === swiper.imagesToLoad.length) {\n if (swiper.params.updateOnImagesReady) swiper.update();\n swiper.emit('imagesReady');\n }\n }\n\n for (var i = 0; i < swiper.imagesToLoad.length; i += 1) {\n var imageEl = swiper.imagesToLoad[i];\n swiper.loadImage(imageEl, imageEl.currentSrc || imageEl.getAttribute('src'), imageEl.srcset || imageEl.getAttribute('srcset'), imageEl.sizes || imageEl.getAttribute('sizes'), true, onReady);\n }\n}","import loadImage from './loadImage';\nimport preloadImages from './preloadImages';\nexport default {\n loadImage: loadImage,\n preloadImages: preloadImages\n};","function checkOverflow() {\n var swiper = this;\n var params = swiper.params;\n var wasLocked = swiper.isLocked;\n var lastSlidePosition = swiper.slides.length > 0 && params.slidesOffsetBefore + params.spaceBetween * (swiper.slides.length - 1) + swiper.slides[0].offsetWidth * swiper.slides.length;\n\n if (params.slidesOffsetBefore && params.slidesOffsetAfter && lastSlidePosition) {\n swiper.isLocked = lastSlidePosition <= swiper.size;\n } else {\n swiper.isLocked = swiper.snapGrid.length === 1;\n }\n\n swiper.allowSlideNext = !swiper.isLocked;\n swiper.allowSlidePrev = !swiper.isLocked; // events\n\n if (wasLocked !== swiper.isLocked) swiper.emit(swiper.isLocked ? 'lock' : 'unlock');\n\n if (wasLocked && wasLocked !== swiper.isLocked) {\n swiper.isEnd = false;\n if (swiper.navigation) swiper.navigation.update();\n }\n}\n\nexport default {\n checkOverflow: checkOverflow\n};","export default {\n init: true,\n direction: 'horizontal',\n touchEventsTarget: 'container',\n initialSlide: 0,\n speed: 300,\n cssMode: false,\n updateOnWindowResize: true,\n resizeObserver: false,\n nested: false,\n 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 // Free mode\n freeMode: false,\n freeModeMomentum: true,\n freeModeMomentumRatio: 1,\n freeModeMomentumBounce: true,\n freeModeMomentumBounceRatio: 1,\n freeModeMomentumVelocityRatio: 1,\n freeModeSticky: false,\n freeModeMinimumVelocity: 0.02,\n // Autoheight\n autoHeight: false,\n // Set wrapper width\n setWrapperSize: false,\n // Virtual Translate\n virtualTranslate: false,\n // Effects\n effect: 'slide',\n // 'slide' or 'fade' or 'cube' or 'coverflow' or 'flip'\n // Breakpoints\n breakpoints: undefined,\n breakpointsBase: 'window',\n // Slides grid\n spaceBetween: 0,\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerColumnFill: 'column',\n slidesPerGroup: 1,\n slidesPerGroupSkip: 0,\n centeredSlides: false,\n centeredSlidesBounds: false,\n slidesOffsetBefore: 0,\n // in px\n slidesOffsetAfter: 0,\n // in px\n normalizeSlideIndex: true,\n centerInsufficientSlides: false,\n // Disable swiper and hide navigation when container not overflow\n watchOverflow: false,\n // Round length\n roundLengths: false,\n // Touches\n touchRatio: 1,\n touchAngle: 45,\n simulateTouch: true,\n shortSwipes: true,\n longSwipes: true,\n longSwipesRatio: 0.5,\n longSwipesMs: 300,\n followFinger: true,\n allowTouchMove: true,\n threshold: 0,\n touchMoveStopPropagation: false,\n touchStartPreventDefault: true,\n touchStartForcePreventDefault: false,\n touchReleaseOnEdges: false,\n // Unique Navigation Elements\n uniqueNavElements: true,\n // Resistance\n resistance: true,\n resistanceRatio: 0.85,\n // Progress\n watchSlidesProgress: false,\n watchSlidesVisibility: false,\n // Cursor\n grabCursor: false,\n // Clicks\n preventClicks: true,\n preventClicksPropagation: true,\n slideToClickedSlide: false,\n // Images\n preloadImages: true,\n updateOnImagesReady: true,\n // loop\n loop: false,\n loopAdditionalSlides: 0,\n loopedSlides: null,\n loopFillGroupWithBlank: false,\n loopPreventsSlide: true,\n // Swiping/no swiping\n allowSlidePrev: true,\n allowSlideNext: true,\n swipeHandler: null,\n // '.swipe-handler',\n noSwiping: true,\n noSwipingClass: 'swiper-no-swiping',\n noSwipingSelector: null,\n // Passive Listeners\n passiveListeners: true,\n // NS\n containerModifierClass: 'swiper-container-',\n // NEW\n slideClass: 'swiper-slide',\n slideBlankClass: 'swiper-slide-invisible-blank',\n slideActiveClass: 'swiper-slide-active',\n slideDuplicateActiveClass: 'swiper-slide-duplicate-active',\n slideVisibleClass: 'swiper-slide-visible',\n slideDuplicateClass: 'swiper-slide-duplicate',\n slideNextClass: 'swiper-slide-next',\n slideDuplicateNextClass: 'swiper-slide-duplicate-next',\n slidePrevClass: 'swiper-slide-prev',\n slideDuplicatePrevClass: 'swiper-slide-duplicate-prev',\n wrapperClass: 'swiper-wrapper',\n // Callbacks\n runCallbacksOnInit: true,\n // Internals\n _emitClasses: false\n};","function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }\n\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); return Constructor; }\n\n/* eslint no-param-reassign: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, now, deleteProps } from '../../utils/utils';\nimport { getSupport } from '../../utils/get-support';\nimport { getDevice } from '../../utils/get-device';\nimport { getBrowser } from '../../utils/get-browser';\nimport Resize from '../../modules/resize/resize';\nimport Observer from '../../modules/observer/observer';\nimport modular from './modular';\nimport eventsEmitter from './events-emitter';\nimport update from './update/index';\nimport translate from './translate/index';\nimport transition from './transition/index';\nimport slide from './slide/index';\nimport loop from './loop/index';\nimport grabCursor from './grab-cursor/index';\nimport manipulation from './manipulation/index';\nimport events from './events/index';\nimport breakpoints from './breakpoints/index';\nimport classes from './classes/index';\nimport images from './images/index';\nimport checkOverflow from './check-overflow/index';\nimport defaults from './defaults';\nvar prototypes = {\n modular: modular,\n eventsEmitter: eventsEmitter,\n update: update,\n translate: translate,\n transition: transition,\n slide: slide,\n loop: loop,\n grabCursor: grabCursor,\n manipulation: manipulation,\n events: events,\n breakpoints: breakpoints,\n checkOverflow: checkOverflow,\n classes: classes,\n images: images\n};\nvar extendedDefaults = {};\n\nvar Swiper = /*#__PURE__*/function () {\n function Swiper() {\n var el;\n var params;\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n if (args.length === 1 && args[0].constructor && Object.prototype.toString.call(args[0]).slice(8, -1) === 'Object') {\n params = args[0];\n } else {\n el = args[0];\n params = args[1];\n }\n\n if (!params) params = {};\n params = extend({}, params);\n if (el && !params.el) params.el = el;\n\n if (params.el && $(params.el).length > 1) {\n var swipers = [];\n $(params.el).each(function (containerEl) {\n var newParams = extend({}, params, {\n el: containerEl\n });\n swipers.push(new Swiper(newParams));\n });\n return swipers;\n } // Swiper Instance\n\n\n var swiper = this;\n swiper.__swiper__ = true;\n swiper.support = getSupport();\n swiper.device = getDevice({\n userAgent: params.userAgent\n });\n swiper.browser = getBrowser();\n swiper.eventsListeners = {};\n swiper.eventsAnyListeners = [];\n\n if (typeof swiper.modules === 'undefined') {\n swiper.modules = {};\n }\n\n Object.keys(swiper.modules).forEach(function (moduleName) {\n var module = swiper.modules[moduleName];\n\n if (module.params) {\n var moduleParamName = Object.keys(module.params)[0];\n var moduleParams = module.params[moduleParamName];\n if (typeof moduleParams !== 'object' || moduleParams === null) return;\n\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)) return;\n\n if (params[moduleParamName] === true) {\n params[moduleParamName] = {\n enabled: true\n };\n }\n\n if (typeof params[moduleParamName] === 'object' && !('enabled' in params[moduleParamName])) {\n params[moduleParamName].enabled = true;\n }\n\n if (!params[moduleParamName]) params[moduleParamName] = {\n enabled: false\n };\n }\n }); // Extend defaults with modules params\n\n var swiperParams = extend({}, defaults);\n swiper.useParams(swiperParams); // Extend defaults with passed params\n\n swiper.params = extend({}, swiperParams, extendedDefaults, params);\n swiper.originalParams = extend({}, swiper.params);\n swiper.passedParams = extend({}, params); // add event listeners\n\n if (swiper.params && swiper.params.on) {\n Object.keys(swiper.params.on).forEach(function (eventName) {\n swiper.on(eventName, swiper.params.on[eventName]);\n });\n }\n\n if (swiper.params && swiper.params.onAny) {\n swiper.onAny(swiper.params.onAny);\n } // Save Dom lib\n\n\n swiper.$ = $; // Extend Swiper\n\n extend(swiper, {\n 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 = ['mousedown', 'mousemove', 'mouseup'];\n\n if (swiper.support.pointerEvents) {\n desktop = ['pointerdown', 'pointermove', 'pointerup'];\n }\n\n swiper.touchEventsTouch = {\n start: touch[0],\n move: touch[1],\n end: touch[2],\n cancel: touch[3]\n };\n swiper.touchEventsDesktop = {\n start: desktop[0],\n move: desktop[1],\n end: desktop[2]\n };\n return swiper.support.touch || !swiper.params.simulateTouch ? swiper.touchEventsTouch : swiper.touchEventsDesktop;\n }(),\n touchEventsData: {\n isTouched: undefined,\n isMoved: undefined,\n allowTouchCallbacks: undefined,\n touchStartTime: undefined,\n isScrolling: undefined,\n currentTranslate: undefined,\n startTranslate: undefined,\n allowThresholdMove: undefined,\n // Form elements to match\n 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 }); // Install Modules\n\n swiper.useModules();\n swiper.emit('_swiper'); // Init\n\n if (swiper.params.init) {\n swiper.init();\n } // Return app instance\n\n\n return swiper;\n }\n\n var _proto = Swiper.prototype;\n\n _proto.enable = 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 _proto.disable = 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 _proto.setProgress = 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 _proto.emitContainerClasses = function emitContainerClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var classes = swiper.el.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-container') === 0 || className.indexOf(swiper.params.containerModifierClass) === 0;\n });\n swiper.emit('_containerClasses', classes.join(' '));\n };\n\n _proto.getSlideClasses = function getSlideClasses(slideEl) {\n var swiper = this;\n return slideEl.className.split(' ').filter(function (className) {\n return className.indexOf('swiper-slide') === 0 || className.indexOf(swiper.params.slideClass) === 0;\n }).join(' ');\n };\n\n _proto.emitSlidesClasses = function emitSlidesClasses() {\n var swiper = this;\n if (!swiper.params._emitClasses || !swiper.el) return;\n var updates = [];\n swiper.slides.each(function (slideEl) {\n var classNames = swiper.getSlideClasses(slideEl);\n updates.push({\n slideEl: slideEl,\n classNames: classNames\n });\n swiper.emit('_slideClass', slideEl, classNames);\n });\n swiper.emit('_slideClasses', updates);\n };\n\n _proto.slidesPerViewDynamic = function slidesPerViewDynamic() {\n var swiper = this;\n var params = swiper.params,\n slides = swiper.slides,\n slidesGrid = swiper.slidesGrid,\n swiperSize = swiper.size,\n activeIndex = swiper.activeIndex;\n var spv = 1;\n\n if (params.centeredSlides) {\n var slideSize = slides[activeIndex].swiperSlideSize;\n var breakLoop;\n\n for (var i = activeIndex + 1; i < slides.length; i += 1) {\n if (slides[i] && !breakLoop) {\n slideSize += slides[i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n\n for (var _i = activeIndex - 1; _i >= 0; _i -= 1) {\n if (slides[_i] && !breakLoop) {\n slideSize += slides[_i].swiperSlideSize;\n spv += 1;\n if (slideSize > swiperSize) breakLoop = true;\n }\n }\n } else {\n for (var _i2 = activeIndex + 1; _i2 < slides.length; _i2 += 1) {\n if (slidesGrid[_i2] - slidesGrid[activeIndex] < swiperSize) {\n spv += 1;\n }\n }\n }\n\n return spv;\n };\n\n _proto.update = function update() {\n var swiper = this;\n if (!swiper || swiper.destroyed) return;\n var snapGrid = swiper.snapGrid,\n params = swiper.params; // Breakpoints\n\n if (params.breakpoints) {\n swiper.setBreakpoint();\n }\n\n swiper.updateSize();\n swiper.updateSlides();\n swiper.updateProgress();\n swiper.updateSlidesClasses();\n\n function setTranslate() {\n var translateValue = swiper.rtlTranslate ? swiper.translate * -1 : swiper.translate;\n var newTranslate = Math.min(Math.max(translateValue, swiper.maxTranslate()), swiper.minTranslate());\n swiper.setTranslate(newTranslate);\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n }\n\n var translated;\n\n if (swiper.params.freeMode) {\n setTranslate();\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n } else {\n if ((swiper.params.slidesPerView === 'auto' || swiper.params.slidesPerView > 1) && swiper.isEnd && !swiper.params.centeredSlides) {\n translated = swiper.slideTo(swiper.slides.length - 1, 0, false, true);\n } else {\n translated = swiper.slideTo(swiper.activeIndex, 0, false, true);\n }\n\n if (!translated) {\n setTranslate();\n }\n }\n\n if (params.watchOverflow && snapGrid !== swiper.snapGrid) {\n swiper.checkOverflow();\n }\n\n swiper.emit('update');\n };\n\n _proto.changeDirection = function changeDirection(newDirection, needUpdate) {\n if (needUpdate === void 0) {\n needUpdate = true;\n }\n\n var swiper = this;\n var currentDirection = swiper.params.direction;\n\n if (!newDirection) {\n // eslint-disable-next-line\n newDirection = currentDirection === 'horizontal' ? 'vertical' : 'horizontal';\n }\n\n if (newDirection === currentDirection || newDirection !== 'horizontal' && newDirection !== 'vertical') {\n return swiper;\n }\n\n swiper.$el.removeClass(\"\" + swiper.params.containerModifierClass + currentDirection).addClass(\"\" + swiper.params.containerModifierClass + newDirection);\n swiper.emitContainerClasses();\n swiper.params.direction = newDirection;\n swiper.slides.each(function (slideEl) {\n if (newDirection === 'vertical') {\n slideEl.style.width = '';\n } else {\n slideEl.style.height = '';\n }\n });\n swiper.emit('changeDirection');\n if (needUpdate) swiper.update();\n return swiper;\n };\n\n _proto.mount = function mount(el) {\n var swiper = this;\n if (swiper.mounted) return true; // Find el\n\n var $el = $(el || swiper.params.el);\n el = $el[0];\n\n if (!el) {\n return false;\n }\n\n el.swiper = swiper;\n\n var getWrapperSelector = function getWrapperSelector() {\n return \".\" + (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 document = getDocument();\n var wrapper = document.createElement('div');\n $wrapperEl = $(wrapper);\n wrapper.className = swiper.params.wrapperClass;\n $el.append(wrapper);\n $el.children(\".\" + swiper.params.slideClass).each(function (slideEl) {\n $wrapperEl.append(slideEl);\n });\n }\n\n extend(swiper, {\n $el: $el,\n el: el,\n $wrapperEl: $wrapperEl,\n wrapperEl: $wrapperEl[0],\n mounted: true,\n // RTL\n rtl: el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl',\n rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || $el.css('direction') === 'rtl'),\n wrongRTL: $wrapperEl.css('display') === '-webkit-box'\n });\n return true;\n };\n\n _proto.init = function init(el) {\n var swiper = this;\n if (swiper.initialized) return swiper;\n var mounted = swiper.mount(el);\n if (mounted === false) return swiper;\n swiper.emit('beforeInit'); // Set breakpoint\n\n if (swiper.params.breakpoints) {\n swiper.setBreakpoint();\n } // Add Classes\n\n\n swiper.addClasses(); // Create loop\n\n if (swiper.params.loop) {\n swiper.loopCreate();\n } // Update size\n\n\n swiper.updateSize(); // Update slides\n\n swiper.updateSlides();\n\n if (swiper.params.watchOverflow) {\n swiper.checkOverflow();\n } // Set Grab Cursor\n\n\n if (swiper.params.grabCursor && 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 _proto.destroy = function destroy(deleteInstance, cleanStyles) {\n if (deleteInstance === void 0) {\n deleteInstance = true;\n }\n\n if (cleanStyles === void 0) {\n cleanStyles = true;\n }\n\n var swiper = this;\n var params = swiper.params,\n $el = swiper.$el,\n $wrapperEl = swiper.$wrapperEl,\n slides = swiper.slides;\n\n if (typeof swiper.params === 'undefined' || swiper.destroyed) {\n return null;\n }\n\n swiper.emit('beforeDestroy'); // Init Flag\n\n swiper.initialized = false; // Detach events\n\n swiper.detachEvents(); // Destroy loop\n\n if (params.loop) {\n swiper.loopDestroy();\n } // Cleanup styles\n\n\n if (cleanStyles) {\n swiper.removeClasses();\n $el.removeAttr('style');\n $wrapperEl.removeAttr('style');\n\n if (slides && slides.length) {\n slides.removeClass([params.slideVisibleClass, params.slideActiveClass, params.slideNextClass, params.slidePrevClass].join(' ')).removeAttr('style').removeAttr('data-swiper-slide-index');\n }\n }\n\n swiper.emit('destroy'); // Detach emitter events\n\n Object.keys(swiper.eventsListeners).forEach(function (eventName) {\n swiper.off(eventName);\n });\n\n if (deleteInstance !== false) {\n swiper.$el[0].swiper = null;\n deleteProps(swiper);\n }\n\n swiper.destroyed = true;\n return null;\n };\n\n Swiper.extendDefaults = function extendDefaults(newDefaults) {\n extend(extendedDefaults, newDefaults);\n };\n\n Swiper.installModule = function installModule(module) {\n if (!Swiper.prototype.modules) Swiper.prototype.modules = {};\n var name = module.name || Object.keys(Swiper.prototype.modules).length + \"_\" + now();\n Swiper.prototype.modules[name] = module;\n };\n\n Swiper.use = function use(module) {\n if (Array.isArray(module)) {\n module.forEach(function (m) {\n return Swiper.installModule(m);\n });\n return Swiper;\n }\n\n Swiper.installModule(module);\n return Swiper;\n };\n\n _createClass(Swiper, null, [{\n key: \"extendedDefaults\",\n get: function get() {\n return extendedDefaults;\n }\n }, {\n key: \"defaults\",\n get: function get() {\n return defaults;\n }\n }]);\n\n return Swiper;\n}();\n\nObject.keys(prototypes).forEach(function (prototypeGroup) {\n Object.keys(prototypes[prototypeGroup]).forEach(function (protoMethod) {\n Swiper.prototype[protoMethod] = prototypes[prototypeGroup][protoMethod];\n });\n});\nSwiper.use([Resize, Observer]);\nexport default Swiper;","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Virtual = {\n update: function update(force) {\n var swiper = this;\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 renderSlide = _swiper$virtual.renderSlide,\n previousOffset = _swiper$virtual.offset;\n swiper.updateActiveIndex();\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 extend(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, 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(\".\" + 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(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + i + \"\\\"]\").remove();\n }\n }\n }\n\n for (var _i = 0; _i < slides.length; _i += 1) {\n if (_i >= from && _i <= to) {\n if (typeof previousTo === 'undefined' || force) {\n appendIndexes.push(_i);\n } else {\n if (_i > previousTo) appendIndexes.push(_i);\n if (_i < previousFrom) prependIndexes.push(_i);\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, offset + \"px\");\n onRendered();\n },\n renderSlide: function renderSlide(slide, index) {\n var swiper = this;\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)) : $(\"<div class=\\\"\" + swiper.params.slideClass + \"\\\" data-swiper-slide-index=\\\"\" + index + \"\\\">\" + slide + \"</div>\");\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 appendSlide: function appendSlide(slides) {\n var swiper = this;\n\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 swiper.virtual.update(true);\n },\n prependSlide: function prependSlide(slides) {\n var swiper = this;\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) + 1);\n }\n\n newCache[parseInt(cachedIndex, 10) + numberOfNewSlides] = $cachedEl;\n });\n swiper.virtual.cache = newCache;\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(newActiveIndex, 0);\n },\n removeSlide: function removeSlide(slidesIndexes) {\n var swiper = this;\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 swiper.virtual.update(true);\n swiper.slideTo(activeIndex, 0);\n },\n removeAllSlides: function removeAllSlides() {\n var swiper = this;\n swiper.virtual.slides = [];\n\n if (swiper.params.virtual.cache) {\n swiper.virtual.cache = {};\n }\n\n swiper.virtual.update(true);\n swiper.slideTo(0, 0);\n }\n};\nexport default {\n name: 'virtual',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n virtual: _extends({}, Virtual, {\n slides: swiper.params.virtual.slides,\n cache: {}\n })\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"virtual\");\n var overwriteParams = {\n watchSlidesProgress: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n\n if (!swiper.params.initialSlide) {\n swiper.virtual.update();\n }\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.virtual.enabled) return;\n swiper.virtual.update();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Keyboard = {\n handle: function handle(event) {\n var swiper = this;\n if (!swiper.enabled) return;\n var window = getWindow();\n var document = getDocument();\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(\".\" + swiper.params.slideClass).length > 0 && swiper.$el.parents(\".\" + 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 swiper.emit('keyPress', kc);\n return undefined;\n },\n enable: function enable() {\n var swiper = this;\n var document = getDocument();\n if (swiper.keyboard.enabled) return;\n $(document).on('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = true;\n },\n disable: function disable() {\n var swiper = this;\n var document = getDocument();\n if (!swiper.keyboard.enabled) return;\n $(document).off('keydown', swiper.keyboard.handle);\n swiper.keyboard.enabled = false;\n }\n};\nexport default {\n name: 'keyboard',\n params: {\n keyboard: {\n enabled: false,\n onlyInViewport: true,\n pageUpDown: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n keyboard: _extends({\n enabled: false\n }, Keyboard)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.keyboard.enabled) {\n swiper.keyboard.enable();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.keyboard.enabled) {\n swiper.keyboard.disable();\n }\n }\n }\n};","/* eslint-disable consistent-return */\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { now, nextTick, bindModuleMethods } from '../../utils/utils';\n\nfunction isEventSupported() {\n var document = getDocument();\n var eventName = 'onwheel';\n var isSupported = (eventName in document);\n\n if (!isSupported) {\n var element = document.createElement('div');\n element.setAttribute(eventName, 'return;');\n isSupported = typeof element[eventName] === 'function';\n }\n\n if (!isSupported && document.implementation && document.implementation.hasFeature && // always returns true in newer browsers as per the standard.\n // @see http://dom.spec.whatwg.org/#dom-domimplementation-hasfeature\n document.implementation.hasFeature('', '') !== true) {\n // This is the only way to test support for the `wheel` event in IE9+.\n isSupported = document.implementation.hasFeature('Events.wheel', '3.0');\n }\n\n return isSupported;\n}\n\nvar Mousewheel = {\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n event: function event() {\n var window = getWindow();\n if (window.navigator.userAgent.indexOf('firefox') > -1) return 'DOMMouseScroll';\n return isEventSupported() ? 'wheel' : 'mousewheel';\n },\n normalize: function normalize(e) {\n // Reasonable defaults\n var PIXEL_STEP = 10;\n var LINE_HEIGHT = 40;\n var PAGE_HEIGHT = 800;\n var sX = 0;\n var sY = 0; // spinX, spinY\n\n var pX = 0;\n var pY = 0; // pixelX, pixelY\n // Legacy\n\n if ('detail' in e) {\n sY = e.detail;\n }\n\n if ('wheelDelta' in e) {\n sY = -e.wheelDelta / 120;\n }\n\n if ('wheelDeltaY' in e) {\n sY = -e.wheelDeltaY / 120;\n }\n\n if ('wheelDeltaX' in e) {\n sX = -e.wheelDeltaX / 120;\n } // side scrolling on FF with DOMMouseScroll\n\n\n if ('axis' in e && e.axis === e.HORIZONTAL_AXIS) {\n sX = sY;\n sY = 0;\n }\n\n pX = sX * PIXEL_STEP;\n pY = sY * PIXEL_STEP;\n\n if ('deltaY' in e) {\n pY = e.deltaY;\n }\n\n if ('deltaX' in e) {\n pX = e.deltaX;\n }\n\n if (e.shiftKey && !pX) {\n // if user scrolls with shift he wants horizontal scroll\n pX = pY;\n pY = 0;\n }\n\n if ((pX || pY) && e.deltaMode) {\n if (e.deltaMode === 1) {\n // delta in LINE units\n pX *= LINE_HEIGHT;\n pY *= LINE_HEIGHT;\n } else {\n // delta in PAGE units\n pX *= PAGE_HEIGHT;\n pY *= PAGE_HEIGHT;\n }\n } // Fall-back if spin cannot be determined\n\n\n if (pX && !sX) {\n sX = pX < 1 ? -1 : 1;\n }\n\n if (pY && !sY) {\n sY = pY < 1 ? -1 : 1;\n }\n\n return {\n spinX: sX,\n spinY: sY,\n pixelX: pX,\n pixelY: pY\n };\n },\n handleMouseEnter: function handleMouseEnter() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = true;\n },\n handleMouseLeave: function handleMouseLeave() {\n var swiper = this;\n if (!swiper.enabled) return;\n swiper.mouseEntered = false;\n },\n handle: function handle(event) {\n var e = event;\n var disableParentSwiper = true;\n var swiper = this;\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 = Mousewheel.normalize(e);\n\n if (params.forceToAxis) {\n if (swiper.isHorizontal()) {\n if (Math.abs(data.pixelX) > Math.abs(data.pixelY)) delta = -data.pixelX * rtlFactor;else return true;\n } else if (Math.abs(data.pixelY) > Math.abs(data.pixelX)) delta = -data.pixelY;else return true;\n } else {\n delta = Math.abs(data.pixelX) > Math.abs(data.pixelY) ? -data.pixelX * rtlFactor : -data.pixelY;\n }\n\n if (delta === 0) return true;\n if (params.invert) delta = -delta; // Get the scroll positions\n\n var positions = swiper.getTranslate() + delta * params.sensitivity;\n if (positions >= swiper.minTranslate()) positions = swiper.minTranslate();\n if (positions <= swiper.maxTranslate()) positions = swiper.maxTranslate(); // When loop is true:\n // the disableParentSwiper will be true.\n // When loop is false:\n // if the scroll positions is not on edge,\n // then the disableParentSwiper will be true.\n // if the scroll on edge positions,\n // then the disableParentSwiper will be false.\n\n disableParentSwiper = swiper.params.loop ? true : !(positions === swiper.minTranslate() || positions === swiper.maxTranslate());\n if (disableParentSwiper && swiper.params.nested) e.stopPropagation();\n\n if (!swiper.params.freeMode) {\n // Register the new event in a variable which stores the relevant data\n var newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta),\n raw: event\n }; // Keep the most recent events\n\n var recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (recentWheelEvents.length >= 2) {\n recentWheelEvents.shift(); // only store the last N events\n }\n\n var prevEvent = recentWheelEvents.length ? recentWheelEvents[recentWheelEvents.length - 1] : undefined;\n recentWheelEvents.push(newEvent); // If there is at least one previous recorded event:\n // If direction has changed or\n // if the scroll is quicker than the previous one:\n // Animate the slider.\n // Else (this is the first time the wheel is moved):\n // Animate the slider.\n\n if (prevEvent) {\n if (newEvent.direction !== prevEvent.direction || newEvent.delta > prevEvent.delta || newEvent.time > prevEvent.time + 150) {\n swiper.mousewheel.animateSlider(newEvent);\n }\n } else {\n swiper.mousewheel.animateSlider(newEvent);\n } // If it's time to release the scroll:\n // Return now so you don't hit the preventDefault.\n\n\n if (swiper.mousewheel.releaseScroll(newEvent)) {\n return true;\n }\n } else {\n // Freemode or scrollContainer:\n // If we recently snapped after a momentum scroll, then ignore wheel events\n // to give time for the deceleration to finish. Stop ignoring after 500 msecs\n // or if it's a new scroll (larger delta or inverse sign as last event before\n // an end-of-momentum snap).\n var _newEvent = {\n time: now(),\n delta: Math.abs(delta),\n direction: Math.sign(delta)\n };\n var lastEventBeforeSnap = swiper.mousewheel.lastEventBeforeSnap;\n var ignoreWheelEvents = lastEventBeforeSnap && _newEvent.time < lastEventBeforeSnap.time + 500 && _newEvent.delta <= lastEventBeforeSnap.delta && _newEvent.direction === lastEventBeforeSnap.direction;\n\n if (!ignoreWheelEvents) {\n swiper.mousewheel.lastEventBeforeSnap = undefined;\n\n if (swiper.params.loop) {\n swiper.loopFix();\n }\n\n var position = swiper.getTranslate() + delta * params.sensitivity;\n var wasBeginning = swiper.isBeginning;\n var wasEnd = swiper.isEnd;\n if (position >= swiper.minTranslate()) position = swiper.minTranslate();\n if (position <= swiper.maxTranslate()) position = swiper.maxTranslate();\n swiper.setTransition(0);\n swiper.setTranslate(position);\n swiper.updateProgress();\n swiper.updateActiveIndex();\n swiper.updateSlidesClasses();\n\n if (!wasBeginning && swiper.isBeginning || !wasEnd && swiper.isEnd) {\n swiper.updateSlidesClasses();\n }\n\n if (swiper.params.freeModeSticky) {\n // When wheel scrolling starts with sticky (aka snap) enabled, then detect\n // the end of a momentum scroll by storing recent (N=15?) wheel events.\n // 1. do all N events have decreasing or same (absolute value) delta?\n // 2. did all N events arrive in the last M (M=500?) msecs?\n // 3. does the earliest event have an (absolute value) delta that's\n // at least P (P=1?) larger than the most recent event's delta?\n // 4. does the latest event have a delta that's smaller than Q (Q=6?) pixels?\n // If 1-4 are \"yes\" then we're near the end of a momentum scroll deceleration.\n // Snap immediately and ignore remaining wheel events in this scroll.\n // See comment above for \"remaining wheel events in this scroll\" determination.\n // If 1-4 aren't satisfied, then wait to snap until 500ms after the last event.\n clearTimeout(swiper.mousewheel.timeout);\n swiper.mousewheel.timeout = undefined;\n var _recentWheelEvents = swiper.mousewheel.recentWheelEvents;\n\n if (_recentWheelEvents.length >= 15) {\n _recentWheelEvents.shift(); // only store the last N events\n\n }\n\n var _prevEvent = _recentWheelEvents.length ? _recentWheelEvents[_recentWheelEvents.length - 1] : undefined;\n\n var firstEvent = _recentWheelEvents[0];\n\n _recentWheelEvents.push(_newEvent);\n\n if (_prevEvent && (_newEvent.delta > _prevEvent.delta || _newEvent.direction !== _prevEvent.direction)) {\n // Increasing or reverse-sign delta means the user started scrolling again. Clear the wheel event log.\n _recentWheelEvents.splice(0);\n } else if (_recentWheelEvents.length >= 15 && _newEvent.time - firstEvent.time < 500 && firstEvent.delta - _newEvent.delta >= 1 && _newEvent.delta <= 6) {\n // We're at the end of the deceleration of a momentum scroll, so there's no need\n // to wait for more events. Snap ASAP on the next tick.\n // Also, because there's some remaining momentum we'll bias the snap in the\n // direction of the ongoing scroll because it's better UX for the scroll to snap\n // in the same direction as the scroll instead of reversing to snap. Therefore,\n // if it's already scrolled more than 20% in the current direction, keep going.\n var snapToThreshold = delta > 0 ? 0.8 : 0.2;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.mousewheel.timeout = nextTick(function () {\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 0); // no delay; move on next tick\n }\n\n if (!swiper.mousewheel.timeout) {\n // if we get here, then we haven't detected the end of a momentum scroll, so\n // we'll consider a scroll \"complete\" when there haven't been any wheel events\n // for 500ms.\n swiper.mousewheel.timeout = nextTick(function () {\n var snapToThreshold = 0.5;\n swiper.mousewheel.lastEventBeforeSnap = _newEvent;\n\n _recentWheelEvents.splice(0);\n\n swiper.slideToClosest(swiper.params.speed, true, undefined, snapToThreshold);\n }, 500);\n }\n } // Emit event\n\n\n if (!ignoreWheelEvents) swiper.emit('scroll', e); // Stop autoplay\n\n if (swiper.params.autoplay && swiper.params.autoplayDisableOnInteraction) swiper.autoplay.stop(); // Return page scroll on edge positions\n\n if (position === swiper.minTranslate() || position === swiper.maxTranslate()) return true;\n }\n }\n\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n return false;\n },\n animateSlider: function animateSlider(newEvent) {\n var swiper = this;\n var window = getWindow();\n\n if (this.params.mousewheel.thresholdDelta && newEvent.delta < this.params.mousewheel.thresholdDelta) {\n // Prevent if delta of wheel scroll delta is below configured threshold\n return false;\n }\n\n if (this.params.mousewheel.thresholdTime && now() - swiper.mousewheel.lastScrollTime < this.params.mousewheel.thresholdTime) {\n // Prevent if time between scrolls is below configured threshold\n return false;\n } // If the movement is NOT big enough and\n // if the last time the user scrolled was too close to the current one (avoid continuously triggering the slider):\n // Don't go any further (avoid insignificant scroll movement).\n\n\n if (newEvent.delta >= 6 && now() - swiper.mousewheel.lastScrollTime < 60) {\n // Return false as a default\n return true;\n } // If user is scrolling towards the end:\n // If the slider hasn't hit the latest slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to next slide and\n // emit a scroll event.\n // Else (the user is scrolling towards the beginning) and\n // if the slider hasn't hit the first slide or\n // if the slider is a loop and\n // if the slider isn't moving right now:\n // Go to prev slide and\n // emit a scroll event.\n\n\n if (newEvent.direction < 0) {\n if ((!swiper.isEnd || swiper.params.loop) && !swiper.animating) {\n swiper.slideNext();\n swiper.emit('scroll', newEvent.raw);\n }\n } else if ((!swiper.isBeginning || swiper.params.loop) && !swiper.animating) {\n swiper.slidePrev();\n swiper.emit('scroll', newEvent.raw);\n } // If you got here is because an animation has been triggered so store the current time\n\n\n swiper.mousewheel.lastScrollTime = new window.Date().getTime(); // Return false as a default\n\n return false;\n },\n releaseScroll: function releaseScroll(newEvent) {\n var swiper = this;\n var params = swiper.params.mousewheel;\n\n if (newEvent.direction < 0) {\n if (swiper.isEnd && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n } else if (swiper.isBeginning && !swiper.params.loop && params.releaseOnEdges) {\n // Return true to animate scroll on edges\n return true;\n }\n\n return false;\n },\n enable: function enable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.removeEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.on('mouseenter', swiper.mousewheel.handleMouseEnter);\n target.on('mouseleave', swiper.mousewheel.handleMouseLeave);\n target.on(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = true;\n return true;\n },\n disable: function disable() {\n var swiper = this;\n var event = Mousewheel.event();\n\n if (swiper.params.cssMode) {\n swiper.wrapperEl.addEventListener(event, swiper.mousewheel.handle);\n return true;\n }\n\n if (!event) return false;\n if (!swiper.mousewheel.enabled) return false;\n var target = swiper.$el;\n\n if (swiper.params.mousewheel.eventsTarget !== 'container') {\n target = $(swiper.params.mousewheel.eventsTarget);\n }\n\n target.off(event, swiper.mousewheel.handle);\n swiper.mousewheel.enabled = false;\n return true;\n }\n};\nexport default {\n name: 'mousewheel',\n params: {\n mousewheel: {\n enabled: false,\n releaseOnEdges: false,\n invert: false,\n forceToAxis: false,\n sensitivity: 1,\n eventsTarget: 'container',\n thresholdDelta: null,\n thresholdTime: null\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n mousewheel: {\n enabled: false,\n lastScrollTime: now(),\n lastEventBeforeSnap: undefined,\n recentWheelEvents: [],\n enable: Mousewheel.enable,\n disable: Mousewheel.disable,\n handle: Mousewheel.handle,\n handleMouseEnter: Mousewheel.handleMouseEnter,\n handleMouseLeave: Mousewheel.handleMouseLeave,\n animateSlider: Mousewheel.animateSlider,\n releaseScroll: Mousewheel.releaseScroll\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (!swiper.params.mousewheel.enabled && swiper.params.cssMode) {\n swiper.mousewheel.disable();\n }\n\n if (swiper.params.mousewheel.enabled) swiper.mousewheel.enable();\n },\n destroy: function destroy(swiper) {\n if (swiper.params.cssMode) {\n swiper.mousewheel.enable();\n }\n\n if (swiper.mousewheel.enabled) swiper.mousewheel.disable();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Navigation = {\n toggleEl: function toggleEl($el, disabled) {\n $el[disabled ? 'addClass' : 'removeClass'](this.params.navigation.disabledClass);\n if ($el[0] && $el[0].tagName === 'BUTTON') $el[0].disabled = disabled;\n },\n update: function update() {\n // Update Navigation Buttons\n var swiper = this;\n var params = swiper.params.navigation;\n var toggleEl = swiper.navigation.toggleEl;\n if (swiper.params.loop) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n toggleEl($prevEl, true);\n } else {\n toggleEl($prevEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $prevEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n toggleEl($nextEl, true);\n } else {\n toggleEl($nextEl, false);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $nextEl[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n }\n },\n onPrevClick: function onPrevClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isBeginning && !swiper.params.loop) return;\n swiper.slidePrev();\n },\n onNextClick: function onNextClick(e) {\n var swiper = this;\n e.preventDefault();\n if (swiper.isEnd && !swiper.params.loop) return;\n swiper.slideNext();\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.navigation;\n swiper.params.navigation = createElementIfNotDefined(swiper.$el, swiper.params.navigation, swiper.params.createElements, {\n nextEl: 'swiper-button-next',\n prevEl: 'swiper-button-prev'\n });\n if (!(params.nextEl || params.prevEl)) return;\n var $nextEl;\n var $prevEl;\n\n if (params.nextEl) {\n $nextEl = $(params.nextEl);\n\n if (swiper.params.uniqueNavElements && typeof params.nextEl === 'string' && $nextEl.length > 1 && swiper.$el.find(params.nextEl).length === 1) {\n $nextEl = swiper.$el.find(params.nextEl);\n }\n }\n\n if (params.prevEl) {\n $prevEl = $(params.prevEl);\n\n if (swiper.params.uniqueNavElements && typeof params.prevEl === 'string' && $prevEl.length > 1 && swiper.$el.find(params.prevEl).length === 1) {\n $prevEl = swiper.$el.find(params.prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n $nextEl.on('click', swiper.navigation.onNextClick);\n }\n\n if ($prevEl && $prevEl.length > 0) {\n $prevEl.on('click', swiper.navigation.onPrevClick);\n }\n\n extend(swiper.navigation, {\n $nextEl: $nextEl,\n nextEl: $nextEl && $nextEl[0],\n $prevEl: $prevEl,\n prevEl: $prevEl && $prevEl[0]\n });\n\n if (!swiper.enabled) {\n if ($nextEl) $nextEl.addClass(params.lockClass);\n if ($prevEl) $prevEl.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var _swiper$navigation2 = swiper.navigation,\n $nextEl = _swiper$navigation2.$nextEl,\n $prevEl = _swiper$navigation2.$prevEl;\n\n if ($nextEl && $nextEl.length) {\n $nextEl.off('click', swiper.navigation.onNextClick);\n $nextEl.removeClass(swiper.params.navigation.disabledClass);\n }\n\n if ($prevEl && $prevEl.length) {\n $prevEl.off('click', swiper.navigation.onPrevClick);\n $prevEl.removeClass(swiper.params.navigation.disabledClass);\n }\n }\n};\nexport default {\n name: 'navigation',\n params: {\n navigation: {\n nextEl: null,\n prevEl: null,\n hideOnClick: false,\n disabledClass: 'swiper-button-disabled',\n hiddenClass: 'swiper-button-hidden',\n lockClass: 'swiper-button-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n navigation: _extends({}, Navigation)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.navigation.init();\n swiper.navigation.update();\n },\n toEdge: function toEdge(swiper) {\n swiper.navigation.update();\n },\n fromEdge: function fromEdge(swiper) {\n swiper.navigation.update();\n },\n destroy: function destroy(swiper) {\n swiper.navigation.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\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 click: function click(swiper, 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 swiper.emit('navigationShow');\n } else {\n swiper.emit('navigationHide');\n }\n\n if ($nextEl) {\n $nextEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n\n if ($prevEl) {\n $prevEl.toggleClass(swiper.params.navigation.hiddenClass);\n }\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods, classesToSelector, createElementIfNotDefined } from '../../utils/utils';\nvar Pagination = {\n update: function update() {\n // Render || Update Pagination bullets/items\n var swiper = this;\n var rtl = swiper.rtl;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el; // Current/Total\n\n var current;\n var total = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.loop) {\n current = Math.ceil((swiper.activeIndex - swiper.loopedSlides) / swiper.params.slidesPerGroup);\n\n if (current > slidesLength - 1 - swiper.loopedSlides * 2) {\n current -= slidesLength - swiper.loopedSlides * 2;\n }\n\n if (current > total - 1) current -= total;\n if (current < 0 && swiper.params.paginationType !== 'bullets') current = total + current;\n } else if (typeof swiper.snapIndex !== 'undefined') {\n current = swiper.snapIndex;\n } else {\n current = swiper.activeIndex || 0;\n } // Types\n\n\n if (params.type === 'bullets' && swiper.pagination.bullets && swiper.pagination.bullets.length > 0) {\n var bullets = swiper.pagination.bullets;\n var firstIndex;\n var lastIndex;\n var midIndex;\n\n if (params.dynamicBullets) {\n swiper.pagination.bulletSize = bullets.eq(0)[swiper.isHorizontal() ? 'outerWidth' : 'outerHeight'](true);\n $el.css(swiper.isHorizontal() ? 'width' : 'height', swiper.pagination.bulletSize * (params.dynamicMainBullets + 4) + \"px\");\n\n if (params.dynamicMainBullets > 1 && swiper.previousIndex !== undefined) {\n swiper.pagination.dynamicBulletIndex += current - swiper.previousIndex;\n\n if (swiper.pagination.dynamicBulletIndex > params.dynamicMainBullets - 1) {\n swiper.pagination.dynamicBulletIndex = params.dynamicMainBullets - 1;\n } else if (swiper.pagination.dynamicBulletIndex < 0) {\n swiper.pagination.dynamicBulletIndex = 0;\n }\n }\n\n firstIndex = current - swiper.pagination.dynamicBulletIndex;\n lastIndex = firstIndex + (Math.min(bullets.length, params.dynamicMainBullets) - 1);\n midIndex = (lastIndex + firstIndex) / 2;\n }\n\n bullets.removeClass(params.bulletActiveClass + \" \" + params.bulletActiveClass + \"-next \" + params.bulletActiveClass + \"-next-next \" + params.bulletActiveClass + \"-prev \" + params.bulletActiveClass + \"-prev-prev \" + params.bulletActiveClass + \"-main\");\n\n if ($el.length > 1) {\n bullets.each(function (bullet) {\n var $bullet = $(bullet);\n var bulletIndex = $bullet.index();\n\n if (bulletIndex === current) {\n $bullet.addClass(params.bulletActiveClass);\n }\n\n if (params.dynamicBullets) {\n if (bulletIndex >= firstIndex && bulletIndex <= lastIndex) {\n $bullet.addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (bulletIndex === firstIndex) {\n $bullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n }\n\n if (bulletIndex === lastIndex) {\n $bullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n });\n } else {\n var $bullet = bullets.eq(current);\n var bulletIndex = $bullet.index();\n $bullet.addClass(params.bulletActiveClass);\n\n if (params.dynamicBullets) {\n var $firstDisplayedBullet = bullets.eq(firstIndex);\n var $lastDisplayedBullet = bullets.eq(lastIndex);\n\n for (var i = firstIndex; i <= lastIndex; i += 1) {\n bullets.eq(i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n if (swiper.params.loop) {\n if (bulletIndex >= bullets.length - params.dynamicMainBullets) {\n for (var _i = params.dynamicMainBullets; _i >= 0; _i -= 1) {\n bullets.eq(bullets.length - _i).addClass(params.bulletActiveClass + \"-main\");\n }\n\n bullets.eq(bullets.length - params.dynamicMainBullets - 1).addClass(params.bulletActiveClass + \"-prev\");\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n } else {\n $firstDisplayedBullet.prev().addClass(params.bulletActiveClass + \"-prev\").prev().addClass(params.bulletActiveClass + \"-prev-prev\");\n $lastDisplayedBullet.next().addClass(params.bulletActiveClass + \"-next\").next().addClass(params.bulletActiveClass + \"-next-next\");\n }\n }\n }\n\n if (params.dynamicBullets) {\n var dynamicBulletsLength = Math.min(bullets.length, params.dynamicMainBullets + 4);\n var bulletsOffset = (swiper.pagination.bulletSize * dynamicBulletsLength - swiper.pagination.bulletSize) / 2 - midIndex * swiper.pagination.bulletSize;\n var offsetProp = rtl ? 'right' : 'left';\n bullets.css(swiper.isHorizontal() ? offsetProp : 'top', bulletsOffset + \"px\");\n }\n }\n\n if (params.type === 'fraction') {\n $el.find(classesToSelector(params.currentClass)).text(params.formatFractionCurrent(current + 1));\n $el.find(classesToSelector(params.totalClass)).text(params.formatFractionTotal(total));\n }\n\n if (params.type === 'progressbar') {\n var progressbarDirection;\n\n if (params.progressbarOpposite) {\n progressbarDirection = swiper.isHorizontal() ? 'vertical' : 'horizontal';\n } else {\n progressbarDirection = swiper.isHorizontal() ? 'horizontal' : 'vertical';\n }\n\n var scale = (current + 1) / total;\n var scaleX = 1;\n var scaleY = 1;\n\n if (progressbarDirection === 'horizontal') {\n scaleX = scale;\n } else {\n scaleY = scale;\n }\n\n $el.find(classesToSelector(params.progressbarFillClass)).transform(\"translate3d(0,0,0) scaleX(\" + scaleX + \") scaleY(\" + scaleY + \")\").transition(swiper.params.speed);\n }\n\n if (params.type === 'custom' && params.renderCustom) {\n $el.html(params.renderCustom(swiper, current + 1, total));\n swiper.emit('paginationRender', $el[0]);\n } else {\n swiper.emit('paginationUpdate', $el[0]);\n }\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n $el[swiper.isLocked ? 'addClass' : 'removeClass'](params.lockClass);\n }\n },\n render: function render() {\n // Render Container\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var slidesLength = swiper.virtual && swiper.params.virtual.enabled ? swiper.virtual.slides.length : swiper.slides.length;\n var $el = swiper.pagination.$el;\n var paginationHTML = '';\n\n if (params.type === 'bullets') {\n var numberOfBullets = swiper.params.loop ? Math.ceil((slidesLength - swiper.loopedSlides * 2) / swiper.params.slidesPerGroup) : swiper.snapGrid.length;\n\n if (swiper.params.freeMode && !swiper.params.loop && numberOfBullets > slidesLength) {\n numberOfBullets = slidesLength;\n }\n\n for (var i = 0; i < numberOfBullets; i += 1) {\n if (params.renderBullet) {\n paginationHTML += params.renderBullet.call(swiper, i, params.bulletClass);\n } else {\n paginationHTML += \"<\" + params.bulletElement + \" class=\\\"\" + params.bulletClass + \"\\\"></\" + params.bulletElement + \">\";\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 = \"<span class=\\\"\" + params.currentClass + \"\\\"></span>\" + ' / ' + (\"<span class=\\\"\" + params.totalClass + \"\\\"></span>\");\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 = \"<span class=\\\"\" + params.progressbarFillClass + \"\\\"></span>\";\n }\n\n $el.html(paginationHTML);\n }\n\n if (params.type !== 'custom') {\n swiper.emit('paginationRender', swiper.pagination.$el[0]);\n }\n },\n init: function init() {\n var swiper = this;\n swiper.params.pagination = createElementIfNotDefined(swiper.$el, swiper.params.pagination, swiper.params.createElements, {\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);\n }\n\n if (params.type === 'bullets' && params.clickable) {\n $el.addClass(params.clickableClass);\n }\n\n $el.addClass(params.modifierClass + params.type);\n\n if (params.type === 'bullets' && params.dynamicBullets) {\n $el.addClass(\"\" + params.modifierClass + params.type + \"-dynamic\");\n swiper.pagination.dynamicBulletIndex = 0;\n\n if (params.dynamicMainBullets < 1) {\n params.dynamicMainBullets = 1;\n }\n }\n\n if (params.type === 'progressbar' && params.progressbarOpposite) {\n $el.addClass(params.progressbarOppositeClass);\n }\n\n if (params.clickable) {\n $el.on('click', classesToSelector(params.bulletClass), function onClick(e) {\n e.preventDefault();\n var index = $(this).index() * swiper.params.slidesPerGroup;\n if (swiper.params.loop) index += swiper.loopedSlides;\n swiper.slideTo(index);\n });\n }\n\n extend(swiper.pagination, {\n $el: $el,\n el: $el[0]\n });\n\n if (!swiper.enabled) {\n $el.addClass(params.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var params = swiper.params.pagination;\n if (!params.el || !swiper.pagination.el || !swiper.pagination.$el || swiper.pagination.$el.length === 0) return;\n var $el = swiper.pagination.$el;\n $el.removeClass(params.hiddenClass);\n $el.removeClass(params.modifierClass + params.type);\n if (swiper.pagination.bullets) swiper.pagination.bullets.removeClass(params.bulletActiveClass);\n\n if (params.clickable) {\n $el.off('click', classesToSelector(params.bulletClass));\n }\n }\n};\nexport default {\n name: 'pagination',\n params: {\n pagination: {\n el: null,\n bulletElement: 'span',\n clickable: false,\n hideOnClick: false,\n renderBullet: null,\n renderProgressbar: null,\n renderFraction: null,\n renderCustom: null,\n progressbarOpposite: false,\n type: 'bullets',\n // 'bullets' or 'progressbar' or 'fraction' or 'custom'\n dynamicBullets: false,\n dynamicMainBullets: 1,\n formatFractionCurrent: function formatFractionCurrent(number) {\n return number;\n },\n formatFractionTotal: function formatFractionTotal(number) {\n return number;\n },\n bulletClass: 'swiper-pagination-bullet',\n bulletActiveClass: 'swiper-pagination-bullet-active',\n modifierClass: 'swiper-pagination-',\n // NEW\n currentClass: 'swiper-pagination-current',\n totalClass: 'swiper-pagination-total',\n hiddenClass: 'swiper-pagination-hidden',\n progressbarFillClass: 'swiper-pagination-progressbar-fill',\n progressbarOppositeClass: 'swiper-pagination-progressbar-opposite',\n clickableClass: 'swiper-pagination-clickable',\n // NEW\n lockClass: 'swiper-pagination-lock'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n pagination: _extends({\n dynamicBulletIndex: 0\n }, Pagination)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.pagination.init();\n swiper.pagination.render();\n swiper.pagination.update();\n },\n activeIndexChange: function activeIndexChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.update();\n } else if (typeof swiper.snapIndex === 'undefined') {\n swiper.pagination.update();\n }\n },\n snapIndexChange: function snapIndexChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.update();\n }\n },\n slidesLengthChange: function slidesLengthChange(swiper) {\n if (swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n snapGridLengthChange: function snapGridLengthChange(swiper) {\n if (!swiper.params.loop) {\n swiper.pagination.render();\n swiper.pagination.update();\n }\n },\n destroy: function destroy(swiper) {\n swiper.pagination.destroy();\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.pagination.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.pagination.lockClass);\n }\n },\n click: function click(swiper, e) {\n var targetEl = e.target;\n\n if (swiper.params.pagination.el && swiper.params.pagination.hideOnClick && swiper.pagination.$el.length > 0 && !$(targetEl).hasClass(swiper.params.pagination.bulletClass)) {\n if (swiper.navigation && (swiper.navigation.nextEl && targetEl === swiper.navigation.nextEl || swiper.navigation.prevEl && targetEl === swiper.navigation.prevEl)) return;\n var isHidden = swiper.pagination.$el.hasClass(swiper.params.pagination.hiddenClass);\n\n if (isHidden === true) {\n swiper.emit('paginationShow');\n } else {\n swiper.emit('paginationHide');\n }\n\n swiper.pagination.$el.toggleClass(swiper.params.pagination.hiddenClass);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { extend, nextTick, bindModuleMethods, createElementIfNotDefined } from '../../utils/utils';\nvar Scrollbar = {\n setTranslate: function setTranslate() {\n var swiper = this;\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 dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n $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(\" + newPos + \"px, 0, 0)\");\n $dragEl[0].style.width = newSize + \"px\";\n } else {\n $dragEl.transform(\"translate3d(0px, \" + newPos + \"px, 0)\");\n $dragEl[0].style.height = newSize + \"px\";\n }\n\n if (params.hide) {\n clearTimeout(swiper.scrollbar.timeout);\n $el[0].style.opacity = 1;\n swiper.scrollbar.timeout = setTimeout(function () {\n $el[0].style.opacity = 0;\n $el.transition(400);\n }, 1000);\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n if (!swiper.params.scrollbar.el || !swiper.scrollbar.el) return;\n swiper.scrollbar.$dragEl.transition(duration);\n },\n updateSize: function updateSize() {\n var swiper = this;\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 var trackSize = swiper.isHorizontal() ? $el[0].offsetWidth : $el[0].offsetHeight;\n var divider = swiper.size / swiper.virtualSize;\n var moveDivider = divider * (trackSize / swiper.size);\n var dragSize;\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 = dragSize + \"px\";\n } else {\n $dragEl[0].style.height = 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 extend(scrollbar, {\n trackSize: trackSize,\n divider: divider,\n moveDivider: moveDivider,\n dragSize: dragSize\n });\n\n if (swiper.params.watchOverflow && swiper.enabled) {\n scrollbar.$el[swiper.isLocked ? 'addClass' : 'removeClass'](swiper.params.scrollbar.lockClass);\n }\n },\n getPointerPosition: function getPointerPosition(e) {\n var swiper = this;\n\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 setDragPosition: function setDragPosition(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n rtl = swiper.rtlTranslate;\n var $el = scrollbar.$el,\n dragSize = scrollbar.dragSize,\n trackSize = scrollbar.trackSize,\n dragStartPos = scrollbar.dragStartPos;\n var positionRatio;\n positionRatio = (scrollbar.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 onDragStart: function onDragStart(e) {\n var swiper = this;\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 swiper.scrollbar.isTouched = true;\n swiper.scrollbar.dragStartPos = e.target === $dragEl[0] || e.target === $dragEl ? scrollbar.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 scrollbar.setDragPosition(e);\n clearTimeout(swiper.scrollbar.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 swiper.emit('scrollbarDragStart', e);\n },\n onDragMove: function onDragMove(e) {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el,\n $dragEl = scrollbar.$dragEl;\n if (!swiper.scrollbar.isTouched) return;\n if (e.preventDefault) e.preventDefault();else e.returnValue = false;\n scrollbar.setDragPosition(e);\n $wrapperEl.transition(0);\n $el.transition(0);\n $dragEl.transition(0);\n swiper.emit('scrollbarDragMove', e);\n },\n onDragEnd: function onDragEnd(e) {\n var swiper = this;\n var params = swiper.params.scrollbar;\n var scrollbar = swiper.scrollbar,\n $wrapperEl = swiper.$wrapperEl;\n var $el = scrollbar.$el;\n if (!swiper.scrollbar.isTouched) return;\n swiper.scrollbar.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(swiper.scrollbar.dragTimeout);\n swiper.scrollbar.dragTimeout = nextTick(function () {\n $el.css('opacity', 0);\n $el.transition(400);\n }, 1000);\n }\n\n swiper.emit('scrollbarDragEnd', e);\n\n if (params.snapOnRelease) {\n swiper.slideToClosest();\n }\n },\n enableDraggable: function enableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\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\n if (!support.touch) {\n target.addEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.addEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.addEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.addEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.addEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.addEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n disableDraggable: function disableDraggable() {\n var swiper = this;\n if (!swiper.params.scrollbar.el) return;\n var document = getDocument();\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\n if (!support.touch) {\n target.removeEventListener(touchEventsDesktop.start, swiper.scrollbar.onDragStart, activeListener);\n document.removeEventListener(touchEventsDesktop.move, swiper.scrollbar.onDragMove, activeListener);\n document.removeEventListener(touchEventsDesktop.end, swiper.scrollbar.onDragEnd, passiveListener);\n } else {\n target.removeEventListener(touchEventsTouch.start, swiper.scrollbar.onDragStart, activeListener);\n target.removeEventListener(touchEventsTouch.move, swiper.scrollbar.onDragMove, activeListener);\n target.removeEventListener(touchEventsTouch.end, swiper.scrollbar.onDragEnd, passiveListener);\n }\n },\n init: function init() {\n var swiper = this;\n var scrollbar = swiper.scrollbar,\n $swiperEl = swiper.$el;\n swiper.params.scrollbar = createElementIfNotDefined($swiperEl, swiper.params.scrollbar, swiper.params.createElements, {\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(\".\" + swiper.params.scrollbar.dragClass);\n\n if ($dragEl.length === 0) {\n $dragEl = $(\"<div class=\\\"\" + swiper.params.scrollbar.dragClass + \"\\\"></div>\");\n $el.append($dragEl);\n }\n\n extend(scrollbar, {\n $el: $el,\n el: $el[0],\n $dragEl: $dragEl,\n dragEl: $dragEl[0]\n });\n\n if (params.draggable) {\n scrollbar.enableDraggable();\n }\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n swiper.scrollbar.disableDraggable();\n }\n};\nexport default {\n name: 'scrollbar',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n scrollbar: _extends({\n isTouched: false,\n timeout: null,\n dragTimeout: null\n }, Scrollbar)\n });\n },\n on: {\n init: function init(swiper) {\n swiper.scrollbar.init();\n swiper.scrollbar.updateSize();\n swiper.scrollbar.setTranslate();\n },\n update: function update(swiper) {\n swiper.scrollbar.updateSize();\n },\n resize: function resize(swiper) {\n swiper.scrollbar.updateSize();\n },\n observerUpdate: function observerUpdate(swiper) {\n swiper.scrollbar.updateSize();\n },\n setTranslate: function setTranslate(swiper) {\n swiper.scrollbar.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n swiper.scrollbar.setTransition(duration);\n },\n 'enable disable': function enableDisable(swiper) {\n var $el = swiper.scrollbar.$el;\n\n if ($el) {\n $el[swiper.enabled ? 'removeClass' : 'addClass'](swiper.params.scrollbar.lockClass);\n }\n },\n destroy: function destroy(swiper) {\n swiper.scrollbar.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Parallax = {\n setTransform: function setTransform(el, progress) {\n var swiper = this;\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 = parseInt(x, 10) * progress * rtlFactor + \"%\";\n } else {\n x = x * progress * rtlFactor + \"px\";\n }\n\n if (y.indexOf('%') >= 0) {\n y = parseInt(y, 10) * progress + \"%\";\n } else {\n y = 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(\" + x + \", \" + y + \", 0px)\");\n } else {\n var currentScale = scale - (scale - 1) * (1 - Math.abs(progress));\n $el.transform(\"translate3d(\" + x + \", \" + y + \", 0px) scale(\" + currentScale + \")\");\n }\n },\n setTranslate: function setTranslate() {\n var swiper = this;\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 swiper.parallax.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 swiper.parallax.setTransform(el, slideProgress);\n });\n });\n },\n setTransition: function setTransition(duration) {\n if (duration === void 0) {\n duration = this.params.speed;\n }\n\n var swiper = this;\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};\nexport default {\n name: 'parallax',\n params: {\n parallax: {\n enabled: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n parallax: _extends({}, Parallax)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n init: function init(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTranslate: function setTranslate(swiper) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (!swiper.params.parallax.enabled) return;\n swiper.parallax.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, getTranslate } from '../../utils/utils';\nvar Zoom = {\n // Calc Scale From Multi-touches\n getDistanceBetweenTouches: 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 },\n // Events\n onGestureStart: function onGestureStart(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n zoom.fakeGestureTouched = false;\n zoom.fakeGestureMoved = false;\n\n if (!support.gestures) {\n if (e.type !== 'touchstart' || e.type === 'touchstart' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureTouched = true;\n gesture.scaleStart = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$slideEl || !gesture.$slideEl.length) {\n gesture.$slideEl = $(e.target).closest(\".\" + swiper.params.slideClass);\n if (gesture.$slideEl.length === 0) gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + 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 swiper.zoom.isScaling = true;\n },\n onGestureChange: function onGestureChange(e) {\n var swiper = this;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (e.type !== 'touchmove' || e.type === 'touchmove' && e.targetTouches.length < 2) {\n return;\n }\n\n zoom.fakeGestureMoved = true;\n gesture.scaleMove = Zoom.getDistanceBetweenTouches(e);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0) {\n if (e.type === 'gesturechange') zoom.onGestureStart(e);\n return;\n }\n\n if (support.gestures) {\n zoom.scale = e.scale * zoom.currentScale;\n } else {\n zoom.scale = gesture.scaleMove / gesture.scaleStart * zoom.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(\" + zoom.scale + \")\");\n },\n onGestureEnd: function onGestureEnd(e) {\n var swiper = this;\n var device = swiper.device;\n var support = swiper.support;\n var params = swiper.params.zoom;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\n\n if (!support.gestures) {\n if (!zoom.fakeGestureTouched || !zoom.fakeGestureMoved) {\n return;\n }\n\n if (e.type !== 'touchend' || e.type === 'touchend' && e.changedTouches.length < 2 && !device.android) {\n return;\n }\n\n zoom.fakeGestureTouched = false;\n zoom.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(\" + zoom.scale + \")\");\n zoom.currentScale = zoom.scale;\n zoom.isScaling = false;\n if (zoom.scale === 1) gesture.$slideEl = undefined;\n },\n onTouchStart: function onTouchStart(e) {\n var swiper = this;\n var device = swiper.device;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\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 onTouchMove: function onTouchMove(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\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 && !zoom.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(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTouchEnd: function onTouchEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture,\n image = zoom.image,\n velocity = zoom.velocity;\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(\" + image.currentX + \"px, \" + image.currentY + \"px,0)\");\n },\n onTransitionEnd: function onTransitionEnd() {\n var swiper = this;\n var zoom = swiper.zoom;\n var gesture = zoom.gesture;\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 zoom.currentScale = 1;\n gesture.$slideEl = undefined;\n gesture.$imageEl = undefined;\n gesture.$imageWrapEl = undefined;\n }\n },\n // Toggle Zoom\n toggle: function toggle(e) {\n var swiper = this;\n var zoom = swiper.zoom;\n\n if (zoom.scale && zoom.scale !== 1) {\n // Zoom Out\n zoom.out();\n } else {\n // Zoom In\n zoom.in(e);\n }\n },\n in: function _in(e) {\n var swiper = this;\n var window = getWindow();\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture,\n image = zoom.image;\n\n if (!gesture.$slideEl) {\n if (e && e.target) {\n gesture.$slideEl = $(e.target).closest(\".\" + 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(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n gesture.$slideEl.addClass(\"\" + 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 zoom.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(\" + translateX + \"px, \" + translateY + \"px,0)\");\n gesture.$imageEl.transition(300).transform(\"translate3d(0,0,0) scale(\" + zoom.scale + \")\");\n },\n out: function out() {\n var swiper = this;\n var zoom = swiper.zoom;\n var params = swiper.params.zoom;\n var gesture = zoom.gesture;\n\n if (!gesture.$slideEl) {\n if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) {\n gesture.$slideEl = swiper.$wrapperEl.children(\".\" + swiper.params.slideActiveClass);\n } else {\n gesture.$slideEl = swiper.slides.eq(swiper.activeIndex);\n }\n\n gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target');\n gesture.$imageWrapEl = gesture.$imageEl.parent(\".\" + params.containerClass);\n }\n\n if (!gesture.$imageEl || gesture.$imageEl.length === 0 || !gesture.$imageWrapEl || gesture.$imageWrapEl.length === 0) return;\n zoom.scale = 1;\n zoom.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(\"\" + params.zoomedSlideClass);\n gesture.$slideEl = undefined;\n },\n toggleGestures: function toggleGestures(method) {\n var swiper = this;\n var zoom = swiper.zoom;\n var selector = zoom.slideSelector,\n passive = zoom.passiveListener;\n swiper.$wrapperEl[method]('gesturestart', selector, zoom.onGestureStart, passive);\n swiper.$wrapperEl[method]('gesturechange', selector, zoom.onGestureChange, passive);\n swiper.$wrapperEl[method]('gestureend', selector, zoom.onGestureEnd, passive);\n },\n enableGestures: function enableGestures() {\n if (this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = true;\n this.zoom.toggleGestures('on');\n },\n disableGestures: function disableGestures() {\n if (!this.zoom.gesturesEnabled) return;\n this.zoom.gesturesEnabled = false;\n this.zoom.toggleGestures('off');\n },\n // Attach/Detach Events\n enable: function enable() {\n var swiper = this;\n var support = swiper.support;\n var zoom = swiper.zoom;\n if (zoom.enabled) return;\n zoom.enabled = true;\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 var slideSelector = \".\" + swiper.params.slideClass;\n swiper.zoom.passiveListener = passiveListener;\n swiper.zoom.slideSelector = slideSelector; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.on(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.on(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.on(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.on(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.on(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.on(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n },\n disable: function disable() {\n var swiper = this;\n var zoom = swiper.zoom;\n if (!zoom.enabled) return;\n var support = swiper.support;\n swiper.zoom.enabled = false;\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 var slideSelector = \".\" + swiper.params.slideClass; // Scale image\n\n if (support.gestures) {\n swiper.$wrapperEl.off(swiper.touchEvents.start, swiper.zoom.enableGestures, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.end, swiper.zoom.disableGestures, passiveListener);\n } else if (swiper.touchEvents.start === 'touchstart') {\n swiper.$wrapperEl.off(swiper.touchEvents.start, slideSelector, zoom.onGestureStart, passiveListener);\n swiper.$wrapperEl.off(swiper.touchEvents.move, slideSelector, zoom.onGestureChange, activeListenerWithCapture);\n swiper.$wrapperEl.off(swiper.touchEvents.end, slideSelector, zoom.onGestureEnd, passiveListener);\n\n if (swiper.touchEvents.cancel) {\n swiper.$wrapperEl.off(swiper.touchEvents.cancel, slideSelector, zoom.onGestureEnd, passiveListener);\n }\n } // Move image\n\n\n swiper.$wrapperEl.off(swiper.touchEvents.move, \".\" + swiper.params.zoom.containerClass, zoom.onTouchMove, activeListenerWithCapture);\n }\n};\nexport default {\n name: 'zoom',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n zoom: _extends({\n enabled: false,\n scale: 1,\n currentScale: 1,\n isScaling: false,\n gesture: {\n $slideEl: undefined,\n slideWidth: undefined,\n slideHeight: undefined,\n $imageEl: undefined,\n $imageWrapEl: undefined,\n maxRatio: 3\n },\n 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 velocity: {\n x: undefined,\n y: undefined,\n prevPositionX: undefined,\n prevPositionY: undefined,\n prevTime: undefined\n }\n }, Zoom)\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 = swiper.zoom.gesture.$imageEl ? swiper.zoom.gesture.$imageEl[0] : undefined;\n var slideEl = swiper.zoom.gesture.$slideEl ? swiper.zoom.gesture.$slideEl[0] : undefined;\n swiper.emit('zoomChange', value, imageEl, slideEl);\n }\n\n scale = value;\n }\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.zoom.enabled) {\n swiper.zoom.enable();\n }\n },\n destroy: function destroy(swiper) {\n swiper.zoom.disable();\n },\n touchStart: function touchStart(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchStart(e);\n },\n touchEnd: function touchEnd(swiper, e) {\n if (!swiper.zoom.enabled) return;\n swiper.zoom.onTouchEnd(e);\n },\n doubleTap: function doubleTap(swiper, e) {\n if (!swiper.animating && swiper.params.zoom.enabled && swiper.zoom.enabled && swiper.params.zoom.toggle) {\n swiper.zoom.toggle(e);\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled) {\n swiper.zoom.onTransitionEnd();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.zoom.enabled && swiper.params.zoom.enabled && swiper.params.cssMode) {\n swiper.zoom.onTransitionEnd();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Lazy = {\n loadInSlide: function loadInSlide(index, loadInDuplicate) {\n if (loadInDuplicate === void 0) {\n loadInDuplicate = true;\n }\n\n var swiper = this;\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(\".\" + swiper.params.slideClass + \"[data-swiper-slide-index=\\\"\" + index + \"\\\"]\") : swiper.slides.eq(index);\n var $images = $slideEl.find(\".\" + params.elementClass + \":not(.\" + params.loadedClass + \"):not(.\" + 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(\\\"\" + 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(\".\" + 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=\\\"\" + slideOriginalIndex + \"\\\"]:not(.\" + swiper.params.slideDuplicateClass + \")\");\n swiper.lazy.loadInSlide(originalSlide.index(), false);\n } else {\n var duplicatedSlide = swiper.$wrapperEl.children(\".\" + swiper.params.slideDuplicateClass + \"[data-swiper-slide-index=\\\"\" + slideOriginalIndex + \"\\\"]\");\n swiper.lazy.loadInSlide(duplicatedSlide.index(), false);\n }\n }\n\n swiper.emit('lazyImageReady', $slideEl[0], $imageEl[0]);\n\n if (swiper.params.autoHeight) {\n swiper.updateAutoHeight();\n }\n });\n swiper.emit('lazyImageLoad', $slideEl[0], $imageEl[0]);\n });\n },\n load: function load() {\n var swiper = this;\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(\".\" + swiperParams.slideClass + \"[data-swiper-slide-index=\\\"\" + 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 (!swiper.lazy.initialImageLoaded) swiper.lazy.initialImageLoaded = true;\n\n if (swiper.params.watchSlidesVisibility) {\n $wrapperEl.children(\".\" + swiperParams.slideVisibleClass).each(function (slideEl) {\n var index = isVirtual ? $(slideEl).attr('data-swiper-slide-index') : $(slideEl).index();\n swiper.lazy.loadInSlide(index);\n });\n } else if (slidesPerView > 1) {\n for (var i = activeIndex; i < activeIndex + slidesPerView; i += 1) {\n if (slideExist(i)) swiper.lazy.loadInSlide(i);\n }\n } else {\n swiper.lazy.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 _i = activeIndex + slidesPerView; _i < maxIndex; _i += 1) {\n if (slideExist(_i)) swiper.lazy.loadInSlide(_i);\n } // Prev Slides\n\n\n for (var _i2 = minIndex; _i2 < activeIndex; _i2 += 1) {\n if (slideExist(_i2)) swiper.lazy.loadInSlide(_i2);\n }\n } else {\n var nextSlide = $wrapperEl.children(\".\" + swiperParams.slideNextClass);\n if (nextSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(nextSlide));\n var prevSlide = $wrapperEl.children(\".\" + swiperParams.slidePrevClass);\n if (prevSlide.length > 0) swiper.lazy.loadInSlide(slideIndex(prevSlide));\n }\n }\n },\n checkInViewOnLoad: function checkInViewOnLoad() {\n var window = getWindow();\n var swiper = this;\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 swiper.lazy.load();\n $scrollElement.off('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n } else if (!swiper.lazy.scrollHandlerAttached) {\n swiper.lazy.scrollHandlerAttached = true;\n $scrollElement.on('scroll', swiper.lazy.checkInViewOnLoad, passiveListener);\n }\n }\n};\nexport default {\n name: 'lazy',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n lazy: _extends({\n initialImageLoaded: false\n }, Lazy)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.lazy.enabled && swiper.params.preloadImages) {\n swiper.params.preloadImages = false;\n }\n },\n init: function init(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.loop && swiper.params.initialSlide === 0) {\n if (swiper.params.lazy.checkInView) {\n swiper.lazy.checkInViewOnLoad();\n } else {\n swiper.lazy.load();\n }\n }\n },\n scroll: function scroll(swiper) {\n if (swiper.params.freeMode && !swiper.params.freeModeSticky) {\n swiper.lazy.load();\n }\n },\n 'scrollbarDragMove resize _freeModeNoMomentumRelease': function lazyLoad(swiper) {\n if (swiper.params.lazy.enabled) {\n swiper.lazy.load();\n }\n },\n transitionStart: function transitionStart(swiper) {\n if (swiper.params.lazy.enabled) {\n if (swiper.params.lazy.loadOnTransitionStart || !swiper.params.lazy.loadOnTransitionStart && !swiper.lazy.initialImageLoaded) {\n swiper.lazy.load();\n }\n }\n },\n transitionEnd: function transitionEnd(swiper) {\n if (swiper.params.lazy.enabled && !swiper.params.lazy.loadOnTransitionStart) {\n swiper.lazy.load();\n }\n },\n slideChange: function slideChange(swiper) {\n var _swiper$params = swiper.params,\n lazy = _swiper$params.lazy,\n cssMode = _swiper$params.cssMode,\n watchSlidesVisibility = _swiper$params.watchSlidesVisibility,\n watchSlidesProgress = _swiper$params.watchSlidesProgress,\n touchReleaseOnEdges = _swiper$params.touchReleaseOnEdges,\n resistanceRatio = _swiper$params.resistanceRatio;\n\n if (lazy.enabled && (cssMode || (watchSlidesVisibility || watchSlidesProgress) && (touchReleaseOnEdges || resistanceRatio === 0))) {\n swiper.lazy.load();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-bitwise: [\"error\", { \"allow\": [\">>\"] }] */\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Controller = {\n LinearSpline: 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 },\n // xxx: for now i will just save one spline function to to\n getInterpolateFunction: function getInterpolateFunction(c) {\n var swiper = this;\n\n if (!swiper.controller.spline) {\n swiper.controller.spline = swiper.params.loop ? new Controller.LinearSpline(swiper.slidesGrid, c.slidesGrid) : new Controller.LinearSpline(swiper.snapGrid, c.snapGrid);\n }\n },\n setTranslate: function setTranslate(_setTranslate, byController) {\n var swiper = this;\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 swiper.controller.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 setTransition: function setTransition(duration, byController) {\n var swiper = this;\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};\nexport default {\n name: 'controller',\n params: {\n controller: {\n control: undefined,\n inverse: false,\n by: 'slide' // or 'container'\n\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n controller: _extends({\n control: swiper.params.controller.control\n }, Controller)\n });\n },\n on: {\n update: function update(swiper) {\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 resize: function resize(swiper) {\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 observerUpdate: function observerUpdate(swiper) {\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 setTranslate: function setTranslate(swiper, translate, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTranslate(translate, byController);\n },\n setTransition: function setTransition(swiper, duration, byController) {\n if (!swiper.controller.control) return;\n swiper.controller.setTransition(duration, byController);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods, classesToSelector } from '../../utils/utils';\nvar A11y = {\n getRandomNumber: function getRandomNumber(size) {\n if (size === void 0) {\n size = 16;\n }\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 makeElFocusable: function makeElFocusable($el) {\n $el.attr('tabIndex', '0');\n return $el;\n },\n makeElNotFocusable: function makeElNotFocusable($el) {\n $el.attr('tabIndex', '-1');\n return $el;\n },\n addElRole: function addElRole($el, role) {\n $el.attr('role', role);\n return $el;\n },\n addElRoleDescription: function addElRoleDescription($el, description) {\n $el.attr('aria-roledescription', description);\n return $el;\n },\n addElControls: function addElControls($el, controls) {\n $el.attr('aria-controls', controls);\n return $el;\n },\n addElLabel: function addElLabel($el, label) {\n $el.attr('aria-label', label);\n return $el;\n },\n addElId: function addElId($el, id) {\n $el.attr('id', id);\n return $el;\n },\n addElLive: function addElLive($el, live) {\n $el.attr('aria-live', live);\n return $el;\n },\n disableEl: function disableEl($el) {\n $el.attr('aria-disabled', true);\n return $el;\n },\n enableEl: function enableEl($el) {\n $el.attr('aria-disabled', false);\n return $el;\n },\n onEnterOrSpaceKey: function onEnterOrSpaceKey(e) {\n if (e.keyCode !== 13 && e.keyCode !== 32) return;\n var swiper = this;\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 swiper.a11y.notify(params.lastSlideMessage);\n } else {\n swiper.a11y.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 swiper.a11y.notify(params.firstSlideMessage);\n } else {\n swiper.a11y.notify(params.prevSlideMessage);\n }\n }\n\n if (swiper.pagination && $targetEl.is(classesToSelector(swiper.params.pagination.bulletClass))) {\n $targetEl[0].click();\n }\n },\n notify: function notify(message) {\n var swiper = this;\n var notification = swiper.a11y.liveRegion;\n if (notification.length === 0) return;\n notification.html('');\n notification.html(message);\n },\n updateNavigation: function updateNavigation() {\n var swiper = this;\n if (swiper.params.loop || !swiper.navigation) return;\n var _swiper$navigation = swiper.navigation,\n $nextEl = _swiper$navigation.$nextEl,\n $prevEl = _swiper$navigation.$prevEl;\n\n if ($prevEl && $prevEl.length > 0) {\n if (swiper.isBeginning) {\n swiper.a11y.disableEl($prevEl);\n swiper.a11y.makeElNotFocusable($prevEl);\n } else {\n swiper.a11y.enableEl($prevEl);\n swiper.a11y.makeElFocusable($prevEl);\n }\n }\n\n if ($nextEl && $nextEl.length > 0) {\n if (swiper.isEnd) {\n swiper.a11y.disableEl($nextEl);\n swiper.a11y.makeElNotFocusable($nextEl);\n } else {\n swiper.a11y.enableEl($nextEl);\n swiper.a11y.makeElFocusable($nextEl);\n }\n }\n },\n updatePagination: function updatePagination() {\n var swiper = this;\n var params = swiper.params.a11y;\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.bullets.each(function (bulletEl) {\n var $bulletEl = $(bulletEl);\n swiper.a11y.makeElFocusable($bulletEl);\n\n if (!swiper.params.pagination.renderBullet) {\n swiper.a11y.addElRole($bulletEl, 'button');\n swiper.a11y.addElLabel($bulletEl, params.paginationBulletMessage.replace(/\\{\\{index\\}\\}/, $bulletEl.index() + 1));\n }\n });\n }\n },\n init: function init() {\n var swiper = this;\n var params = swiper.params.a11y;\n swiper.$el.append(swiper.a11y.liveRegion); // Container\n\n var $containerEl = swiper.$el;\n\n if (params.containerRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($containerEl, params.containerRoleDescriptionMessage);\n }\n\n if (params.containerMessage) {\n swiper.a11y.addElLabel($containerEl, params.containerMessage);\n } // Wrapper\n\n\n var $wrapperEl = swiper.$wrapperEl;\n var wrapperId = $wrapperEl.attr('id') || \"swiper-wrapper-\" + swiper.a11y.getRandomNumber(16);\n var live = swiper.params.autoplay && swiper.params.autoplay.enabled ? 'off' : 'polite';\n swiper.a11y.addElId($wrapperEl, wrapperId);\n swiper.a11y.addElLive($wrapperEl, live); // Slide\n\n if (params.itemRoleDescriptionMessage) {\n swiper.a11y.addElRoleDescription($(swiper.slides), params.itemRoleDescriptionMessage);\n }\n\n swiper.a11y.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 swiper.a11y.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 swiper.a11y.makeElFocusable($nextEl);\n\n if ($nextEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($nextEl, 'button');\n $nextEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($nextEl, params.nextSlideMessage);\n swiper.a11y.addElControls($nextEl, wrapperId);\n }\n\n if ($prevEl && $prevEl.length) {\n swiper.a11y.makeElFocusable($prevEl);\n\n if ($prevEl[0].tagName !== 'BUTTON') {\n swiper.a11y.addElRole($prevEl, 'button');\n $prevEl.on('keydown', swiper.a11y.onEnterOrSpaceKey);\n }\n\n swiper.a11y.addElLabel($prevEl, params.prevSlideMessage);\n swiper.a11y.addElControls($prevEl, wrapperId);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.on('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n if (swiper.a11y.liveRegion && swiper.a11y.liveRegion.length > 0) swiper.a11y.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', swiper.a11y.onEnterOrSpaceKey);\n }\n\n if ($prevEl) {\n $prevEl.off('keydown', swiper.a11y.onEnterOrSpaceKey);\n } // Pagination\n\n\n if (swiper.pagination && swiper.params.pagination.clickable && swiper.pagination.bullets && swiper.pagination.bullets.length) {\n swiper.pagination.$el.off('keydown', classesToSelector(swiper.params.pagination.bulletClass), swiper.a11y.onEnterOrSpaceKey);\n }\n }\n};\nexport default {\n name: 'a11y',\n params: {\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 create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n a11y: _extends({}, A11y, {\n liveRegion: $(\"<span class=\\\"\" + swiper.params.a11y.notificationClass + \"\\\" aria-live=\\\"assertive\\\" aria-atomic=\\\"true\\\"></span>\")\n })\n });\n },\n on: {\n afterInit: function afterInit(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.init();\n swiper.a11y.updateNavigation();\n },\n toEdge: function toEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n fromEdge: function fromEdge(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updateNavigation();\n },\n paginationUpdate: function paginationUpdate(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.updatePagination();\n },\n destroy: function destroy(swiper) {\n if (!swiper.params.a11y.enabled) return;\n swiper.a11y.destroy();\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow } from 'ssr-window';\nimport { bindModuleMethods } from '../../utils/utils';\nvar History = {\n init: function init() {\n var swiper = this;\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 var history = swiper.history;\n history.initialized = true;\n history.paths = History.getPathValues(swiper.params.url);\n if (!history.paths.key && !history.paths.value) return;\n history.scrollToSlide(0, history.paths.value, swiper.params.runCallbacksOnInit);\n\n if (!swiper.params.history.replaceState) {\n window.addEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (!swiper.params.history.replaceState) {\n window.removeEventListener('popstate', swiper.history.setHistoryPopState);\n }\n },\n setHistoryPopState: function setHistoryPopState() {\n var swiper = this;\n swiper.history.paths = History.getPathValues(swiper.params.url);\n swiper.history.scrollToSlide(swiper.params.speed, swiper.history.paths.value, false);\n },\n 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 setHistory: function setHistory(key, index) {\n var swiper = this;\n var window = getWindow();\n if (!swiper.history.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 = History.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 = root + \"/\" + key + \"/\" + value;\n } else if (!location.pathname.includes(key)) {\n value = key + \"/\" + 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 slugify: function slugify(text) {\n return text.toString().replace(/\\s+/g, '-').replace(/[^\\w-]+/g, '').replace(/--+/g, '-').replace(/^-+/, '').replace(/-+$/, '');\n },\n scrollToSlide: function scrollToSlide(speed, value, runCallbacks) {\n var swiper = this;\n\n if (value) {\n for (var i = 0, length = swiper.slides.length; i < length; i += 1) {\n var slide = swiper.slides.eq(i);\n var slideHistory = History.slugify(slide.attr('data-history'));\n\n if (slideHistory === value && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, runCallbacks);\n }\n }\n } else {\n swiper.slideTo(0, speed, runCallbacks);\n }\n }\n};\nexport default {\n name: 'history',\n params: {\n history: {\n enabled: false,\n root: '',\n replaceState: false,\n key: 'slides'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n history: _extends({}, History)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.history.enabled) {\n swiper.history.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.history.initialized) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.history.initialized && swiper.params.cssMode) {\n swiper.history.setHistory(swiper.params.history.key, swiper.activeIndex);\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { getWindow, getDocument } from 'ssr-window';\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar HashNavigation = {\n onHashChange: function onHashChange() {\n var swiper = this;\n var document = getDocument();\n swiper.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(\".\" + swiper.params.slideClass + \"[data-hash=\\\"\" + newHash + \"\\\"]\").index();\n if (typeof newIndex === 'undefined') return;\n swiper.slideTo(newIndex);\n }\n },\n setHash: function setHash() {\n var swiper = this;\n var window = getWindow();\n var document = getDocument();\n if (!swiper.hashNavigation.initialized || !swiper.params.hashNavigation.enabled) return;\n\n if (swiper.params.hashNavigation.replaceState && window.history && window.history.replaceState) {\n window.history.replaceState(null, null, \"#\" + swiper.slides.eq(swiper.activeIndex).attr('data-hash') || '');\n swiper.emit('hashSet');\n } else {\n var slide = swiper.slides.eq(swiper.activeIndex);\n var hash = slide.attr('data-hash') || slide.attr('data-history');\n document.location.hash = hash || '';\n swiper.emit('hashSet');\n }\n },\n init: function init() {\n var swiper = this;\n var document = getDocument();\n var window = getWindow();\n if (!swiper.params.hashNavigation.enabled || swiper.params.history && swiper.params.history.enabled) return;\n swiper.hashNavigation.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 slide = swiper.slides.eq(i);\n var slideHash = slide.attr('data-hash') || slide.attr('data-history');\n\n if (slideHash === hash && !slide.hasClass(swiper.params.slideDuplicateClass)) {\n var index = slide.index();\n swiper.slideTo(index, speed, swiper.params.runCallbacksOnInit, true);\n }\n }\n }\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).on('hashchange', swiper.hashNavigation.onHashChange);\n }\n },\n destroy: function destroy() {\n var swiper = this;\n var window = getWindow();\n\n if (swiper.params.hashNavigation.watchState) {\n $(window).off('hashchange', swiper.hashNavigation.onHashChange);\n }\n }\n};\nexport default {\n name: 'hash-navigation',\n params: {\n hashNavigation: {\n enabled: false,\n replaceState: false,\n watchState: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n hashNavigation: _extends({\n initialized: false\n }, HashNavigation)\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.init();\n }\n },\n destroy: function destroy(swiper) {\n if (swiper.params.hashNavigation.enabled) {\n swiper.hashNavigation.destroy();\n }\n },\n 'transitionEnd _freeModeNoMomentumRelease': function transitionEnd_freeModeNoMomentumRelease(swiper) {\n if (swiper.hashNavigation.initialized) {\n swiper.hashNavigation.setHash();\n }\n },\n slideChange: function slideChange(swiper) {\n if (swiper.hashNavigation.initialized && swiper.params.cssMode) {\n swiper.hashNavigation.setHash();\n }\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\n/* eslint no-underscore-dangle: \"off\" */\nimport { getDocument } from 'ssr-window';\nimport { nextTick, bindModuleMethods } from '../../utils/utils';\nvar Autoplay = {\n run: function run() {\n var swiper = this;\n var $activeSlideEl = swiper.slides.eq(swiper.activeIndex);\n var delay = swiper.params.autoplay.delay;\n\n if ($activeSlideEl.attr('data-swiper-autoplay')) {\n delay = $activeSlideEl.attr('data-swiper-autoplay') || swiper.params.autoplay.delay;\n }\n\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = nextTick(function () {\n var autoplayResult;\n\n if (swiper.params.autoplay.reverseDirection) {\n if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isBeginning) {\n autoplayResult = swiper.slidePrev(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(swiper.slides.length - 1, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n } else if (swiper.params.loop) {\n swiper.loopFix();\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.isEnd) {\n autoplayResult = swiper.slideNext(swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else if (!swiper.params.autoplay.stopOnLastSlide) {\n autoplayResult = swiper.slideTo(0, swiper.params.speed, true, true);\n swiper.emit('autoplay');\n } else {\n swiper.autoplay.stop();\n }\n\n if (swiper.params.cssMode && swiper.autoplay.running) swiper.autoplay.run();else if (autoplayResult === false) {\n swiper.autoplay.run();\n }\n }, delay);\n },\n start: function start() {\n var swiper = this;\n if (typeof swiper.autoplay.timeout !== 'undefined') return false;\n if (swiper.autoplay.running) return false;\n swiper.autoplay.running = true;\n swiper.emit('autoplayStart');\n swiper.autoplay.run();\n return true;\n },\n stop: function stop() {\n var swiper = this;\n if (!swiper.autoplay.running) return false;\n if (typeof swiper.autoplay.timeout === 'undefined') return false;\n\n if (swiper.autoplay.timeout) {\n clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.timeout = undefined;\n }\n\n swiper.autoplay.running = false;\n swiper.emit('autoplayStop');\n return true;\n },\n pause: function pause(speed) {\n var swiper = this;\n if (!swiper.autoplay.running) return;\n if (swiper.autoplay.paused) return;\n if (swiper.autoplay.timeout) clearTimeout(swiper.autoplay.timeout);\n swiper.autoplay.paused = true;\n\n if (speed === 0 || !swiper.params.autoplay.waitForTransition) {\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n } else {\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].addEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n }\n },\n onVisibilityChange: function onVisibilityChange() {\n var swiper = this;\n var document = getDocument();\n\n if (document.visibilityState === 'hidden' && swiper.autoplay.running) {\n swiper.autoplay.pause();\n }\n\n if (document.visibilityState === 'visible' && swiper.autoplay.paused) {\n swiper.autoplay.run();\n swiper.autoplay.paused = false;\n }\n },\n onTransitionEnd: function onTransitionEnd(e) {\n var swiper = this;\n if (!swiper || swiper.destroyed || !swiper.$wrapperEl) return;\n if (e.target !== swiper.$wrapperEl[0]) return;\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n swiper.autoplay.paused = false;\n\n if (!swiper.autoplay.running) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.run();\n }\n },\n onMouseEnter: function onMouseEnter() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n\n ['transitionend', 'webkitTransitionEnd'].forEach(function (event) {\n swiper.$wrapperEl[0].removeEventListener(event, swiper.autoplay.onTransitionEnd);\n });\n },\n onMouseLeave: function onMouseLeave() {\n var swiper = this;\n\n if (swiper.params.autoplay.disableOnInteraction) {\n return;\n }\n\n swiper.autoplay.paused = false;\n swiper.autoplay.run();\n },\n attachMouseEvents: function attachMouseEvents() {\n var swiper = this;\n\n if (swiper.params.autoplay.pauseOnMouseEnter) {\n swiper.$el.on('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.on('mouseleave', swiper.autoplay.onMouseLeave);\n }\n },\n detachMouseEvents: function detachMouseEvents() {\n var swiper = this;\n swiper.$el.off('mouseenter', swiper.autoplay.onMouseEnter);\n swiper.$el.off('mouseleave', swiper.autoplay.onMouseLeave);\n }\n};\nexport default {\n name: 'autoplay',\n params: {\n autoplay: {\n enabled: false,\n delay: 3000,\n waitForTransition: true,\n disableOnInteraction: true,\n stopOnLastSlide: false,\n reverseDirection: false,\n pauseOnMouseEnter: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n autoplay: _extends({}, Autoplay, {\n running: false,\n paused: false\n })\n });\n },\n on: {\n init: function init(swiper) {\n if (swiper.params.autoplay.enabled) {\n swiper.autoplay.start();\n var document = getDocument();\n document.addEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n swiper.autoplay.attachMouseEvents();\n }\n },\n beforeTransitionStart: function beforeTransitionStart(swiper, speed, internal) {\n if (swiper.autoplay.running) {\n if (internal || !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.pause(speed);\n } else {\n swiper.autoplay.stop();\n }\n }\n },\n sliderFirstMove: function sliderFirstMove(swiper) {\n if (swiper.autoplay.running) {\n if (swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.stop();\n } else {\n swiper.autoplay.pause();\n }\n }\n },\n touchEnd: function touchEnd(swiper) {\n if (swiper.params.cssMode && swiper.autoplay.paused && !swiper.params.autoplay.disableOnInteraction) {\n swiper.autoplay.run();\n }\n },\n destroy: function destroy(swiper) {\n swiper.autoplay.detachMouseEvents();\n\n if (swiper.autoplay.running) {\n swiper.autoplay.stop();\n }\n\n var document = getDocument();\n document.removeEventListener('visibilitychange', swiper.autoplay.onVisibilityChange);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Fade = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides;\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 $slideEl.css({\n opacity: slideOpacity\n }).transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n $wrapperEl = swiper.$wrapperEl;\n slides.transition(duration);\n\n if (swiper.params.virtualTranslate && duration !== 0) {\n var eventTriggered = false;\n slides.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};\nexport default {\n name: 'effect-fade',\n params: {\n fadeEffect: {\n crossFade: false\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n fadeEffect: _extends({}, Fade)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"fade\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'fade') return;\n swiper.fadeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Cube = {\n setTranslate: function setTranslate() {\n var swiper = this;\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 = $('<div class=\"swiper-cube-shadow\"></div>');\n $wrapperEl.append($cubeShadowEl);\n }\n\n $cubeShadowEl.css({\n height: swiperWidth + \"px\"\n });\n } else {\n $cubeShadowEl = $el.find('.swiper-cube-shadow');\n\n if ($cubeShadowEl.length === 0) {\n $cubeShadowEl = $('<div class=\"swiper-cube-shadow\"></div>');\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(\" + (isHorizontal ? 0 : -slideAngle) + \"deg) rotateY(\" + (isHorizontal ? slideAngle : 0) + \"deg) translate3d(\" + tx + \"px, \" + ty + \"px, \" + 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 = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\");\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% -\" + swiperSize / 2 + \"px\",\n '-moz-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n '-ms-transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\",\n 'transform-origin': \"50% 50% -\" + swiperSize / 2 + \"px\"\n });\n\n if (params.shadow) {\n if (isHorizontal) {\n $cubeShadowEl.transform(\"translate3d(0px, \" + (swiperWidth / 2 + params.shadowOffset) + \"px, \" + -swiperWidth / 2 + \"px) rotateX(90deg) rotateZ(0deg) scale(\" + 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 offset = params.shadowOffset;\n $cubeShadowEl.transform(\"scale3d(\" + scale1 + \", 1, \" + scale2 + \") translate3d(0px, \" + (swiperHeight / 2 + offset) + \"px, \" + -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,\" + zFactor + \"px) rotateX(\" + (swiper.isHorizontal() ? 0 : wrapperRotate) + \"deg) rotateY(\" + (swiper.isHorizontal() ? -wrapperRotate : 0) + \"deg)\");\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\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};\nexport default {\n name: 'effect-cube',\n params: {\n cubeEffect: {\n slideShadows: true,\n shadow: true,\n shadowOffset: 20,\n shadowScale: 0.94\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n cubeEffect: _extends({}, Cube)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"cube\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n resistanceRatio: 0,\n spaceBetween: 0,\n centeredSlides: false,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'cube') return;\n swiper.cubeEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { extend, bindModuleMethods } from '../../utils/utils';\nvar Flip = {\n setTranslate: function setTranslate() {\n var swiper = this;\n var slides = swiper.slides,\n rtl = swiper.rtlTranslate;\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 offset = $slideEl[0].swiperSlideOffset;\n var rotate = -180 * progress;\n var rotateY = rotate;\n var rotateX = 0;\n var tx = -offset;\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 (swiper.params.flipEffect.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 = $(\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append(shadowBefore);\n }\n\n if (shadowAfter.length === 0) {\n shadowAfter = $(\"<div class=\\\"swiper-slide-shadow-\" + (swiper.isHorizontal() ? 'right' : 'bottom') + \"\\\"></div>\");\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 $slideEl.transform(\"translate3d(\" + tx + \"px, \" + ty + \"px, 0px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg)\");\n }\n },\n setTransition: function setTransition(duration) {\n var swiper = this;\n var slides = swiper.slides,\n activeIndex = swiper.activeIndex,\n $wrapperEl = swiper.$wrapperEl;\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.virtualTranslate && duration !== 0) {\n var eventTriggered = false; // eslint-disable-next-line\n\n slides.eq(activeIndex).transitionEnd(function onTransitionEnd() {\n if (eventTriggered) return;\n if (!swiper || swiper.destroyed) return; // if (!$(this).hasClass(swiper.params.slideActiveClass)) return;\n\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};\nexport default {\n name: 'effect-flip',\n params: {\n flipEffect: {\n slideShadows: true,\n limitRotation: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n flipEffect: _extends({}, Flip)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"flip\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n var overwriteParams = {\n slidesPerView: 1,\n slidesPerColumn: 1,\n slidesPerGroup: 1,\n watchSlidesProgress: true,\n spaceBetween: 0,\n virtualTranslate: true\n };\n extend(swiper.params, overwriteParams);\n extend(swiper.originalParams, overwriteParams);\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'flip') return;\n swiper.flipEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport $ from '../../utils/dom';\nimport { bindModuleMethods } from '../../utils/utils';\nvar Coverflow = {\n setTranslate: function setTranslate() {\n var swiper = this;\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(\" + translateX + \"px,\" + translateY + \"px,\" + translateZ + \"px) rotateX(\" + rotateX + \"deg) rotateY(\" + rotateY + \"deg) scale(\" + scale + \")\";\n $slideEl.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 = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'left' : 'top') + \"\\\"></div>\");\n $slideEl.append($shadowBeforeEl);\n }\n\n if ($shadowAfterEl.length === 0) {\n $shadowAfterEl = $(\"<div class=\\\"swiper-slide-shadow-\" + (isHorizontal ? 'right' : 'bottom') + \"\\\"></div>\");\n $slideEl.append($shadowAfterEl);\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 setTransition: function setTransition(duration) {\n var swiper = this;\n swiper.slides.transition(duration).find('.swiper-slide-shadow-top, .swiper-slide-shadow-right, .swiper-slide-shadow-bottom, .swiper-slide-shadow-left').transition(duration);\n }\n};\nexport default {\n name: 'effect-coverflow',\n params: {\n coverflowEffect: {\n rotate: 50,\n stretch: 0,\n depth: 100,\n scale: 1,\n modifier: 1,\n slideShadows: true\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n coverflowEffect: _extends({}, Coverflow)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.classNames.push(swiper.params.containerModifierClass + \"coverflow\");\n swiper.classNames.push(swiper.params.containerModifierClass + \"3d\");\n swiper.params.watchSlidesProgress = true;\n swiper.originalParams.watchSlidesProgress = true;\n },\n setTranslate: function setTranslate(swiper) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTranslate();\n },\n setTransition: function setTransition(swiper, duration) {\n if (swiper.params.effect !== 'coverflow') return;\n swiper.coverflowEffect.setTransition(duration);\n }\n }\n};","function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport { extend, isObject, bindModuleMethods } from '../../utils/utils';\nimport $ from '../../utils/dom';\nvar Thumbs = {\n init: function init() {\n var swiper = this;\n var thumbsParams = swiper.params.thumbs;\n if (swiper.thumbs.initialized) return false;\n swiper.thumbs.initialized = true;\n var SwiperClass = swiper.constructor;\n\n if (thumbsParams.swiper instanceof SwiperClass) {\n swiper.thumbs.swiper = thumbsParams.swiper;\n extend(swiper.thumbs.swiper.originalParams, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n extend(swiper.thumbs.swiper.params, {\n watchSlidesProgress: true,\n slideToClickedSlide: false\n });\n } else if (isObject(thumbsParams.swiper)) {\n swiper.thumbs.swiper = new SwiperClass(extend({}, thumbsParams.swiper, {\n watchSlidesVisibility: true,\n watchSlidesProgress: true,\n slideToClickedSlide: false\n }));\n swiper.thumbs.swiperCreated = true;\n }\n\n swiper.thumbs.swiper.$el.addClass(swiper.params.thumbs.thumbsContainerClass);\n swiper.thumbs.swiper.on('tap', swiper.thumbs.onThumbClick);\n return true;\n },\n onThumbClick: function onThumbClick() {\n var swiper = this;\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=\\\"\" + slideToIndex + \"\\\"]\").eq(0).index();\n var nextIndex = swiper.slides.eq(currentIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + 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 update: function update(initial) {\n var swiper = this;\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=\\\"\" + swiper.realIndex + \"\\\"]\").eq(0).index();\n var nextThumbsIndex = thumbsSwiper.slides.eq(currentThumbsIndex).nextAll(\"[data-swiper-slide-index=\\\"\" + 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) {// newThumbsIndex = newThumbsIndex - slidesPerView + 1;\n }\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=\\\"\" + (swiper.realIndex + i) + \"\\\"]\").addClass(thumbActiveClass);\n }\n } else {\n for (var _i = 0; _i < thumbsToActivate; _i += 1) {\n thumbsSwiper.slides.eq(swiper.realIndex + _i).addClass(thumbActiveClass);\n }\n }\n }\n};\nexport default {\n name: 'thumbs',\n params: {\n thumbs: {\n swiper: null,\n multipleActiveThumbs: true,\n autoScrollOffset: 0,\n slideThumbActiveClass: 'swiper-slide-thumb-active',\n thumbsContainerClass: 'swiper-container-thumbs'\n }\n },\n create: function create() {\n var swiper = this;\n bindModuleMethods(swiper, {\n thumbs: _extends({\n swiper: null,\n initialized: false\n }, Thumbs)\n });\n },\n on: {\n beforeInit: function beforeInit(swiper) {\n var thumbs = swiper.params.thumbs;\n if (!thumbs || !thumbs.swiper) return;\n swiper.thumbs.init();\n swiper.thumbs.update(true);\n },\n slideChange: function slideChange(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n update: function update(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n resize: function resize(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n observerUpdate: function observerUpdate(swiper) {\n if (!swiper.thumbs.swiper) return;\n swiper.thumbs.update();\n },\n setTransition: function setTransition(swiper, duration) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n thumbsSwiper.setTransition(duration);\n },\n beforeDestroy: function beforeDestroy(swiper) {\n var thumbsSwiper = swiper.thumbs.swiper;\n if (!thumbsSwiper) return;\n\n if (swiper.thumbs.swiperCreated && thumbsSwiper) {\n thumbsSwiper.destroy();\n }\n }\n }\n};","/**\n * Swiper 6.8.0\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: July 22, 2021\n */\n\nimport Swiper from './esm/components/core/core-class';\nexport { default as Swiper, default } from './esm/components/core/core-class';\nimport Virtual from './esm/components/virtual/virtual';\nimport Keyboard from './esm/components/keyboard/keyboard';\nimport Mousewheel from './esm/components/mousewheel/mousewheel';\nimport Navigation from './esm/components/navigation/navigation';\nimport Pagination from './esm/components/pagination/pagination';\nimport Scrollbar from './esm/components/scrollbar/scrollbar';\nimport Parallax from './esm/components/parallax/parallax';\nimport Zoom from './esm/components/zoom/zoom';\nimport Lazy from './esm/components/lazy/lazy';\nimport Controller from './esm/components/controller/controller';\nimport A11y from './esm/components/a11y/a11y';\nimport History from './esm/components/history/history';\nimport HashNavigation from './esm/components/hash-navigation/hash-navigation';\nimport Autoplay from './esm/components/autoplay/autoplay';\nimport EffectFade from './esm/components/effect-fade/effect-fade';\nimport EffectCube from './esm/components/effect-cube/effect-cube';\nimport EffectFlip from './esm/components/effect-flip/effect-flip';\nimport EffectCoverflow from './esm/components/effect-coverflow/effect-coverflow';\nimport Thumbs from './esm/components/thumbs/thumbs';\n\n// Swiper Class\nvar components = [Virtual, Keyboard, Mousewheel, Navigation, Pagination, Scrollbar, Parallax, Zoom, Lazy, Controller, A11y, History, HashNavigation, Autoplay, EffectFade, EffectCube, EffectFlip, EffectCoverflow, Thumbs];\nSwiper.use(components);\n","@import \"~swiper/swiper.min.css\";\n@import \"~swiper/swiper-bundle.min.css\";\n\ntaro-swiper-core {\n display: block;\n height: 150px;\n\n .swiper {\n &-container {\n height: 100%;\n }\n\n &-pagination {\n font-size: 0;\n\n &.swiper-pagination-bullet {\n opacity: 1;\n }\n\n &.swiper-pagination-hidden {\n display: none;\n }\n }\n }\n}\n","import { Component, h, ComponentInterface, Prop, Event, EventEmitter, Watch, Host, Element, State } from '@stencil/core'\nimport classNames from 'classnames'\nimport type ISwiper from 'swiper'\nimport SwiperJS from 'swiper/swiper-bundle.esm.js'\n\nimport { debounce } from '../../utils'\n\nlet INSTANCE_ID = 0\n\n@Component({\n tag: 'taro-swiper-core',\n styleUrls: [\n './style/index.scss'\n ]\n})\nexport class Swiper implements ComponentInterface {\n private _id = INSTANCE_ID++\n\n @Element() el: HTMLElement\n @State() swiperWrapper: HTMLElement | null\n @State() private swiper: ISwiper\n @State() isWillLoadCalled = false\n /**\n * 是否显示面板指示点\n */\n @Prop() indicatorDots = false\n\n /**\n * 指示点颜色\n */\n @Prop() indicatorColor = 'rgba(0, 0, 0, .3)'\n\n /**\n * 当前选中的指示点颜色\n */\n @Prop() indicatorActiveColor = '#000000'\n\n /**\n * 是否自动切换\n */\n @Prop() autoplay = false\n\n /**\n * 当前所在滑块的 index\n */\n @Prop() current = 0\n\n /**\n * 自动切换时间间隔\n */\n @Prop() interval = 5000\n\n /**\n * 滑动动画时长\n */\n @Prop() duration = 500\n\n /**\n * 是否采用衔接滑动\n */\n @Prop() circular = false\n\n /**\n * 滑动方向是否为纵向\n */\n @Prop() vertical = false\n\n /**\n * 前边距,可用于露出前一项的一小部分,接受 px 值\n */\n @Prop() previousMargin = '0px'\n\n /**\n * 后边距,可用于露出后一项的一小部分,接受 px 值\n */\n @Prop() nextMargin = '0px'\n\n /**\n * 同时显示的滑块数量\n */\n @Prop() displayMultipleItems = 1\n\n /**\n * 给 previewImage API 使用,全屏显示 swiper\n */\n @Prop() full = false\n\n /**\n * 给 previewImage API 使用,缩放支持\n */\n @Prop() zoom = false\n\n @Event({\n eventName: 'change'\n }) onChange: EventEmitter\n\n @Event({\n eventName: 'animationfinish'\n }) onAnimationFinish: EventEmitter\n\n @Watch('current')\n watchCurrent (newVal) {\n if (!this.isWillLoadCalled) return\n\n const n = parseInt(newVal, 10)\n if (isNaN(n)) return\n\n if (this.circular) {\n if (!this.swiper.isBeginning && !this.swiper.isEnd) {\n this.swiper.slideToLoop(n) // 更新下标\n }\n } else {\n this.swiper.slideTo(n) // 更新下标\n }\n }\n\n @Watch('autoplay')\n watchAutoplay (newVal) {\n if (!this.isWillLoadCalled || !this.swiper) return\n\n const swiperAutoplay = this.swiper.autoplay\n if (swiperAutoplay) {\n if (swiperAutoplay.running === newVal) return\n\n if (newVal) {\n if (this.swiper.params && typeof this.swiper.params.autoplay === 'object') {\n if (this.swiper.params.autoplay.disableOnInteraction === true) {\n this.swiper.params.autoplay.disableOnInteraction = false\n }\n this.swiper.params.autoplay.delay = this.interval\n }\n swiperAutoplay.start()\n } else {\n swiperAutoplay.stop()\n }\n }\n }\n\n @Watch('duration')\n watchDuration (newVal) {\n if (!this.isWillLoadCalled) return\n this.swiper.params.speed = newVal\n }\n\n @Watch('interval')\n watchInterval (newVal) {\n if (!this.isWillLoadCalled) return\n\n if (typeof this.swiper.params.autoplay === 'object') {\n this.swiper.params.autoplay.delay = newVal\n }\n }\n\n @Watch('swiperWrapper')\n watchSwiperWrapper (newVal?: HTMLElement) {\n if (!this.isWillLoadCalled) return\n if (!newVal) return\n this.el.appendChild = <T extends Node>(newChild: T): T => {\n return newVal.appendChild(newChild)\n }\n this.el.insertBefore = <T extends Node>(newChild: T, refChild: Node | null): T => {\n return newVal.insertBefore(newChild, refChild)\n }\n this.el.replaceChild = <T extends Node>(newChild: Node, oldChild: T): T => {\n return newVal.replaceChild(newChild, oldChild)\n }\n this.el.removeChild = <T extends Node>(oldChild: T): T => {\n return newVal.removeChild(oldChild)\n }\n this.el.addEventListener('DOMNodeInserted', this.handleSwiperSize)\n this.el.addEventListener('DOMNodeRemoved', this.handleSwiperSize)\n }\n\n @Watch(\"circular\")\n watchCircular () {\n if (this.swiper) {\n this.swiper.destroy()\n this.handleInit()\n }\n }\n\n @Watch(\"displayMultipleItems\")\n watchDisplayMultipleItems () {\n if (this.swiper) {\n this.swiper.destroy()\n this.handleInit()\n }\n }\n\n @State() observer: MutationObserver\n @State() observerFirst: MutationObserver\n @State() observerLast: MutationObserver\n\n componentWillLoad () {\n this.isWillLoadCalled = true\n }\n\n componentDidLoad () {\n this.handleInit()\n if (!this.swiper || !this.circular) return\n\n const wrapper = this.swiper.$wrapperEl?.[0]\n this.observer = new MutationObserver(this.handleSwiperLoopListen)\n\n this.observer.observe(wrapper, {\n childList: true\n })\n }\n\n componentWillUpdate () {\n if (!this.swiper) return\n if (this.autoplay && !this.swiper.autoplay?.running) {\n this.swiper.autoplay?.start()\n }\n this.swiper.update() // 更新子元素\n }\n\n componentDidRender () {\n this.handleSwiperLoop()\n }\n\n disconnectedCallback () {\n this.el.removeEventListener('DOMNodeInserted', this.handleSwiperSize)\n this.el.removeEventListener('DOMNodeRemoved', this.handleSwiperSize)\n this.observer?.disconnect?.()\n this.observerFirst?.disconnect?.()\n this.observerLast?.disconnect?.()\n }\n\n handleSwiperLoopListen = () => {\n this.observerFirst?.disconnect && this.observerFirst.disconnect()\n this.observerLast?.disconnect && this.observerLast.disconnect()\n this.observerFirst = new MutationObserver(this.handleSwiperLoop)\n this.observerLast = new MutationObserver(this.handleSwiperLoop)\n const wrapper = this.swiper.$wrapperEl?.[0]\n const list = wrapper.querySelectorAll('taro-swiper-item-core:not(.swiper-slide-duplicate)')\n if (list.length >= 1) {\n this.observerFirst.observe(list[0], {\n characterData: true\n })\n } else if (list.length >= 2) {\n this.observerLast.observe(list[list.length - 1], {\n characterData: true\n })\n }\n }\n\n handleSwiperLoop = debounce(() => {\n if (this.swiper && this.circular) {\n // @ts-ignore\n this.swiper.loopFix()\n }\n }, 50)\n\n handleSwiperSize = debounce(() => {\n if (this.swiper && !this.circular) {\n this.swiper.updateSlides()\n }\n }, 50)\n\n handleInit () {\n const {\n autoplay,\n circular,\n current,\n displayMultipleItems,\n duration,\n interval,\n vertical\n } = this\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const that = this\n\n const options: any = {\n pagination: { el: `.taro-swiper-${this._id} > .swiper-container > .swiper-pagination` },\n direction: vertical ? 'vertical' : 'horizontal',\n loop: circular,\n slidesPerView: displayMultipleItems,\n initialSlide: current,\n speed: duration,\n observer: true,\n observeParents: true,\n zoom: this.zoom,\n on: {\n slideTo () {\n that.current = this.realIndex\n },\n // slideChange 事件在 swiper.slideTo 改写 current 时不触发,因此用 slideChangeTransitionStart 事件代替\n slideChangeTransitionStart (_swiper: ISwiper) {\n if (that.circular) {\n if (_swiper.isBeginning || _swiper.isEnd) {\n // _swiper.slideToLoop(this.realIndex, 0, false) // 更新下标\n return\n }\n }\n that.onChange.emit({\n current: this.realIndex,\n source: ''\n })\n },\n transitionEnd () {\n that.onAnimationFinish.emit({\n current: this.realIndex,\n source: ''\n })\n },\n observerUpdate (_swiper: ISwiper, e) {\n const target = e.target\n const className = target && typeof target.className === 'string' ? target.className : ''\n if (className.includes('taro_page') && target.style.display !== 'none') {\n if (that.autoplay && target.contains(_swiper.$el[0])) {\n if (that.circular) {\n _swiper.slideToLoop(this.realIndex, 0) // 更新下标\n } else {\n _swiper.slideTo(this.realIndex)\n }\n }\n }\n }\n }\n }\n\n // 自动播放\n if (autoplay) {\n options.autoplay = {\n delay: interval,\n disableOnInteraction: false\n }\n }\n\n this.swiper = new SwiperJS(`.taro-swiper-${this._id} > .swiper-container`, options)\n this.swiperWrapper = this.el.querySelector(`.taro-swiper-${this._id} > .swiper-container > .swiper-wrapper`)\n }\n\n render () {\n const {\n vertical,\n indicatorDots,\n indicatorColor,\n indicatorActiveColor\n } = this\n\n const hostStyle: Record<string, string> = { overflow: 'hidden' }\n const style: Record<string, string> = { overflow: 'visible' }\n if (this.full) {\n hostStyle.height = '100%'\n style.height = '100%'\n }\n\n const [, previousMargin] = /^(\\d+)px/.exec(this.previousMargin) || []\n const [, nextMargin] = /^(\\d+)px/.exec(this.nextMargin) || []\n const pM = parseInt(previousMargin) || 0\n const nM = parseInt(nextMargin) || 0\n if (vertical) {\n style.marginTop = `${pM}px`\n style.marginBottom = `${nM}px`\n } else {\n style.marginRight = `${nM}px`\n style.marginLeft = `${pM}px`\n }\n\n return (\n <Host class={`taro-swiper-${this._id}`} style={hostStyle}>\n <div class='swiper-container' style={style}>\n <style type='text/css'>\n {`\n .taro-swiper-${this._id} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet { background: ${indicatorColor} }\n .taro-swiper-${this._id} > .swiper-container > .swiper-pagination > .swiper-pagination-bullet-active { background: ${indicatorActiveColor} }\n `}\n </style>\n <div class='swiper-wrapper'>\n <slot />\n </div>\n <div class={classNames('swiper-pagination',\n {\n 'swiper-pagination-hidden': !indicatorDots,\n 'swiper-pagination-bullets': indicatorDots\n }\n )} />\n </div>\n </Host>\n )\n }\n}\n","import { Component, ComponentInterface, Element, Host, h, Prop } from '@stencil/core'\n\nfunction isEqualTag (a: Element, b: Element) {\n return typeof a.tagName === 'undefined' ? a.nodeType === b.nodeType : a.tagName === b.tagName\n}\n\nfunction parseChildNodes (items: NodeListOf<ChildNode>, targets: NodeListOf<ChildNode>) {\n const list = Array.from(targets.values())\n for (let i = 0, j = 0; i < list.length; i++, j++) {\n const target = list[i] as Element\n let item = items.item(j) as Element\n while (item && !isEqualTag(item, target)) {\n item.remove()\n j++\n item = items.item(j) as Element\n }\n if (item && !item.isEqualNode(target)) {\n parseChildNodes(item.childNodes, target.childNodes)\n }\n while (i === list.length - 1 && j < items.length) {\n j++\n item = items.item(j) as Element\n item?.remove()\n }\n }\n}\n\n@Component({\n tag: 'taro-swiper-item-core'\n})\nexport class SwiperItem implements ComponentInterface {\n @Element() el: HTMLElement\n\n @Prop() itemId: string\n\n componentDidRender () {\n const el = this.el\n\n if (el.classList.contains('swiper-slide-duplicate')) {\n const list = Array\n .from(el.parentElement?.childNodes?.values() || [])\n .filter((e: Element) => e.tagName === 'TARO-SWIPER-ITEM-CORE')\n if (list.length > 0) {\n parseChildNodes(\n el.childNodes,\n list[list.indexOf(el) === 0 ? list.length - 2 : 1]?.childNodes\n )\n }\n }\n }\n\n render () {\n return (\n <Host class='swiper-slide' item-id={this.itemId}/>\n )\n }\n}\n"],"mappings":"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"}
|