Jelajahi Sumber

Rename methods to use the latest util package.

Naotoshi Fujita 2 tahun lalu
induk
melakukan
fb4c9593bb

File diff ditekan karena terlalu besar
+ 0 - 0
dist/js/splide-renderer.min.js.map


+ 49 - 50
dist/js/splide.cjs.js

@@ -248,87 +248,86 @@ function forEachEvent(events, iteratee) {
     isString(event) && event.split(" ").forEach(iteratee);
   });
 }
-function arrayRemove(array, predicate) {
-  const removed = [];
-  for (let i = array.length - 1; i >= 0; i--) {
-    if (predicate(array[i])) {
-      removed.push(...array.splice(i, 1));
-    }
+function assert$1(assertion) {
+  if (!assertion) {
+    throw new Error();
   }
-  return removed;
 }
 function EventBinder(removersRef) {
-  const removers = removersRef || [];
+  const removers = removersRef || /* @__PURE__ */ new Set();
   const key = removersRef ? {} : void 0;
+  let destroyed;
   function bind(target, events, callback, options) {
+    assert$1(!destroyed);
     forEachEvent(events, (event) => {
       target.addEventListener(event, callback, options);
-      removers.push([target.removeEventListener.bind(target, event, callback, options), key]);
+      removers.add([target.removeEventListener.bind(target, event, callback, options), key]);
     });
   }
-  function destroy() {
-    if (key) {
-      arrayRemove(removers, (remover) => remover[1] === key).forEach((remover) => {
-        remover[0]();
-      });
-    } else {
-      removers.forEach((remover) => {
+  function destroy(hard) {
+    removers.forEach((remover) => {
+      if (!key || remover[1] === key) {
         remover[0]();
-      });
-      empty(removers);
-    }
+        removers.delete(remover);
+      }
+    });
+    destroyed = hard;
   }
   return {
     bind,
-    create: apply(EventBinder, removers),
+    lock: apply(EventBinder, removers),
     destroy
   };
 }
 function EventBus(listenersRef) {
-  const listeners = listenersRef || [];
+  const listeners = listenersRef || {};
   const key = listenersRef ? {} : void 0;
+  let destroyed;
   function on(events, callback) {
+    assert$1(!destroyed);
     forEachEvent(events, (event) => {
-      listeners.push([event, callback, key]);
+      listeners[event] = push(get(event), [[callback, key]]);
     });
   }
   function off(events, callback) {
     forEachEvent(events, (event) => {
-      arrayRemove(listeners, (listener) => {
-        return listener[0] === event && (!callback || listener[1] === callback) && listener[2] === key;
-      }).forEach(empty);
+      listeners[event] = get(event).filter((listener) => !((!callback || listener[0] === callback) && listener[1] === key));
     });
   }
   function emit(event, ...args) {
-    listeners.slice().forEach((listener) => {
-      listener[0] === event && listener[1](...args);
-    });
+    get(event).forEach((listener) => listener[0] && listener[0](...args));
   }
-  function destroy() {
-    if (key) {
-      arrayRemove(listeners, (listener) => listener[2] === key).forEach(empty);
-    } else {
-      listeners.forEach(empty);
-      empty(listeners);
-    }
+  function get(event) {
+    return listeners[event] || [];
+  }
+  function destroy(hard) {
+    forOwn(listeners, (entries, event) => {
+      listeners[event] = entries.filter((listener) => {
+        const unlocked = !key || listener[1] === key;
+        unlocked && empty(listener);
+        return !unlocked;
+      });
+    });
+    !key && omit(listeners);
+    destroyed = hard;
   }
   return {
     on,
     off,
     emit,
-    create: apply(EventBus, listeners),
+    lock: apply(EventBus, listeners),
     destroy
   };
 }
 function EventInterface(binder = EventBinder(), bus = EventBus()) {
-  function create2() {
-    return EventInterface(binder.create(), bus.create());
+  function lock() {
+    return EventInterface(binder.lock(), bus.lock());
   }
-  function destroy() {
-    binder.destroy();
-    bus.destroy();
+  function destroy(hard) {
+    binder.destroy(hard);
+    bus.destroy(hard);
   }
-  return assign({}, binder, bus, { create: create2, destroy });
+  return assign({}, binder, bus, { lock, destroy });
 }
 function RequestInterval(interval, onInterval, onUpdate, limit) {
   const { now } = Date;
@@ -741,7 +740,7 @@ const LOOP = "loop";
 const FADE = "fade";
 
 const Slide$1 = (Splide2, index, slideIndex, slide) => {
-  const event = Splide2.event.create();
+  const event = Splide2.event.lock();
   const { on, emit, bind } = event;
   const { Components, root, options } = Splide2;
   const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;
@@ -1459,7 +1458,7 @@ const Controller = (Splide, Components, options, event) => {
   function getEnd() {
     let end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);
     while (omitEnd && end-- > 0) {
-      if (toPosition(slideCount - 1) !== toPosition(end)) {
+      if (!approximatelyEqual(toPosition(slideCount - 1), toPosition(end), 0.01)) {
         end++;
         break;
       }
@@ -1775,7 +1774,7 @@ const SCROLL_LISTENER_OPTIONS = { passive: false, capture: true };
 
 const Drag = (Splide, Components, options, event) => {
   const { on, emit, bind } = event;
-  const binder = event.create();
+  const binder = event.lock();
   const { state } = Splide;
   const { Move, Scroll, Controller, Elements: { track }, Breakpoints: { reduce } } = Components;
   const { resolve, orient } = Components.Direction;
@@ -2205,14 +2204,14 @@ const Sync = (Splide2, Components, options, event) => {
     mount();
   }
   function sync(splide, target) {
-    const event2 = splide.event.create();
+    const event2 = splide.event.lock();
     event2.on(EVENT_MOVE, (index, prev, dest) => {
       target.index !== index && target.go(target.is(LOOP) ? dest : index);
     });
     events.push(event2);
   }
   function navigate() {
-    const ev = event.create();
+    const ev = event.lock();
     const { on } = ev;
     on(EVENT_CLICK, onClick);
     on(EVENT_SLIDE_KEYDOWN, onKeydown);
@@ -2385,13 +2384,13 @@ const DEFAULTS = {
 };
 
 const Fade = (Splide, Components, options, event) => {
-  const { Slides } = Components;
+  const { Slides, Direction } = Components;
   function mount() {
     event.on([EVENT_MOUNTED, EVENT_REFRESH], init);
   }
   function init() {
     Slides.forEach((Slide) => {
-      Slide.style("transform", `translateX(-${100 * Slide.index}%)`);
+      Slide.style("transform", `translateX(${Direction.orient(100 * Slide.index)}%)`);
     });
   }
   function start(index, done) {
@@ -2493,7 +2492,7 @@ class Splide {
     this._E = Extensions;
     const Constructors = assign({}, COMPONENTS, this._E, { Transition: this._T });
     forOwn(Constructors, (Component, key) => {
-      const component = Component(this, Components2, this._o, this.event.create());
+      const component = Component(this, Components2, this._o, this.event.lock());
       Components2[key] = component;
       component.setup && component.setup();
     });

+ 49 - 50
dist/js/splide.esm.js

@@ -244,87 +244,86 @@ function forEachEvent(events, iteratee) {
     isString(event) && event.split(" ").forEach(iteratee);
   });
 }
-function arrayRemove(array, predicate) {
-  const removed = [];
-  for (let i = array.length - 1; i >= 0; i--) {
-    if (predicate(array[i])) {
-      removed.push(...array.splice(i, 1));
-    }
+function assert$1(assertion) {
+  if (!assertion) {
+    throw new Error();
   }
-  return removed;
 }
 function EventBinder(removersRef) {
-  const removers = removersRef || [];
+  const removers = removersRef || /* @__PURE__ */ new Set();
   const key = removersRef ? {} : void 0;
+  let destroyed;
   function bind(target, events, callback, options) {
+    assert$1(!destroyed);
     forEachEvent(events, (event) => {
       target.addEventListener(event, callback, options);
-      removers.push([target.removeEventListener.bind(target, event, callback, options), key]);
+      removers.add([target.removeEventListener.bind(target, event, callback, options), key]);
     });
   }
-  function destroy() {
-    if (key) {
-      arrayRemove(removers, (remover) => remover[1] === key).forEach((remover) => {
-        remover[0]();
-      });
-    } else {
-      removers.forEach((remover) => {
+  function destroy(hard) {
+    removers.forEach((remover) => {
+      if (!key || remover[1] === key) {
         remover[0]();
-      });
-      empty(removers);
-    }
+        removers.delete(remover);
+      }
+    });
+    destroyed = hard;
   }
   return {
     bind,
-    create: apply(EventBinder, removers),
+    lock: apply(EventBinder, removers),
     destroy
   };
 }
 function EventBus(listenersRef) {
-  const listeners = listenersRef || [];
+  const listeners = listenersRef || {};
   const key = listenersRef ? {} : void 0;
+  let destroyed;
   function on(events, callback) {
+    assert$1(!destroyed);
     forEachEvent(events, (event) => {
-      listeners.push([event, callback, key]);
+      listeners[event] = push(get(event), [[callback, key]]);
     });
   }
   function off(events, callback) {
     forEachEvent(events, (event) => {
-      arrayRemove(listeners, (listener) => {
-        return listener[0] === event && (!callback || listener[1] === callback) && listener[2] === key;
-      }).forEach(empty);
+      listeners[event] = get(event).filter((listener) => !((!callback || listener[0] === callback) && listener[1] === key));
     });
   }
   function emit(event, ...args) {
-    listeners.slice().forEach((listener) => {
-      listener[0] === event && listener[1](...args);
-    });
+    get(event).forEach((listener) => listener[0] && listener[0](...args));
   }
-  function destroy() {
-    if (key) {
-      arrayRemove(listeners, (listener) => listener[2] === key).forEach(empty);
-    } else {
-      listeners.forEach(empty);
-      empty(listeners);
-    }
+  function get(event) {
+    return listeners[event] || [];
+  }
+  function destroy(hard) {
+    forOwn(listeners, (entries, event) => {
+      listeners[event] = entries.filter((listener) => {
+        const unlocked = !key || listener[1] === key;
+        unlocked && empty(listener);
+        return !unlocked;
+      });
+    });
+    !key && omit(listeners);
+    destroyed = hard;
   }
   return {
     on,
     off,
     emit,
-    create: apply(EventBus, listeners),
+    lock: apply(EventBus, listeners),
     destroy
   };
 }
 function EventInterface(binder = EventBinder(), bus = EventBus()) {
-  function create2() {
-    return EventInterface(binder.create(), bus.create());
+  function lock() {
+    return EventInterface(binder.lock(), bus.lock());
   }
-  function destroy() {
-    binder.destroy();
-    bus.destroy();
+  function destroy(hard) {
+    binder.destroy(hard);
+    bus.destroy(hard);
   }
-  return assign({}, binder, bus, { create: create2, destroy });
+  return assign({}, binder, bus, { lock, destroy });
 }
 function RequestInterval(interval, onInterval, onUpdate, limit) {
   const { now } = Date;
@@ -737,7 +736,7 @@ const LOOP = "loop";
 const FADE = "fade";
 
 const Slide$1 = (Splide2, index, slideIndex, slide) => {
-  const event = Splide2.event.create();
+  const event = Splide2.event.lock();
   const { on, emit, bind } = event;
   const { Components, root, options } = Splide2;
   const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;
@@ -1455,7 +1454,7 @@ const Controller = (Splide, Components, options, event) => {
   function getEnd() {
     let end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);
     while (omitEnd && end-- > 0) {
-      if (toPosition(slideCount - 1) !== toPosition(end)) {
+      if (!approximatelyEqual(toPosition(slideCount - 1), toPosition(end), 0.01)) {
         end++;
         break;
       }
@@ -1771,7 +1770,7 @@ const SCROLL_LISTENER_OPTIONS = { passive: false, capture: true };
 
 const Drag = (Splide, Components, options, event) => {
   const { on, emit, bind } = event;
-  const binder = event.create();
+  const binder = event.lock();
   const { state } = Splide;
   const { Move, Scroll, Controller, Elements: { track }, Breakpoints: { reduce } } = Components;
   const { resolve, orient } = Components.Direction;
@@ -2201,14 +2200,14 @@ const Sync = (Splide2, Components, options, event) => {
     mount();
   }
   function sync(splide, target) {
-    const event2 = splide.event.create();
+    const event2 = splide.event.lock();
     event2.on(EVENT_MOVE, (index, prev, dest) => {
       target.index !== index && target.go(target.is(LOOP) ? dest : index);
     });
     events.push(event2);
   }
   function navigate() {
-    const ev = event.create();
+    const ev = event.lock();
     const { on } = ev;
     on(EVENT_CLICK, onClick);
     on(EVENT_SLIDE_KEYDOWN, onKeydown);
@@ -2381,13 +2380,13 @@ const DEFAULTS = {
 };
 
 const Fade = (Splide, Components, options, event) => {
-  const { Slides } = Components;
+  const { Slides, Direction } = Components;
   function mount() {
     event.on([EVENT_MOUNTED, EVENT_REFRESH], init);
   }
   function init() {
     Slides.forEach((Slide) => {
-      Slide.style("transform", `translateX(-${100 * Slide.index}%)`);
+      Slide.style("transform", `translateX(${Direction.orient(100 * Slide.index)}%)`);
     });
   }
   function start(index, done) {
@@ -2489,7 +2488,7 @@ class Splide {
     this._E = Extensions;
     const Constructors = assign({}, COMPONENTS, this._E, { Transition: this._T });
     forOwn(Constructors, (Component, key) => {
-      const component = Component(this, Components2, this._o, this.event.create());
+      const component = Component(this, Components2, this._o, this.event.lock());
       Components2[key] = component;
       component.setup && component.setup();
     });

+ 49 - 50
dist/js/splide.js

@@ -247,87 +247,86 @@
       isString(event) && event.split(" ").forEach(iteratee);
     });
   }
-  function arrayRemove(array, predicate) {
-    const removed = [];
-    for (let i = array.length - 1; i >= 0; i--) {
-      if (predicate(array[i])) {
-        removed.push(...array.splice(i, 1));
-      }
+  function assert$1(assertion) {
+    if (!assertion) {
+      throw new Error();
     }
-    return removed;
   }
   function EventBinder(removersRef) {
-    const removers = removersRef || [];
+    const removers = removersRef || /* @__PURE__ */ new Set();
     const key = removersRef ? {} : void 0;
+    let destroyed;
     function bind(target, events, callback, options) {
+      assert$1(!destroyed);
       forEachEvent(events, (event) => {
         target.addEventListener(event, callback, options);
-        removers.push([target.removeEventListener.bind(target, event, callback, options), key]);
+        removers.add([target.removeEventListener.bind(target, event, callback, options), key]);
       });
     }
-    function destroy() {
-      if (key) {
-        arrayRemove(removers, (remover) => remover[1] === key).forEach((remover) => {
-          remover[0]();
-        });
-      } else {
-        removers.forEach((remover) => {
+    function destroy(hard) {
+      removers.forEach((remover) => {
+        if (!key || remover[1] === key) {
           remover[0]();
-        });
-        empty(removers);
-      }
+          removers.delete(remover);
+        }
+      });
+      destroyed = hard;
     }
     return {
       bind,
-      create: apply(EventBinder, removers),
+      lock: apply(EventBinder, removers),
       destroy
     };
   }
   function EventBus(listenersRef) {
-    const listeners = listenersRef || [];
+    const listeners = listenersRef || {};
     const key = listenersRef ? {} : void 0;
+    let destroyed;
     function on(events, callback) {
+      assert$1(!destroyed);
       forEachEvent(events, (event) => {
-        listeners.push([event, callback, key]);
+        listeners[event] = push(get(event), [[callback, key]]);
       });
     }
     function off(events, callback) {
       forEachEvent(events, (event) => {
-        arrayRemove(listeners, (listener) => {
-          return listener[0] === event && (!callback || listener[1] === callback) && listener[2] === key;
-        }).forEach(empty);
+        listeners[event] = get(event).filter((listener) => !((!callback || listener[0] === callback) && listener[1] === key));
       });
     }
     function emit(event, ...args) {
-      listeners.slice().forEach((listener) => {
-        listener[0] === event && listener[1](...args);
-      });
+      get(event).forEach((listener) => listener[0] && listener[0](...args));
     }
-    function destroy() {
-      if (key) {
-        arrayRemove(listeners, (listener) => listener[2] === key).forEach(empty);
-      } else {
-        listeners.forEach(empty);
-        empty(listeners);
-      }
+    function get(event) {
+      return listeners[event] || [];
+    }
+    function destroy(hard) {
+      forOwn(listeners, (entries, event) => {
+        listeners[event] = entries.filter((listener) => {
+          const unlocked = !key || listener[1] === key;
+          unlocked && empty(listener);
+          return !unlocked;
+        });
+      });
+      !key && omit(listeners);
+      destroyed = hard;
     }
     return {
       on,
       off,
       emit,
-      create: apply(EventBus, listeners),
+      lock: apply(EventBus, listeners),
       destroy
     };
   }
   function EventInterface(binder = EventBinder(), bus = EventBus()) {
-    function create2() {
-      return EventInterface(binder.create(), bus.create());
+    function lock() {
+      return EventInterface(binder.lock(), bus.lock());
     }
-    function destroy() {
-      binder.destroy();
-      bus.destroy();
+    function destroy(hard) {
+      binder.destroy(hard);
+      bus.destroy(hard);
     }
-    return assign({}, binder, bus, { create: create2, destroy });
+    return assign({}, binder, bus, { lock, destroy });
   }
   function RequestInterval(interval, onInterval, onUpdate, limit) {
     const { now } = Date;
@@ -737,7 +736,7 @@
   const FADE = "fade";
 
   const Slide$1 = (Splide2, index, slideIndex, slide) => {
-    const event = Splide2.event.create();
+    const event = Splide2.event.lock();
     const { on, emit, bind } = event;
     const { Components, root, options } = Splide2;
     const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;
@@ -1455,7 +1454,7 @@
     function getEnd() {
       let end = slideCount - (hasFocus() || isLoop && perMove ? 1 : perPage);
       while (omitEnd && end-- > 0) {
-        if (toPosition(slideCount - 1) !== toPosition(end)) {
+        if (!approximatelyEqual(toPosition(slideCount - 1), toPosition(end), 0.01)) {
           end++;
           break;
         }
@@ -1771,7 +1770,7 @@
 
   const Drag = (Splide, Components, options, event) => {
     const { on, emit, bind } = event;
-    const binder = event.create();
+    const binder = event.lock();
     const { state } = Splide;
     const { Move, Scroll, Controller, Elements: { track }, Breakpoints: { reduce } } = Components;
     const { resolve, orient } = Components.Direction;
@@ -2201,14 +2200,14 @@
       mount();
     }
     function sync(splide, target) {
-      const event2 = splide.event.create();
+      const event2 = splide.event.lock();
       event2.on(EVENT_MOVE, (index, prev, dest) => {
         target.index !== index && target.go(target.is(LOOP) ? dest : index);
       });
       events.push(event2);
     }
     function navigate() {
-      const ev = event.create();
+      const ev = event.lock();
       const { on } = ev;
       on(EVENT_CLICK, onClick);
       on(EVENT_SLIDE_KEYDOWN, onKeydown);
@@ -2381,13 +2380,13 @@
   };
 
   const Fade = (Splide, Components, options, event) => {
-    const { Slides } = Components;
+    const { Slides, Direction } = Components;
     function mount() {
       event.on([EVENT_MOUNTED, EVENT_REFRESH], init);
     }
     function init() {
       Slides.forEach((Slide) => {
-        Slide.style("transform", `translateX(-${100 * Slide.index}%)`);
+        Slide.style("transform", `translateX(${Direction.orient(100 * Slide.index)}%)`);
       });
     }
     function start(index, done) {
@@ -2489,7 +2488,7 @@
       this._E = Extensions;
       const Constructors = assign({}, COMPONENTS, this._E, { Transition: this._T });
       forOwn(Constructors, (Component, key) => {
-        const component = Component(this, Components2, this._o, this.event.create());
+        const component = Component(this, Components2, this._o, this.event.lock());
         Components2[key] = component;
         component.setup && component.setup();
       });

File diff ditekan karena terlalu besar
+ 0 - 0
dist/js/splide.min.js


TEMPAT SAMPAH
dist/js/splide.min.js.gz


File diff ditekan karena terlalu besar
+ 0 - 0
dist/js/splide.min.js.map


+ 19 - 12
dist/types/index.d.ts

@@ -80,7 +80,7 @@ declare type CSSProperties = Exclude<keyof CSSStyleDeclaration, number | 'length
  *
  * @since 0.0.1
  */
-declare type Removers = [() => void, object?][];
+declare type Removers = Set<[() => void, object?]>;
 /**
  * The interface for the EventBinder instance.
  *
@@ -88,8 +88,8 @@ declare type Removers = [() => void, object?][];
  */
 interface EventBinder {
     bind(target: EventTarget, events: string | string[], callback: AnyFunction$1, options?: AddEventListenerOptions): void;
-    create(): EventBinder;
-    destroy(): void;
+    lock(): EventBinder;
+    destroy(hard?: boolean): void;
 }
 /**
  * The constructor function to provide methods to subscribe native events.
@@ -102,11 +102,17 @@ interface EventBinder {
 declare function EventBinder(removersRef?: Removers): EventBinder;
 
 /**
- * The type for an array with listener data as `[ event, callback, key ]`.
+ * The type for an array with a listener entry as `[ callback, key ]`.
  *
  * @since 0.0.1
  */
-declare type Listeners = [string, AnyFunction$1, object?][];
+declare type Listener = [AnyFunction$1, object?];
+/**
+ * The collection of listeners.
+ *
+ * @since 0.0.1
+ */
+declare type Listeners = Record<string, Listener[]>;
 /**
  * The interface for the EventBus instance.
  *
@@ -119,8 +125,8 @@ interface EventBus<M extends Record<string, AnyFunction$1> = Record<string, AnyF
     off(events: string | string[], callback?: AnyFunction$1): void;
     emit<K extends keyof M & string>(event: K, ...args: Parameters<M[K]>): void;
     emit(event: string, ...args: any[]): void;
-    create(): EventBus<M>;
-    destroy(): void;
+    lock(): EventBus<M>;
+    destroy(hard?: boolean): void;
 }
 /**
  * Provides the simple event system.
@@ -135,7 +141,7 @@ interface EventBus<M extends Record<string, AnyFunction$1> = Record<string, AnyF
  * @since 0.0.1
  * @constructor
  *
- * @param listenersRef - An array with listener data. Internal use only.
+ * @param listenersRef
  *
  * @return An EventBus instance.
  */
@@ -146,12 +152,13 @@ declare function EventBus<M extends Record<string, AnyFunction$1>, K extends key
  *
  * @since 0.0.1
  */
-interface EventInterface$1<M extends Record<string, AnyFunction$1> = Record<string, AnyFunction$1>> extends Omit<EventBinder, 'create'>, Omit<EventBus<M>, 'create'> {
-    create(): EventInterface$1<M>;
-    destroy(): void;
+interface EventInterface$1<M extends Record<string, AnyFunction$1> = Record<string, AnyFunction$1>> extends Omit<EventBinder, 'lock'>, Omit<EventBus<M>, 'lock'> {
+    lock(): EventInterface$1<M>;
+    destroy(hard?: boolean): void;
 }
 /**
  * The constructor function that provides interface for both internal and native events.
+ * Only the root `EventInterface` instance can destroy all locked instances.
  *
  * @since 0.0.1
  * @constructor
@@ -1041,7 +1048,7 @@ declare class Splide {
      */
     readonly root: HTMLElement;
     /**
-     * The EventBusObject object.
+     * The EventInterface object.
      */
     readonly event: EventInterface$1<EventMap & Record<string, AnyFunction>>;
     /**

+ 1 - 1
package-lock.json

@@ -38,7 +38,7 @@
     },
     "../utils": {
       "name": "@splidejs/utils",
-      "version": "1.0.7",
+      "version": "1.0.8",
       "devDependencies": {
         "@types/jest": "^29.0.3",
         "@types/node": "^18.7.20",

+ 1 - 1
src/js/components/Drag/Drag.ts

@@ -32,7 +32,7 @@ export interface DragComponent extends BaseComponent {
  */
 export const Drag: ComponentConstructor<DragComponent> = ( Splide, Components, options, event ) => {
   const { on, emit, bind } = event;
-  const binder = event.create();
+  const binder = event.lock();
   const { state } = Splide;
   const { Move, Scroll, Controller, Elements: { track }, Breakpoints: { reduce } } = Components;
   const { resolve, orient } = Components.Direction;

+ 1 - 1
src/js/components/Slides/Slide.ts

@@ -87,7 +87,7 @@ export interface  SlideComponent extends BaseComponent {
  * @return A Slide subcomponent.
  */
 export const Slide = ( Splide: Splide, index: number, slideIndex: number, slide: HTMLElement ): SlideComponent => {
-  const event = Splide.event.create();
+  const event = Splide.event.lock();
   const { on, emit, bind } = event;
   const { Components, root, options } = Splide;
   const { isNavigation, updateOnMove, i18n, pagination, slideFocus } = options;

+ 2 - 2
src/js/components/Sync/Sync.ts

@@ -92,7 +92,7 @@ export const Sync: ComponentConstructor<SyncComponent> = ( Splide, Components, o
    * @param target - A target splide instance.
    */
   function sync( splide: Splide, target: Splide ): void {
-    const event = splide.event.create();
+    const event = splide.event.lock();
 
     event.on( EVENT_MOVE, ( index, prev, dest ) => {
       target.index !== index && target.go( target.is( LOOP ) ? dest : index );
@@ -106,7 +106,7 @@ export const Sync: ComponentConstructor<SyncComponent> = ( Splide, Components, o
    * Note that the direction of `menu` is implicitly `vertical` as default.
    */
   function navigate(): void {
-    const ev = event.create();
+    const ev = event.lock();
     const { on } = ev;
 
     on( EVENT_CLICK, onClick );

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

@@ -46,7 +46,7 @@ export class Splide {
   readonly root: HTMLElement;
 
   /**
-   * The EventBusObject object.
+   * The EventInterface object.
    */
   readonly event = EventInterface<EventMap & Record<string, AnyFunction>>();
 
@@ -132,7 +132,7 @@ export class Splide {
     const Constructors = assign( {}, COMPONENTS, this._E, { Transition: this._T } );
 
     forOwn( Constructors, ( Component, key ) => {
-      const component = Component( this, Components, this._o, this.event.create() );
+      const component = Component( this, Components, this._o, this.event.lock() );
       Components[ key ] = component;
       component.setup && component.setup();
     } );

Beberapa file tidak ditampilkan karena terlalu banyak file yang berubah dalam diff ini