@whitesev/pops 4.2.1 → 4.2.3

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.
@@ -181,14 +181,14 @@ declare class Pops {
181
181
  onInput($el: HTMLInputElement | HTMLTextAreaElement, callback: (evt: InputEvent) => void | Promise<void>, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): {
182
182
  off: () => void;
183
183
  };
184
- on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
185
- on<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
186
- on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
187
- on<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
188
- off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
189
- off<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: T) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
190
- off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector?: string | string[] | undefined | null, callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], $selector: E) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
191
- off<T extends Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector?: string | string[] | undefined | null, callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: T, $selector: E) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
184
+ on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType = "drag" | "click" | "scroll" | "blur" | "focus" | "search" | "input" | "resize" | "reset" | "play" | "change" | "contextmenu" | "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseover" | "mouseout" | "mouseup" | "hover" | "keydown" | "keypress" | "keyup" | "abort" | "beforeunload" | "error" | "hashchange" | "load" | "pageshow" | "pagehide" | "unload" | "focusin" | "focusout" | "copy" | "cut" | "paste" | "afterprint" | "beforeprint" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "canplay" | "canplaythrough" | "durationchange" | "emptied" | "ended" | "loadeddata" | "loadedmetadata" | "loadstart" | "pause" | "playing" | "progress" | "ratechange" | "seeked" | "seeking" | "stalled" | "suspend" | "timeupdate" | "volumechange" | "waiting" | "animationend" | "animationiteration" | "animationstart" | "transitionend" | "touchstart" | "touchmove" | "touchend" | "touchcancel" | "touchenter" | "touchleave" | "message" | "online" | "offline" | "popstate" | "show" | "storage" | "toggle" | "wheel" | "propertychange" | "fullscreenchange" | "DOMContentLoaded">(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
185
+ on<T extends Event = Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
186
+ on<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType = "drag" | "click" | "scroll" | "blur" | "focus" | "search" | "input" | "resize" | "reset" | "play" | "change" | "contextmenu" | "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseover" | "mouseout" | "mouseup" | "hover" | "keydown" | "keypress" | "keyup" | "abort" | "beforeunload" | "error" | "hashchange" | "load" | "pageshow" | "pagehide" | "unload" | "focusin" | "focusout" | "copy" | "cut" | "paste" | "afterprint" | "beforeprint" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "canplay" | "canplaythrough" | "durationchange" | "emptied" | "ended" | "loadeddata" | "loadedmetadata" | "loadstart" | "pause" | "playing" | "progress" | "ratechange" | "seeked" | "seeking" | "stalled" | "suspend" | "timeupdate" | "volumechange" | "waiting" | "animationend" | "animationiteration" | "animationstart" | "transitionend" | "touchstart" | "touchmove" | "touchend" | "touchcancel" | "touchenter" | "touchleave" | "message" | "online" | "offline" | "popstate" | "show" | "storage" | "toggle" | "wheel" | "propertychange" | "fullscreenchange" | "DOMContentLoaded">(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
187
+ on<T extends Event = Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption | boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult;
188
+ off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType = "drag" | "click" | "scroll" | "blur" | "focus" | "search" | "input" | "resize" | "reset" | "play" | "change" | "contextmenu" | "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseover" | "mouseout" | "mouseup" | "hover" | "keydown" | "keypress" | "keyup" | "abort" | "beforeunload" | "error" | "hashchange" | "load" | "pageshow" | "pagehide" | "unload" | "focusin" | "focusout" | "copy" | "cut" | "paste" | "afterprint" | "beforeprint" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "canplay" | "canplaythrough" | "durationchange" | "emptied" | "ended" | "loadeddata" | "loadedmetadata" | "loadstart" | "pause" | "playing" | "progress" | "ratechange" | "seeked" | "seeking" | "stalled" | "suspend" | "timeupdate" | "volumechange" | "waiting" | "animationend" | "animationiteration" | "animationstart" | "transitionend" | "touchstart" | "touchmove" | "touchend" | "touchcancel" | "touchenter" | "touchleave" | "message" | "online" | "offline" | "popstate" | "show" | "storage" | "toggle" | "wheel" | "propertychange" | "fullscreenchange" | "DOMContentLoaded">(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T]) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
189
+ off<T extends Event = Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: T) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
190
+ off<T extends import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType = "drag" | "click" | "scroll" | "blur" | "focus" | "search" | "input" | "resize" | "reset" | "play" | "change" | "contextmenu" | "dblclick" | "mousedown" | "mouseenter" | "mouseleave" | "mousemove" | "mouseover" | "mouseout" | "mouseup" | "hover" | "keydown" | "keypress" | "keyup" | "abort" | "beforeunload" | "error" | "hashchange" | "load" | "pageshow" | "pagehide" | "unload" | "focusin" | "focusout" | "copy" | "cut" | "paste" | "afterprint" | "beforeprint" | "dragend" | "dragenter" | "dragleave" | "dragover" | "dragstart" | "drop" | "canplay" | "canplaythrough" | "durationchange" | "emptied" | "ended" | "loadeddata" | "loadedmetadata" | "loadstart" | "pause" | "playing" | "progress" | "ratechange" | "seeked" | "seeking" | "stalled" | "suspend" | "timeupdate" | "volumechange" | "waiting" | "animationend" | "animationiteration" | "animationstart" | "transitionend" | "touchstart" | "touchmove" | "touchend" | "touchcancel" | "touchenter" | "touchleave" | "message" | "online" | "offline" | "popstate" | "show" | "storage" | "toggle" | "wheel" | "propertychange" | "fullscreenchange" | "DOMContentLoaded">(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: T | T[], selector?: string | string[] | undefined | null, callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event[T], $selector: E) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
191
+ off<T extends Event = Event>(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType: string | string[], selector?: string | string[] | undefined | null, callback?: (<E extends HTMLElement = HTMLElement>(this: E, event: T, $selector: E) => void) | undefined, option?: EventListenerOptions | boolean, filter?: (value: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
192
192
  offAll(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType?: string): void;
193
193
  offAll(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsElementEventType, eventType?: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType | import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType[]): void;
194
194
  onReady<T extends (...args: any[]) => any>(callback: T): void;
@@ -1,4 +1,4 @@
1
- import type { ParseHTMLReturnType, PopsDOMUtils_EventType, PopsDOMUtilsCreateElementAttributesMap, PopsDOMUtilsEventListenerOption, PopsDOMUtilsEventListenerOptionsAttribute, PopsDOMUtils_Event, PopsDOMUtilsElementEventType, PopsDOMUtilsAddEventListenerResult, PopsDOMUtilsCSSProperty, PopsDOMUtilsCSSPropertyType, PopsDOMUtilsTargetElementType } from "../types/PopsDOMUtilsEventType";
1
+ import type { ParseHTMLReturnType, PopsDOMUtils_Event, PopsDOMUtils_EventType, PopsDOMUtilsAddEventListenerResult, PopsDOMUtilsCreateElementAttributesMap, PopsDOMUtilsCSSProperty, PopsDOMUtilsCSSPropertyType, PopsDOMUtilsElementEventType, PopsDOMUtilsEventListenerOption, PopsDOMUtilsEventListenerOptionsAttribute, PopsDOMUtilsTargetElementType } from "../types/PopsDOMUtilsEventType";
2
2
  declare class PopsDOMUtilsEvent {
3
3
  /**
4
4
  * 绑定事件
@@ -18,7 +18,7 @@ declare class PopsDOMUtilsEvent {
18
18
  * console.log("事件触发",event)
19
19
  * })
20
20
  */
21
- on<T extends PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: PopsDOMUtils_Event[T]) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
21
+ on<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], callback: (this: HTMLElement, event: PopsDOMUtils_Event[T]) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
22
22
  /**
23
23
  * 绑定事件
24
24
  * @param element 需要绑定的元素|元素数组|window
@@ -37,7 +37,7 @@ declare class PopsDOMUtilsEvent {
37
37
  * console.log("事件触发",event)
38
38
  * })
39
39
  */
40
- on<T extends Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
40
+ on<T extends Event = Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], callback: (this: HTMLElement, event: T) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
41
41
  /**
42
42
  * 绑定事件
43
43
  * @param element 需要绑定的元素|元素数组|window
@@ -62,7 +62,7 @@ declare class PopsDOMUtilsEvent {
62
62
  * console.log("事件触发", event, selectorTarget)
63
63
  * })
64
64
  */
