@whitesev/pops 3.3.2 → 3.3.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.
@@ -85,12 +85,13 @@ declare class Pops {
85
85
  };
86
86
  /** 禁止滚动 */
87
87
  forbiddenScroll: {
88
- event(event: Event): boolean;
88
+ event(event: Event): false;
89
89
  };
90
90
  /** pops使用的工具类 */
91
91
  Utils: {
92
92
  isWin(target: any): boolean;
93
93
  isDOM(target: any): boolean;
94
+ isNodeList($ele: any): $ele is any[] | NodeList;
94
95
  delete(target: any, propName: any): void;
95
96
  assign<T1, T2 extends object, T3 extends boolean>(target: T1, source: T2, isAdd?: T3 | undefined): T3 extends true ? T1 & T2 : T1;
96
97
  getRandomGUID(): string;
@@ -172,15 +173,27 @@ declare class Pops {
172
173
  onReady<T extends (...args: any[]) => any>(callback: T): void;
173
174
  emit(element: HTMLElement | string | NodeList | any[] | Window | Document, eventType: string | string[], details?: object, useDispatchToEmitEvent?: boolean): void;
174
175
  emit(element: HTMLElement | string | NodeList | any[] | Window | Document, eventType: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType | import("./types/PopsDOMUtilsEventType").PopsDOMUtils_EventType[], details?: object, useDispatchToEmitEvent?: boolean): void;
175
- click(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["click"]) => void, details?: any, useDispatchToEmitEvent?: boolean): void;
176
- blur(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["blur"]) => void, details?: object, useDispatchToEmitEvent?: boolean): void;
177
- focus(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["focus"]) => void, details?: object, useDispatchToEmitEvent?: boolean): void;
178
- onHover(element: HTMLElement | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["hover"]) => void, option?: boolean | AddEventListenerOptions): void;
179
- onKeyup(target: HTMLElement | string | Window | typeof globalThis, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keyup"]) => void, option?: boolean | AddEventListenerOptions): void;
180
- onKeydown(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keydown"]) => void, option?: boolean | AddEventListenerOptions): void;
181
- onKeypress(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keypress"]) => void, option?: boolean | AddEventListenerOptions): void;
182
- preventEvent(event: Event): boolean;
183
- preventEvent(element: HTMLElement, eventNameList?: string | string[], capture?: boolean): boolean;
176
+ click(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["click"]) => void, details?: any, useDispatchToEmitEvent?: boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
177
+ blur(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["blur"]) => void, details?: object, useDispatchToEmitEvent?: boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
178
+ focus(element: HTMLElement | string | Window, handler?: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["focus"]) => void, details?: object, useDispatchToEmitEvent?: boolean): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
179
+ onHover(element: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType | Element | DocumentFragment | Node, handler: (this: HTMLElement, event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["hover"]) => void, option?: boolean | import("./types/PopsDOMUtilsEventType").PopsDOMUtilsEventListenerOption): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
180
+ onKeyup(target: HTMLElement | string | Window | typeof globalThis, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keyup"]) => void, option?: boolean | AddEventListenerOptions): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
181
+ onKeydown(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keydown"]) => void, option?: boolean | AddEventListenerOptions): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
182
+ onKeypress(target: HTMLElement | Window | typeof globalThis | string, handler: (event: import("./types/PopsDOMUtilsEventType").PopsDOMUtils_Event["keypress"]) => void, option?: boolean | AddEventListenerOptions): import("./types/PopsDOMUtilsEventType").PopsDOMUtilsAddEventListenerResult | undefined;
183
+ preventEvent(event: Event): false;
184
+ preventEvent<T extends boolean>(event: Event, onlyStopPropagation: T): T extends true ? void : false;
185
+ preventEvent($el: HTMLElement, eventNameList: string | string[], option?: {
186
+ capture?: boolean;
187
+ onlyStopPropagation?: boolean;
188
+ }): {
189
+ off(): void;
190
+ };
191
+ preventEvent($el: HTMLElement, eventNameList: string | string[], selector: string | string[] | null | undefined, option?: {
192
+ capture?: boolean;
193
+ onlyStopPropagation?: boolean;
194
+ }): {
195
+ off(): void;
196
+ };
184
197
  selector<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K] | undefined;
185
198
  selector<E extends Element = Element>(selector: string): E | undefined;
186
199
  selectorAll<K extends keyof HTMLElementTagNameMap>(selector: K): HTMLElementTagNameMap[K][];
@@ -211,7 +211,7 @@ declare class PopsDOMUtilsEvent {
211
211
  * console.log("触发click事件成功")
212
212
  * })
213
213
  * */
214
- click(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["click"]) => void, details?: any, useDispatchToEmitEvent?: boolean): void;
214
+ click(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["click"]) => void, details?: any, useDispatchToEmitEvent?: boolean): PopsDOMUtilsAddEventListenerResult | undefined;
215
215
  /**
216
216
  * 绑定或触发元素的blur事件
217
217
  * @param element 目标元素
@@ -226,7 +226,7 @@ declare class PopsDOMUtilsEvent {
226
226
  * console.log("触发blur事件成功")
227
227
  * })
228
228
  * */
