@whitesev/pops 3.1.2 → 3.2.0

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.
Files changed (61) hide show
  1. package/dist/index.amd.js +337 -250
  2. package/dist/index.amd.js.map +1 -1
  3. package/dist/index.amd.min.js +1 -1
  4. package/dist/index.amd.min.js.map +1 -1
  5. package/dist/index.cjs.js +337 -250
  6. package/dist/index.cjs.js.map +1 -1
  7. package/dist/index.cjs.min.js +1 -1
  8. package/dist/index.cjs.min.js.map +1 -1
  9. package/dist/index.esm.js +337 -250
  10. package/dist/index.esm.js.map +1 -1
  11. package/dist/index.esm.min.js +1 -1
  12. package/dist/index.esm.min.js.map +1 -1
  13. package/dist/index.iife.js +337 -250
  14. package/dist/index.iife.js.map +1 -1
  15. package/dist/index.iife.min.js +1 -1
  16. package/dist/index.iife.min.js.map +1 -1
  17. package/dist/index.system.js +337 -250
  18. package/dist/index.system.js.map +1 -1
  19. package/dist/index.system.min.js +1 -1
  20. package/dist/index.system.min.js.map +1 -1
  21. package/dist/index.umd.js +337 -250
  22. package/dist/index.umd.js.map +1 -1
  23. package/dist/index.umd.min.js +1 -1
  24. package/dist/index.umd.min.js.map +1 -1
  25. package/dist/types/src/Pops.d.ts +10 -10
  26. package/dist/types/src/components/panel/index.d.ts +2 -2
  27. package/dist/types/src/components/rightClickMenu/index.d.ts +1 -1
  28. package/dist/types/src/components/rightClickMenu/types/index.d.ts +8 -1
  29. package/dist/types/src/components/tooltip/index.d.ts +5 -5
  30. package/dist/types/src/components/tooltip/types/index.d.ts +15 -14
  31. package/dist/types/src/handler/PopsHandler.d.ts +4 -4
  32. package/dist/types/src/types/PopsDOMUtilsEventType.d.ts +39 -0
  33. package/dist/types/src/types/components.d.ts +2 -1
  34. package/dist/types/src/types/event.d.ts +13 -3
  35. package/dist/types/src/types/inst.d.ts +4 -0
  36. package/dist/types/src/utils/PopsDOMUtils.d.ts +10 -12
  37. package/dist/types/src/utils/PopsInstanceUtils.d.ts +2 -2
  38. package/package.json +9 -9
  39. package/src/components/alert/index.ts +3 -1
  40. package/src/components/confirm/index.ts +3 -1
  41. package/src/components/drawer/index.ts +3 -1
  42. package/src/components/folder/index.ts +3 -1
  43. package/src/components/iframe/index.ts +6 -4
  44. package/src/components/panel/handlerComponents.ts +26 -26
  45. package/src/components/panel/index.ts +3 -1
  46. package/src/components/prompt/index.ts +3 -1
  47. package/src/components/rightClickMenu/defaultConfig.ts +1 -0
  48. package/src/components/rightClickMenu/index.ts +18 -7
  49. package/src/components/rightClickMenu/types/index.ts +8 -1
  50. package/src/components/searchSuggestion/index.ts +7 -19
  51. package/src/components/tooltip/defaultConfig.ts +1 -1
  52. package/src/components/tooltip/index.ts +38 -23
  53. package/src/components/tooltip/types/index.ts +15 -14
  54. package/src/handler/PopsHandler.ts +22 -19
  55. package/src/types/PopsDOMUtilsEventType.d.ts +39 -0
  56. package/src/types/components.d.ts +2 -1
  57. package/src/types/event.d.ts +13 -3
  58. package/src/types/inst.d.ts +4 -0
  59. package/src/utils/PopsDOMUtils.ts +71 -40
  60. package/src/utils/PopsInstanceUtils.ts +62 -30
  61. package/src/utils/PopsUtils.ts +1 -1
