|
@@ -172,6 +172,12 @@ function merge(object) {
|
|
|
return object;
|
|
|
}
|
|
|
|
|
|
+function omit(object, keys) {
|
|
|
+ toArray(keys || ownKeys(object)).forEach(function (key) {
|
|
|
+ delete object[key];
|
|
|
+ });
|
|
|
+}
|
|
|
+
|
|
|
function removeAttribute(elms, attrs) {
|
|
|
forEach(elms, function (elm) {
|
|
|
forEach(attrs, function (attr) {
|
|
@@ -575,12 +581,6 @@ function Throttle(func, duration) {
|
|
|
return throttled;
|
|
|
}
|
|
|
|
|
|
-function omit(object, keys) {
|
|
|
- toArray(keys || ownKeys(object)).forEach(function (key) {
|
|
|
- delete object[key];
|
|
|
- });
|
|
|
-}
|
|
|
-
|
|
|
function Media(Splide2, Components2, options) {
|
|
|
var reducedMotion = options.reducedMotion || {};
|
|
|
var binder = EventBinder();
|
|
@@ -706,9 +706,9 @@ var CLASS_PAGINATION = PROJECT_CODE + "__pagination";
|
|
|
var CLASS_PAGINATION_PAGE = CLASS_PAGINATION + "__page";
|
|
|
var CLASS_PROGRESS = PROJECT_CODE + "__progress";
|
|
|
var CLASS_PROGRESS_BAR = CLASS_PROGRESS + "__bar";
|
|
|
-var CLASS_AUTOPLAY = PROJECT_CODE + "__autoplay";
|
|
|
-var CLASS_PLAY = PROJECT_CODE + "__play";
|
|
|
-var CLASS_PAUSE = PROJECT_CODE + "__pause";
|
|
|
+var CLASS_TOGGLE = PROJECT_CODE + "__toggle";
|
|
|
+var CLASS_TOGGLE_PLAY = CLASS_TOGGLE + "__play";
|
|
|
+var CLASS_TOGGLE_PAUSE = CLASS_TOGGLE + "__pause";
|
|
|
var CLASS_SPINNER = PROJECT_CODE + "__spinner";
|
|
|
var CLASS_SR = PROJECT_CODE + "__sr";
|
|
|
var CLASS_INITIALIZED = "is-initialized";
|
|
@@ -797,12 +797,10 @@ function Elements(Splide2, Components2, options) {
|
|
|
forOwn({
|
|
|
arrows: CLASS_ARROWS,
|
|
|
pagination: CLASS_PAGINATION,
|
|
|
- autoplay: CLASS_AUTOPLAY,
|
|
|
prev: CLASS_ARROW_PREV,
|
|
|
next: CLASS_ARROW_NEXT,
|
|
|
bar: CLASS_PROGRESS_BAR,
|
|
|
- play: CLASS_PLAY,
|
|
|
- pause: CLASS_PAUSE
|
|
|
+ toggle: CLASS_TOGGLE
|
|
|
}, function (className, key) {
|
|
|
elements[key] = find("." + className);
|
|
|
});
|
|
@@ -826,7 +824,7 @@ function Elements(Splide2, Components2, options) {
|
|
|
|
|
|
function find(selector) {
|
|
|
var elm = query(root, selector);
|
|
|
- return elm && closest(elm, "." + CLASS_ROOT) === root ? elm : null;
|
|
|
+ return elm && closest(elm, "." + CLASS_ROOT) === root ? elm : void 0;
|
|
|
}
|
|
|
|
|
|
function getClasses(base) {
|
|
@@ -1849,37 +1847,27 @@ function Autoplay(Splide2, Components2, options) {
|
|
|
bind = _EventInterface7.bind,
|
|
|
emit = _EventInterface7.emit;
|
|
|
|
|
|
- var interval = RequestInterval(options.interval, Splide2.go.bind(Splide2, ">"), update);
|
|
|
+ var interval = RequestInterval(options.interval, Splide2.go.bind(Splide2, ">"), onAnimationFrame);
|
|
|
var isPaused = interval.isPaused;
|
|
|
- var Elements = Components2.Elements;
|
|
|
+ var Elements = Components2.Elements,
|
|
|
+ _Components2$Elements4 = Components2.Elements,
|
|
|
+ root = _Components2$Elements4.root,
|
|
|
+ toggle = _Components2$Elements4.toggle;
|
|
|
var autoplay = options.autoplay;
|
|
|
var hovered;
|
|
|
var focused;
|
|
|
- var paused = autoplay === "pause";
|
|
|
+ var stopped = autoplay === "pause";
|
|
|
|
|
|
function mount() {
|
|
|
if (autoplay) {
|
|
|
- initButton(true);
|
|
|
- initButton(false);
|
|
|
listen();
|
|
|
- !paused && play();
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- function initButton(forPause) {
|
|
|
- var prop = forPause ? "pause" : "play";
|
|
|
- var button = Elements[prop];
|
|
|
-
|
|
|
- if (button) {
|
|
|
- setAttribute(button, ARIA_CONTROLS, Elements.track.id);
|
|
|
- setAttribute(button, ARIA_LABEL, options.i18n[prop]);
|
|
|
- bind(button, "click", forPause ? pause : play);
|
|
|
+ toggle && setAttribute(toggle, ARIA_CONTROLS, Elements.list.id);
|
|
|
+ stopped || play();
|
|
|
+ update();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
function listen() {
|
|
|
- var root = Elements.root;
|
|
|
-
|
|
|
if (options.pauseOnHover) {
|
|
|
bind(root, "mouseenter mouseleave", function (e) {
|
|
|
hovered = e.type === "mouseenter";
|
|
@@ -1894,49 +1882,60 @@ function Autoplay(Splide2, Components2, options) {
|
|
|
});
|
|
|
}
|
|
|
|
|
|
+ if (toggle) {
|
|
|
+ bind(toggle, "click", function () {
|
|
|
+ stopped ? play() : pause(true);
|
|
|
+ });
|
|
|
+ }
|
|
|
+
|
|
|
on([EVENT_MOVE, EVENT_SCROLL, EVENT_REFRESH], interval.rewind);
|
|
|
- on(EVENT_MOVE, updateInterval);
|
|
|
+ on(EVENT_MOVE, onMove);
|
|
|
}
|
|
|
|
|
|
function play() {
|
|
|
if (isPaused() && Components2.Slides.isEnough()) {
|
|
|
interval.start(!options.resetProgress);
|
|
|
- focused = hovered = paused = false;
|
|
|
+ focused = hovered = stopped = false;
|
|
|
+ update();
|
|
|
emit(EVENT_AUTOPLAY_PLAY);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function pause(manual) {
|
|
|
- if (manual === void 0) {
|
|
|
- manual = true;
|
|
|
+ function pause(stop) {
|
|
|
+ if (stop === void 0) {
|
|
|
+ stop = true;
|
|
|
}
|
|
|
|
|
|
+ stopped = !!stop;
|
|
|
+ update();
|
|
|
+
|
|
|
if (!isPaused()) {
|
|
|
interval.pause();
|
|
|
emit(EVENT_AUTOPLAY_PAUSE);
|
|
|
}
|
|
|
-
|
|
|
- paused = manual;
|
|
|
}
|
|
|
|
|
|
function autoToggle() {
|
|
|
- if (!paused) {
|
|
|
- if (!hovered && !focused) {
|
|
|
- play();
|
|
|
- } else {
|
|
|
- pause(false);
|
|
|
- }
|
|
|
+ if (!stopped) {
|
|
|
+ hovered || focused ? pause(false) : play();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ function update() {
|
|
|
+ if (toggle) {
|
|
|
+ toggleClass(toggle, CLASS_ACTIVE, !stopped);
|
|
|
+ setAttribute(toggle, ARIA_LABEL, options.i18n[stopped ? "play" : "pause"]);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- function update(rate) {
|
|
|
+ function onAnimationFrame(rate) {
|
|
|
var bar = Elements.bar;
|
|
|
bar && style(bar, "width", rate * 100 + "%");
|
|
|
emit(EVENT_AUTOPLAY_PLAYING, rate);
|
|
|
}
|
|
|
|
|
|
- function updateInterval() {
|
|
|
- var Slide = Components2.Slides.getAt(Splide2.index);
|
|
|
+ function onMove(index) {
|
|
|
+ var Slide = Components2.Slides.getAt(index);
|
|
|
interval.set(Slide && +getAttribute(Slide.slide, INTERVAL_DATA_ATTRIBUTE) || options.interval);
|
|
|
}
|
|
|
|
|
@@ -3634,4 +3633,4 @@ var SplideRenderer = /*#__PURE__*/function () {
|
|
|
return SplideRenderer;
|
|
|
}();
|
|
|
|
|
|
-export { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_AUTOPLAY, CLASS_CLONE, CLASS_CONTAINER, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PAUSE, CLASS_PLAY, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TRACK, CLASS_VISIBLE, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_REPOSITIONED, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, RequestInterval, STATUS_CLASSES, Splide, SplideRenderer, State, Throttle, Splide as default };
|
|
|
+export { CLASSES, CLASS_ACTIVE, CLASS_ARROW, CLASS_ARROWS, CLASS_ARROW_NEXT, CLASS_ARROW_PREV, CLASS_CLONE, CLASS_CONTAINER, CLASS_INITIALIZED, CLASS_LIST, CLASS_LOADING, CLASS_NEXT, CLASS_PAGINATION, CLASS_PAGINATION_PAGE, CLASS_PREV, CLASS_PROGRESS, CLASS_PROGRESS_BAR, CLASS_ROOT, CLASS_SLIDE, CLASS_SPINNER, CLASS_SR, CLASS_TOGGLE, CLASS_TOGGLE_PAUSE, CLASS_TOGGLE_PLAY, CLASS_TRACK, CLASS_VISIBLE, EVENT_ACTIVE, EVENT_ARROWS_MOUNTED, EVENT_ARROWS_UPDATED, EVENT_AUTOPLAY_PAUSE, EVENT_AUTOPLAY_PLAY, EVENT_AUTOPLAY_PLAYING, EVENT_CLICK, EVENT_DESTROY, EVENT_DRAG, EVENT_DRAGGED, EVENT_DRAGGING, EVENT_HIDDEN, EVENT_INACTIVE, EVENT_LAZYLOAD_LOADED, EVENT_MOUNTED, EVENT_MOVE, EVENT_MOVED, EVENT_NAVIGATION_MOUNTED, EVENT_PAGINATION_MOUNTED, EVENT_PAGINATION_UPDATED, EVENT_READY, EVENT_REFRESH, EVENT_REPOSITIONED, EVENT_RESIZE, EVENT_RESIZED, EVENT_SCROLL, EVENT_SCROLLED, EVENT_SHIFTED, EVENT_SLIDE_KEYDOWN, EVENT_UPDATED, EVENT_VISIBLE, EventBinder, EventInterface, RequestInterval, STATUS_CLASSES, Splide, SplideRenderer, State, Throttle, Splide as default };
|