229
- blur(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["blur"]) => void, details?: object, useDispatchToEmitEvent?: boolean): void;
229
+ blur(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["blur"]) => void, details?: object, useDispatchToEmitEvent?: boolean): PopsDOMUtilsAddEventListenerResult | undefined;
230
230
  /**
231
231
  * 绑定或触发元素的focus事件
232
232
  * @param element 目标元素
@@ -241,7 +241,7 @@ declare class PopsDOMUtilsEvent {
241
241
  * console.log("触发focus事件成功")
242
242
  * })
243
243
  * */
244
- focus(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["focus"]) => void, details?: object, useDispatchToEmitEvent?: boolean): void;
244
+ focus(element: HTMLElement | string | Window, handler?: (event: PopsDOMUtils_Event["focus"]) => void, details?: object, useDispatchToEmitEvent?: boolean): PopsDOMUtilsAddEventListenerResult | undefined;
245
245
  /**
246
246
  * 当鼠标移入或移出元素时触发事件
247
247
  * @param element 当前元素
@@ -256,7 +256,7 @@ declare class PopsDOMUtilsEvent {
256
256
  * console.log("移入/移除");
257
257
  * })
258
258
  */
259
- onHover(element: HTMLElement | string, handler: (event: PopsDOMUtils_Event["hover"]) => void, option?: boolean | AddEventListenerOptions): void;
259
+ onHover(element: PopsDOMUtilsTargetElementType | Element | DocumentFragment | Node, handler: (this: HTMLElement, event: PopsDOMUtils_Event["hover"]) => void, option?: boolean | PopsDOMUtilsEventListenerOption): PopsDOMUtilsAddEventListenerResult | undefined;
260
260
  /**
261
261
  * 当按键松开时触发事件
262
262
  * keydown - > keypress - > keyup
@@ -272,7 +272,7 @@ declare class PopsDOMUtilsEvent {
272
272
  * console.log("按键松开");
273
273
  * })
274
274
  */
275
- onKeyup(target: HTMLElement | string | Window | typeof globalThis, handler: (event: PopsDOMUtils_Event["keyup"]) => void, option?: boolean | AddEventListenerOptions): void;
275
+ onKeyup(target: HTMLElement | string | Window | typeof globalThis, handler: (event: PopsDOMUtils_Event["keyup"]) => void, option?: boolean | AddEventListenerOptions): PopsDOMUtilsAddEventListenerResult | undefined;
276
276
  /**
277
277
  * 当按键按下时触发事件
278
278
  * keydown - > keypress - > keyup
@@ -288,7 +288,7 @@ declare class PopsDOMUtilsEvent {
288
288
  * console.log("按键按下");
289
289
  * })
290
290
  */
291
- onKeydown(target: HTMLElement | Window | typeof globalThis | string, handler: (event: PopsDOMUtils_Event["keydown"]) => void, option?: boolean | AddEventListenerOptions): void;
291
+ onKeydown(target: HTMLElement | Window | typeof globalThis | string, handler: (event: PopsDOMUtils_Event["keydown"]) => void, option?: boolean | AddEventListenerOptions): PopsDOMUtilsAddEventListenerResult | undefined;
292
292
  /**
293
293
  * 当按键按下时触发事件
294
294
  * keydown - > keypress - > keyup
@@ -304,29 +304,79 @@ declare class PopsDOMUtilsEvent {
304
304
  * console.log("按键按下");
305
305
  * })
306
306
  */
