@gem-sdk/swiper 0.0.15-dev.1 → 0.0.16-dev.1

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.
@@ -1,5 +1,5 @@
1
1
  import { a as getWindow, g as getDocument } from './ssr-window.esm.mjs';
2
- import { b as elementParents, q as elementStyle, e as elementChildren, a as setCSSProperty, i as elementOuterSize, r as elementNextAll, t as elementPrevAll, k as getTranslate, u as animateCSSModeScroll, n as nextTick, v as showWarning, c as createElement, w as elementIsChildOf, f as now, x as extend, h as elementIndex, y as deleteProps } from './utils.mjs';
2
+ import { b as elementParents, q as elementStyle, e as elementChildren, a as setCSSProperty, i as elementOuterSize, r as computeAutoSlideSize, t as elementNextAll, u as elementPrevAll, k as getTranslate, v as animateCSSModeScroll, n as nextTick, w as showWarning, c as createElement, x as elementIsChildOf, f as now, y as extend, h as elementIndex, z as deleteProps } from './utils.mjs';
3
3
 
4
4
  let support;
5
5
  function calcSupport() {
@@ -439,44 +439,87 @@ function updateSlides() {
439
439
  // Calc slides
440
440
  let slideSize;
441
441
  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => typeof params.breakpoints[key].slidesPerView !== 'undefined').length > 0;
442
- for (let i = 0; i < slidesLength; i += 1) {
443
- slideSize = 0;
444
- let slide;
445
- if (slides[i]) slide = slides[i];
446
- if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line
442
+ const isAutoSlides = params.slidesPerView === 'auto';
447
443
 
448
- if (params.slidesPerView === 'auto') {
449
- if (shouldResetSlideSize && slides[i]) {
444
+ // --- Phase 1: Batch DOM writes (grid updates, width/transform resets) ---
445
+ // Moving all style writes before any reads prevents per-slide forced reflows
446
+ if (gridEnabled) {
447
+ for (let i = 0; i < slidesLength; i += 1) {
448
+ if (slides[i]) swiper.grid.updateSlide(i, slides[i], slides);
449
+ }
450
+ }
451
+ const savedTransforms = [];
452
+ if (isAutoSlides) {
453
+ for (let i = 0; i < slidesLength; i += 1) {
454
+ if (!slides[i]) continue;
455
+ if (shouldResetSlideSize) {
450
456
  slides[i].style[swiper.getDirectionLabel('width')] = ``;
451
457
  }
452
- const slideStyles = getComputedStyle(slide);
453
- const currentTransform = slide.style.transform;
454
- const currentWebKitTransform = slide.style.webkitTransform;
455
- if (currentTransform) slide.style.transform = 'none';
456
- if (currentWebKitTransform) slide.style.webkitTransform = 'none';
458
+ const currentTransform = slides[i].style.transform;
459
+ const currentWebKitTransform = slides[i].style.webkitTransform;
460
+ savedTransforms[i] = {
461
+ transform: currentTransform,
462
+ webkitTransform: currentWebKitTransform
463
+ };
464
+ if (currentTransform) {
465
+ slides[i].style.transform = 'none';
466
+ }
467
+ if (currentWebKitTransform) {
468
+ slides[i].style.webkitTransform = 'none';
469
+ }
470
+ }
471
+ }
472
+
473
+ // --- Phase 2: Batch DOM reads (single forced reflow for all slides) ---
474
+ // Read wrapper offset here (before Phase 3 writes) so it's batched with slide reads, not after
475
+ const wrapperOffset = swiper.isElement ? swiper.wrapperEl[`offset${swiper.isHorizontal() ? 'Left' : 'Top'}`] : 0;
476
+ const slideVisible = [];
477
+ const slideSizes = [];
478
+ for (let i = 0; i < slidesLength; i += 1) {
479
+ if (!slides[i]) {
480
+ slideVisible[i] = false;
481
+ continue;
482
+ }
483
+ if (elementStyle(slides[i], 'display') === 'none') {
484
+ slideVisible[i] = false;
485
+ continue;
486
+ }
487
+ slideVisible[i] = true;
488
+
489
+ // Cache offsetHeight for autoHeight (batched here to avoid a separate forced reflow in updateAutoHeight)
490
+ if (params.autoHeight) {
491
+ slides[i].swiperSlideHeight = slides[i]['offsetHeight'];
492
+ }
493
+ if (isAutoSlides) {
457
494
  if (params.roundLengths) {
458
- slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);
495
+ slideSizes[i] = swiper.isHorizontal() ? elementOuterSize(slides[i], 'width', true) : elementOuterSize(slides[i], 'height', true);
459
496
  } else {
460
- // eslint-disable-next-line
461
- const width = parseFloat(slideStyles.getPropertyValue('width')) || slide.offsetWidth;
462
- const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left')) || 0;
463
- const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right')) || 0;
464
- const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left')) || 0;
465
- const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right')) || 0;
466
- const boxSizing = slideStyles.getPropertyValue('box-sizing');
467
- if (boxSizing && boxSizing === 'border-box') {
468
- slideSize = width + marginLeft + marginRight;
469
- } else {
470
- const {
471
- clientWidth,
472
- offsetWidth
473
- } = slide;
474
- slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
475
- }
497
+ slideSizes[i] = computeAutoSlideSize(slides[i], getDirectionPropertyValue);
476
498
  }
477
- if (currentTransform) slide.style.transform = currentTransform;
478
- if (currentWebKitTransform) slide.style.webkitTransform = currentWebKitTransform;
479
- if (params.roundLengths) slideSize = Math.floor(slideSize);
499
+ if (params.roundLengths) slideSizes[i] = Math.floor(slideSizes[i]);
500
+ }
501
+ }
502
+
503
+ // --- Phase 3: Restore transforms (batch write) ---
504
+ if (isAutoSlides) {
505
+ for (let i = 0; i < slidesLength; i += 1) {
506
+ if (!savedTransforms[i]) continue;
507
+ if (savedTransforms[i].transform) {
508
+ slides[i].style.transform = savedTransforms[i].transform;
509
+ }
510
+ if (savedTransforms[i].webkitTransform) {
511
+ slides[i].style.webkitTransform = savedTransforms[i].webkitTransform;
512
+ }
513
+ }
514
+ }
515
+
516
+ // --- Phase 4: Calculate positions + set sizes (math + deferred writes) ---
517
+ const cssOverflowAdj = swiper.cssOverflowAdjustment();
518
+ for (let i = 0; i < slidesLength; i += 1) {
519
+ slideSize = 0;
520
+ if (!slideVisible[i]) continue;
521
+ if (isAutoSlides) {
522
+ slideSize = slideSizes[i] || 0;
480
523
  } else {
481
524
  slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
482
525
  if (params.roundLengths) slideSize = Math.floor(slideSize);
@@ -504,7 +547,12 @@ function updateSlides() {
504
547
  slidesGrid.push(slidePosition);
505
548
  slidePosition = slidePosition + slideSize + spaceBetween;
506
549
  }
507
- swiper.slidesTotalSize += slideSize + spaceBetween;
550
+
551
+ // Set swiperSlideOffset from computed grid position (avoids DOM reads in updateSlidesOffset)
552
+ if (slides[i]) {
553
+ slides[i].swiperSlideOffset = slidesGrid[slidesGrid.length - 1] - cssOverflowAdj - wrapperOffset;
554
+ }
555
+ swiper.virtualSize += slideSize + spaceBetween;
508
556
  prevSlideSize = slideSize;
509
557
  index += 1;
510
558
  }
@@ -599,7 +647,9 @@ function updateSlides() {
599
647
  swiper.emit('slidesGridLengthChange');
600
648
  }
601
649
  if (params.watchSlidesProgress) {
602
- swiper.updateSlidesOffset();
650
+ swiper.updateSlidesOffset({
651
+ isCalculatedFromUpdateSlides: false
652
+ });
603
653
  }
604
654
  swiper.emit('slidesUpdated');
605
655
  if (!params.cssMode && params.effect === 'slide') {
@@ -644,14 +694,20 @@ function updateAutoHeight(speed) {
644
694
  let newHeight = 0;
645
695
  for (let i = 0; i < activeSlides.length; i += 1) {
646
696
  if (typeof activeSlides[i] !== 'undefined') {
647
- const height = activeSlides[i].offsetHeight;
697
+ const height = activeSlides[i].swiperSlideHeight ?? activeSlides[i]['offsetHeight'];
648
698
  newHeight = height > newHeight ? height : newHeight;
649
699
  }
650
700
  }
651
701
  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
652
702
  }
653
703
 
654
- function updateSlidesOffset() {
704
+ function updateSlidesOffset(params) {
705
+ const {
706
+ isCalculatedFromUpdateSlides = false
707
+ } = params ?? {};
708
+ if (isCalculatedFromUpdateSlides) {
709
+ return;
710
+ }
655
711
  const swiper = this;
656
712
  const slides = swiper.slides;
657
713
  // eslint-disable-next-line
@@ -1938,7 +1994,9 @@ function loopFix(_temp) {
1938
1994
  swiper.updateSlides();
1939
1995
  }
1940
1996
  if (params.watchSlidesProgress) {
1941
- swiper.updateSlidesOffset();
1997
+ swiper.updateSlidesOffset({
1998
+ isCalculatedFromUpdateSlides: params.slidesPerView === 'auto'
1999
+ });
1942
2000
  }
1943
2001
  if (slideTo) {
1944
2002
  if (prependSlidesIndexes.length > 0 && isPrev) {
@@ -3503,7 +3561,8 @@ class Swiper {
3503
3561
  },
3504
3562
  // Images
3505
3563
  imagesToLoad: [],
3506
- imagesLoaded: 0
3564
+ imagesLoaded: 0,
3565
+ rtl: params?.rtl
3507
3566
  });
3508
3567
  swiper.emit('_swiper');
3509
3568
 
@@ -3765,15 +3824,18 @@ class Swiper {
3765
3824
  wrapperEl.append(slideEl);
3766
3825
  });
3767
3826
  }
3827
+ const rtl = swiper.params.rtl ?? (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl');
3828
+ const wrongRTL = false;
3768
3829
  Object.assign(swiper, {
3769
3830
  el,
3770
3831
  wrapperEl,
3771
3832
  slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
3772
3833
  hostEl: swiper.isElement ? el.parentNode.host : el,
3773
3834
  mounted: true,
3774
- rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',
3775
- rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),
3776
- wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'
3835
+ // RTL
3836
+ rtl,
3837
+ rtlTranslate: swiper.params.direction === 'horizontal' && rtl,
3838
+ wrongRTL
3777
3839
  });
3778
3840
  return true;
3779
3841
  }
@@ -3853,7 +3915,8 @@ class Swiper {
3853
3915
  });
3854
3916
  preload(swiper);
3855
3917
  swiper.initialized = true;
3856
- preload(swiper);
3918
+
3919
+ // Emit
3857
3920
  swiper.emit('init');
3858
3921
  swiper.emit('afterInit');
3859
3922
  return swiper;
@@ -1,2 +1,2 @@
1
- import{a as getWindow,g as getDocument}from"./ssr-window.esm.min.mjs";function classesToTokens(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function deleteProps(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function nextTick(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function now(){return Date.now()}function getComputedStyle(e){const t=getWindow();let n;return t.getComputedStyle&&(n=t.getComputedStyle(e,null)),!n&&e.currentStyle&&(n=e.currentStyle),n||(n=e.style),n}function getTranslate(e,t){void 0===t&&(t="x");const n=getWindow();let r,o,s;const l=getComputedStyle(e);return n.WebKitCSSMatrix?(o=l.transform||l.webkitTransform,o.split(",").length>6&&(o=o.split(", ").map((e=>e.replace(",","."))).join(", ")),s=new n.WebKitCSSMatrix("none"===o?"":o)):(s=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=s.toString().split(",")),"x"===t&&(o=n.WebKitCSSMatrix?s.m41:16===r.length?parseFloat(r[12]):parseFloat(r[4])),"y"===t&&(o=n.WebKitCSSMatrix?s.m42:16===r.length?parseFloat(r[13]):parseFloat(r[5])),o||0}function isObject(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function isNode(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function extend(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let n=1;n<arguments.length;n+=1){const r=n<0||arguments.length<=n?void 0:arguments[n];if(null!=r&&!isNode(r)){const n=Object.keys(Object(r)).filter((e=>t.indexOf(e)<0));for(let t=0,o=n.length;t<o;t+=1){const o=n[t],s=Object.getOwnPropertyDescriptor(r,o);void 0!==s&&s.enumerable&&(isObject(e[o])&&isObject(r[o])?r[o].__swiper__?e[o]=r[o]:extend(e[o],r[o]):!isObject(e[o])&&isObject(r[o])?(e[o]={},r[o].__swiper__?e[o]=r[o]:extend(e[o],r[o])):e[o]=r[o])}}}return e}function setCSSProperty(e,t,n){e.style.setProperty(t,n)}function animateCSSModeScroll(e){let{swiper:t,targetPosition:n,side:r}=e;const o=getWindow(),s=-t.translate;let l,i=null;const a=t.params.speed;t.wrapperEl.style.scrollSnapType="none",o.cancelAnimationFrame(t.cssModeFrameID);const c=n>s?"next":"prev",m=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,u=()=>{l=(new Date).getTime(),null===i&&(i=l);const e=Math.max(Math.min((l-i)/a,1),0),c=.5-Math.cos(e*Math.PI)/2;let d=s+c*(n-s);if(m(d,n)&&(d=n),t.wrapperEl.scrollTo({[r]:d}),m(d,n))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[r]:d})})),void o.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=o.requestAnimationFrame(u)};u()}function getSlideTransformEl(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function elementChildren(e,t){void 0===t&&(t="");const n=getWindow(),r=[...e.children];return n.HTMLSlotElement&&e instanceof HTMLSlotElement&&r.push(...e.assignedElements()),t?r.filter((e=>e.matches(t))):r}function elementIsChildOfSlot(e,t){const n=[t];for(;n.length>0;){const t=n.shift();if(e===t)return!0;n.push(...t.children,...t.shadowRoot?t.shadowRoot.children:[],...t.assignedElements?t.assignedElements():[])}}function elementIsChildOf(e,t){const n=getWindow();let r=t.contains(e);if(!r&&n.HTMLSlotElement&&t instanceof HTMLSlotElement){r=[...t.assignedElements()].includes(e),r||(r=elementIsChildOfSlot(e,t))}return r}function showWarning(e){try{return void console.warn(e)}catch(e){}}function createElement(e,t){void 0===t&&(t=[]);const n=document.createElement(e);return n.classList.add(...Array.isArray(t)?t:classesToTokens(t)),n}function elementOffset(e){const t=getWindow(),n=getDocument(),r=e.getBoundingClientRect(),o=n.body,s=e.clientTop||o.clientTop||0,l=e.clientLeft||o.clientLeft||0,i=e===t?t.scrollY:e.scrollTop,a=e===t?t.scrollX:e.scrollLeft;return{top:r.top+i-s,left:r.left+a-l}}function elementPrevAll(e,t){const n=[];for(;e.previousElementSibling;){const r=e.previousElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementNextAll(e,t){const n=[];for(;e.nextElementSibling;){const r=e.nextElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementStyle(e,t){return getWindow().getComputedStyle(e,null).getPropertyValue(t)}function elementIndex(e){let t,n=e;if(n){for(t=0;null!==(n=n.previousSibling);)1===n.nodeType&&(t+=1);return t}}function elementParents(e,t){const n=[];let r=e.parentElement;for(;r;)t?r.matches(t)&&n.push(r):n.push(r),r=r.parentElement;return n}function elementTransitionEnd(e,t){t&&e.addEventListener("transitionend",(function n(r){r.target===e&&(t.call(e,r),e.removeEventListener("transitionend",n))}))}function elementOuterSize(e,t,n){const r=getWindow();return n?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function makeElementsArray(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}function getRotateFix(e){return t=>Math.abs(t)>0&&e.browser&&e.browser.need3dFix&&Math.abs(t)%90==0?t+.001:t}function setInnerHTML(e,t){void 0===t&&(t=""),"undefined"!=typeof trustedTypes?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:e=>e}).createHTML(t):e.innerHTML=t}export{setCSSProperty as a,elementParents as b,createElement as c,elementOffset as d,elementChildren as e,now as f,getSlideTransformEl as g,elementIndex as h,elementOuterSize as i,classesToTokens as j,getTranslate as k,elementTransitionEnd as l,makeElementsArray as m,nextTick as n,isObject as o,getRotateFix as p,elementStyle as q,elementNextAll as r,setInnerHTML as s,elementPrevAll as t,animateCSSModeScroll as u,showWarning as v,elementIsChildOf as w,extend as x,deleteProps as y};
1
+ import{a as getWindow,g as getDocument}from"./ssr-window.esm.min.mjs";function classesToTokens(e){return void 0===e&&(e=""),e.trim().split(" ").filter((e=>!!e.trim()))}function deleteProps(e){const t=e;Object.keys(t).forEach((e=>{try{t[e]=null}catch(e){}try{delete t[e]}catch(e){}}))}function nextTick(e,t){return void 0===t&&(t=0),setTimeout(e,t)}function now(){return Date.now()}function getComputedStyle(e){const t=getWindow();let n;return t.getComputedStyle&&(n=t.getComputedStyle(e,null)),!n&&e.currentStyle&&(n=e.currentStyle),n||(n=e.style),n}function getTranslate(e,t){void 0===t&&(t="x");const n=getWindow();let r,o,s;const l=getComputedStyle(e);return n.WebKitCSSMatrix?(o=l.transform||l.webkitTransform,o.split(",").length>6&&(o=o.split(", ").map((e=>e.replace(",","."))).join(", ")),s=new n.WebKitCSSMatrix("none"===o?"":o)):(s=l.MozTransform||l.OTransform||l.MsTransform||l.msTransform||l.transform||l.getPropertyValue("transform").replace("translate(","matrix(1, 0, 0, 1,"),r=s.toString().split(",")),"x"===t&&(o=n.WebKitCSSMatrix?s.m41:16===r.length?parseFloat(r[12]):parseFloat(r[4])),"y"===t&&(o=n.WebKitCSSMatrix?s.m42:16===r.length?parseFloat(r[13]):parseFloat(r[5])),o||0}function isObject(e){return"object"==typeof e&&null!==e&&e.constructor&&"Object"===Object.prototype.toString.call(e).slice(8,-1)}function isNode(e){return"undefined"!=typeof window&&void 0!==window.HTMLElement?e instanceof HTMLElement:e&&(1===e.nodeType||11===e.nodeType)}function extend(){const e=Object(arguments.length<=0?void 0:arguments[0]),t=["__proto__","constructor","prototype"];for(let n=1;n<arguments.length;n+=1){const r=n<0||arguments.length<=n?void 0:arguments[n];if(null!=r&&!isNode(r)){const n=Object.keys(Object(r)).filter((e=>t.indexOf(e)<0));for(let t=0,o=n.length;t<o;t+=1){const o=n[t],s=Object.getOwnPropertyDescriptor(r,o);void 0!==s&&s.enumerable&&(isObject(e[o])&&isObject(r[o])?r[o].__swiper__?e[o]=r[o]:extend(e[o],r[o]):!isObject(e[o])&&isObject(r[o])?(e[o]={},r[o].__swiper__?e[o]=r[o]:extend(e[o],r[o])):e[o]=r[o])}}}return e}function setCSSProperty(e,t,n){e.style.setProperty(t,n)}function animateCSSModeScroll(e){let{swiper:t,targetPosition:n,side:r}=e;const o=getWindow(),s=-t.translate;let l,i=null;const a=t.params.speed;t.wrapperEl.style.scrollSnapType="none",o.cancelAnimationFrame(t.cssModeFrameID);const c=n>s?"next":"prev",u=(e,t)=>"next"===c&&e>=t||"prev"===c&&e<=t,m=()=>{l=(new Date).getTime(),null===i&&(i=l);const e=Math.max(Math.min((l-i)/a,1),0),c=.5-Math.cos(e*Math.PI)/2;let d=s+c*(n-s);if(u(d,n)&&(d=n),t.wrapperEl.scrollTo({[r]:d}),u(d,n))return t.wrapperEl.style.overflow="hidden",t.wrapperEl.style.scrollSnapType="",setTimeout((()=>{t.wrapperEl.style.overflow="",t.wrapperEl.scrollTo({[r]:d})})),void o.cancelAnimationFrame(t.cssModeFrameID);t.cssModeFrameID=o.requestAnimationFrame(m)};m()}function getSlideTransformEl(e){return e.querySelector(".swiper-slide-transform")||e.shadowRoot&&e.shadowRoot.querySelector(".swiper-slide-transform")||e}function elementChildren(e,t){void 0===t&&(t="");const n=getWindow(),r=[...e.children];return n.HTMLSlotElement&&e instanceof HTMLSlotElement&&r.push(...e.assignedElements()),t?r.filter((e=>e.matches(t))):r}function elementIsChildOfSlot(e,t){const n=[t];for(;n.length>0;){const t=n.shift();if(e===t)return!0;n.push(...t.children,...t.shadowRoot?t.shadowRoot.children:[],...t.assignedElements?t.assignedElements():[])}}function elementIsChildOf(e,t){const n=getWindow();let r=t.contains(e);if(!r&&n.HTMLSlotElement&&t instanceof HTMLSlotElement){r=[...t.assignedElements()].includes(e),r||(r=elementIsChildOfSlot(e,t))}return r}function showWarning(e){try{return void console.warn(e)}catch(e){}}function createElement(e,t){void 0===t&&(t=[]);const n=document.createElement(e);return n.classList.add(...Array.isArray(t)?t:classesToTokens(t)),n}function elementOffset(e){const t=getWindow(),n=getDocument(),r=e.getBoundingClientRect(),o=n.body,s=e.clientTop||o.clientTop||0,l=e.clientLeft||o.clientLeft||0,i=e===t?t.scrollY:e.scrollTop,a=e===t?t.scrollX:e.scrollLeft;return{top:r.top+i-s,left:r.left+a-l}}function elementPrevAll(e,t){const n=[];for(;e.previousElementSibling;){const r=e.previousElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementNextAll(e,t){const n=[];for(;e.nextElementSibling;){const r=e.nextElementSibling;t?r.matches(t)&&n.push(r):n.push(r),e=r}return n}function elementStyle(e,t){return getWindow().getComputedStyle(e,null).getPropertyValue(t)}function elementIndex(e){let t,n=e;if(n){for(t=0;null!==(n=n.previousSibling);)1===n.nodeType&&(t+=1);return t}}function elementParents(e,t){const n=[];let r=e.parentElement;for(;r;)t?r.matches(t)&&n.push(r):n.push(r),r=r.parentElement;return n}function elementTransitionEnd(e,t){t&&e.addEventListener("transitionend",(function n(r){r.target===e&&(t.call(e,r),e.removeEventListener("transitionend",n))}))}function elementOuterSize(e,t,n){const r=getWindow();return n?e["width"===t?"offsetWidth":"offsetHeight"]+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-right":"margin-top"))+parseFloat(r.getComputedStyle(e,null).getPropertyValue("width"===t?"margin-left":"margin-bottom")):e.offsetWidth}function makeElementsArray(e){return(Array.isArray(e)?e:[e]).filter((e=>!!e))}function getRotateFix(e){return t=>Math.abs(t)>0&&e.browser&&e.browser.need3dFix&&Math.abs(t)%90==0?t+.001:t}function setInnerHTML(e,t){void 0===t&&(t=""),"undefined"!=typeof trustedTypes?e.innerHTML=trustedTypes.createPolicy("html",{createHTML:e=>e}).createHTML(t):e.innerHTML=t}function computeAutoSlideSize(e,t){const n=getComputedStyle(e),r=t(n,"width"),o=t(n,"padding-left"),s=t(n,"padding-right"),l=t(n,"margin-left"),i=t(n,"margin-right"),a=n.getPropertyValue("box-sizing");if(a&&"border-box"===a)return r+l+i;const{clientWidth:c,offsetWidth:u}=e;return r+o+s+l+i+(u-c)}export{setCSSProperty as a,elementParents as b,createElement as c,elementOffset as d,elementChildren as e,now as f,getSlideTransformEl as g,elementIndex as h,elementOuterSize as i,classesToTokens as j,getTranslate as k,elementTransitionEnd as l,makeElementsArray as m,nextTick as n,isObject as o,getRotateFix as p,elementStyle as q,computeAutoSlideSize as r,setInnerHTML as s,elementNextAll as t,elementPrevAll as u,animateCSSModeScroll as v,showWarning as w,elementIsChildOf as x,extend as y,deleteProps as z};
2
2
  //# sourceMappingURL=utils.min.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.mjs.mjs","names":["getWindow","getDocument","classesToTokens","classes","trim","split","filter","c","deleteProps","obj","object","Object","keys","forEach","key","e","nextTick","callback","delay","setTimeout","now","Date","getComputedStyle","el","window","style","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","length","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","o","constructor","prototype","call","slice","isNode","node","HTMLElement","nodeType","extend","to","arguments","undefined","noExtend","i","nextSource","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","current","target","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","requestAnimationFrame","getSlideTransformEl","slideEl","querySelector","shadowRoot","elementChildren","element","selector","children","HTMLSlotElement","push","assignedElements","matches","elementIsChildOfSlot","slot","elementsQueue","elementToCheck","shift","elementIsChildOf","parent","isChild","contains","includes","showWarning","text","console","warn","err","createElement","tag","document","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parentElement","elementTransitionEnd","addEventListener","fireCallBack","removeEventListener","elementOuterSize","size","includeMargins","offsetWidth","makeElementsArray","getRotateFix","v","abs","browser","need3dFix","setInnerHTML","html","trustedTypes","innerHTML","createPolicy","createHTML","s"],"sources":["0"],"mappings":"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"}
1
+ {"version":3,"file":"utils.mjs.mjs","names":["getWindow","getDocument","classesToTokens","classes","trim","split","filter","c","deleteProps","obj","object","Object","keys","forEach","key","e","nextTick","callback","delay","setTimeout","now","Date","getComputedStyle","el","window","style","currentStyle","getTranslate","axis","matrix","curTransform","transformMatrix","curStyle","WebKitCSSMatrix","transform","webkitTransform","length","map","a","replace","join","MozTransform","OTransform","MsTransform","msTransform","getPropertyValue","toString","m41","parseFloat","m42","isObject","o","constructor","prototype","call","slice","isNode","node","HTMLElement","nodeType","extend","to","arguments","undefined","noExtend","i","nextSource","keysArray","indexOf","nextIndex","len","nextKey","desc","getOwnPropertyDescriptor","enumerable","__swiper__","setCSSProperty","varName","varValue","setProperty","animateCSSModeScroll","_ref","swiper","targetPosition","side","startPosition","translate","time","startTime","duration","params","speed","wrapperEl","scrollSnapType","cancelAnimationFrame","cssModeFrameID","dir","isOutOfBound","current","target","animate","getTime","progress","Math","max","min","easeProgress","cos","PI","currentPosition","scrollTo","overflow","requestAnimationFrame","getSlideTransformEl","slideEl","querySelector","shadowRoot","elementChildren","element","selector","children","HTMLSlotElement","push","assignedElements","matches","elementIsChildOfSlot","slot","elementsQueue","elementToCheck","shift","elementIsChildOf","parent","isChild","contains","includes","showWarning","text","console","warn","err","createElement","tag","document","classList","add","Array","isArray","elementOffset","box","getBoundingClientRect","body","clientTop","clientLeft","scrollTop","scrollY","scrollLeft","scrollX","top","left","elementPrevAll","prevEls","previousElementSibling","prev","elementNextAll","nextEls","nextElementSibling","next","elementStyle","prop","elementIndex","child","previousSibling","elementParents","parents","parentElement","elementTransitionEnd","addEventListener","fireCallBack","removeEventListener","elementOuterSize","size","includeMargins","offsetWidth","makeElementsArray","getRotateFix","v","abs","browser","need3dFix","setInnerHTML","html","trustedTypes","innerHTML","createPolicy","createHTML","s","computeAutoSlideSize","getDirectionPropValue","styles","width","paddingLeft","paddingRight","marginLeft","marginRight","boxSizing","clientWidth"],"sources":["0"],"mappings":"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"}
package/shared/utils.mjs CHANGED
@@ -339,5 +339,22 @@ function setInnerHTML(el, html) {
339
339
  el.innerHTML = html;
340
340
  }
341
341
  }
342
+ function computeAutoSlideSize(slideEl, getDirectionPropValue) {
343
+ const styles = getComputedStyle(slideEl);
344
+ const width = getDirectionPropValue(styles, 'width');
345
+ const paddingLeft = getDirectionPropValue(styles, 'padding-left');
346
+ const paddingRight = getDirectionPropValue(styles, 'padding-right');
347
+ const marginLeft = getDirectionPropValue(styles, 'margin-left');
348
+ const marginRight = getDirectionPropValue(styles, 'margin-right');
349
+ const boxSizing = styles.getPropertyValue('box-sizing');
350
+ if (boxSizing && boxSizing === 'border-box') {
351
+ return width + marginLeft + marginRight;
352
+ }
353
+ const {
354
+ clientWidth,
355
+ offsetWidth
356
+ } = slideEl;
357
+ return width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
358
+ }
342
359
 
343
- export { setCSSProperty as a, elementParents as b, createElement as c, elementOffset as d, elementChildren as e, now as f, getSlideTransformEl as g, elementIndex as h, elementOuterSize as i, classesToTokens as j, getTranslate as k, elementTransitionEnd as l, makeElementsArray as m, nextTick as n, isObject as o, getRotateFix as p, elementStyle as q, elementNextAll as r, setInnerHTML as s, elementPrevAll as t, animateCSSModeScroll as u, showWarning as v, elementIsChildOf as w, extend as x, deleteProps as y };
360
+ export { setCSSProperty as a, elementParents as b, createElement as c, elementOffset as d, elementChildren as e, now as f, getSlideTransformEl as g, elementIndex as h, elementOuterSize as i, classesToTokens as j, getTranslate as k, elementTransitionEnd as l, makeElementsArray as m, nextTick as n, isObject as o, getRotateFix as p, elementStyle as q, computeAutoSlideSize as r, setInnerHTML as s, elementNextAll as t, elementPrevAll as u, animateCSSModeScroll as v, showWarning as w, elementIsChildOf as x, extend as y, deleteProps as z };
package/swiper-bundle.css CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Swiper 0.0.15-dev.1
2
+ * Swiper 0.0.16-dev.1
3
3
  * Gem SDK - Swiper, Customized of swiper
4
4
  * https://swiperjs.com
5
5
  *
package/swiper-bundle.js CHANGED
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Swiper 0.0.15-dev.1
2
+ * Swiper 0.0.16-dev.1
3
3
  * Gem SDK - Swiper, Customized of swiper
4
4
  * https://swiperjs.com
5
5
  *
@@ -189,7 +189,7 @@ var Swiper = (function () {
189
189
  function now() {
190
190
  return Date.now();
191
191
  }
192
- function getComputedStyle$1(el) {
192
+ function getComputedStyle(el) {
193
193
  const window = getWindow();
194
194
  let style;
195
195
  if (window.getComputedStyle) {
@@ -211,7 +211,7 @@ var Swiper = (function () {
211
211
  let matrix;
212
212
  let curTransform;
213
213
  let transformMatrix;
214
- const curStyle = getComputedStyle$1(el);
214
+ const curStyle = getComputedStyle(el);
215
215
  if (window.WebKitCSSMatrix) {
216
216
  curTransform = curStyle.transform || curStyle.webkitTransform;
217
217
  if (curTransform.split(',').length > 6) {
@@ -497,6 +497,23 @@ var Swiper = (function () {
497
497
  el.innerHTML = html;
498
498
  }
499
499
  }
500
+ function computeAutoSlideSize(slideEl, getDirectionPropValue) {
501
+ const styles = getComputedStyle(slideEl);
502
+ const width = getDirectionPropValue(styles, 'width');
503
+ const paddingLeft = getDirectionPropValue(styles, 'padding-left');
504
+ const paddingRight = getDirectionPropValue(styles, 'padding-right');
505
+ const marginLeft = getDirectionPropValue(styles, 'margin-left');
506
+ const marginRight = getDirectionPropValue(styles, 'margin-right');
507
+ const boxSizing = styles.getPropertyValue('box-sizing');
508
+ if (boxSizing && boxSizing === 'border-box') {
509
+ return width + marginLeft + marginRight;
510
+ }
511
+ const {
512
+ clientWidth,
513
+ offsetWidth
514
+ } = slideEl;
515
+ return width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
516
+ }
500
517
 
501
518
  let support;
502
519
  function calcSupport() {
@@ -936,44 +953,87 @@ var Swiper = (function () {
936
953
  // Calc slides
937
954
  let slideSize;
938
955
  const shouldResetSlideSize = params.slidesPerView === 'auto' && params.breakpoints && Object.keys(params.breakpoints).filter(key => typeof params.breakpoints[key].slidesPerView !== 'undefined').length > 0;
939
- for (let i = 0; i < slidesLength; i += 1) {
940
- slideSize = 0;
941
- let slide;
942
- if (slides[i]) slide = slides[i];
943
- if (slides[i] && elementStyle(slide, 'display') === 'none') continue; // eslint-disable-line
956
+ const isAutoSlides = params.slidesPerView === 'auto';
944
957
 
945
- if (params.slidesPerView === 'auto') {
946
- if (shouldResetSlideSize && slides[i]) {
958
+ // --- Phase 1: Batch DOM writes (grid updates, width/transform resets) ---
959
+ // Moving all style writes before any reads prevents per-slide forced reflows
960
+ if (gridEnabled) {
961
+ for (let i = 0; i < slidesLength; i += 1) {
962
+ if (slides[i]) swiper.grid.updateSlide(i, slides[i], slides);
963
+ }
964
+ }
965
+ const savedTransforms = [];
966
+ if (isAutoSlides) {
967
+ for (let i = 0; i < slidesLength; i += 1) {
968
+ if (!slides[i]) continue;
969
+ if (shouldResetSlideSize) {
947
970
  slides[i].style[swiper.getDirectionLabel('width')] = ``;
948
971
  }
949
- const slideStyles = getComputedStyle(slide);
950
- const currentTransform = slide.style.transform;
951
- const currentWebKitTransform = slide.style.webkitTransform;
952
- if (currentTransform) slide.style.transform = 'none';
953
- if (currentWebKitTransform) slide.style.webkitTransform = 'none';
972
+ const currentTransform = slides[i].style.transform;
973
+ const currentWebKitTransform = slides[i].style.webkitTransform;
974
+ savedTransforms[i] = {
975
+ transform: currentTransform,
976
+ webkitTransform: currentWebKitTransform
977
+ };
978
+ if (currentTransform) {
979
+ slides[i].style.transform = 'none';
980
+ }
981
+ if (currentWebKitTransform) {
982
+ slides[i].style.webkitTransform = 'none';
983
+ }
984
+ }
985
+ }
986
+
987
+ // --- Phase 2: Batch DOM reads (single forced reflow for all slides) ---
988
+ // Read wrapper offset here (before Phase 3 writes) so it's batched with slide reads, not after
989
+ const wrapperOffset = swiper.isElement ? swiper.wrapperEl[`offset${swiper.isHorizontal() ? 'Left' : 'Top'}`] : 0;
990
+ const slideVisible = [];
991
+ const slideSizes = [];
992
+ for (let i = 0; i < slidesLength; i += 1) {
993
+ if (!slides[i]) {
994
+ slideVisible[i] = false;
995
+ continue;
996
+ }
997
+ if (elementStyle(slides[i], 'display') === 'none') {
998
+ slideVisible[i] = false;
999
+ continue;
1000
+ }
1001
+ slideVisible[i] = true;
1002
+
1003
+ // Cache offsetHeight for autoHeight (batched here to avoid a separate forced reflow in updateAutoHeight)
1004
+ if (params.autoHeight) {
1005
+ slides[i].swiperSlideHeight = slides[i]['offsetHeight'];
1006
+ }
1007
+ if (isAutoSlides) {
954
1008
  if (params.roundLengths) {
955
- slideSize = swiper.isHorizontal() ? elementOuterSize(slide, 'width', true) : elementOuterSize(slide, 'height', true);
1009
+ slideSizes[i] = swiper.isHorizontal() ? elementOuterSize(slides[i], 'width', true) : elementOuterSize(slides[i], 'height', true);
956
1010
  } else {
957
- // eslint-disable-next-line
958
- const width = parseFloat(slideStyles.getPropertyValue('width')) || slide.offsetWidth;
959
- const paddingLeft = parseFloat(slideStyles.getPropertyValue('padding-left')) || 0;
960
- const paddingRight = parseFloat(slideStyles.getPropertyValue('padding-right')) || 0;
961
- const marginLeft = parseFloat(slideStyles.getPropertyValue('margin-left')) || 0;
962
- const marginRight = parseFloat(slideStyles.getPropertyValue('margin-right')) || 0;
963
- const boxSizing = slideStyles.getPropertyValue('box-sizing');
964
- if (boxSizing && boxSizing === 'border-box') {
965
- slideSize = width + marginLeft + marginRight;
966
- } else {
967
- const {
968
- clientWidth,
969
- offsetWidth
970
- } = slide;
971
- slideSize = width + paddingLeft + paddingRight + marginLeft + marginRight + (offsetWidth - clientWidth);
972
- }
1011
+ slideSizes[i] = computeAutoSlideSize(slides[i], getDirectionPropertyValue);
973
1012
  }
974
- if (currentTransform) slide.style.transform = currentTransform;
975
- if (currentWebKitTransform) slide.style.webkitTransform = currentWebKitTransform;
976
- if (params.roundLengths) slideSize = Math.floor(slideSize);
1013
+ if (params.roundLengths) slideSizes[i] = Math.floor(slideSizes[i]);
1014
+ }
1015
+ }
1016
+
1017
+ // --- Phase 3: Restore transforms (batch write) ---
1018
+ if (isAutoSlides) {
1019
+ for (let i = 0; i < slidesLength; i += 1) {
1020
+ if (!savedTransforms[i]) continue;
1021
+ if (savedTransforms[i].transform) {
1022
+ slides[i].style.transform = savedTransforms[i].transform;
1023
+ }
1024
+ if (savedTransforms[i].webkitTransform) {
1025
+ slides[i].style.webkitTransform = savedTransforms[i].webkitTransform;
1026
+ }
1027
+ }
1028
+ }
1029
+
1030
+ // --- Phase 4: Calculate positions + set sizes (math + deferred writes) ---
1031
+ const cssOverflowAdj = swiper.cssOverflowAdjustment();
1032
+ for (let i = 0; i < slidesLength; i += 1) {
1033
+ slideSize = 0;
1034
+ if (!slideVisible[i]) continue;
1035
+ if (isAutoSlides) {
1036
+ slideSize = slideSizes[i] || 0;
977
1037
  } else {
978
1038
  slideSize = (swiperSize - (params.slidesPerView - 1) * spaceBetween) / params.slidesPerView;
979
1039
  if (params.roundLengths) slideSize = Math.floor(slideSize);
@@ -1001,7 +1061,12 @@ var Swiper = (function () {
1001
1061
  slidesGrid.push(slidePosition);
1002
1062
  slidePosition = slidePosition + slideSize + spaceBetween;
1003
1063
  }
1004
- swiper.slidesTotalSize += slideSize + spaceBetween;
1064
+
1065
+ // Set swiperSlideOffset from computed grid position (avoids DOM reads in updateSlidesOffset)
1066
+ if (slides[i]) {
1067
+ slides[i].swiperSlideOffset = slidesGrid[slidesGrid.length - 1] - cssOverflowAdj - wrapperOffset;
1068
+ }
1069
+ swiper.virtualSize += slideSize + spaceBetween;
1005
1070
  prevSlideSize = slideSize;
1006
1071
  index += 1;
1007
1072
  }
@@ -1096,7 +1161,9 @@ var Swiper = (function () {
1096
1161
  swiper.emit('slidesGridLengthChange');
1097
1162
  }
1098
1163
  if (params.watchSlidesProgress) {
1099
- swiper.updateSlidesOffset();
1164
+ swiper.updateSlidesOffset({
1165
+ isCalculatedFromUpdateSlides: false
1166
+ });
1100
1167
  }
1101
1168
  swiper.emit('slidesUpdated');
1102
1169
  if (!params.cssMode && params.effect === 'slide') {
@@ -1141,14 +1208,20 @@ var Swiper = (function () {
1141
1208
  let newHeight = 0;
1142
1209
  for (let i = 0; i < activeSlides.length; i += 1) {
1143
1210
  if (typeof activeSlides[i] !== 'undefined') {
1144
- const height = activeSlides[i].offsetHeight;
1211
+ const height = activeSlides[i].swiperSlideHeight ?? activeSlides[i]['offsetHeight'];
1145
1212
  newHeight = height > newHeight ? height : newHeight;
1146
1213
  }
1147
1214
  }
1148
1215
  if (newHeight || newHeight === 0) swiper.wrapperEl.style.height = `${newHeight}px`;
1149
1216
  }
1150
1217
 
1151
- function updateSlidesOffset() {
1218
+ function updateSlidesOffset(params) {
1219
+ const {
1220
+ isCalculatedFromUpdateSlides = false
1221
+ } = params ?? {};
1222
+ if (isCalculatedFromUpdateSlides) {
1223
+ return;
1224
+ }
1152
1225
  const swiper = this;
1153
1226
  const slides = swiper.slides;
1154
1227
  // eslint-disable-next-line
@@ -2435,7 +2508,9 @@ var Swiper = (function () {
2435
2508
  swiper.updateSlides();
2436
2509
  }
2437
2510
  if (params.watchSlidesProgress) {
2438
- swiper.updateSlidesOffset();
2511
+ swiper.updateSlidesOffset({
2512
+ isCalculatedFromUpdateSlides: params.slidesPerView === 'auto'
2513
+ });
2439
2514
  }
2440
2515
  if (slideTo) {
2441
2516
  if (prependSlidesIndexes.length > 0 && isPrev) {
@@ -4000,7 +4075,8 @@ var Swiper = (function () {
4000
4075
  },
4001
4076
  // Images
4002
4077
  imagesToLoad: [],
4003
- imagesLoaded: 0
4078
+ imagesLoaded: 0,
4079
+ rtl: params?.rtl
4004
4080
  });
4005
4081
  swiper.emit('_swiper');
4006
4082
 
@@ -4262,15 +4338,18 @@ var Swiper = (function () {
4262
4338
  wrapperEl.append(slideEl);
4263
4339
  });
4264
4340
  }
4341
+ const rtl = swiper.params.rtl ?? (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl');
4342
+ const wrongRTL = false;
4265
4343
  Object.assign(swiper, {
4266
4344
  el,
4267
4345
  wrapperEl,
4268
4346
  slidesEl: swiper.isElement && !el.parentNode.host.slideSlots ? el.parentNode.host : wrapperEl,
4269
4347
  hostEl: swiper.isElement ? el.parentNode.host : el,
4270
4348
  mounted: true,
4271
- rtl: el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl',
4272
- rtlTranslate: swiper.params.direction === 'horizontal' && (el.dir.toLowerCase() === 'rtl' || elementStyle(el, 'direction') === 'rtl'),
4273
- wrongRTL: elementStyle(wrapperEl, 'display') === '-webkit-box'
4349
+ // RTL
4350
+ rtl,
4351
+ rtlTranslate: swiper.params.direction === 'horizontal' && rtl,
4352
+ wrongRTL
4274
4353
  });
4275
4354
  return true;
4276
4355
  }
@@ -4350,7 +4429,8 @@ var Swiper = (function () {
4350
4429
  });
4351
4430
  preload(swiper);
4352
4431
  swiper.initialized = true;
4353
- preload(swiper);
4432
+
4433
+ // Emit
4354
4434
  swiper.emit('init');
4355
4435
  swiper.emit('afterInit');
4356
4436
  return swiper;
@@ -9825,7 +9905,7 @@ var Swiper = (function () {
9825
9905
  }
9826
9906
 
9827
9907
  /**
9828
- * Swiper 0.0.15-dev.1
9908
+ * Swiper 0.0.16-dev.1
9829
9909
  * Gem SDK - Swiper, Customized of swiper
9830
9910
  * https://swiperjs.com
9831
9911
  *
@@ -1,5 +1,5 @@
1
1
  /**
2
- * Swiper 0.0.15-dev.1
2
+ * Swiper 0.0.16-dev.1
3
3
  * Gem SDK - Swiper, Customized of swiper
4
4
  * https://swiperjs.com
5
5
  *