Quellcode durchsuchen

Add event types.

NaotoshiFujita vor 3 Jahren
Ursprung
Commit
b4e9a8eac7

+ 1 - 1
dist/js/splide.cjs.js

@@ -378,7 +378,7 @@ const EVENT_VISIBLE = "visible";
 const EVENT_HIDDEN = "hidden";
 const EVENT_SLIDE_KEYDOWN = "slide:keydown";
 const EVENT_REFRESH = "refresh";
-const EVENT_UPDATED = "undated";
+const EVENT_UPDATED = "updated";
 const EVENT_RESIZE = "resize";
 const EVENT_RESIZED = "resized";
 const EVENT_DRAG = "drag";

+ 1 - 1
dist/js/splide.esm.js

@@ -374,7 +374,7 @@ const EVENT_VISIBLE = "visible";
 const EVENT_HIDDEN = "hidden";
 const EVENT_SLIDE_KEYDOWN = "slide:keydown";
 const EVENT_REFRESH = "refresh";
-const EVENT_UPDATED = "undated";
+const EVENT_UPDATED = "updated";
 const EVENT_RESIZE = "resize";
 const EVENT_RESIZED = "resized";
 const EVENT_DRAG = "drag";

+ 1 - 1
dist/js/splide.js

@@ -421,7 +421,7 @@ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _d
   var EVENT_HIDDEN = "hidden";
   var EVENT_SLIDE_KEYDOWN = "slide:keydown";
   var EVENT_REFRESH = "refresh";
-  var EVENT_UPDATED = "undated";
+  var EVENT_UPDATED = "updated";
   var EVENT_RESIZE = "resize";
   var EVENT_RESIZED = "resized";
   var EVENT_DRAG = "drag";

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/splide.js.map


Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 0
dist/js/splide.min.js


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


+ 9 - 0
dist/types/components/Pagination/Pagination.d.ts

@@ -9,6 +9,15 @@ export interface PaginationComponent extends BaseComponent {
     items: PaginationItem[];
     getAt(index: number): PaginationItem;
 }
