diff --git a/core/package.json b/core/package.json index 1d6700429d..cec3c755dc 100644 --- a/core/package.json +++ b/core/package.json @@ -55,7 +55,7 @@ "sass": "^1.22.9", "stylelint": "10.1.0", "stylelint-order": "3.0.1", - "swiper": "5.3.6", + "swiper": "5.3.7", "tslint": "^5.10.0", "tslint-ionic-rules": "0.0.21", "tslint-react": "^3.6.0" diff --git a/core/src/components/slides/swiper/swiper.bundle.js b/core/src/components/slides/swiper/swiper.bundle.js index a9fd9d66f8..0c90a222f5 100644 --- a/core/src/components/slides/swiper/swiper.bundle.js +++ b/core/src/components/slides/swiper/swiper.bundle.js @@ -773,7 +773,7 @@ function add(...args) { } /** - * Swiper 5.3.6 + * Swiper 5.3.7 * Most modern mobile touch slider and framework with hardware accelerated transitions * http://swiperjs.com * @@ -781,7 +781,7 @@ function add(...args) { * * Released under the MIT License * - * Released on: February 29, 2020 + * Released on: April 10, 2020 */ const Methods = { @@ -1494,8 +1494,11 @@ function updateAutoHeight (speed) { } // Find slides currently in view if (swiper.params.slidesPerView !== 'auto' && swiper.params.slidesPerView > 1) { - if (swiper.params.centeredSlides) activeSlides.push(...swiper.visibleSlides); - else { + if (swiper.params.centeredSlides) { + swiper.visibleSlides.each((index, slide) => { + activeSlides.push(slide); + }); + } else { for (i = 0; i < Math.ceil(swiper.params.slidesPerView); i += 1) { const index = swiper.activeIndex + i; if (index > swiper.slides.length) break; @@ -1729,7 +1732,7 @@ function updateActiveIndex (newActiveIndex) { if (previousRealIndex !== realIndex) { swiper.emit('realIndexChange'); } - if (swiper.initialized || swiper.runCallbacksOnInit) { + if (swiper.initialized || swiper.params.runCallbacksOnInit) { swiper.emit('slideChange'); } } @@ -2075,17 +2078,21 @@ function slideTo (index = 0, speed = this.params.speed, runCallbacks = true, int } if (params.cssMode) { const isH = swiper.isHorizontal(); + let t = -translate; + if (rtl) { + t = wrapperEl.scrollWidth - wrapperEl.offsetWidth - t; + } if (speed === 0) { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -translate; + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; } else { // eslint-disable-next-line if (wrapperEl.scrollTo) { wrapperEl.scrollTo({ - [isH ? 'left' : 'top']: -translate, + [isH ? 'left' : 'top']: t, behavior: 'smooth', }); } else { - wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = -translate; + wrapperEl[isH ? 'scrollLeft' : 'scrollTop'] = t; } } return true; @@ -3294,9 +3301,17 @@ function onClick (e) { function onScroll () { const swiper = this; - const { wrapperEl } = swiper; + const { wrapperEl, rtlTranslate } = swiper; swiper.previousTranslate = swiper.translate; - swiper.translate = swiper.isHorizontal() ? -wrapperEl.scrollLeft : -wrapperEl.scrollTop; + if (swiper.isHorizontal()) { + if (rtlTranslate) { + swiper.translate = ((wrapperEl.scrollWidth - wrapperEl.offsetWidth) - wrapperEl.scrollLeft); + } else { + swiper.translate = -wrapperEl.scrollLeft; + } + } else { + swiper.translate = -wrapperEl.scrollTop; + } // eslint-disable-next-line if (swiper.translate === -0) swiper.translate = 0; @@ -3311,7 +3326,7 @@ function onScroll () { newProgress = (swiper.translate - swiper.minTranslate()) / (translatesDiff); } if (newProgress !== swiper.progress) { - swiper.updateProgress(swiper.translate); + swiper.updateProgress(rtlTranslate ? -swiper.translate : swiper.translate); } swiper.emit('setTranslate', swiper.translate, false); @@ -5518,7 +5533,9 @@ const Zoom = { return; } } - gesture.$imageEl.transition(0); + if (gesture.$imageEl) { + gesture.$imageEl.transition(0); + } swiper.zoom.isScaling = true; }, onGestureChange(e) { @@ -5715,8 +5732,12 @@ const Zoom = { const zoom = swiper.zoom; const { gesture } = zoom; if (gesture.$slideEl && swiper.previousIndex !== swiper.activeIndex) { - gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); - gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + if (gesture.$imageEl) { + gesture.$imageEl.transform('translate3d(0,0,0) scale(1)'); + } + if (gesture.$imageWrapEl) { + gesture.$imageWrapEl.transform('translate3d(0,0,0)'); + } zoom.scale = 1; zoom.currentScale = 1; @@ -5747,7 +5768,11 @@ const Zoom = { const { gesture, image } = zoom; if (!gesture.$slideEl) { - gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { + gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`); + } else { + gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + } gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); } @@ -5833,7 +5858,11 @@ const Zoom = { const { gesture } = zoom; if (!gesture.$slideEl) { - gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + if (swiper.params.virtual && swiper.params.virtual.enabled && swiper.virtual) { + gesture.$slideEl = swiper.$wrapperEl.children(`.${swiper.params.slideActiveClass}`); + } else { + gesture.$slideEl = swiper.slides.eq(swiper.activeIndex); + } gesture.$imageEl = gesture.$slideEl.find('img, svg, canvas, picture, .swiper-zoom-target'); gesture.$imageWrapEl = gesture.$imageEl.parent(`.${params.containerClass}`); }