Browse Source

Set SR styles by script. Add a collection of component constructors.

Naotoshi Fujita 2 năm trước cách đây
mục cha
commit
e473bc5411

+ 1 - 1
dist/css/splide-core.min.css

@@ -1 +1 @@
-@keyframes splide-loading{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.splide__track--draggable{-webkit-touch-callout:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0 !important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0 !important;padding:0 !important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none !important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s infinite linear;border:2px solid #999;border-left-color:rgba(0,0,0,0);border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__sr{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__play{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}
+@keyframes splide-loading{0%{transform:rotateZ(0)}100%{transform:rotateZ(360deg)}}.splide__track--draggable{-webkit-touch-callout:none;user-select:none}.splide__track--fade>.splide__list>.splide__slide{margin:0 !important;opacity:0;z-index:0}.splide__track--fade>.splide__list>.splide__slide.is-active{opacity:1;z-index:1}.splide--rtl{direction:rtl}.splide__track--ttb>.splide__list{display:block}.splide__container{box-sizing:border-box;position:relative}.splide__list{backface-visibility:hidden;display:flex;height:100%;margin:0 !important;padding:0 !important}.splide.is-initialized:not(.is-active) .splide__list{display:block}.splide__pagination{align-items:center;display:flex;flex-wrap:wrap;justify-content:center;margin:0;pointer-events:none}.splide__pagination li{display:inline-block;line-height:1;list-style-type:none;margin:0;pointer-events:auto}.splide:not(.is-overflow) .splide__pagination{display:none}.splide__progress__bar{width:0}.splide{position:relative;visibility:hidden}.splide.is-initialized,.splide.is-rendered{visibility:visible}.splide__slide{backface-visibility:hidden;box-sizing:border-box;flex-shrink:0;list-style-type:none !important;margin:0;position:relative}.splide__slide img{vertical-align:bottom}.splide__spinner{animation:splide-loading 1s infinite linear;border:2px solid #999;border-left-color:rgba(0,0,0,0);border-radius:50%;bottom:0;contain:strict;display:inline-block;height:20px;left:0;margin:auto;position:absolute;right:0;top:0;width:20px}.splide__toggle__pause{display:none}.splide__toggle.is-active .splide__toggle__play{display:none}.splide__toggle.is-active .splide__toggle__pause{display:inline}.splide__track{overflow:hidden;position:relative;z-index:0}

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/css/splide.min.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/css/themes/splide-default.min.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/css/themes/splide-sea-green.min.css


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/css/themes/splide-skyblue.min.css


+ 35 - 53
dist/js/splide.cjs.js

@@ -673,6 +673,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
   const { on, emit, bind } = event;
   const { Components, root, options } = Splide2;
   const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;
+  const { Elements } = Components;
   const { resolve } = Components.Direction;
   const styles = wn(slide, "style");
   const label = wn(slide, ARIA_LABEL);
@@ -767,7 +768,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     if (Splide2.is(FADE)) {
       return isActive();
     }
-    const trackRect = tn(Components.Elements.track);
+    const trackRect = tn(Elements.track);
     const slideRect = tn(slide);
     const left = resolve("left", true);
     const right = resolve("right", true);
@@ -780,8 +781,9 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     }
     return diff <= distance;
   }
-  function position() {
-    return slide[resolve("offsetLeft")];
+  function pos() {
+    const left = resolve("left");
+    return un(tn(slide)[left] - tn(Elements.list)[left]);
   }
   function size() {
     return tn(slide)[resolve("width")];
@@ -795,7 +797,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     mount,
     destroy,
     update,
-    position,
+    pos,
     size,
     style,
     isWithin
@@ -989,17 +991,21 @@ function Layout(Splide2, Components2, options, event) {
   }
   function totalSize(index, withoutGap) {
     const Slide = getAt(index);
-    return Slide ? Slide.position() + Slide.size() + (withoutGap ? 0 : getGap()) : 0;
+    return Slide ? Slide.pos() + Slide.size() + (withoutGap ? 0 : getGap()) : 0;
   }
   function sliderSize(withoutGap) {
     return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);
   }
   function getGap() {
-    const Slide = getAt(0);
-    return Slide && parseFloat(nn(Slide.slide, resolve("marginRight"))) || 0;
+    const first = getAt(0);
+    const second = getAt(1);
+    return first && second ? second.pos() - first.pos() - first.size() : 0;
   }
   function getPadding(right) {
-    return list[`offset${right ? "Right" : "Left"}`];
+    return parseFloat(nn(
+      track,
+      resolve(`padding${right ? "Right" : "Left"}`)
+    )) || 0;
   }
   function isOverflow() {
     return Splide2.is(FADE) || sliderSize(true) > listSize();
@@ -1090,13 +1096,14 @@ function Clones(Splide2, Components2, options, event) {
 function Move(Splide2, Components2, options, event) {
   const { on, emit } = event;
   const { set } = Splide2.state;
+  const { Slides } = Components2;
   const { slideSize, getPadding, listSize, sliderSize } = Components2.Layout;
   const { resolve, orient } = Components2.Direction;
   const { list, track } = Components2.Elements;
   let Transition;
   function mount() {
     Transition = Components2.Transition;
-    on([EVENT_RESIZED], reposition);
+    on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);
   }
   function reposition() {
     if (!Components2.Controller.isBusy()) {
@@ -1150,11 +1157,11 @@ function Move(Splide2, Components2, options, event) {
     Transition.cancel();
   }
   function toIndex(position) {
-    const Slides = Components2.Slides.get();
+    const slides = Slides.get();
     let index = 0;
     let minDistance = Infinity;
-    for (let i = 0; i < Slides.length; i++) {
-      const slideIndex = Slides[i].index;
+    for (let i = 0; i < slides.length; i++) {
+      const slideIndex = slides[i].index;
       const distance = un(toPosition(slideIndex, true) - position);
       if (distance <= minDistance) {
         minDistance = distance;
@@ -1166,8 +1173,8 @@ function Move(Splide2, Components2, options, event) {
     return index;
   }
   function toPosition(index, trimming) {
-    const Slide = Components2.Slides.getAt(index);
-    const position = Slide ? orient(Slide.position() - offset(index)) : 0;
+    const Slide = Slides.getAt(index);
+    const position = Slide ? orient(Slide.pos() - offset(index)) : 0;
     return trimming ? trim(position) : position;
   }
   function getPosition() {
@@ -1188,11 +1195,11 @@ function Move(Splide2, Components2, options, event) {
     return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);
   }
   function canShift(backwards) {
+    const padding = getPadding(false);
     const shifted = orient(shift(getPosition(), backwards));
-    return backwards ? shifted >= 0 : shifted <= list[resolve("scrollWidth")] - tn(track)[resolve("width")];
+    return backwards ? shifted >= padding : shifted <= list[resolve("scrollWidth")] - tn(track)[resolve("width")] + padding;
   }
-  function exceededLimit(max, position) {
-    position = Z(position) ? getPosition() : position;
+  function exceededLimit(max, position = getPosition()) {
     const exceededMin = max !== true && orient(position) < orient(getLimit(false));
     const exceededMax = max !== false && orient(position) > orient(getLimit(true));
     return exceededMin || exceededMax;
@@ -1239,7 +1246,9 @@ function Controller(Splide2, Components2, options, event) {
     perMove = options.perMove;
     perPage = options.perPage;
     endIndex = getEnd();
-    const index = bn(currIndex, 0, omitEnd ? endIndex : slideCount - 1);
+    const end = omitEnd ? endIndex : slideCount - 1;
+    const index = bn(currIndex, 0, end);
+    prevIndex = bn(currIndex, 0, end);
     if (index !== currIndex) {
       currIndex = index;
       Move.reposition();
@@ -1565,32 +1574,6 @@ function Autoplay(Splide2, Components2, options, event) {
   };
 }
 
-function Cover(Splide2, Components2, options, event) {
-  const { on } = event;
-  function mount() {
-    if (options.cover) {
-      on(EVENT_LAZYLOAD_LOADED, a(toggle, true));
-      on([EVENT_MOUNTED, EVENT_UPDATED, EVENT_REFRESH], a(cover, true));
-    }
-  }
-  function cover(cover2) {
-    Components2.Slides.forEach((Slide) => {
-      const img = Y(Slide.container || Slide.slide, "img");
-      if (img && img.src) {
-        toggle(cover2, img, Slide);
-      }
-    });
-  }
-  function toggle(cover2, img, Slide) {
-    Slide.style("background", cover2 ? `center/cover no-repeat url("${img.src}")` : "", true);
-    An(img, cover2 ? "none" : "");
-  }
-  return {
-    mount,
-    destroy: a(cover, false)
-  };
-}
-
 const BOUNCE_DIFF_THRESHOLD = 10;
 const BOUNCE_DURATION = 600;
 const FRICTION_FACTOR = 0.6;
@@ -2184,6 +2167,7 @@ function Live(Splide2, Components2, options, event) {
       disable(!Components2.Autoplay.isPaused());
       M(track, ARIA_ATOMIC, true);
       sr.textContent = "\u2026";
+      sr.style.cssText = "border: 0; clip: rect(0,0,0,0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px";
       on(EVENT_AUTOPLAY_PLAY, a(disable, true));
       on(EVENT_AUTOPLAY_PAUSE, a(disable, false));
       on([EVENT_MOVED, EVENT_SCROLLED], a(toggle, true));
@@ -2195,7 +2179,6 @@ function Live(Splide2, Components2, options, event) {
       Q(track, sr);
       interval.start();
     } else {
-      en(sr);
       interval.cancel();
     }
   }
@@ -2227,7 +2210,6 @@ var ComponentConstructors = /*#__PURE__*/Object.freeze({
   Controller: Controller,
   Arrows: Arrows,
   Autoplay: Autoplay,
-  Cover: Cover,
   Scroll: Scroll,
   Drag: Drag,
   Keyboard: Keyboard,
@@ -2366,14 +2348,14 @@ class Splide {
   _C;
   _E = {};
   _T;
-  constructor(target, options) {
+  constructor(target, options = {}) {
     const root = p(target) ? On(document, target) : target;
     assert(root, `${root} is invalid.`);
     this.root = root;
     options = k({
       label: wn(root, ARIA_LABEL) || "",
       labelledby: wn(root, ARIA_LABELLEDBY) || ""
-    }, DEFAULTS, Splide.defaults, options || {});
+    }, DEFAULTS, Splide.defaults, options);
     try {
       k(options, JSON.parse(wn(root, DATA_ATTRIBUTE)));
     } catch (e) {
@@ -2381,13 +2363,13 @@ class Splide {
     }
     this._o = Object.create(k({}, options));
   }
-  mount(Extensions, Transition) {
+  mount(Extensions = this._E, Transition = this._T) {
     const { state, Components: Components2 } = this;
     assert(state.is([CREATED, DESTROYED]), "Already mounted!");
     state.set(CREATED);
     this._C = Components2;
-    this._T = Transition || this._T || (this.is(FADE) ? Fade : Slide);
-    this._E = Extensions || this._E;
+    this._T = Transition || (this.is(FADE) ? Fade : Slide);
+    this._E = Extensions;
     const Constructors = v({}, ComponentConstructors, this._E, { Transition: this._T });
     L(Constructors, (Component, key) => {
       const component = Component(this, Components2, this._o, this.event.create());
@@ -2424,8 +2406,8 @@ class Splide {
     this.event.off(events, callback);
     return this;
   }
-  emit(event) {
-    this.event.emit(event, ...F(arguments, 1));
+  emit(event, ...args) {
+    this.event.emit(event, ...args);
     return this;
   }
   add(slides, index) {

+ 35 - 53
dist/js/splide.esm.js

@@ -669,6 +669,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
   const { on, emit, bind } = event;
   const { Components, root, options } = Splide2;
   const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;
+  const { Elements } = Components;
   const { resolve } = Components.Direction;
   const styles = wn(slide, "style");
   const label = wn(slide, ARIA_LABEL);
@@ -763,7 +764,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     if (Splide2.is(FADE)) {
       return isActive();
     }
-    const trackRect = tn(Components.Elements.track);
+    const trackRect = tn(Elements.track);
     const slideRect = tn(slide);
     const left = resolve("left", true);
     const right = resolve("right", true);
@@ -776,8 +777,9 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     }
     return diff <= distance;
   }
-  function position() {
-    return slide[resolve("offsetLeft")];
+  function pos() {
+    const left = resolve("left");
+    return un(tn(slide)[left] - tn(Elements.list)[left]);
   }
   function size() {
     return tn(slide)[resolve("width")];
@@ -791,7 +793,7 @@ function Slide$1(Splide2, index, slideIndex, slide) {
     mount,
     destroy,
     update,
-    position,
+    pos,
     size,
     style,
     isWithin
@@ -985,17 +987,21 @@ function Layout(Splide2, Components2, options, event) {
   }
   function totalSize(index, withoutGap) {
     const Slide = getAt(index);
-    return Slide ? Slide.position() + Slide.size() + (withoutGap ? 0 : getGap()) : 0;
+    return Slide ? Slide.pos() + Slide.size() + (withoutGap ? 0 : getGap()) : 0;
   }
   function sliderSize(withoutGap) {
     return totalSize(Splide2.length - 1) - totalSize(0) + slideSize(0, withoutGap);
   }
   function getGap() {
-    const Slide = getAt(0);
-    return Slide && parseFloat(nn(Slide.slide, resolve("marginRight"))) || 0;
+    const first = getAt(0);
+    const second = getAt(1);
+    return first && second ? second.pos() - first.pos() - first.size() : 0;
   }
   function getPadding(right) {
-    return list[`offset${right ? "Right" : "Left"}`];
+    return parseFloat(nn(
+      track,
+      resolve(`padding${right ? "Right" : "Left"}`)
+    )) || 0;
   }
   function isOverflow() {
     return Splide2.is(FADE) || sliderSize(true) > listSize();
@@ -1086,13 +1092,14 @@ function Clones(Splide2, Components2, options, event) {
 function Move(Splide2, Components2, options, event) {
   const { on, emit } = event;
   const { set } = Splide2.state;
+  const { Slides } = Components2;
   const { slideSize, getPadding, listSize, sliderSize } = Components2.Layout;
   const { resolve, orient } = Components2.Direction;
   const { list, track } = Components2.Elements;
   let Transition;
   function mount() {
     Transition = Components2.Transition;
-    on([EVENT_RESIZED], reposition);
+    on([EVENT_MOUNTED, EVENT_RESIZED, EVENT_UPDATED, EVENT_REFRESH], reposition);
   }
   function reposition() {
     if (!Components2.Controller.isBusy()) {
@@ -1146,11 +1153,11 @@ function Move(Splide2, Components2, options, event) {
     Transition.cancel();
   }
   function toIndex(position) {
-    const Slides = Components2.Slides.get();
+    const slides = Slides.get();
     let index = 0;
     let minDistance = Infinity;
-    for (let i = 0; i < Slides.length; i++) {
-      const slideIndex = Slides[i].index;
+    for (let i = 0; i < slides.length; i++) {
+      const slideIndex = slides[i].index;
       const distance = un(toPosition(slideIndex, true) - position);
       if (distance <= minDistance) {
         minDistance = distance;
@@ -1162,8 +1169,8 @@ function Move(Splide2, Components2, options, event) {
     return index;
   }
   function toPosition(index, trimming) {
-    const Slide = Components2.Slides.getAt(index);
-    const position = Slide ? orient(Slide.position() - offset(index)) : 0;
+    const Slide = Slides.getAt(index);
+    const position = Slide ? orient(Slide.pos() - offset(index)) : 0;
     return trimming ? trim(position) : position;
   }
   function getPosition() {
@@ -1184,11 +1191,11 @@ function Move(Splide2, Components2, options, event) {
     return toPosition(max ? Components2.Controller.getEnd() : 0, !!options.trimSpace);
   }
   function canShift(backwards) {
+    const padding = getPadding(false);
     const shifted = orient(shift(getPosition(), backwards));
-    return backwards ? shifted >= 0 : shifted <= list[resolve("scrollWidth")] - tn(track)[resolve("width")];
+    return backwards ? shifted >= padding : shifted <= list[resolve("scrollWidth")] - tn(track)[resolve("width")] + padding;
   }
-  function exceededLimit(max, position) {
-    position = Z(position) ? getPosition() : position;
+  function exceededLimit(max, position = getPosition()) {
     const exceededMin = max !== true && orient(position) < orient(getLimit(false));
     const exceededMax = max !== false && orient(position) > orient(getLimit(true));
     return exceededMin || exceededMax;
@@ -1235,7 +1242,9 @@ function Controller(Splide2, Components2, options, event) {
     perMove = options.perMove;
     perPage = options.perPage;
     endIndex = getEnd();
-    const index = bn(currIndex, 0, omitEnd ? endIndex : slideCount - 1);
+    const end = omitEnd ? endIndex : slideCount - 1;
+    const index = bn(currIndex, 0, end);
+    prevIndex = bn(currIndex, 0, end);
     if (index !== currIndex) {
       currIndex = index;
       Move.reposition();
@@ -1561,32 +1570,6 @@ function Autoplay(Splide2, Components2, options, event) {
   };
 }
 
-function Cover(Splide2, Components2, options, event) {
-  const { on } = event;
-  function mount() {
-    if (options.cover) {
-      on(EVENT_LAZYLOAD_LOADED, a(toggle, true));
-      on([EVENT_MOUNTED, EVENT_UPDATED, EVENT_REFRESH], a(cover, true));
-    }
-  }
-  function cover(cover2) {
-    Components2.Slides.forEach((Slide) => {
-      const img = Y(Slide.container || Slide.slide, "img");
-      if (img && img.src) {
-        toggle(cover2, img, Slide);
-      }
-    });
-  }
-  function toggle(cover2, img, Slide) {
-    Slide.style("background", cover2 ? `center/cover no-repeat url("${img.src}")` : "", true);
-    An(img, cover2 ? "none" : "");
-  }
-  return {
-    mount,
-    destroy: a(cover, false)
-  };
-}
-
 const BOUNCE_DIFF_THRESHOLD = 10;
 const BOUNCE_DURATION = 600;
 const FRICTION_FACTOR = 0.6;
@@ -2180,6 +2163,7 @@ function Live(Splide2, Components2, options, event) {
       disable(!Components2.Autoplay.isPaused());
       M(track, ARIA_ATOMIC, true);
       sr.textContent = "\u2026";
+      sr.style.cssText = "border: 0; clip: rect(0,0,0,0); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px";
       on(EVENT_AUTOPLAY_PLAY, a(disable, true));
       on(EVENT_AUTOPLAY_PAUSE, a(disable, false));
       on([EVENT_MOVED, EVENT_SCROLLED], a(toggle, true));
@@ -2191,7 +2175,6 @@ function Live(Splide2, Components2, options, event) {
       Q(track, sr);
       interval.start();
     } else {
-      en(sr);
       interval.cancel();
     }
   }
@@ -2223,7 +2206,6 @@ var ComponentConstructors = /*#__PURE__*/Object.freeze({
   Controller: Controller,
   Arrows: Arrows,
   Autoplay: Autoplay,
-  Cover: Cover,
   Scroll: Scroll,
   Drag: Drag,
   Keyboard: Keyboard,
@@ -2362,14 +2344,14 @@ class Splide {
   _C;
   _E = {};
   _T;
-  constructor(target, options) {
+  constructor(target, options = {}) {
     const root = p(target) ? On(document, target) : target;
     assert(root, `${root} is invalid.`);
     this.root = root;
     options = k({
       label: wn(root, ARIA_LABEL) || "",
       labelledby: wn(root, ARIA_LABELLEDBY) || ""
-    }, DEFAULTS, Splide.defaults, options || {});
+    }, DEFAULTS, Splide.defaults, options);
     try {
       k(options, JSON.parse(wn(root, DATA_ATTRIBUTE)));
     } catch (e) {
@@ -2377,13 +2359,13 @@ class Splide {
     }
     this._o = Object.create(k({}, options));
   }
-  mount(Extensions, Transition) {
+  mount(Extensions = this._E, Transition = this._T) {
     const { state, Components: Components2 } = this;
     assert(state.is([CREATED, DESTROYED]), "Already mounted!");
     state.set(CREATED);
     this._C = Components2;
-    this._T = Transition || this._T || (this.is(FADE) ? Fade : Slide);
-    this._E = Extensions || this._E;
+    this._T = Transition || (this.is(FADE) ? Fade : Slide);
+    this._E = Extensions;
     const Constructors = v({}, ComponentConstructors, this._E, { Transition: this._T });
     L(Constructors, (Component, key) => {
       const component = Component(this, Components2, this._o, this.event.create());
@@ -2420,8 +2402,8 @@ class Splide {
     this.event.off(events, callback);
     return this;
   }
-  emit(event) {
-    this.event.emit(event, ...F(arguments, 1));
+  emit(event, ...args) {
+    this.event.emit(event, ...args);
     return this;
   }
   add(slides, index) {

+ 24 - 22
dist/js/splide.js

@@ -2151,6 +2151,8 @@
     };
   }
 
+  const VISUALLY_HIDDEN = `border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px`;
+
   const SR_REMOVAL_DELAY = 90;
   function Live(Splide2, Components2, options, event) {
     const { on } = event;
@@ -2163,6 +2165,7 @@
         disable(!Components2.Autoplay.isPaused());
         M(track, ARIA_ATOMIC, true);
         sr.textContent = "\u2026";
+        sr.style.cssText = VISUALLY_HIDDEN;
         on(EVENT_AUTOPLAY_PLAY, a(disable, true));
         on(EVENT_AUTOPLAY_PAUSE, a(disable, false));
         on([EVENT_MOVED, EVENT_SCROLLED], a(toggle, true));
@@ -2194,27 +2197,26 @@
     };
   }
 
-  var ComponentConstructors = /*#__PURE__*/Object.freeze({
-    __proto__: null,
-    Media: Media,
-    Direction: Direction,
-    Elements: Elements,
-    Slides: Slides,
-    Layout: Layout,
-    Clones: Clones,
-    Move: Move,
-    Controller: Controller,
-    Arrows: Arrows,
-    Autoplay: Autoplay,
-    Scroll: Scroll,
-    Drag: Drag,
-    Keyboard: Keyboard,
-    LazyLoad: LazyLoad,
-    Pagination: Pagination,
-    Sync: Sync,
-    Wheel: Wheel,
-    Live: Live
-  });
+  const COMPONENTS = {
+    Media,
+    Direction,
+    Elements,
+    Slides,
+    Layout,
+    Clones,
+    Move,
+    Controller,
+    Arrows,
+    Autoplay,
+    Scroll,
+    Drag,
+    Keyboard,
+    LazyLoad,
+    Pagination,
+    Sync,
+    Wheel,
+    Live
+  };
 
   const I18N = {
     prev: "Previous slide",
@@ -2366,7 +2368,7 @@
       this._C = Components2;
       this._T = Transition || (this.is(FADE) ? Fade : Slide);
       this._E = Extensions;
-      const Constructors = v({}, ComponentConstructors, this._E, { Transition: this._T });
+      const Constructors = v({}, COMPONENTS, this._E, { Transition: this._T });
       L(Constructors, (Component, key) => {
         const component = Component(this, Components2, this._o, this.event.create());
         Components2[key] = component;

Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/js/splide.min.js


BIN
dist/js/splide.min.js.gz


Những thai đổi đã bị hủy bỏ vì nó quá lớn
+ 0 - 0
dist/js/splide.min.js.map


+ 0 - 1
src/css/core/object/objects/index.scss

@@ -5,6 +5,5 @@
 @forward 'root';
 @forward 'slide';
 @forward 'spinner' as spinner-*;
-@forward 'sr';
 @forward 'toggle';
 @forward 'track';

+ 0 - 12
src/css/core/object/objects/sr.scss

@@ -1,12 +0,0 @@
-.splide {
-  &__sr {
-    border: 0;
-    clip: rect( 0 0 0 0 );
-    height: 1px;
-    margin: -1px;
-    overflow: hidden;
-    padding: 0;
-    position: absolute;
-    width: 1px;
-  }
-}

+ 0 - 2
src/js/components/Layout/Layout.ts

@@ -251,8 +251,6 @@ export function Layout(
    * Returns the padding value.
    * This method resolves the difference of the direction.
    *
-   * @todo
-   *
    * @param right - Determines whether to get `paddingRight/Bottom` or `paddingLeft/Top`.
    *
    * @return The padding value in pixel.

+ 3 - 1
src/js/components/Live/Live.ts

@@ -13,6 +13,7 @@ import {
   RequestInterval,
   setAttribute,
 } from '@splidejs/utils';
+import { VISUALLY_HIDDEN } from './constants';
 
 
 /**
@@ -76,7 +77,8 @@ export function Live(
     if ( enabled ) {
       disable( ! Components.Autoplay.isPaused() );
       setAttribute( track, ARIA_ATOMIC, true );
-      sr.textContent = '…';
+      sr.textContent   = '…';
+      sr.style.cssText = VISUALLY_HIDDEN;
 
       on( EVENT_AUTOPLAY_PLAY, apply( disable, true ) );
       on( EVENT_AUTOPLAY_PAUSE, apply( disable, false ) );

+ 6 - 0
src/js/components/Live/constants.ts

@@ -0,0 +1,6 @@
+/**
+ * Styles for visually hidden.
+ *
+ * @since 5.0.0
+ */
+export const VISUALLY_HIDDEN = `border:0;clip:rect(0,0,0,0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px`;

+ 49 - 1
src/js/components/index.ts

@@ -1,3 +1,24 @@
+import { ComponentConstructor } from '../types';
+
+import { Media }      from './Media/Media';
+import { Direction }  from './Direction/Direction';
+import { Elements }   from './Elements/Elements';
+import { Slides }     from './Slides/Slides';
+import { Layout }     from './Layout/Layout';
+import { Clones }     from './Clones/Clones';
+import { Move }       from './Move/Move';
+import { Controller } from './Controller/Controller';
+import { Arrows }     from './Arrows/Arrows';
+import { Autoplay }   from './Autoplay/Autoplay';
+import { Scroll }     from './Scroll/Scroll';
+import { Drag }       from './Drag/Drag';
+import { Keyboard }   from './Keyboard/Keyboard';
+import { LazyLoad }   from './LazyLoad/LazyLoad';
+import { Pagination } from './Pagination/Pagination';
+import { Sync }       from './Sync/Sync';
+import { Wheel }      from './Wheel/Wheel';
+import { Live }       from './Live/Live';
+
 export { Media }      from './Media/Media';
 export { Direction }  from './Direction/Direction';
 export { Elements }   from './Elements/Elements';
@@ -15,4 +36,31 @@ export { LazyLoad }   from './LazyLoad/LazyLoad';
 export { Pagination } from './Pagination/Pagination';
 export { Sync }       from './Sync/Sync';
 export { Wheel }      from './Wheel/Wheel';
-export { Live }       from './Live/Live';
+export { Live }       from './Live/Live';
+
+
+/**
+ * The collection of core component constructors.
+ *
+ * @since 5.0.0
+ */
+export const COMPONENTS: Record<string, ComponentConstructor> = {
+  Media,
+  Direction,
+  Elements,
+  Slides,
+  Layout,
+  Clones,
+  Move,
+  Controller,
+  Arrows,
+  Autoplay,
+  Scroll,
+  Drag,
+  Keyboard,
+  LazyLoad,
+  Pagination,
+  Sync,
+  Wheel,
+  Live,
+};

+ 2 - 3
src/js/core/Splide/Splide.ts

@@ -1,4 +1,4 @@
-import * as ComponentConstructors from '../../components';
+import { COMPONENTS } from '../../components';
 import { SlideMatcher } from '../../components/Slides/Slides';
 import { CLASS_INITIALIZED } from '../../constants/classes';
 import { DEFAULTS } from '../../constants/defaults';
@@ -18,7 +18,6 @@ import {
   isString,
   merge,
   query,
-  slice,
   State,
 } from '@splidejs/utils';
 import { assert } from '../../utils';
@@ -130,7 +129,7 @@ export class Splide {
     this._T = Transition || ( this.is( FADE ) ? Fade : Slide );
     this._E = Extensions;
 
-    const Constructors = assign( {}, ComponentConstructors, this._E, { Transition: this._T } );
+    const Constructors = assign( {}, COMPONENTS, this._E, { Transition: this._T } );
 
     forOwn( Constructors, ( Component, key ) => {
       const component = Component( this, Components, this._o, this.event.create() );

Một số tệp đã không được hiển thị bởi vì quá nhiều tập tin thay đổi trong này khác