@tarojs/components 3.6.0-canary.8 → 3.6.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/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 +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-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 +2 -2
- 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/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 +184 -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 +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-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 +2 -2
- 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-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-5208792d.entry.js +2 -0
- package/dist/taro-components/p-5208792d.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-5beca045.system.entry.js +2 -0
- package/dist/taro-components/p-5beca045.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-6de64a4b.system.entry.js +2 -0
- package/dist/taro-components/p-6de64a4b.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-71155a2c.entry.js +2 -0
- package/dist/taro-components/p-71155a2c.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-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-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-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/picker/picker.d.ts +3 -3
- package/dist/types/components/rich-text/rich-text.d.ts +3 -3
- 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 +21 -0
- package/dist/types/stencil-public-runtime.d.ts +59 -3
- package/dist/types/utils/index.d.ts +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 +101 -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/components.d.ts +353 -0
- package/lib/vue2/components.js +621 -0
- package/lib/vue2/components.js.map +1 -0
- package/lib/vue2/index.d.ts +3 -0
- package/lib/vue2/index.js +21 -0
- package/lib/vue2/index.js.map +1 -0
- package/lib/vue2/vue-component-lib/utils.d.ts +6 -0
- package/lib/vue2/vue-component-lib/utils.js +32 -0
- package/lib/vue2/vue-component-lib/utils.js.map +1 -0
- package/lib/vue3/components.d.ts +82 -0
- package/lib/vue3/components.js +386 -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 +11 -9
- package/types/ChannelLive.d.ts +22 -0
- package/types/CoverImage.d.ts +4 -4
- package/types/CoverView.d.ts +2 -2
- package/types/Form.d.ts +6 -0
- 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/Radio.d.ts +6 -6
- package/types/RadioGroup.d.ts +2 -2
- 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/virtual-list/index.js +3 -2
- 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
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"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"],"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","margin-top","margin-bottom ","margin-left","margin-right","padding-left","padding-right","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","-webkit-box-ordinal-group","-moz-box-ordinal-group","-ms-flex-order","-webkit-order","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","pointer-events","free-mode","autoheight","multirow","multirow-column","css-mode","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","enable disable","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","scrollbarDragMove resize _freeModeNoMomentumRelease","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","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","-webkit-transform-origin","-moz-transform-origin","-ms-transform-origin","transform-origin","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","_id","handleSwiperLoopListen","_a","observerFirst","_b","observerLast","handleSwiperLoop","_c","list","debounce","circular","handleSwiperSize","[object Object]","newVal","isWillLoadCalled","n","swiperAutoplay","interval","refChild","replaceChild","oldChild","handleInit","_d","_f","_e","displayMultipleItems","vertical","that","_swiper","onChange","onAnimationFinish","SwiperJS","swiperWrapper","indicatorDots","indicatorColor","indicatorActiveColor","hostStyle","overflow","full","previousMargin","exec","nextMargin","pM","nM","h","Host","class","swiper-pagination-hidden","swiper-pagination-bullets","SwiperItem","item-id","itemId"],"mappings":"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","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 @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.loopDestroy()\n // @ts-ignore\n this.swiper.loopCreate()\n }\n }, 500)\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) // 更新下标\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, h, ComponentInterface, Prop, Host } from '@stencil/core'\n\n@Component({\n tag: 'taro-swiper-item-core'\n})\nexport class SwiperItem implements ComponentInterface {\n @Prop() itemId: string\n\n render () {\n return (\n <Host class='swiper-slide' item-id={this.itemId}/>\n )\n }\n}\n"]}
|