307
- onKeypress(target: HTMLElement | Window | typeof globalThis | string, handler: (event: PopsDOMUtils_Event["keypress"]) => void, option?: boolean | AddEventListenerOptions): void;
307
+ onKeypress(target: HTMLElement | Window | typeof globalThis | string, handler: (event: PopsDOMUtils_Event["keypress"]) => void, option?: boolean | AddEventListenerOptions): PopsDOMUtilsAddEventListenerResult | undefined;
308
308
  /**
309
309
  * 阻止事件传递
310
- * @param element 要进行处理的元素
311
- * @param eventNameList (可选)要阻止的事件名|列表
312
- * @param capture (可选)是否捕获,默认false
313
- * @example
314
- * Utils.preventEvent(document.querySelector("a"),"click")
310
+ *
311
+ * + `.preventDefault()`: 阻止事件的默认行为发生。例如,当点击一个链接时,浏览器会默认打开链接的URL,或者在输入框内输入文字
312
+ * + `.stopPropagation()`: 停止事件的传播,阻止它继续向更上层的元素冒泡,事件将不会再传播给其他的元素
313
+ * + `.stopImmediatePropagation()`: 阻止事件传播,并且还能阻止元素上的其他事件处理程序被触发
314
+ * @param event 要阻止传递的事件
315
315
  * @example
316
- * Utils.preventEvent(event);
316
+ * DOMUtils.preventEvent(event);
317
317
  */
318
- preventEvent(event: Event): boolean;
318
+ preventEvent(event: Event): false;
319
319
  /**
320
320
  * 阻止事件传递
321
- * @param element 要进行处理的元素
322
- * @param eventNameList (可选)要阻止的事件名|列表
323
- * @param capture (可选)是否捕获,默认false
321
+ * @param event 要阻止传递的事件
322
+ * @param onlyStopPropagation (可选)是否仅阻止事件的传播,默认false,不调用`.preventDefault()`
323
+ * @example
324
+ * DOMUtils.preventEvent(event, true);
325
+ */
326
+ preventEvent<T extends boolean>(event: Event, onlyStopPropagation: T): T extends true ? void : false;
327
+ /**
328
+ * 通过监听事件来主动阻止事件的传递
329
+ * @param $el 要进行处理的元素
330
+ * @param eventNameList 要阻止的事件名|列表
331
+ * @param option (可选)配置项
332
+ * @example
333
+ * DOMUtils.preventEvent(document.querySelector("a"), "click")
334
+ * @example
335
+ * DOMUtils.preventEvent(document.querySelector("a"), "click", undefined, {
336
+ * capture: true,
337
+ * })
338
+ * @example
339
+ * DOMUtils.preventEvent(document, "click", "a.xxx", {
340
+ * capture: true,
341
+ * onlyStopPropagation: true,
342
+ * })
343
+ */
344
+ preventEvent($el: HTMLElement, eventNameList: string | string[], option?: {
345
+ /** (可选)是否捕获,默认false */
346
+ capture?: boolean;
347
+ /** (可选)是否仅阻止事件的传播,默认false,不调用`.preventDefault()` */
348
+ onlyStopPropagation?: boolean;
349
+ }): {
350
+ /** 移除监听事件 */
351
+ off(): void;
352
+ };
353
+ /**
354
+ * 通过监听事件来主动阻止事件的传递
355
+ * @param $el 要进行处理的元素
356
+ * @param eventNameList 要阻止的事件名|列表
357
+ * @param selector 子元素选择器
358
+ * @param option (可选)配置项
324
359
  * @example
325
- * Utils.preventEvent(document.querySelector("a"),"click")
360
+ * DOMUtils.preventEvent(document.querySelector("a"), "click")
326
361
  * @example
327
- * Utils.preventEvent(event);
362
+ * DOMUtils.preventEvent(document.querySelector("a"), "click", undefined, {
363
+ * capture: true,
364
+ * })
365
+ * @example
366
+ * DOMUtils.preventEvent(document, "click", "a.xxx", {
367
+ * capture: true,
368
+ * onlyStopPropagation: true,
369
+ * })
328
370
  */
