@whitesev/pops 4.0.2 → 4.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 (84) hide show
  1. package/dist/index.amd.js +363 -275
  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 +363 -275
  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 +363 -275
  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 +363 -275
  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 +363 -275
  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 +363 -275
  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 +116 -16
  26. package/dist/types/src/components/loading/types/index.d.ts +1 -1
  27. package/dist/types/src/components/panel/index.d.ts +3 -2
  28. package/dist/types/src/components/rightClickMenu/types/index.d.ts +1 -1
  29. package/dist/types/src/components/searchSuggestion/types/index.d.ts +1 -1
  30. package/dist/types/src/components/tooltip/index.d.ts +82 -1
  31. package/dist/types/src/components/tooltip/types/index.d.ts +1 -1
  32. package/dist/types/src/config/GlobalConfig.d.ts +3 -3
  33. package/dist/types/src/event/EventEmiter.d.ts +7 -1
  34. package/dist/types/src/handler/PopsInstHandler.d.ts +4 -4
  35. package/dist/types/src/types/EventEmitter.d.ts +21 -0
  36. package/dist/types/src/types/PopsDOMUtilsEventType.d.ts +1 -1
  37. package/dist/types/src/types/components.d.ts +15 -18
  38. package/dist/types/src/types/global.d.ts +2 -0
  39. package/dist/types/src/types/mask.d.ts +6 -6
  40. package/dist/types/src/utils/PopsDOMUtils.d.ts +2 -2
  41. package/dist/types/src/utils/PopsInstanceUtils.d.ts +22 -0
  42. package/dist/types/src/utils/PopsUtils.d.ts +21 -16
  43. package/package.json +1 -1
  44. package/src/Pops.ts +11 -11
  45. package/src/components/alert/defaultConfig.ts +1 -1
  46. package/src/components/alert/index.ts +1 -1
  47. package/src/components/confirm/defaultConfig.ts +1 -1
  48. package/src/components/confirm/index.ts +1 -1
  49. package/src/components/drawer/defaultConfig.ts +1 -1
  50. package/src/components/drawer/index.ts +2 -1
  51. package/src/components/folder/defaultConfig.ts +1 -1
  52. package/src/components/folder/index.ts +1 -1
  53. package/src/components/iframe/defaultConfig.ts +1 -1
  54. package/src/components/iframe/index.ts +10 -6
  55. package/src/components/loading/defaultConfig.ts +1 -0
  56. package/src/components/loading/index.ts +10 -10
  57. package/src/components/loading/types/index.ts +1 -4
  58. package/src/components/panel/defaultConfig.ts +1 -1
  59. package/src/components/panel/handlerComponents.ts +4 -4
  60. package/src/components/panel/index.ts +3 -2
  61. package/src/components/prompt/defaultConfig.ts +1 -1
  62. package/src/components/prompt/index.ts +1 -1
  63. package/src/components/rightClickMenu/defaultConfig.ts +1 -1
  64. package/src/components/rightClickMenu/index.ts +1 -1
  65. package/src/components/rightClickMenu/types/index.ts +1 -1
  66. package/src/components/searchSuggestion/defaultConfig.ts +1 -0
  67. package/src/components/searchSuggestion/index.ts +1 -1
  68. package/src/components/searchSuggestion/types/index.ts +1 -1
  69. package/src/components/tooltip/defaultConfig.ts +1 -1
  70. package/src/components/tooltip/index.ts +1 -1
  71. package/src/components/tooltip/types/index.ts +1 -1
  72. package/src/event/EventEmiter.ts +15 -14
  73. package/src/handler/PopsHandler.ts +9 -21
  74. package/src/handler/PopsInstHandler.ts +65 -47
  75. package/src/types/EventEmitter.d.ts +21 -0
  76. package/src/types/PopsDOMUtilsEventType.d.ts +1 -1
  77. package/src/types/components.d.ts +15 -18
  78. package/src/types/global.d.ts +2 -0
  79. package/src/types/mask.d.ts +6 -6
  80. package/src/utils/PopsDOMUtils.ts +6 -3
  81. package/src/utils/PopsInstanceUtils.ts +50 -0
  82. package/src/utils/PopsUtils.ts +95 -68
  83. package/dist/types/src/utils/PopsDOMUtilsEventsConfig.d.ts +0 -4
  84. package/src/utils/PopsDOMUtilsEventsConfig.ts +0 -4