+/**
+ * The interface for data of the pagination.
+ *
+ * @since 3.0.0
+ */
+export interface PaginationData {
+    list: HTMLUListElement;
+    items: PaginationItem[];
+}
 /**
  * The interface for each pagination item.
  *

+ 1 - 1
dist/types/components/Pagination/Pagination.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["Pagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIjE;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,CAAE,KAAK,EAAE,MAAM,GAAI,cAAc,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,aAAa,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,mBAAmB,CA+H1G"}
+{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["Pagination.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIjE;;;;GAIG;AACH,MAAM,WAAW,mBAAoB,SAAQ,aAAa;IACxD,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,CAAE,KAAK,EAAE,MAAM,GAAI,cAAc,CAAC;CACxC;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,KAAK,EAAE,cAAc,EAAE,CAAC;CACzB;AAED;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,aAAa,CAAC;IAClB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,UAAU,CAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,GAAI,mBAAmB,CA+H1G"}

+ 1 - 1
dist/types/constants/events.d.ts

@@ -9,7 +9,7 @@ export declare const EVENT_VISIBLE = "visible";
 export declare const EVENT_HIDDEN = "hidden";
 export declare const EVENT_SLIDE_KEYDOWN = "slide:keydown";
 export declare const EVENT_REFRESH = "refresh";
-export declare const EVENT_UPDATED = "undated";
+export declare const EVENT_UPDATED = "updated";
 export declare const EVENT_RESIZE = "resize";
 export declare const EVENT_RESIZED = "resized";
 export declare const EVENT_DRAG = "drag";

+ 4 - 1
dist/types/constructors/EventInterface/EventInterface.d.ts

@@ -1,5 +1,6 @@
 import { Splide } from '../../core/Splide/Splide';
 import { AnyFunction } from '../../types';
+import { EventMap } from '../../types/events';
 import { EventBusCallback } from '../EventBus/EventBus';
 /**
  * The interface for the EventInterface object.
@@ -7,8 +8,10 @@ import { EventBusCallback } from '../EventBus/EventBus';
  * @since 3.0.0
  */
 export interface EventInterfaceObject {
+    on<K extends keyof EventMap>(event: K, callback: (...args: EventMap[K]) => void, priority?: number): void;
     on(events: string | string[], callback: EventBusCallback, priority?: number): void;
-    off(events: string | string[]): void;
+    off<K extends keyof EventMap>(events: K | K[] | string | string[]): void;
+    emit<K extends keyof EventMap>(event: K, ...args: EventMap[K]): void;
     emit(event: string, ...args: any[]): void;
     bind(target: Element | Window | Document | Array<Element | Window | Document>, events: string, callback: AnyFunction, options?: AddEventListenerOptions): void;
     unbind(target: Element | Window | Document | Array<Element | Window | Document>, events: string): void;

+ 1 - 1
dist/types/constructors/EventInterface/EventInterface.d.ts.map

@@ -1 +1 @@
-{"version":3,"file":"EventInterface.d.ts","sourceRoot":"","sources":["EventInterface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAI,IAAI,CAAC;IACrF,GAAG,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,GAAI,IAAI,CAAC;IACvC,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAI,IAAI,CAAC;IAC5C,IAAI,CACF,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,EACxE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAA;IACP,MAAM,CAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI,IAAI,CAAC;IACzG,OAAO,IAAI,IAAI,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAE,MAAM,EAAE,MAAM,GAAI,oBAAoB,CAsHrE"}
+{"version":3,"file":"EventInterface.d.ts","sourceRoot":"","sources":["EventInterface.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAGxD;;;;GAIG;AACH,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAG,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAE,GAAG,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAE,KAAM,IAAI,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAI,IAAI,CAAC;IAChH,EAAE,CAAE,MAAM,EAAE,MAAM,GAAG,MAAM,EAAE,EAAE,QAAQ,EAAE,gBAAgB,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAI,IAAI,CAAC;IACrF,GAAG,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAG,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,MAAM,GAAG,MAAM,EAAE,GAAI,IAAI,CAAC;IAC3E,IAAI,CAAC,CAAC,SAAS,MAAM,QAAQ,EAAG,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,EAAE,QAAQ,CAAE,CAAC,CAAE,GAAI,IAAI,CAAA;IACxE,IAAI,CAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAI,IAAI,CAAC;IAC5C,IAAI,CACF,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,EACxE,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,WAAW,EACrB,OAAO,CAAC,EAAE,uBAAuB,GAChC,IAAI,CAAA;IACP,MAAM,CAAE,MAAM,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC,EAAE,MAAM,EAAE,MAAM,GAAI,IAAI,CAAC;IACzG,OAAO,IAAI,IAAI,CAAC;CACjB;AASD;;;;;;;;GAQG;AACH,wBAAgB,cAAc,CAAE,MAAM,EAAE,MAAM,GAAI,oBAAoB,CAsHrE"}

+ 5 - 3
dist/types/core/Splide/Splide.d.ts

@@ -1,6 +1,7 @@
 import { SlideMatcher } from '../../components/Slides/Slides';
-import { EventBusCallback, EventBusObject, StateObject } from '../../constructors';
+import { EventBusObject, StateObject } from '../../constructors';
 import { ComponentConstructor, Components, Options } from '../../types';
+import { EventMap } from '../../types/events';
 /**
  * The frontend class for the Splide slider.
  *
@@ -151,7 +152,7 @@ export declare class Splide {
      *
      * @return `this`
      */
-    on(events: string, callback: EventBusCallback): this;
+    on<K extends keyof EventMap>(events: K, callback: (...args: EventMap[K]) => void): this;
     /**
      * Removes the registered all handlers for the specified event or events.
      * If you want to only remove a particular handler, use namespace to identify it.
@@ -171,7 +172,7 @@ export declare class Splide {
      *
      * @return `this`
      */
-    off(events: string): this;
+    off<K extends keyof EventMap>(events: K | K[] | string | string[]): this;
     /**
      * Emits an event and triggers registered handlers.
      *
@@ -180,6 +181,7 @@ export declare class Splide {
      *
      * @return `this`
      */
+    emit<K extends keyof EventMap>(event: K, ...args: EventMap[K]): this;
     emit(event: string, ...args: any[]): this;
     /**
      * Inserts a slide at the specified position.

Datei-Diff unterdrückt, da er zu groß ist
+ 0 - 1
dist/types/core/Splide/Splide.d.ts.map


+ 10 - 0
src/js/components/Pagination/Pagination.ts

@@ -24,6 +24,16 @@ export interface PaginationComponent extends BaseComponent {
   getAt( index: number ): PaginationItem;
 }
 
+/**
+ * The interface for data of the pagination.
+ *
+ * @since 3.0.0
+ */
+export interface PaginationData {
+  list: HTMLUListElement;
+  items: PaginationItem[];
+}
+
 /**
  * The interface for each pagination item.
  *

+ 1 - 1
src/js/constants/events.ts

@@ -9,7 +9,7 @@ export const EVENT_VISIBLE            = 'visible';
 export const EVENT_HIDDEN             = 'hidden';
 export const EVENT_SLIDE_KEYDOWN      = 'slide:keydown';
 export const EVENT_REFRESH            = 'refresh';
-export const EVENT_UPDATED            = 'undated';
+export const EVENT_UPDATED            = 'updated';
 export const EVENT_RESIZE             = 'resize';
 export const EVENT_RESIZED            = 'resized';
 export const EVENT_DRAG               = 'drag';

+ 4 - 1
src/js/constructors/EventInterface/EventInterface.ts

@@ -1,6 +1,7 @@
 import { EVENT_DESTROY } from '../../constants/events';
 import { Splide } from '../../core/Splide/Splide';
 import { AnyFunction } from '../../types';
+import { EventMap } from '../../types/events';
 import { forEach } from '../../utils';
 import { EventBusCallback } from '../EventBus/EventBus';
 
@@ -11,8 +12,10 @@ import { EventBusCallback } from '../EventBus/EventBus';
  * @since 3.0.0
  */
 export interface EventInterfaceObject {
+  on<K extends keyof EventMap>( event: K, callback: ( ...args: EventMap[ K ] ) => void, priority?: number ): void;
   on( events: string | string[], callback: EventBusCallback, priority?: number ): void;
-  off( events: string | string[] ): void;
+  off<K extends keyof EventMap>( events: K | K[] | string | string[] ): void;
+  emit<K extends keyof EventMap>( event: K, ...args: EventMap[ K ] ): void
   emit( event: string, ...args: any[] ): void;
   bind(
     target: Element | Window | Document | Array<Element | Window | Document>,

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

@@ -9,6 +9,7 @@ import { FADE } from '../../constants/types';
 import { EventBus, EventBusCallback, EventBusObject, State, StateObject } from '../../constructors';
 import { Fade, Slide } from '../../transitions';
 import { ComponentConstructor, Components, Options } from '../../types';
+import { EventMap } from '../../types/events';
 import { addClass, assert, assign, empty, forOwn, isString, merge, query, slice } from '../../utils';
 
 
@@ -216,7 +217,8 @@ export class Splide {
    *
    * @return `this`
    */
-  on( events: string, callback: EventBusCallback ): this {
+  on<K extends keyof EventMap>( events: K, callback: ( ...args: EventMap[ K ] ) => void ): this;
+  on( events: string | string[], callback: EventBusCallback ): this {
     this.event.on( events, callback, null, DEFAULT_USER_EVENT_PRIORITY );
     return this;
   }
@@ -240,7 +242,7 @@ export class Splide {
    *
    * @return `this`
    */
-  off( events: string ): this {
+  off<K extends keyof EventMap>( events: K | K[] | string | string[] ): this {
     this.event.off( events );
     return this;
   }
@@ -253,6 +255,7 @@ export class Splide {
    *
    * @return `this`
    */
+  emit<K extends keyof EventMap>( event: K, ...args: EventMap[ K ] ): this;
   emit( event: string, ...args: any[] ): this;
   emit( event: string ): this {
     // eslint-disable-next-line prefer-rest-params, prefer-spread
@@ -385,4 +388,3 @@ export class Splide {
     return this._Components.Controller.getIndex();
   }
 }
-

+ 38 - 0
src/js/types/events.ts

@@ -0,0 +1,38 @@
+import { PaginationData, PaginationItem } from '../components/Pagination/Pagination';
+import { SlideComponent } from '../components/Slides/Slide';
+import { Splide } from '../core/Splide/Splide';
+import { Options } from './options';
+
+
+export interface EventMap {
+  'mounted': [];
+  'ready': [];
+  'click': [ SlideComponent, MouseEvent ];
+  'move': [ number, number, number ];
+  'moved': [ number, number, number ];
+  'active': [ SlideComponent ];
+  'inactive': [ SlideComponent ];
+  'visible': [ SlideComponent ];
+  'hidden': [ SlideComponent ];
+  'slide:keydown': [ SlideComponent, KeyboardEvent ];
+  'refresh': [];
+  'undated': [ Options ];
+  'resize': [];
+  'resized': [];
+  'drag': [];
+  'dragging': [];
+  'dragged': [];
+  'scroll': [];
+  'scrolled': [];
+  'destroy': [];
+  'arrows:mounted': [ HTMLButtonElement, HTMLButtonElement ];
+  'arrows:updated': [ HTMLButtonElement, HTMLButtonElement, number, number ];
+  'pagination:mounted': [ PaginationData, PaginationItem ];
+  'pagination:updated': [ PaginationData, PaginationItem, PaginationItem ];
+  'navigation:mounted': [ Splide[] ];
+  'autoplay:play': [];
+  'autoplay:playing': [];
+  'autoplay:pause': [ number ];
+  'lazyload:loaded': [ HTMLImageElement, SlideComponent ];
+}
+

Einige Dateien werden nicht angezeigt, da zu viele Dateien in diesem Diff geändert wurden.