329
- preventEvent(element: HTMLElement, eventNameList?: string | string[], capture?: boolean): boolean;
371
+ preventEvent($el: HTMLElement, eventNameList: string | string[], selector: string | string[] | null | undefined, option?: {
372
+ /** (可选)是否捕获,默认false */
373
+ capture?: boolean;
374
+ /** (可选)是否仅阻止事件的传播,默认false,不调用`.preventDefault()` */
375
+ onlyStopPropagation?: boolean;
376
+ }): {
377
+ /** 移除监听事件 */
378
+ off(): void;
379
+ };
330
380
  /**
331
381
  * 选择器,可使用以下的额外语法
332
382
  *
@@ -662,7 +712,7 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
662
712
  * @param content 子元素或HTML字符串
663
713
  * @example
664
714
  * // 元素a.xx的内部末尾添加一个元素
665
- * DOMUtils.append(document.querySelector("a.xx"),document.querySelector("b.xx"))
715
+ * DOMUtils.append(document.querySelector("a.xx"), document.querySelector("b.xx"))
666
716
  * DOMUtils.append("a.xx","'<b class="xx"></b>")
667
717
  * */
668
718
  append(element: Element | Node | ShadowRoot | HTMLElement | string, content: HTMLElement | string | (HTMLElement | string | Element)[] | NodeList): void;
@@ -17,6 +17,11 @@ declare class PopsUtils {
17
17
  * > true
18
18
  */
19
19
  isDOM(target: any): boolean;
20
+ /**
21
+ * 判断是否是元素列表
22
+ * @param $ele
23
+ */
24
+ isNodeList($ele: any): $ele is any[] | NodeList;
20
25
  /**
21
26
  * 删除对象上的属性
22
27
  * @param target
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/pops",
3
- "version": "3.3.2",
3
+ "version": "3.3.3",
4
4
  "description": "弹窗库,包含了alert、confirm、prompt、drawer、folder、loading、iframe、panel、tooltip、searchSuggestion、rightClickMenu组件",
5
5
  "keywords": [
6
6
  "ScriptCat",
@@ -1,15 +1,14 @@
1
- import { PopsCore } from "../../PopsCore";
2
1
  import { GlobalConfig } from "../../config/GlobalConfig";
3
2
  import { PopsElementHandler } from "../../handler/PopsElementHandler";
4
3
  import { PopsHandler } from "../../handler/PopsHandler";
5
4
  import { PopsCSS } from "../../PopsCSS";
6
5
  import { PopsInstData } from "../../PopsInst";
6
+ import type { PopsType } from "../../types/main";
7
7
  import { popsDOMUtils } from "../../utils/PopsDOMUtils";
8
8
  import { PopsInstanceUtils } from "../../utils/PopsInstanceUtils";
9
9
  import { popsUtils } from "../../utils/PopsUtils";
10
10
  import { PopsIframeDefaultConfig } from "./defaultConfig";
11
11
  import type { PopsIframeClickEventConfig, PopsIframeConfig } from "./types";
12
- import type { PopsType } from "../../types/main";
13
12
 
14
13
  export const PopsIframe = {
15
14
  init(__config__: PopsIframeConfig) {
@@ -102,7 +101,7 @@ export const PopsIframe = {
102
101
  $headerBtnMax: headerMaxBtnElement,
103
102
  $headerBtnMise: headerMiseBtnElement,
104
103
  } = PopsHandler.handleQueryElement($anim, popsType);
105
- let $iframeContainer = PopsCore.document.querySelector<HTMLDivElement>(".pops-iframe-container");
104
+ let $iframeContainer = popsDOMUtils.selector<HTMLDivElement>(".pops-iframe-container");
106
105
  if (!$iframeContainer) {
107
106
  $iframeContainer = popsDOMUtils.createElement("div", {
108
107
  className: "pops-iframe-container",