@@ -119,12 +119,12 @@ declare class Pops {
119
119
  addClassName($el: Element | undefined | null | undefined, className: string | string[] | (() => string | string[]) | undefined | null): void;
120
120
  removeClassName($el: Element | undefined | null, className: string): void;
121
121
  containsClassName($el: HTMLElement | undefined | null, className: string): boolean;
122
- css(element: HTMLElement | string, property: keyof CSSStyleDeclaration): string;
123
- css(element: HTMLElement | string, property: string): string;
124
- css(element: HTMLElement | string, property: keyof CSSStyleDeclaration & string, value: string | number): string;
125
- css(element: HTMLElement | string, property: { [P in keyof CSSStyleDeclaration]?: CSSStyleDeclaration[P]; } | {
122
+ css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCSSPropertyType): string;
123
+ css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: string): string;
124
+ css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCSSPropertyType & string, value: string | number): string;
125
+ css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCSSProperty | {
126
126
  [key: string]: string | number;
127
- }): string;
127
+ } | string): string;
128
128
  createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, property?: ({ [P in keyof HTMLElementTagNameMap[K]]?: HTMLElementTagNameMap[K][P] extends string | boolean | number ? HTMLElementTagNameMap[K][P] : never; } & {
129
129
  [key: string]: any;
130
130
  }) | string, attributes?: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCreateElementAttributesMap): HTMLElementTagNameMap[K];
@@ -200,7 +200,7 @@ declare class Pops {
200
200
  isOverMaxZIndex: boolean;
201
201
  };
202
202
  getMaxZIndex(deviation?: number): number;