@@ -17,6 +17,7 @@ declare class Pops {
17
17
  config: {
18
18
  /** 版本号 */
19
19
  version: string;
20
+ /** 样式配置 */
20
21
  cssText: {
21
22
  index: string;
22
23
  ninePalaceGridPosition: string;
@@ -84,10 +85,9 @@ declare class Pops {
84
85
  panel: import("./types/inst").PopsInstGeneralConfig[];
85
86
  rightClickMenu: import("./types/inst").PopsInstGeneralConfig[];
86
87
  };
87
- /** 禁止滚动 */
88
- forbiddenScroll: {
89
- event(event: Event): false;
90
- };
88
+ };
89
+ /** 导出的函数 */
90
+ fn: {
91
91
  /** pops使用的工具类 */
92
92
  Utils: {
93
93
  sleep(timeout: number): Promise<unknown>;
@@ -110,7 +110,10 @@ declare class Pops {
110
110
  setInterval(callback: (...args: any[]) => any, timeout?: number): number;
111
111
  clearInterval(timeId: number | undefined): void;
112
112
  setArray<T>(target: T, key: keyof T, newArr: any[]): void;
113
- getMaxZIndexNodeInfoFromPoint($el?: IFunction<HTMLElement | HTMLElement[]>, deviation?: number): {
113
+ getMaxZIndexNodeInfoFromPoint($el?: IFunction<IArray<HTMLElement> | IArray<{
114
+ x: number;
115
+ y: number;
116
+ }>>, deviation?: number): {
114
117
  zIndex: number;
115
118
  originZIndex: number;
116
119
  node: HTMLElement | null;
@@ -136,9 +139,9 @@ declare class Pops {
136
139
  height(element: HTMLElement | string | Window | Document | typeof globalThis, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
137
140
  outerWidth(element: HTMLElement | string | Window | Document, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
138
141
  outerHeight(element: HTMLElement | string | Window, isShow?: boolean, parent?: HTMLElement | ShadowRoot): number;
139
- addClassName($el: Element | undefined | null | undefined, className: string | string[] | (() => string | string[]) | undefined | null): void;
142
+ addClassName($el: Element | undefined | null, className: string | string[] | (() => string | string[]) | undefined | null): void;
140
143
  removeClassName($el: Element | undefined | null, className: string): void;
141
- containsClassName($el: HTMLElement | undefined | null, className: string): boolean;
144
+ containsClassName($el: Element | undefined | null, className: string): boolean;
142
145
  css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCSSPropertyType): string;
143
146
  css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: string): string;
144
147
  css($el: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsTargetElementType, property: import("./types/PopsDOMUtilsEventType").PopsDOMUtilsCSSPropertyType & string, value: string | number): string;
@@ -227,6 +230,9 @@ declare class Pops {
227
230
  isOverMaxZIndex: boolean;
228
231
  };
229
232
  sortElementListByProperty<T, R>(getBeforeValueFun: (value: T) => R, getAfterValueFun: (value: T) => R, sortByDesc?: boolean): (after_obj: T, before_obj: T) => 1 | 0 | -1;
233
+ isHide($el: Element): boolean;
234
+ isNodeInPopsNode($el: Element): boolean;
235
+ isAnimNode($el: Element): boolean;
230
236
  };
231
237
  /** pops处理float类型使用的工具类 */
232
238
  MathFloatUtils: {
@@ -236,10 +242,10 @@ declare class Pops {
236
242
  division(number1: number, number2: number): number;
237
243
  };
238
244
  /** 实例处理函数 */
239
- PopsInstHandler: {
245
+ InstHandler: {
240
246
  removeInstance(totalInstConfigList: import("./types/inst").PopsInstGeneralConfig[][], guid?: string, isAll?: boolean): Promise<import("./types/inst").PopsInstGeneralConfig[][]>;
241
- 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>;
242
247
  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>;
248
+ 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>;
243
249
  close(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: string, instConfigList: import("./types/inst").PopsInstGeneralConfig[], guid: string, $anim: HTMLElement): Promise<void>;
244
250
  drag($move: HTMLElement, options: {
245
251
  dragElement: HTMLElement;
@@ -706,7 +712,7 @@ declare class Pops {
706
712
  onAsideItemClick($asideItem: HTMLElement, asideConfig: import("./components/panel/types").PopsPanelContentConfig): void;
707
713
  };
708
714
  /** pops.panel中的动画 */
709
- PopsAnimation: {
715
+ Animation: {
710
716
  $data: {
711
717
  [key: string]: CSSKeyframesRule;
712
718
  };
@@ -727,8 +733,22 @@ declare class Pops {
727
733
  };
728
734
  /** 事件类 */
729
735
  EventEmiter: typeof EventEmiter;
736
+ /** 通用的CSS类名 */
737
+ CommonCSSClassName: {
738
+ flexCenter: string;
739
+ flexYCenter: string;
740
+ flexXCenter: string;
741
+ hide: string;
742
+ hideImportant: string;
743
+ noBorder: string;
744
+ noBorderImportant: string;
745
+ userSelectNone: string;
746
+ lineHeightCenter: string;
747
+ widthFill: string;
748
+ textIsDisabled: string;
749
+ textIsDisabledImportant: string;
750
+ };
730
751
  };
731
- init(): void;
732
752
  /**
733
753
  * 释放原有的pops控制权
734
754
  * @example
@@ -779,7 +799,7 @@ declare class Pops {
779
799
  } | Omit<import("./types/position").PopsPosition | undefined, "zIndex"> | undefined;
780
800
  animation?: {
781
801
  zIndex: ((IFunction<string | number> | null) & IFunction<number>) | undefined;
782
- } | Omit<import("./types/animation").PopsAnimation | undefined, "zIndex"> | undefined;
802
+ } | Omit<false | import("./types/animation").PopsAnimation | undefined, "zIndex"> | undefined;
783
803
  mask?: {
784
804
  zIndex: ((IFunction<string | number> | null) & IFunction<number>) | undefined;
785
805
  } | Omit<import("./types/mask").PopsMaskConfig | undefined, "zIndex"> | undefined;
@@ -795,9 +815,9 @@ declare class Pops {
795
815
  stopKeyDownEventPropagation?: {
796
816
  zIndex: ((IFunction<string | number> | null) & IFunction<number>) | undefined;
797
817
  } | Omit<boolean | undefined, "zIndex"> | undefined;
798
- beforeAppendToPageCallBack?: {
818
+ emitter?: {
799
819
  zIndex: ((IFunction<string | number> | null) & IFunction<number>) | undefined;
800
- } | Omit<(($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void) | undefined, "zIndex"> | undefined;
820
+ } | Omit<EventEmiter<import("./types/EventEmitter").CustomEventMap> | null | undefined, "zIndex"> | undefined;
801
821
  drag?: {
802
822
  zIndex: ((IFunction<string | number> | null) & IFunction<number>) | undefined;
803
823
  } | Omit<boolean | undefined, "zIndex"> | undefined;
@@ -879,7 +899,87 @@ declare class Pops {
879
899
  style: string | null;
880
900
  lightStyle: string | null;
881
901
  darkStyle: string | null;
882
- beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
902
+ emitter: {
903
+ type: import("./types/main").PopsType;
904
+ data: {
905
+ clear: () => void;
906
+ delete: (key: string) => boolean;
907
+ forEach: (callbackfn: (value: {
908
+ type: import("./types/main").PopsType;
909
+ time: number;
910
+ callback: (...args: any[]) => IPromise<void>;
911
+ }[], key: string, map: Map<string, {
912
+ type: import("./types/main").PopsType;
913
+ time: number;
914
+ callback: (...args: any[]) => IPromise<void>;
915
+ }[]>) => void, thisArg?: any) => void;
916
+ get: (key: string) => {
917
+ type: import("./types/main").PopsType;
918
+ time: number;
919
+ callback: (...args: any[]) => IPromise<void>;
920
+ }[] | undefined;
921
+ has: (key: string) => boolean;
922
+ set: (key: string, value: {
923
+ type: import("./types/main").PopsType;
924
+ time: number;
925
+ callback: (...args: any[]) => IPromise<void>;
926
+ }[]) => Map<string, {
927
+ type: import("./types/main").PopsType;
928
+ time: number;
929
+ callback: (...args: any[]) => IPromise<void>;
930
+ }[]>;
931
+ readonly size: number;
932
+ entries: () => MapIterator<[string, {
933
+ type: import("./types/main").PopsType;
934
+ time: number;
935
+ callback: (...args: any[]) => IPromise<void>;
936
+ }[]]>;
937
+ keys: () => MapIterator<string>;
938
+ values: () => MapIterator<{
939
+ type: import("./types/main").PopsType;
940
+ time: number;
941
+ callback: (...args: any[]) => IPromise<void>;
942
+ }[]>;
943
+ [Symbol.iterator]: () => MapIterator<[string, {
944
+ type: import("./types/main").PopsType;
945
+ time: number;
946
+ callback: (...args: any[]) => IPromise<void>;
947
+ }[]]>;
948
+ readonly [Symbol.toStringTag]: string;
949
+ };
950
+ on: {
951
+ <P extends keyof import("./types/EventEmitter").EventMap>(eventName: P, callback: import("./types/EventEmitter").EventMap[P]): {
952
+ off: () => IPromise<void>;
953
+ emit: (...args: any[]) => IPromise<void>;
954
+ };
955
+ <P extends string>(eventName: P, callback: (...args: any[]) => IPromise<void>): {
956
+ off: () => IPromise<void>;
957
+ emit: (...args: any[]) => IPromise<void>;
958
+ };
959
+ };
960
+ off: {
961
+ <P extends keyof import("./types/EventEmitter").EventMap>(eventName: P, callback: import("./types/EventEmitter").EventMap[P]): IPromise<void>;
962
+ <P extends string>(eventName: P, callback: (...args: any[]) => IPromise<void>): IPromise<void>;
963
+ };
964
+ emit: {
965
+ <P extends string>(eventName: P, ...args: any[]): IPromise<void>;
966
+ <P extends keyof import("./types/EventEmitter").EventMap>(eventName: P, ...args: Parameters<import("./types/EventEmitter").EventMap[P]>): IPromise<void>;
967
+ };
968
+ offAll: {
969
+ <P extends keyof import("./types/EventEmitter").EventMap>(eventName?: P | undefined): IPromise<void>;
970
+ <P extends string>(eventName?: P | undefined): IPromise<void>;
971
+ };
972
+ getAllEvents: (eventName?: string) => {
973
+ type: import("./types/main").PopsType;
974
+ time: number;
975
+ callback: (...args: any[]) => IPromise<void>;
976
+ }[] | {
977
+ type: import("./types/main").PopsType;
978
+ time: number;
979
+ callback: (...args: any[]) => IPromise<void>;
980
+ }[][] | undefined;
981
+ [Symbol.toStringTag]: string;
982
+ } | null;
883
983
  };
884
984
  $shadowContainer: HTMLDivElement;
885
985
  $shadowRoot: HTMLElement | ShadowRoot;
@@ -900,7 +1000,7 @@ declare class Pops {
900
1000
  * 配置面板
901
1001
  * @param config 配置
902
1002
  */
903
- panel: (config: PopsPanelConfig) => Omit<import("./types/event").PopsEventConfig<EventEmiter<import("./components/panel/types").PopsPanelEventType>>, "function" | "type">;
1003
+ panel: (config: PopsPanelConfig) => Omit<import("./types/event").PopsEventConfig<EventEmiter<import("./types/EventEmitter").EventMap>>, "function" | "type">;
904
1004
  /**
905
1005
  * 右键菜单
906
1006
  * @param config 配置
@@ -2,7 +2,7 @@ import type { PopsGeneralConfig, PopsContentConfig } from "../../../types/compon
2
2
  /**
3
3
  * pops.loading
4
4
  */
5
- export interface PopsLoadingConfig extends Omit<PopsGeneralConfig, "width" | "height" | "position" | "beforeAppendToPageCallBack"> {
5
+ export interface PopsLoadingConfig extends Omit<PopsGeneralConfig, "width" | "height" | "position"> {
6
6
  /**
7
7
  * 父元素,默认为document.body
8
8
  * @default document.body || document.documentElement
@@ -1,5 +1,6 @@
1
1
  import { EventEmiter } from "../../event/EventEmiter";
2
- import type { PopsPanelConfig, PopsPanelEventType } from "./types";
2
+ import type { EventMap } from "../../types/EventEmitter";
3
+ import type { PopsPanelConfig } from "./types";
3
4
  export declare const PopsPanel: {
4
- init(__config__: PopsPanelConfig): Omit<import("../../types/event").PopsEventConfig<EventEmiter<PopsPanelEventType>>, "function" | "type">;
5
+ init(__config__: PopsPanelConfig): Omit<import("../../types/event").PopsEventConfig<EventEmiter<EventMap>>, "function" | "type">;
5
6
  };
@@ -60,7 +60,7 @@ export interface PopsRightClickMenuDataConfig {
60
60
  /**
61
61
  * pops.rightClickMenu
62
62
  */
63
- export interface PopsRightClickMenuConfig extends Pick<PopsGeneralConfig, "useShadowRoot" | "beforeAppendToPageCallBack" | "zIndex" | "style" | "lightStyle" | "darkStyle" | "only"> {
63
+ export interface PopsRightClickMenuConfig extends Pick<PopsGeneralConfig, "useShadowRoot" | "zIndex" | "style" | "lightStyle" | "darkStyle" | "only" | "emitter"> {
64
64
  /**
65
65
  * 目标元素
66
66
  * @default document.documentElement
@@ -99,7 +99,7 @@ export type PopsSearchSuggestionData<T> = {
99
99
  * 搜索建议悬浮窗
100
100
  * pops.searchSuggestion
101
101
  */
102
- export interface PopsSearchSuggestionConfig<T = any> extends Pick<PopsGeneralConfig, "useShadowRoot" | "zIndex" | "style" | "lightStyle" | "darkStyle"> {
102
+ export interface PopsSearchSuggestionConfig<T = any> extends Pick<PopsGeneralConfig, "useShadowRoot" | "zIndex" | "style" | "lightStyle" | "darkStyle" | "emitter"> {
103
103
  /**
104
104
  * 当前的环境,可以是document,可以是shadowroot,默认是document
105
105
  *
@@ -1,5 +1,6 @@
1
1
  import { EventEmiter } from "../../event/EventEmiter";
2
2
  import type { EventMap } from "../../types/EventEmitter";
3
+ import type { PopsType } from "../../types/main";
3
4
  import type { PopsToolTipConfig } from "./types/index";
4
5
  type ToolTipEventTypeName = "MouseEvent" | "TouchEvent";
5
6
  export declare class ToolTip {
@@ -213,7 +214,87 @@ export declare const PopsTooltip: {
213
214
  style: string | null;
214
215
  lightStyle: string | null;
215
216
  darkStyle: string | null;
216
- beforeAppendToPageCallBack: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
217
+ emitter: {
218
+ type: PopsType;
219
+ data: {
220
+ clear: () => void;
221
+ delete: (key: string) => boolean;
222
+ forEach: (callbackfn: (value: {
223
+ type: PopsType;
224
+ time: number;
225
+ callback: (...args: any[]) => IPromise<void>;
226
+ }[], key: string, map: Map<string, {
227
+ type: PopsType;
228
+ time: number;
229
+ callback: (...args: any[]) => IPromise<void>;
230
+ }[]>) => void, thisArg?: any) => void;
231
+ get: (key: string) => {
232
+ type: PopsType;
233
+ time: number;
234
+ callback: (...args: any[]) => IPromise<void>;
235
+ }[] | undefined;
236
+ has: (key: string) => boolean;
237
+ set: (key: string, value: {
238
+ type: PopsType;
239
+ time: number;
240
+ callback: (...args: any[]) => IPromise<void>;
241
+ }[]) => Map<string, {
242
+ type: PopsType;
243
+ time: number;
244
+ callback: (...args: any[]) => IPromise<void>;
245
+ }[]>;
246
+ readonly size: number;
247
+ entries: () => MapIterator<[string, {
248
+ type: PopsType;
249
+ time: number;
250
+ callback: (...args: any[]) => IPromise<void>;
251
+ }[]]>;
252
+ keys: () => MapIterator<string>;
253
+ values: () => MapIterator<{
254
+ type: PopsType;
255
+ time: number;
256
+ callback: (...args: any[]) => IPromise<void>;
257
+ }[]>;
258
+ [Symbol.iterator]: () => MapIterator<[string, {
259
+ type: PopsType;
260
+ time: number;
261
+ callback: (...args: any[]) => IPromise<void>;
262
+ }[]]>;
263
+ readonly [Symbol.toStringTag]: string;
264
+ };
265
+ on: {
266
+ <P extends keyof EventMap>(eventName: P, callback: EventMap[P]): {
267
+ off: () => IPromise<void>;
268
+ emit: (...args: any[]) => IPromise<void>;
269
+ };
270
+ <P extends string>(eventName: P, callback: (...args: any[]) => IPromise<void>): {
271
+ off: () => IPromise<void>;
272
+ emit: (...args: any[]) => IPromise<void>;
273
+ };
274
+ };
275
+ off: {
276
+ <P extends keyof EventMap>(eventName: P, callback: EventMap[P]): IPromise<void>;
277
+ <P extends string>(eventName: P, callback: (...args: any[]) => IPromise<void>): IPromise<void>;
278
+ };
279
+ emit: {
280
+ <P extends string>(eventName: P, ...args: any[]): IPromise<void>;
281
+ <P extends keyof EventMap>(eventName: P, ...args: Parameters<EventMap[P]>): IPromise<void>;
282
+ };
283
+ offAll: {
284
+ <P extends keyof EventMap>(eventName?: P | undefined): IPromise<void>;
285
+ <P extends string>(eventName?: P | undefined): IPromise<void>;
286
+ };
287
+ getAllEvents: (eventName?: string) => {
288
+ type: PopsType;
289
+ time: number;
290
+ callback: (...args: any[]) => IPromise<void>;
291
+ }[] | {
292
+ type: PopsType;
293
+ time: number;
294
+ callback: (...args: any[]) => IPromise<void>;
295
+ }[][] | undefined;
296
+ [Symbol.toStringTag]: string;
297
+ } | null;
217
298
  };
218
299
  $shadowContainer: HTMLDivElement;
219
300
  $shadowRoot: HTMLElement | ShadowRoot;
@@ -5,7 +5,7 @@ export type PopsTooltipPosition = "top" | "right" | "bottom" | "left" | "follow"
5
5
  /**
6
6
  * pops.tooltip
7
7
  */
8
- export interface PopsToolTipConfig extends Pick<PopsGeneralConfig, "useShadowRoot" | "only" | "zIndex" | "style" | "lightStyle" | "darkStyle" | "beforeAppendToPageCallBack"> {
8
+ export interface PopsToolTipConfig extends Pick<PopsGeneralConfig, "useShadowRoot" | "only" | "zIndex" | "style" | "lightStyle" | "darkStyle" | "emitter"> {
9
9
  /**
10
10
  * 目标元素
11
11
  */
@@ -40,7 +40,7 @@ export declare const GlobalConfig: {
40
40
  } | Omit<import("../types/position").PopsPosition | undefined, "zIndex"> | undefined;
41
41
  animation?: {
42
42
  zIndex: GlobalConfigOption["zIndex"];
43
- } | Omit<import("../types/animation").PopsAnimation | undefined, "zIndex"> | undefined;
43
+ } | Omit<false | import("../types/animation").PopsAnimation | undefined, "zIndex"> | undefined;
44
44
  mask?: {
45
45
  zIndex: GlobalConfigOption["zIndex"];
46
46
  } | Omit<import("../types/mask").PopsMaskConfig | undefined, "zIndex"> | undefined;
@@ -56,9 +56,9 @@ export declare const GlobalConfig: {
56
56
  stopKeyDownEventPropagation?: {
57
57
  zIndex: GlobalConfigOption["zIndex"];
58
58
  } | Omit<boolean | undefined, "zIndex"> | undefined;
59
- beforeAppendToPageCallBack?: {
59
+ emitter?: {
60
60
  zIndex: GlobalConfigOption["zIndex"];
61
- } | Omit<(($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void) | undefined, "zIndex"> | undefined;
61
+ } | Omit<import("../event/EventEmiter").EventEmiter<import("../types/EventEmitter").CustomEventMap> | null | undefined, "zIndex"> | undefined;
62
62
  drag?: {
63
63
  zIndex: GlobalConfigOption["zIndex"];
64
64
  } | Omit<boolean | undefined, "zIndex"> | undefined;
@@ -1,7 +1,13 @@
1
1
  import type { EventMap, CustomEventMap } from "../types/EventEmitter";
2
2
  import type { PopsType } from "../types/main";
3
3
  declare class EventEmiter<T extends CustomEventMap = CustomEventMap> {
4
- #private;
4
+ [Symbol.toStringTag]: string;
5
+ type: PopsType;
6
+ data: Map<string, {
7
+ type: PopsType;
8
+ time: number;
9
+ callback: (...args: any[]) => IPromise<void>;
10
+ }[]>;
5
11
  constructor(type: PopsType);
6
12
  on<P extends keyof EventMap>(eventName: P, callback: EventMap[P]): {
7
13
  off: () => IPromise<void>;
@@ -17,7 +17,7 @@ export declare const PopsInstHandler: {
17
17
  */
18
18
  removeInstance(totalInstConfigList: PopsInstGeneralConfig[][], guid?: string, isAll?: boolean): Promise<PopsInstGeneralConfig[][]>;
19
19
  /**
20
- * 隐藏
20
+ * 显示
21
21
  * @param popsType
22
22
  * @param instConfigList
23
23
  * @param guid
@@ -25,9 +25,9 @@ export declare const PopsInstHandler: {
25
25
  * @param $anim
26
26
  * @param $mask
27
27
  */
28
- hide(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: PopsInstStoreType, instConfigList: PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
28
+ show(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: PopsInstStoreType, instConfigList: PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
29
29
  /**
30
- * 显示
30
+ * 隐藏
31
31
  * @param popsType
32
32
  * @param instConfigList
33
33
  * @param guid
@@ -35,7 +35,7 @@ export declare const PopsInstHandler: {
35
35
  * @param $anim
36
36
  * @param $mask
37
37
  */
38
- show(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: PopsInstStoreType, instConfigList: PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
38
+ hide(config: PopsAlertConfig | PopsDrawerConfig | PopsPromptConfig | PopsConfirmConfig | PopsIframeConfig | PopsLoadingConfig | PopsPanelConfig | PopsFolderConfig, popsType: PopsInstStoreType, instConfigList: PopsInstGeneralConfig[], guid: string, $anim: HTMLElement, $mask?: HTMLElement): Promise<void>;
39
39
  /**
40
40
  * 关闭
41
41
  * @param popsType
@@ -1,12 +1,33 @@
1
1
  import type { PopsInstGeneralConfig } from "./inst";
2
2
 
3
3
  export type EventMap = {
4
+ /**
5
+ * 调用`.show`时触发
6
+ */
4
7
  "pops:before-show": (config: PopsInstGeneralConfig) => IPromise<void>;
8
+ /**
9
+ * 调用`.show`时触发
10
+ */
5
11
  "pops:show": (config: PopsInstGeneralConfig) => IPromise<void>;
12
+ /**
13
+ * 调用`.hide`时触发
14
+ */
6
15
  "pops:before-hide": (config: PopsInstGeneralConfig) => IPromise<void>;
16
+ /**
17
+ * 调用`.hide`时触发
18
+ */
7
19
  "pops:hide": (config: PopsInstGeneralConfig) => IPromise<void>;
20
+ /**
21
+ * 调用`.close`时触发
22
+ */
8
23
  "pops:before-destory": (config: PopsInstGeneralConfig) => IPromise<void>;
24
+ /**
25
+ * 调用`.close`时触发
26
+ */
9
27
  "pops:destory": () => IPromise<void>;
28
+ /**
29
+ * 插入到页面中时触发,但是需要传入`EventEmitter`来监听该事件,否则不触发
30
+ */
10
31
  "pops:before-append-to-page": (
11
32
  $shadowRoot: ShadowRoot | HTMLElement,
12
33
  $shadowContainer: HTMLDivElement
@@ -277,7 +277,7 @@ export declare type PopsDOMUtilsEventListenerOption = AddEventListenerOptions &
277
277
  isComposedPath?: boolean;
278
278
  };
279
279
 
280
- export type PopsDOMUtilsTargetElementType = HTMLElement | string | NodeList | HTMLElement[];
280
+ export type PopsDOMUtilsTargetElementType = IArray<HTMLElement> | string | NodeList;
281
281
 
282
282
  /**
283
283
  * 属性转驼峰
@@ -2,6 +2,8 @@ import type { PopsAnimation } from "./animation";
2
2
  import type { PopsPosition, PopsTextAlign, PopsJustifyContent } from "./position";
3
3
  import type { PopsGlobalButtonConfig, PopsButtonConfigAnyType, PopsHeaderCloseButtonConfig } from "./button";
4
4
  import type { PopsMaskConfig } from "./mask";
5
+ import type { EventEmiter } from "../event/EventEmiter";
6
+ import type { EventMap } from "./EventEmitter";
5
7
 
6
8
  /**
7
9
  * 标题配置
@@ -139,49 +141,41 @@ export interface PopsDragConfig {
139
141
  export interface PopsGeneralConfig {
140
142
  /**
141
143
  * 是否使用shadowRoot
142
- *
143
144
  * @default true
144
145
  */
145
146
  useShadowRoot?: boolean;
146
147
  /**
147
148
  * 自定义的className
148
- *
149
149
  * @default ""
150
150
  */
151
151
  class?: string;
152
152
  /**
153
153
  * 是否是唯一的
154
- *
155
154
  * @default false
156
155
  */
157
156
  only?: boolean;
158
157
  /**
159
158
  * 宽度
160
- *
161
159
  * @default "350px"
162
160
  */
163
161
  width: string;
164
162
  /**
165
163
  * 高度
166
- *
167
164
  * @default "200px"
168
165
  */
169
166
  height: string;
170
167
  /**
171
168
  * 位置
172
- *
173
169
  * @default "center"
174
170
  */
175
171
  position?: PopsPosition;
176
172
  /**
177
173
  * 动画
178
- *
179
174
  * @default "pops-anim-fadein-zoom"
180
175
  */
181
- animation?: PopsAnimation;
176
+ animation?: PopsAnimation | false;
182
177
  /**
183
178
  * z-index显示层级
184
- *
185
179
  * @default 10000
186
180
  */
187
181
  zIndex?: IFunction<number>;
@@ -193,38 +187,41 @@ export interface PopsGeneralConfig {
193
187
  * 是否禁用页面滚动
194
188
  *
195
189
  * 暂时不会生效
196
- *
197
190
  * @default false
198
191
  */
199
192
  forbiddenScroll?: boolean;
200
193
  /**
201
194
  * (可选)自定义style
202
- * @default ""
195
+ * @default null
203
196
  */
204
197
  style?: string | null;
205
198
  /**
206
199
  * (可选)自定义浅色模式的style
207
200
  *
208
- * 传入的css都在dark内
201
+ * css都在`@media (prefers-color-scheme: light)`内
202
+ * @default null
209
203
  */
210
204
  lightStyle?: string | null;
211
205
  /**
212
206
  * (可选)自定义深色模式的style
213
207
  *
214
- * 传入的css都在dark
208
+ * css都在`@media (prefers-color-scheme: dark)`内
209
+ * @default null
215
210
  */
216
211
  darkStyle?: string | null;
217
212
  /**
218
213
  * (可选)是否阻止`keydown`事件传播
219
214
  *
220
215
  * 主要是阻止当`keydown`触发来源为输入框时,即在输入框内按下按键不会触发页面的快捷键
221
- * @default true
216
+ * @default true 阻止
222
217
  */
223
218
  stopKeyDownEventPropagation?: boolean;
224
219
  /**
225
- * 在元素添加到页面前的事件
226
- * @param $shadowRoot 根元素
227
- * @param $shadowContainer 容器
220
+ * 可传入自定义事件监听器代替内部的eventEmitter
221
+ *
222
+ * 一般用于监听内部处理的事件
223
+ *
224
+ * 某些事件如:`pops:before-append-to-page`会提前触发,那么就需要自定义的监听器来监听
228
225
  */
229
- beforeAppendToPageCallBack?: ($shadowRoot: ShadowRoot | HTMLElement, $shadowContainer: HTMLDivElement) => void;
226
+ emitter?: EventEmiter | null | undefined;
230
227
  }
@@ -29,3 +29,5 @@ declare type DeepRequired<T> = T extends any[]
29
29
  declare type IPromise<T> = T | Promise<T>;
30
30
 
31
31
  declare type IFunction<T> = T | (() => T);
32
+
33
+ declare type IArray<T> = T | T[];
@@ -16,28 +16,28 @@ export interface PopsMaskConfig {
16
16
  */
17
17
  enable?: boolean;
18
18
  /**
19
- * 点击事件
19
+ * 点击事件配置
20
20
  */
21
21
  clickEvent?: {
22
22
  /**
23
- * 点击遮罩层是否触发关闭事件
23
+ * (可选)点击遮罩层是否触发关闭事件,默认false
24
24
  * @default false
25
25
  */
26
26
  toClose?: boolean;
27
27
  /**
28
- * 点击遮罩层是否触发隐藏事件
28
+ * (可选)点击遮罩层是否触发隐藏事件,默认false
29
29
  * @default false
30
30
  */
31
31
  toHide?: boolean;
32
32
  };
33
33
  /**
34
34
  * 遮罩层自定义的点击事件
35
- * @param originalRun 当toClose为true,它是关闭弹窗,当toHide为true,它是隐藏弹窗
36
- * @param config 配置信息
37
35
  */
38
36
  clickCallBack?:
39
37
  | ((
40
- originalRun: () => void | Promise<void>,
38
+ /** 当toClose为true,它是关闭弹窗,当toHide为true,它是隐藏弹窗 */
39
+ continueExec: () => void | Promise<void>,
40
+ /** 配置信息 */
41
41
  config:
42
42
  | PopsAlertConfig
43
43
  | PopsDrawerConfig
@@ -536,7 +536,7 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
536
536
  * @param $el 目标元素
537
537
  * @param className className属性
538
538
  */
539
- addClassName($el: Element | undefined | null | undefined, className: string | string[] | (() => string | string[]) | undefined | null): void;
539
+ addClassName($el: Element | undefined | null, className: string | string[] | (() => string | string[]) | undefined | null): void;
540
540
  /**
541
541
  * 删除className
542
542
  * @param $el 目标元素
@@ -548,7 +548,7 @@ declare class PopsDOMUtils extends PopsDOMUtilsEvent {
548
548
  * @param $el 目标元素
549
549
  * @param className className属性
550
550
  */
551
- containsClassName($el: HTMLElement | undefined | null, className: string): boolean;
551
+ containsClassName($el: Element | undefined | null, className: string): boolean;
552
552
  /**
553
553
  * 获取元素的样式属性值
554
554
  * @param $el 目标元素