65
- on<T extends PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
65
+ on<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: PopsDOMUtils_Event[T], selectorTarget: HTMLElement) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
66
66
  /**
67
67
  * 绑定事件
68
68
  * @param element 需要绑定的元素|元素数组|window
@@ -87,7 +87,7 @@ declare class PopsDOMUtilsEvent {
87
87
  * console.log("事件触发", event, selectorTarget)
88
88
  * })
89
89
  */
90
- on<T extends Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
90
+ on<T extends Event = Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], selector: string | string[] | undefined | null, callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void, option?: PopsDOMUtilsEventListenerOption | boolean): PopsDOMUtilsAddEventListenerResult;
91
91
  /**
92
92
  * 取消绑定事件
93
93
  * @param element 需要取消绑定的元素|元素数组
@@ -101,7 +101,7 @@ declare class PopsDOMUtilsEvent {
101
101
  * DOMUtils.off(document.querySelector("a.xx"),"click")
102
102
  * DOMUtils.off("a.xx","click")
103
103
  */
104
- off<T extends PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], callback?: <E extends HTMLElement = HTMLElement>(this: E, event: PopsDOMUtils_Event[T]) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
104
+ off<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], callback?: <E extends HTMLElement = HTMLElement>(this: E, event: PopsDOMUtils_Event[T]) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
105
105
  /**
106
106
  * 取消绑定事件
107
107
  * @param element 需要取消绑定的元素|元素数组
@@ -115,7 +115,7 @@ declare class PopsDOMUtilsEvent {
115
115
  * DOMUtils.off(document.querySelector("a.xx"),"click")
116
116
  * DOMUtils.off("a.xx","click")
117
117
  */