203
- removeInstance(instConfigList: import("./types/inst").PopsInstGeneralConfig[][], guid: string, isAll?: boolean): import("./types/inst").PopsInstGeneralConfig[][];
203
+ removeInstance(totalInstConfigList: import("./types/inst").PopsInstGeneralConfig[][], guid?: string, isAll?: boolean): Promise<import("./types/inst").PopsInstGeneralConfig[][]>;
204
204
  hide(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: import("./types/main").PopsInstStoreType, instConfigList: import("./types/inst").PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
205
205
  show(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: import("./types/main").PopsInstStoreType, instConfigList: import("./types/inst").PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
206
206
  close(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: string, instConfigList: import("./types/inst").PopsInstGeneralConfig[], guid: string, $anim: HTMLElement): Promise<void>;
@@ -773,7 +773,7 @@ declare class Pops {
773
773
  otherDistance: number;
774
774
  useShadowRoot: boolean;
775
775
  only: boolean;
776
- zIndex: number | (() => number);
776
+ zIndex: IFunction<number>;
777
777
  style: string | null;
778
778
  beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
779
779
  };
@@ -801,14 +801,14 @@ declare class Pops {
801
801
  mode: import("./types/main").PopsType;
802
802
  close: () => Promise<void>;
803
803
  hide: () => Promise<void>;
804
- show: () => Promise<void>;
805
- guid: string;
804
+ show: ($parent?: HTMLElement | Document | ShadowRoot) => Promise<void>;
806
805
  $shadowContainer: HTMLDivElement;
807
806
  $shadowRoot: ShadowRoot | HTMLElement;
808
807
  $el: HTMLDivElement;
809
808
  $anim: HTMLDivElement;
810
809
  $pops: HTMLDivElement;
811
810
  $mask?: HTMLDivElement | undefined;
811
+ guid: string;
812
812
  };
813
813
  /**
814
814
  * 右键菜单
@@ -836,7 +836,7 @@ declare class Pops {
836
836
  shadowRootCheckClickEvent(event: MouseEvent | PointerEvent): void;
837
837
  addWindowCheckClickListener(): void;
838
838
  removeWindowCheckClickListener(): void;
839
- contextMenuEvent(event: PointerEvent, selectorTarget: NonNullable<PopsRightClickMenuConfig["$target"]>): void;
839
+ contextMenuEvent(event: PointerEvent, selectorTarget: NonNullable<PopsRightClickMenuConfig["$target"]>): Promise<void>;
840
840
  addContextMenuEvent(target: PopsRightClickMenuConfig["$target"], selector?: string): void;
841
841
  removeContextMenuEvent(target: HTMLElement | typeof globalThis | Window, selector?: string): void;
842
842
  animationCloseMenu($menu: HTMLElement): void;
@@ -7,13 +7,13 @@ export declare const PopsPanel: {
7
7
  mode: PopsType;
8
8
  close: () => Promise<void>;
9
9
  hide: () => Promise<void>;
10
- show: () => Promise<void>;
11
- guid: string;
10
+ show: ($parent?: HTMLElement | Document | ShadowRoot) => Promise<void>;
12
11
  $shadowContainer: HTMLDivElement;
13
12
  $shadowRoot: ShadowRoot | HTMLElement;
14
13
  $el: HTMLDivElement;
15
14
  $anim: HTMLDivElement;
16
15
  $pops: HTMLDivElement;
17
16
  $mask?: HTMLDivElement | undefined;
17
+ guid: string;
18
18
  };
19
19
  };
@@ -47,7 +47,7 @@ export declare const PopsRightClickMenu: {
47
47
  * @param event
48
48
  * @param selectorTarget
49
49
  */
50
- contextMenuEvent(event: PointerEvent, selectorTarget: NonNullable<PopsRightClickMenuConfig["$target"]>): void;
50
+ contextMenuEvent(event: PointerEvent, selectorTarget: NonNullable<PopsRightClickMenuConfig["$target"]>): Promise<void>;
51
51
  /**
52
52
  * 添加contextmenu事件
53
53
  * @param target 目标
@@ -39,7 +39,7 @@ export interface PopsRightClickMenuDataConfig {
39
39
  /**
40
40
  * 文字
41
41
  */
42
- text: string | (() => string);
42
+ text: IFunction<string>;
43
43
  /**
44
44
  * 点击的回调函数
45
45
  * @param clickEvent 点击菜单的click事件
@@ -124,4 +124,11 @@ export interface PopsRightClickMenuConfig extends Pick<PopsGeneralConfig, "useSh
124
124
  * @default true
125
125
  */
126
126
  limitPositionYInView?: boolean;
127
+ /**
128
+ * 菜单显示前的回调
129
+ * @returns
130
+ *
131
+ * + `false`:阻止默认行为(显示菜单)
132
+ */
133
+ beforeShowCallBack?(event: PointerEvent): IPromise<false | void>;
127
134
  }
@@ -155,19 +155,19 @@ export declare class ToolTip {
155
155
  */
156
156
  onToolTipMouseEnterEvent(): void;
157
157
  /**
158
- * 取消监听鼠标|触摸事件
158
+ * 取消监听事件 - 鼠标|触摸
159
159
  */
160
160
  offToolTipMouseEnterEvent(): void;
161
161
  /**
162
- * 鼠标|触摸离开事件
162
+ * 离开事件 - 鼠标|触摸
163
163
  */
164
164
  toolTipMouseLeaveEvent(event: MouseEvent | PointerEvent): void;
165
165
  /**
166
- * 监听鼠标|触摸离开事件
166
+ * 监听离开事件 - 鼠标|触摸
167
167
  */
168
168
  onToolTipMouseLeaveEvent(): void;
169
169
  /**
170
- * 取消监听鼠标|触摸离开事件
170
+ * 取消监听离开事件 - 鼠标|触摸
171
171
  */
172
172
  offToolTipMouseLeaveEvent(): void;
173
173
  }
@@ -206,7 +206,7 @@ export declare const PopsTooltip: {
206
206
  otherDistance: number;
207
207
  useShadowRoot: boolean;
208
208
  only: boolean;
209
- zIndex: number | (() => number);
209
+ zIndex: IFunction<number>;
210
210
  style: string | null;
211
211
  beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
212
212
  };
@@ -15,35 +15,34 @@ export interface PopsToolTipConfig extends Pick<PopsGeneralConfig, "useShadowRoo
15
15
  */
16
16
  content: string | (() => string);
17
17
  /**
18
- * 是否比较获取到的content的内容是否改变
18
+ * 是否比较获取到的`content`的内容是否改变
19
19
  *
20
- * 如果未改变,则在触发.show时不修改内容
20
+ * 如果未改变,则在触发`.show`时不修改内容
21
21
  * @default false
22
22
  */
23
23
  isDiffContent?: boolean;
24
24
  /**
25
25
  * 位置
26
- * + `follow` 跟随鼠标|触摸位置移动
26
+ * + `follow` 跟随(鼠标|触摸)的位置而移动
27
27
  * @default "top"
28
28
  */
29
29
  position?: PopsTooltipPosition;
30
30
  /**
31
31
  * 自定义className
32
32
  *
33
- * + `github-tooltip` github的样式
33
+ * + `github-tooltip`:github的样式
34
34
  * @default ""
35
35
  */
36
36
  className?: PopsPanelGeneralConfig<any>["className"];
37
37
  /**
38
- * 是否使用fixed定位,false则是absolute定位
39
- *
38
+ * 是否使用`fixed`定位,`false`则是`absolute`定位
40
39
  * @default false
41
40
  */
42
41
  isFixed?: boolean;
43
42
  /**
44
43
  * 是否总是显示,默认为false
45
- * + true 设置的onShowEventNameonCloseEventName将无效
46
- * 返回提供showclose函数,取消onoff
44
+ * + true 设置的`onShowEventName`、`onCloseEventName`将无效
45
+ * 返回提供`show`和`close`函数,取消`on`和`off`
47
46
  * + false 事件触发才显示
48
47
  */
49
48
  alwaysShow?: boolean;
@@ -53,13 +52,15 @@ export interface PopsToolTipConfig extends Pick<PopsGeneralConfig, "useShadowRoo
53
52
  */
54
53
  delayCloseTime?: number;
55
54
  /**
56
- * 触发显示事件的名称,默认mouseenter touchstart,如果是多个事件,按空格分割
55
+ * 触发显示事件的名称,默认`mouseenter`、`touchstart`,如果是多个事件,按空格分割
56
+ *
57
+ * 如果`position`为`follow`,则添加`mousemove`、`touchmove`事件监听
57
58
  * @default "mouseenter touchstart"
58
59
  */
59
60
  onShowEventName?: string;
60
61
  /**
61
- * 触发关闭事件的名称,默认mouseleave touchend,如果是多个事件,按空格分割
62
- * @default "mouseleave touchend"
62
+ * 触发关闭事件的名称,默认`mouseleave`、`touchend`、`touchcancel`,如果是多个事件,按空格分割
63
+ * @default "mouseleave touchend touchcancel"
63
64
  */
64
65
  onCloseEventName?: string;
65
66
  /**
@@ -107,9 +108,9 @@ export interface PopsToolTipConfig extends Pick<PopsGeneralConfig, "useShadowRoo
107
108
  arrowDistance?: number;
108
109
  /**
109
110
  * 其它的距离(px)
110
- * + positionleft或者right,这个距离是上、下距离
111
- * + positiontop或者bottom,这个距离是左、右距离
112
- * + positionfollow,这个距离是上、左距离
111
+ * + 当`position`为`left`或者`right`,这个距离是上、下距离
112
+ * + 当`position`为`top`或者`bottom`,这个距离是左、右距离
113
+ * + 当`position`为`follow`,这个距离是上、左距离
113
114
  * @default 0
114
115
  */
115
116
  otherDistance?: number;
@@ -177,23 +177,23 @@ export declare const PopsHandler: {
177
177
  * @param guid
178
178
  * @param $shadowContainer
179
179
  * @param $shadowRoot
180
- * @param mode 当前弹窗类型
180
+ * @param type 当前弹窗类型
181
181
  * @param $anim 动画层
182
182
  * @param $pops 主元素
183
183
  * @param $mask 遮罩层
184
184
  * @param config 当前配置
185
185
  */
186
- handleEventConfig(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, guid: string, $shadowContainer: HTMLDivElement, $shadowRoot: ShadowRoot | HTMLElement, mode: PopsInstStoreType, $anim: HTMLDivElement, $pops: HTMLDivElement, $mask?: HTMLDivElement): PopsEventConfig;
186
+ handleEventConfig(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, guid: string, $shadowContainer: HTMLDivElement, $shadowRoot: ShadowRoot | HTMLElement, type: PopsInstStoreType, $anim: HTMLDivElement, $pops: HTMLDivElement, $mask?: HTMLDivElement): PopsEventConfig;
187
187
  /**
188
188
  * 获取loading的事件配置
189
189
  * @param guid
190
- * @param mode 当前弹窗类型
190
+ * @param type 当前弹窗类型
191
191
  * @param $anim 动画层
192
192
  * @param $pops 主元素
193
193
  * @param $mask 遮罩层
194
194
  * @param config 当前配置
195
195
  */
196
- handleLoadingEventConfig(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, guid: string, mode: "loading", $anim: HTMLDivElement, $pops: HTMLDivElement, $mask?: HTMLDivElement): Omit<PopsEventConfig, "$shadowContainer" | "$shadowRoot">;
196
+ handleLoadingEventConfig(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, guid: string, type: "loading", $anim: HTMLDivElement, $pops: HTMLDivElement, $mask?: HTMLDivElement): Omit<PopsEventConfig, "$shadowContainer" | "$shadowRoot">;
197
197
  /**
198
198
  * 处理返回的配置,针对popsHandler.handleEventConfig
199
199
  * @param config 配置
@@ -272,3 +272,42 @@ export declare type PopsDOMUtilsEventListenerOption = AddEventListenerOptions &
272
272
  */
273
273
  isComposedPath?: boolean;
274
274
  };
275
+
276
+ export type PopsDOMUtilsTargetElementType = HTMLElement | string | NodeList | HTMLElement[];
277
+
278
+ /**
279
+ * 属性转驼峰
280
+ */
281
+ export type PopsDOMUtilsCamelToKebabCSSProperty<S extends string> = S extends `webkit${infer U}`
282
+ ? `-${Lowercase<"webkit">}${U extends `${infer First}${infer Rest}`
283
+ ? First extends Uppercase<First>
284
+ ? `-${Uncapitalize<First>}${PopsDOMUtilsCamelToKebabCSSProperty<Rest>}`
285
+ : `${First}${PopsDOMUtilsCamelToKebabCSSProperty<Rest>}`
286
+ : U}`
287
+ : S extends `${infer T}${infer U}`
288
+ ? U extends Uncapitalize<U>
289
+ ? `${Uncapitalize<T>}${PopsDOMUtilsCamelToKebabCSSProperty<U>}`
290
+ : `${Uncapitalize<T>}-${PopsDOMUtilsCamelToKebabCSSProperty<U>}`
291
+ : S;
292
+
293
+ export type PopsDOMUtilsCSSPropertyType = PopsDOMUtilsCamelToKebabCSSProperty<
294
+ Extract<
295
+ keyof Omit<
296
+ CSSStyleDeclaration,
297
+ | "cssFloat"
298
+ | "cssText"
299
+ | "length"
300
+ | "parentRule"
301
+ | "getPropertyPriority"
302
+ | "getPropertyValue"
303
+ | "item"
304
+ | "removeProperty"
305
+ | "setProperty"
306
+ >,
307
+ string
308
+ >
309
+ >;
310
+
311
+ export type PopsDOMUtilsCSSProperty = {
312
+ [P in PopsDOMUtilsCSSPropertyType]: string | number;
313
+ };
@@ -184,7 +184,7 @@ export interface PopsGeneralConfig {
184
184
  *
185
185
  * @default 10000
186
186
  */
187
- zIndex?: number | (() => number);
187
+ zIndex?: IFunction<number>;
188
188
  /**
189
189
  * 遮罩层
190
190
  */
@@ -199,6 +199,7 @@ export interface PopsGeneralConfig {
199
199
  forbiddenScroll?: boolean;
200
200
  /**
201
201
  * (可选)自定义style
202
+ * @default ""
202
203
  */
203
204
  style?: string | null;
204
205
  /**
@@ -18,10 +18,20 @@ export interface PopsEventConfig {
18
18
  $mask?: HTMLDivElement;
19
19
  /** 当前弹窗类型 */
20
20
  mode: PopsType;
21
+ /** 唯一id */
21
22
  guid: string;
22
- close: () => Promise<void>;
23
- hide: () => Promise<void>;
24
- show: () => Promise<void>;
23
+ /**
24
+ * 关闭弹窗
25
+ */
26
+ close(): Promise<void>;
27
+ /**
28
+ * 隐藏弹窗
29
+ */
30
+ hide(): Promise<void>;
31
+ /**
32
+ * 显示弹出
33
+ */
34
+ show($parent?: HTMLElement | Document | ShadowRoot): Promise<void>;
25
35
  }
26
36
 
27
37
  /**
@@ -21,4 +21,8 @@ export interface PopsInstGeneralConfig extends PopsInstConfig {
21
21
  $shadowRoot: ShadowRoot | HTMLElement;
22
22
  /** 移除实例前的回调函数 */
23
23
  beforeRemoveCallBack?: (instCommonConfig: PopsInstGeneralConfig) => void;
24
+ /** 配置 */
25
+ config: any;
26
+ /** 销毁元素 */
27
+ destory(): void | Promise<void>;
24
28
  }
@@ -1,4 +1,4 @@
1
- import type { ParseHTMLReturnType, PopsDOMUtils_EventType, PopsDOMUtilsCreateElementAttributesMap, PopsDOMUtilsEventListenerOption, PopsDOMUtilsEventListenerOptionsAttribute, PopsDOMUtils_Event, PopsDOMUtilsElementEventType, PopsDOMUtilsAddEventListenerResult } from "../types/PopsDOMUtilsEventType";
1
+ import type { ParseHTMLReturnType, PopsDOMUtils_EventType, PopsDOMUtilsCreateElementAttributesMap, PopsDOMUtilsEventListenerOption, PopsDOMUtilsEventListenerOptionsAttribute, PopsDOMUtils_Event, PopsDOMUtilsElementEventType, PopsDOMUtilsAddEventListenerResult, PopsDOMUtilsCSSProperty, PopsDOMUtilsCSSPropertyType, PopsDOMUtilsTargetElementType } from "../types/PopsDOMUtilsEventType";
2
2
  declare class PopsDOMUtilsEvent {
3
3
  /**
4
4
  * 绑定事件
@@ -517,7 +517,7 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
517
517
  containsClassName($el: HTMLElement | undefined | null, className: string): boolean;
518
518
  /**
519
519
  * 获取元素的样式属性值
520
- * @param element 目标元素
520
+ * @param $el 目标元素
521
521
  * @param property 样式属性名或包含多个属性名和属性值的对象
522
522
  * @example
523
523
  * // 获取元素a.xx的CSS属性display
@@ -525,10 +525,10 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
525
525
  * DOMUtils.css("a.xx","display");
526
526
  * > "none"
527
527
  * */
528
- css(element: HTMLElement | string, property: keyof CSSStyleDeclaration): string;
528
+ css($el: PopsDOMUtilsTargetElementType, property: PopsDOMUtilsCSSPropertyType): string;
529
529
  /**
530
530
  * 获取元素的样式属性值
531
- * @param element 目标元素
531
+ * @param $el 目标元素
532
532
  * @param property 样式属性名或包含多个属性名和属性值的对象
533
533
  * @example
534
534
  * // 获取元素a.xx的CSS属性display
@@ -536,10 +536,10 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
536
536
  * DOMUtils.css("a.xx","display");
537
537
  * > "none"
538
538
  * */
539
- css(element: HTMLElement | string, property: string): string;
539
+ css($el: PopsDOMUtilsTargetElementType, property: string): string;
540
540
  /**
541
541
  * 设置元素的样式属性
542
- * @param element 目标元素
542
+ * @param $el 目标元素
543
543
  * @param property 样式属性名或包含多个属性名和属性值的对象
544
544
  * @param value 样式属性值
545
545
  * @example
@@ -553,10 +553,10 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
553
553
  * DOMUtils.css(document.querySelector("a.xx"),"top","10px");
554
554
  * DOMUtils.css(document.querySelector("a.xx"),"top",10);
555
555
  * */
556
- css(element: HTMLElement | string, property: keyof CSSStyleDeclaration & string, value: string | number): string;
556
+ css($el: PopsDOMUtilsTargetElementType, property: PopsDOMUtilsCSSPropertyType & string, value: string | number): string;
557
557
  /**
558
558
  * 设置元素的样式属性
559
- * @param element 目标元素
559
+ * @param $el 目标元素
560
560
  * @param property 样式属性名或包含多个属性名和属性值的对象
561
561
  * @param value 样式属性值
562
562
  * @example
@@ -568,11 +568,9 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
568
568
  * DOMUtils.css(document.querySelector("a.xx"),{ top: "10px" });
569
569
  * DOMUtils.css(document.querySelector("a.xx"),{ top: 10 });
570
570
  * */
571
- css(element: HTMLElement | string, property: {
572
- [P in keyof CSSStyleDeclaration]?: CSSStyleDeclaration[P];
573
- } | {
571
+ css($el: PopsDOMUtilsTargetElementType, property: PopsDOMUtilsCSSProperty | {
574
572
  [key: string]: string | number;
575
- }): string;
573
+ } | string): string;
576
574
  /**
577
575
  * 创建元素
578
576
  * @param tagName 标签名
@@ -44,11 +44,11 @@ export declare const PopsInstanceUtils: {
44
44
  getMaxZIndex(deviation?: number): number;
45
45
  /**
46
46
  * 删除配置中对应的对象
47
- * @param instConfigList 配置实例列表
47
+ * @param totalInstConfigList 配置实例列表
48
48
  * @param guid 唯一标识
49
49
  * @param isAll 是否全部删除
50
50
  */
51
- removeInstance(instConfigList: PopsInstGeneralConfig[][], guid: string, isAll?: boolean): PopsInstGeneralConfig[][];
51
+ removeInstance(totalInstConfigList: PopsInstGeneralConfig[][], guid?: string, isAll?: boolean): Promise<PopsInstGeneralConfig[][]>;
52
52
  /**
53
53
  * 隐藏
54
54
  * @param popsType
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@whitesev/pops",
3
- "version": "3.1.2",
3
+ "version": "3.2.0",
4
4
  "description": "弹窗库,包含了alert、confirm、prompt、drawer、loading、iframe、rightClickMenu等组件",
5
5
  "type": "module",
6
6
  "homepage": "https://github.com/WhiteSevs/TamperMonkeyScript/tree/master/lib/pops#readme",
@@ -41,34 +41,34 @@
41
41
  "license": "MIT",
42
42
  "dependencies": {
43
43
  "any-touch": "^2.2.0",
44
- "worker-timers": "^8.0.25"
44
+ "worker-timers": "8.0.27"
45
45
  },
46
46
  "devDependencies": {
47
- "@eslint/js": "^9.39.1",
47
+ "@eslint/js": "^9.39.2",
48
48
  "@rollup/plugin-commonjs": "^29.0.0",
49
49
  "@rollup/plugin-json": "^6.1.0",
50
50
  "@rollup/plugin-node-resolve": "^16.0.3",
51
51
  "@rollup/plugin-terser": "^0.4.4",
52
52
  "@rollup/plugin-typescript": "12.3.0",
53
- "browserslist": "^4.28.0",
54
- "caniuse-lite": "^1.0.30001757",
55
- "eslint": "^9.39.1",
53
+ "browserslist": "^4.28.1",
54
+ "caniuse-lite": "^1.0.30001761",
55
+ "eslint": "^9.39.2",
56
56
  "eslint-config-prettier": "^10.1.8",
57
57
  "eslint-plugin-compat": "^6.0.2",
58
58
  "eslint-plugin-prettier": "^5.5.4",
59
59
  "globals": "^16.5.0",
60
- "rollup": "^4.53.3",
60
+ "rollup": "^4.54.0",
61
61
  "rollup-plugin-clear": "^2.0.7",
62
62
  "rollup-plugin-import-css": "^4.1.2",
63
63
  "tslib": "^2.8.1",
64
64
  "typescript": "^5.9.3",
65
- "typescript-eslint": "^8.48.0"
65
+ "typescript-eslint": "^8.50.1"
66
66
  },
67
67
  "scripts": {
68
68
  "lint": "eslint .",
69
69
  "lint:fix": "eslint . --fix",
70
70
  "format": "prettier . --write",
71
- "dev": "pnpm run format && pnpm run lint && rollup -c -w",
71
+ "dev": "vue-tsc --noEmit && vite --force",
72
72
  "build": "pnpm run format && pnpm run lint && rollup -c"
73
73
  }
74
74
  }
@@ -118,6 +118,7 @@ export const PopsAlert = {
118
118
  $pops,
119
119
  $mask
120
120
  );
121
+ const result = PopsHandler.handleResultConfig(evtConfig);
121
122
  // 为顶部右边的关闭按钮添加点击事件
122
123
  PopsHandler.handleClickEvent("close", $headerCloseBtn, evtConfig, config.btn.close?.callback);
123
124
  // 为底部ok按钮添加点击事件
@@ -143,6 +144,8 @@ export const PopsAlert = {
143
144
  $mask: $mask!,
144
145
  $shadowContainer: $shadowContainer,
145
146
  $shadowRoot: $shadowRoot,
147
+ config: config,
148
+ destory: result.close,
146
149
  });
147
150
  // 拖拽
148
151
  if (config.drag) {
@@ -155,7 +158,6 @@ export const PopsAlert = {
155
158
  });
156
159
  }
157
160
 
158
- const result = PopsHandler.handleResultConfig(evtConfig);
159
161
  return result;
160
162
  },
161
163
  };
@@ -123,6 +123,7 @@ export const PopsConfirm = {
123
123
  $pops,
124
124
  $mask
125
125
  );
126
+ const result = PopsHandler.handleResultConfig(evtConfig);
126
127
  PopsHandler.handleClickEvent("close", $btnClose, evtConfig, config.btn.close.callback);
127
128
  PopsHandler.handleClickEvent("ok", $btnOk, evtConfig, config.btn.ok.callback);
128
129
  PopsHandler.handleClickEvent("cancel", $btnCancel, evtConfig, config.btn.cancel.callback);
@@ -146,6 +147,8 @@ export const PopsConfirm = {
146
147
  $mask: $mask!,
147
148
  $shadowContainer: $shadowContainer,
148
149
  $shadowRoot: $shadowRoot,
150
+ config: config,
151
+ destory: result.close,
149
152
  });
150
153
  // 拖拽
151
154
  if (config.drag) {
@@ -157,7 +160,6 @@ export const PopsConfirm = {
157
160
  endCallBack: config.dragEndCallBack,
158
161
  });
159
162
  }
160
- const result = PopsHandler.handleResultConfig(evtConfig);
161
163
  return result;
162
164
  },
163
165
  };
@@ -128,6 +128,7 @@ export const PopsDrawer = {
128
128
  $pops,
129
129
  $mask
130
130
  );
131
+ const result = PopsHandler.handleResultConfig(evtConfig);
131
132
  // 处理方向
132
133
 
133
134
  $pops.setAttribute("direction", config.direction);
@@ -236,8 +237,9 @@ export const PopsDrawer = {
236
237
  $mask: $mask!,
237
238
  $shadowContainer: $shadowContainer,
238
239
  $shadowRoot: $shadowRoot,
240
+ config: config,
241
+ destory: result.close,
239
242
  });
240
- const result = PopsHandler.handleResultConfig(evtConfig);
241
243
  return result;
242
244
  },
243
245
  };
@@ -280,6 +280,7 @@ export const PopsFolder = {
280
280
  $pops,
281
281
  $mask
282
282
  );
283
+ const result = PopsHandler.handleResultConfig(evtConfig);
283
284
  PopsHandler.handleClickEvent("close", $btnCloseBtn, evtConfig, config.btn.close.callback);
284
285
  PopsHandler.handleClickEvent("ok", btnOkElement, evtConfig, config.btn.ok.callback);
285
286
  PopsHandler.handleClickEvent("cancel", btnCancelElement, evtConfig, config.btn.cancel.callback);
@@ -923,8 +924,9 @@ export const PopsFolder = {
923
924
  $mask: $mask!,
924
925
  $shadowContainer: $shadowContainer,
925
926
  $shadowRoot: $shadowRoot,
927
+ config: config,
928
+ destory: result.close,
926
929
  });
927
- const result = PopsHandler.handleResultConfig(evtConfig);
928
930
  return result;
929
931
  },
930
932
  };
@@ -146,6 +146,8 @@ export const PopsIframe = {
146
146
  // 赋值额外的$iframe参数
147
147
  evtConfig.$iframe = $iframe!;
148
148
 
149
+ const result = PopsHandler.handleResultConfig(evtConfig);
150
+
149
151
  popsDOMUtils.on($anim, popsDOMUtils.getAnimationEndNameList(), function () {
150
152
  // 动画加载完毕
151
153
  $anim.style.width = "0%";
@@ -301,10 +303,10 @@ export const PopsIframe = {
301
303
  popsDOMUtils.on<MouseEvent | PointerEvent>(
302
304
  headerCloseBtnElement,
303
305
  "click",
304
- (event) => {
306
+ async (event) => {
305
307
  event.preventDefault();
306
308
  event.stopPropagation();
307
- PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
309
+ await PopsInstanceUtils.removeInstance([PopsInstData.iframe], guid, false);
308
310
  if (typeof config?.btn?.close?.callback === "function") {
309
311
  config.btn.close.callback(evtConfig, event);
310
312
  }
@@ -321,9 +323,9 @@ export const PopsIframe = {
321
323
  $mask: $mask!,
322
324
  $shadowContainer: $shadowContainer,
323
325
  $shadowRoot: $shadowRoot,
326
+ config: config,
327
+ destory: result.close,
324
328
  });
325
-
326
- const result = PopsHandler.handleResultConfig(evtConfig);
327
329
  return result;
328
330
  },
329
331
  };