118
- off<T extends Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], callback?: <E extends HTMLElement = HTMLElement>(this: E, event: T) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
118
+ off<T extends Event = Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], callback?: <E extends HTMLElement = HTMLElement>(this: E, event: T) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
119
119
  /**
120
120
  * 取消绑定事件
121
121
  * @param element 需要取消绑定的元素|元素数组
@@ -130,7 +130,7 @@ declare class PopsDOMUtilsEvent {
130
130
  * DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
131
131
  * DOMUtils.off("a.xx",["click","tap","hover"])
132
132
  */
133
- off<T extends PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], selector?: string | string[] | undefined | null, callback?: <E extends HTMLElement = HTMLElement>(this: E, event: PopsDOMUtils_Event[T], $selector: E) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
133
+ off<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(element: PopsDOMUtilsElementEventType, eventType: T | T[], selector?: string | string[] | undefined | null, callback?: <E extends HTMLElement = HTMLElement>(this: E, event: PopsDOMUtils_Event[T], $selector: E) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
134
134
  /**
135
135
  * 取消绑定事件
136
136
  * @param element 需要取消绑定的元素|元素数组
@@ -145,7 +145,7 @@ declare class PopsDOMUtilsEvent {
145
145
  * DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
146
146
  * DOMUtils.off("a.xx",["click","tap","hover"])
147
147
  */
148
- off<T extends Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], selector?: string | string[] | undefined | null, callback?: <E extends HTMLElement = HTMLElement>(this: E, event: T, $selector: E) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
148
+ off<T extends Event = Event>(element: PopsDOMUtilsElementEventType, eventType: string | string[], selector?: string | string[] | undefined | null, callback?: <E extends HTMLElement = HTMLElement>(this: E, event: T, $selector: E) => void, option?: EventListenerOptions | boolean, filter?: (value: PopsDOMUtilsEventListenerOptionsAttribute, index: number, array: PopsDOMUtilsEventListenerOptionsAttribute[]) => boolean): void;
149
149
  /**
150
150
  * 取消绑定所有的事件
151
151
  * @param element 需要取消绑定的元素|元素数组
@@ -178,7 +178,7 @@ declare class PopsUtils {
178
178
  x: number;
179
179
  y: number;
180
180
  }>>, deviation?: number): {
181
- /** 处理了偏移量后的z-index值 */
181
+ /** 处理了偏移量和阈值比较后的z-index值 */
182
182
  zIndex: number;
183
183
  /** 原始z-index值 */
184
184
  originZIndex: number;
@@ -200,7 +200,7 @@ declare class PopsUtils {
200
200
  * Utils.getMaxZIndexNodeInfoFromPoint(20);
201
201
  */
202
202
  getMaxZIndexNodeInfoFromPoint(deviation: IFunction<number>): {
203
- /** 处理了偏移量后的z-index值 */
203
+ /** 处理了偏移量和阈值比较后的z-index值 */
204
204
  zIndex: number;
205
205
  /** 原始z-index值 */
206
206
  originZIndex: number;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/pops",
3
- "version": "4.2.1",
3
+ "version": "4.2.3",
4
4
  "description": "弹窗库,包含了alert、confirm、prompt、drawer、folder、loading、iframe、panel、tooltip、searchSuggestion、rightClickMenu组件",
5
5
  "keywords": [
6
6
  "ScriptCat",
@@ -57,8 +57,8 @@
57
57
  "eslint-plugin-compat": "^6.0.2",
58
58
  "eslint-plugin-prettier": "^5.5.4",
59
59
  "globals": "^16.5.0",
60
- "oxfmt": "^0.36.0",
61
- "oxlint": "1.51.0",
60
+ "oxfmt": "^0.37.0",
61
+ "oxlint": "1.52.0",
62
62
  "rollup": "^4.54.0",
63
63
  "rollup-plugin-clear": "^2.0.7",
64
64
  "rollup-plugin-import-css": "^4.1.2",
@@ -1,20 +1,20 @@
1
+ import { PopsCommonCSSClassName } from "../config/CommonCSSClassName";
2
+ import { OriginPrototype, PopsCore } from "../PopsCore";
1
3
  import type {
2
4
  ParseHTMLReturnType,
3
- PopsDOMUtils_EventType,
4
- PopsDOMUtilsCreateElementAttributesMap,
5
- PopsDOMUtilsEventListenerOption,
6
- PopsDOMUtilsEventListenerOptionsAttribute,
7
5
  PopsDOMUtils_Event,
8
- PopsDOMUtilsElementEventType,
6
+ PopsDOMUtils_EventType,
9
7
  PopsDOMUtilsAddEventListenerResult,
8
+ PopsDOMUtilsCreateElementAttributesMap,
10
9
  PopsDOMUtilsCSSProperty,
11
10
  PopsDOMUtilsCSSPropertyType,
11
+ PopsDOMUtilsElementEventType,
12
+ PopsDOMUtilsEventListenerOption,
13
+ PopsDOMUtilsEventListenerOptionsAttribute,
12
14
  PopsDOMUtilsTargetElementType,
13
15
  } from "../types/PopsDOMUtilsEventType";
14
- import { OriginPrototype, PopsCore } from "../PopsCore";
15
- import { popsUtils } from "./PopsUtils";
16
16
  import { PopsSafeUtils } from "./PopsSafeUtils";
17
- import { PopsCommonCSSClassName } from "../config/CommonCSSClassName";
17
+ import { popsUtils } from "./PopsUtils";
18
18
  /**
19
19
  * 存储在元素属性上的事件名
20
20
  */
@@ -39,7 +39,7 @@ class PopsDOMUtilsEvent {
39
39
  * console.log("事件触发",event)
40
40
  * })
41
41
  */
42
- on<T extends PopsDOMUtils_EventType>(
42
+ on<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(
43
43
  element: PopsDOMUtilsElementEventType,
44
44
  eventType: T | T[],
45
45
  callback: (this: HTMLElement, event: PopsDOMUtils_Event[T]) => void,
@@ -63,7 +63,7 @@ class PopsDOMUtilsEvent {
63
63
  * console.log("事件触发",event)
64
64
  * })
65
65
  */
66
- on<T extends Event>(
66
+ on<T extends Event = Event>(
67
67
  element: PopsDOMUtilsElementEventType,
68
68
  eventType: string | string[],
69
69
  callback: (this: HTMLElement, event: T) => void,
@@ -93,7 +93,7 @@ class PopsDOMUtilsEvent {
93
93
  * console.log("事件触发", event, selectorTarget)
94
94
  * })
95
95
  */
96
- on<T extends PopsDOMUtils_EventType>(
96
+ on<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(
97
97
  element: PopsDOMUtilsElementEventType,
98
98
  eventType: T | T[],
99
99
  selector: string | string[] | undefined | null,
@@ -124,14 +124,14 @@ class PopsDOMUtilsEvent {
124
124
  * console.log("事件触发", event, selectorTarget)
125
125
  * })
126
126
  */
127
- on<T extends Event>(
127
+ on<T extends Event = Event>(
128
128
  element: PopsDOMUtilsElementEventType,
129
129
  eventType: string | string[],
130
130
  selector: string | string[] | undefined | null,
131
131
  callback: (this: HTMLElement, event: T, selectorTarget: HTMLElement) => void,
132
132
  option?: PopsDOMUtilsEventListenerOption | boolean
133
133
  ): PopsDOMUtilsAddEventListenerResult;
134
- on<T extends Event>(
134
+ on<T extends Event = Event>(
135
135
  element: HTMLElement | string | NodeList | HTMLElement[] | Window | Document | Element | null | typeof globalThis,
136
136
  eventType: PopsDOMUtils_EventType | PopsDOMUtils_EventType[] | string | string[],
137
137
  selector:
@@ -231,89 +231,88 @@ class PopsDOMUtilsEvent {
231
231
  // 这是存在selector的情况
232
232
  listenerOption = getOption(args, 4, listenerOption);
233
233
  }
234
- /**
235
- * 如果是once,那么删除该监听和元素上的事件和监听
236
- */
237
- const checkOptionOnceToRemoveEventListener = ($el: PopsDOMUtilsElementEventType) => {
238
- if (listenerOption.once) {
239
- this.off($el, eventTypeList, selector as any, callback as any, option);
240
- }
241
- };
242
234
  $elList.forEach(($elItem) => {
243
- /**
244
- * 事件回调
245
- * @param event
246
- */
247
- const handlerCallBack = function (event: Event) {
248
- let call_this: Element | undefined = void 0;
249
- let call_event: Event | undefined = void 0;
250
- let call_$selector: HTMLElement | undefined = void 0;
251
- let execCallback = false;
252
- if (selectorList.length) {
253
- // 存在子元素选择器
254
- // 这时候的this和target都是子元素选择器的元素
255
- let $target: HTMLElement;
256
- if (listenerOption.isComposedPath) {
257
- // 可能为空
258
- const composedPath = event.composedPath();
259
- if (!composedPath.length && event.target) {
260
- composedPath.push(event.target);
261
- }
262
- $target = composedPath[0] as HTMLElement;
263
- } else {
264
- $target = event.target as HTMLElement;
265
- }
266
- let $parent = $elItem;
267
- if (popsUtils.isWin($parent)) {
268
- // window和document共用一个对象
269
- // 这样就能处理子元素选择器无法匹配的问题
270
- $parent = PopsCore.document.documentElement;
235
+ // 遍历事件名设置元素事件
236
+ eventTypeList.forEach((eventName) => {
237
+ /**
238
+ * 如果是option.once,那么删除该监听和元素上的事件和监听
239
+ */
240
+ const checkOptionOnceToRemoveEventListener = () => {
241
+ if (listenerOption.once) {
242
+ this.off($elItem, eventName, selector as any, callback as any, option);
271
243
  }
272
- const findValue = selectorList.find((selectors) => {
273
- // 判断目标元素是否匹配选择器
274
- if (that.matches($target, selectors)) {
275
- // 当前目标可以被selector所匹配到
276
- return true;
244
+ };
245
+ /**
246
+ * 事件回调
247
+ * @param event
248
+ */
249
+ const handlerCallBack = function (event: Event) {
250
+ let call_this: Element | undefined = void 0;
251
+ let call_event: Event | undefined = void 0;
252
+ let call_$selector: HTMLElement | undefined = void 0;
253
+ let execCallback = false;
254
+ if (selectorList.length) {
255
+ // 存在子元素选择器
256
+ // 这时候的this和target都是子元素选择器的元素
257
+ let $target: HTMLElement;
258
+ if (listenerOption.isComposedPath) {
259
+ // 可能为空
260
+ const composedPath = event.composedPath();
261
+ if (!composedPath.length && event.target) {
262
+ composedPath.push(event.target);
263
+ }
264
+ $target = composedPath[0] as HTMLElement;
265
+ } else {
266
+ $target = event.target as HTMLElement;
277
267
  }
278
- // 在上层与主元素之间寻找可以被selector所匹配到的
279
- const $closestMatches = that.closest<HTMLElement>($target, selectors);
280
- if ($closestMatches && (<HTMLElement>$parent)?.contains?.($closestMatches)) {
281
- $target = $closestMatches;
282
- return true;
268
+ let $parent = $elItem;
269
+ if (popsUtils.isWin($parent)) {
270
+ // window和document共用一个对象
271
+ // 这样就能处理子元素选择器无法匹配的问题
272
+ $parent = PopsCore.document.documentElement;
283
273
  }
284
- return false;
285
- });
286
- if (findValue) {
287
- // 这里尝试使用defineProperty修改event的target值
288
- try {
289
- OriginPrototype.Object.defineProperty(event, "target", {
290
- get() {
291
- return $target;
292
- },
293
- });
294
- // oxlint-disable-next-line no-empty
295
- } catch {}
274
+ const findValue = selectorList.find((selectors) => {
275
+ // 判断目标元素是否匹配选择器
276
+ if (that.matches($target, selectors)) {
277
+ // 当前目标可以被selector所匹配到
278
+ return true;
279
+ }
280
+ // 在上层与主元素之间寻找可以被selector所匹配到的
281
+ const $closestMatches = that.closest<HTMLElement>($target, selectors);
282
+ if ($closestMatches && (<HTMLElement>$parent)?.contains?.($closestMatches)) {
283
+ $target = $closestMatches;
284
+ return true;
285
+ }
286
+ return false;
287
+ });
288
+ if (findValue) {
289
+ // 这里尝试使用defineProperty修改event的target值
290
+ try {
291
+ OriginPrototype.Object.defineProperty(event, "target", {
292
+ get() {
293
+ return $target;
294
+ },
295
+ });
296
+ // oxlint-disable-next-line no-empty
297
+ } catch {}
298
+ execCallback = true;
299
+ call_this = $target;
300
+ call_event = event;
301
+ call_$selector = $target;
302
+ }
303
+ } else {
296
304
  execCallback = true;
297
- call_this = $target;
305
+ call_this = $elItem as Element;
298
306
  call_event = event;
299
- call_$selector = $target;
300
307
  }
301
- } else {
302
- execCallback = true;
303
- call_this = $elItem as Element;
304
- call_event = event;
305
- }
306
- if (execCallback) {
307
- const result = listenerCallBack.call(call_this!, call_event!, call_$selector!);
308
- checkOptionOnceToRemoveEventListener($elItem);
309
- if (typeof result === "boolean" && !result) {
310
- return false;
308
+ if (execCallback) {
309
+ const result = listenerCallBack.call(call_this!, call_event!, call_$selector!);
310
+ checkOptionOnceToRemoveEventListener();
311
+ if (typeof result === "boolean" && !result) {
312
+ return false;
313
+ }
311
314
  }
312
- }
313
- };
314
-
315
- // 遍历事件名设置元素事件
316
- eventTypeList.forEach((eventName) => {
315
+ };
317
316
  // add listener
318
317
  $elItem.addEventListener(eventName, handlerCallBack, listenerOption);
319
318
  // 获取对象上的事件
@@ -370,7 +369,7 @@ class PopsDOMUtilsEvent {
370
369
  * DOMUtils.off(document.querySelector("a.xx"),"click")
371
370
  * DOMUtils.off("a.xx","click")
372
371
  */
373
- off<T extends PopsDOMUtils_EventType>(
372
+ off<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(
374
373
  element: PopsDOMUtilsElementEventType,
375
374
  eventType: T | T[],
376
375
  callback?: <E extends HTMLElement = HTMLElement>(this: E, event: PopsDOMUtils_Event[T]) => void,
@@ -394,7 +393,7 @@ class PopsDOMUtilsEvent {
394
393
  * DOMUtils.off(document.querySelector("a.xx"),"click")
395
394
  * DOMUtils.off("a.xx","click")
396
395
  */
397
- off<T extends Event>(
396
+ off<T extends Event = Event>(
398
397
  element: PopsDOMUtilsElementEventType,
399
398
  eventType: string | string[],
400
399
  callback?: <E extends HTMLElement = HTMLElement>(this: E, event: T) => void,
@@ -419,7 +418,7 @@ class PopsDOMUtilsEvent {
419
418
  * DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
420
419
  * DOMUtils.off("a.xx",["click","tap","hover"])
421
420
  */
422
- off<T extends PopsDOMUtils_EventType>(
421
+ off<T extends PopsDOMUtils_EventType = PopsDOMUtils_EventType>(
423
422
  element: PopsDOMUtilsElementEventType,
424
423
  eventType: T | T[],
425
424
  selector?: string | string[] | undefined | null,
@@ -445,7 +444,7 @@ class PopsDOMUtilsEvent {
445
444
  * DOMUtils.off(document.querySelector("a.xx"),"click tap hover")
446
445
  * DOMUtils.off("a.xx",["click","tap","hover"])
447
446
  */
448
- off<T extends Event>(
447
+ off<T extends Event = Event>(
449
448
  element: PopsDOMUtilsElementEventType,
450
449
  eventType: string | string[],
451
450
  selector?: string | string[] | undefined | null,
@@ -563,17 +562,20 @@ class PopsDOMUtilsEvent {
563
562
  } = Reflect.get($elItem, SymbolEvents) || {};
564
563
  eventTypeList.forEach((eventName) => {
565
564
  const handlers = elementEvents[eventName] || [];
566
- const filterHandler = typeof filter === "function" ? handlers.filter(filter) : handlers;
567
- for (let index = 0; index < filterHandler.length; index++) {
568
- const handler = filterHandler[index];
565
+ // 过滤出需要删除的事件
566
+ const handlersFiltered = typeof filter === "function" ? handlers.filter(filter) : handlers;
567
+ for (let index = 0; index < handlersFiltered.length; index++) {
568
+ const handler = handlersFiltered[index];
569
+ // 过滤出的事件再根据下面的条件进行判断处理移除
570
+ // 1. callback内存地址必须相同
571
+ // 2. selector必须相同
572
+ // 3. option.capture必须相同
569
573
  let flag = true;
570
574
  if (flag && listenerCallBack && handler.callback !== listenerCallBack) {
571
- // callback不同
572
575
  flag = false;
573
576
  }
574
577
  if (flag && selectorList.length && Array.isArray(handler.selector)) {
575
578
  if (JSON.stringify(handler.selector) !== JSON.stringify(selectorList)) {
576
- // 子元素选择器不同
577
579
  flag = false;
578
580
  }
579
581
  }
@@ -582,14 +584,14 @@ class PopsDOMUtilsEvent {
582
584
  typeof handler.option.capture === "boolean" &&
583
585
  listenerOption.capture !== handler.option.capture
584
586
  ) {
585
- // 事件的配置项不同
586
587
  flag = false;
587
588
  }
588
589
  if (flag) {
589
590
  $elItem.removeEventListener(eventName, handler.handlerCallBack, handler.option);
590
- const findIndex = handlers.findIndex((item) => item === handler);
591
- if (findIndex !== -1) {
592
- handlers.splice(findIndex, 1);
591
+ for (let i = handlers.length - 1; i >= 0; i--) {
592
+ if (handlers[i] === handler) {
593
+ handlers.splice(i, 1);
594
+ }
593
595
  }
594
596
  }
595
597
  }
@@ -8,8 +8,8 @@ export const PopsInstanceUtils = {
8
8
  * 获取pops所有弹窗中的最大的z-index
9
9
  * @param deviation
10
10
  */
11
- getPopsMaxZIndex(deviation: number = 1) {
12
- deviation = Number.isNaN(deviation) ? 1 : deviation;
11
+ getPopsMaxZIndex(deviation: number = 10) {
12
+ deviation = Number.isNaN(deviation) ? 10 : deviation;
13
13
  // 最大值 2147483647
14
14
  // const browserMaxZIndex = Math.pow(2, 31) - 1;
15
15
  // 比较值 2000000000
@@ -25,8 +25,7 @@ export const PopsInstanceUtils = {
25
25
  const inst = instData[index];
26
26
  // 不对position为static和display为none的元素进行获取它们的z-index
27
27
  const $elList = [inst.$anim, inst.$pops, inst.$mask].filter((it) => it instanceof HTMLElement);
28
- const nodeZIndexInfoList = popsUtils.getMaxZIndexNodeInfoFromPoint($elList);
29
- const maxNodeZIndexInfo = nodeZIndexInfoList[0];
28
+ const maxNodeZIndexInfo = popsUtils.getMaxZIndexNodeInfoFromPoint($elList)[0];
30
29
  if (maxNodeZIndexInfo) {
31
30
  const nodeZIndex = maxNodeZIndexInfo.zIndex;
32
31
  if (nodeZIndex > zIndex) {
@@ -436,7 +436,7 @@ class PopsUtils {
436
436
  $el?: IFunction<IArray<HTMLElement> | IArray<{ x: number; y: number }>>,
437
437
  deviation?: number
438
438
  ): {
439
- /** 处理了偏移量后的z-index值 */
439
+ /** 处理了偏移量和阈值比较后的z-index值 */
440
440
  zIndex: number;
441
441
  /** 原始z-index值 */
442
442
  originZIndex: number;
@@ -458,7 +458,7 @@ class PopsUtils {
458
458
  * Utils.getMaxZIndexNodeInfoFromPoint(20);
459
459
  */
460
460
  getMaxZIndexNodeInfoFromPoint(deviation: IFunction<number>): {
461
- /** 处理了偏移量后的z-index值 */
461
+ /** 处理了偏移量和阈值比较后的z-index值 */
462
462
  zIndex: number;
463
463
  /** 原始z-index值 */
464
464
  originZIndex: number;
@@ -475,7 +475,7 @@ class PopsUtils {
475
475
  $el?: IFunction<IArray<HTMLElement> | number | IArray<{ x: number; y: number }>>,
476
476
  deviation?: number
477
477
  ): {
478
- /** 处理了偏移量后的z-index值 */
478
+ /** 处理了偏移量和阈值比较后的z-index值 */
479
479
  zIndex: number;
480
480
  /** 原始z-index值 */
481
481
  originZIndex: number;
@@ -498,6 +498,10 @@ class PopsUtils {
498
498
  if (typeof deviation !== "number" || Number.isNaN(deviation)) {
499
499
  deviation = 10;
500
500
  }
501
+ // 最大值 2147483647
502
+ // const maxZIndex = Math.pow(2, 31) - 1;
503
+ // 比较值 2000000000
504
+ const maxZIndexCompare = 2 * Math.pow(10, 9);
501
505
  /** 坐标偏移 */
502
506
  const positionDistance = 10;
503
507
  const defaultCalcPostion: {
@@ -592,9 +596,14 @@ class PopsUtils {
592
596
  left: maxRect.left,
593
597
  };
594
598
  }
599
+ const calcZIndex = zIndex + deviation;
600
+ if (calcZIndex >= maxZIndexCompare) {
601
+ // 不要超过最大值
602
+ return;
603
+ }
595
604
  return {
596
605
  /** 计算偏移量后的z-index值 */
597
- zIndex: zIndex + deviation,
606
+ zIndex: calcZIndex,
598
607
  /** 获取到的最大的z-index值 */
599
608
  originZIndex: zIndex,
600
609
  /** 拥有最大z-index的元素 */