@whitesev/pops 1.0.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 (46) hide show
  1. package/dist/index.amd.js +4651 -0
  2. package/dist/index.amd.js.map +1 -0
  3. package/dist/index.cjs.js +4649 -0
  4. package/dist/index.cjs.js.map +1 -0
  5. package/dist/index.esm.js +4647 -0
  6. package/dist/index.esm.js.map +1 -0
  7. package/dist/index.iife.js +4652 -0
  8. package/dist/index.iife.js.map +1 -0
  9. package/dist/index.system.js +4654 -0
  10. package/dist/index.system.js.map +1 -0
  11. package/dist/index.umd.js +4655 -0
  12. package/dist/index.umd.js.map +1 -0
  13. package/dist/types/index.d.ts +2 -0
  14. package/dist/types/src/Config.d.ts +1 -0
  15. package/dist/types/src/Core.d.ts +18 -0
  16. package/dist/types/src/Pops.d.ts +171 -0
  17. package/dist/types/src/components/alert/index.d.ts +4 -0
  18. package/dist/types/src/components/confirm/index.d.ts +4 -0
  19. package/dist/types/src/components/drawer/index.d.ts +2 -0
  20. package/dist/types/src/components/folder/index.d.ts +2 -0
  21. package/dist/types/src/components/iframe/index.d.ts +2 -0
  22. package/dist/types/src/components/loading/index.d.ts +2 -0
  23. package/dist/types/src/components/panel/index.d.ts +2 -0
  24. package/dist/types/src/components/prompt/index.d.ts +2 -0
  25. package/dist/types/src/components/rightClickMenu/index.d.ts +2 -0
  26. package/dist/types/src/components/tooltip/index.d.ts +2 -0
  27. package/dist/types/src/handler/PopsElementHandler.d.ts +54 -0
  28. package/dist/types/src/handler/PopsHandler.d.ts +210 -0
  29. package/dist/types/src/utils/AnyTouch.d.ts +17 -0
  30. package/dist/types/src/utils/PopsDOMUtils.d.ts +278 -0
  31. package/dist/types/src/utils/PopsDOMUtilsEvent.d.ts +332 -0
  32. package/dist/types/src/utils/PopsMathUtils.d.ts +25 -0
  33. package/dist/types/src/utils/PopsUIUtils.d.ts +85 -0
  34. package/dist/types/src/utils/PopsUtils.d.ts +123 -0
  35. package/package.json +42 -0
  36. package/src/types/PopsDOMUtilsEventType.d.ts +248 -0
  37. package/src/types/animation.d.ts +19 -0
  38. package/src/types/button.d.ts +216 -0
  39. package/src/types/components.d.ts +197 -0
  40. package/src/types/event.d.ts +60 -0
  41. package/src/types/global.d.ts +11 -0
  42. package/src/types/icon.d.ts +30 -0
  43. package/src/types/layer.d.ts +20 -0
  44. package/src/types/main.d.ts +89 -0
  45. package/src/types/mask.d.ts +35 -0
  46. package/src/types/position.d.ts +60 -0
@@ -0,0 +1,248 @@
1
+ declare type PopsDOMUtilsEventObject<T extends Node> = Event & {
2
+ target: T;
3
+ };
4
+
5
+ declare type PopsDOMUtilsCreateElementAttributesMap = {
6
+ style?: string;
7
+ id?: string;
8
+ class?: string;
9
+ "data-"?: string;
10
+ type?: string;
11
+ [key: string]: any;
12
+ };
13
+ /**
14
+ * 鼠标事件
15
+ * + https://blog.csdn.net/weixin_68658847/article/details/126939879
16
+ */
17
+
18
+ declare interface PopsDOMUtils_MouseEvent {
19
+ click: MouseEvent | PointerEvent;
20
+ contextmenu: MouseEvent | PointerEvent;
21
+ dblclick: MouseEvent | PointerEvent;
22
+ mousedown: MouseEvent | PointerEvent;
23
+ mouseenter: MouseEvent | PointerEvent;
24
+ mouseleave: MouseEvent | PointerEvent;
25
+ mousemove: MouseEvent | PointerEvent;
26
+ mouseover: MouseEvent | PointerEvent;
27
+ mouseout: MouseEvent | PointerEvent;
28
+ mouseup: MouseEvent | PointerEvent;
29
+ hover: MouseEvent;
30
+ }
31
+ declare type PopsDOMUtils_MouseEventType = keyof PopsDOMUtils_MouseEvent;
32
+ /**
33
+ * 鼠标事件
34
+ */
35
+ declare interface PopsDOMUtils_KeyboardEvent {
36
+ keydown: KeyboardEvent;
37
+ keypress: KeyboardEvent;
38
+ keyup: KeyboardEvent;
39
+ }
40
+ declare type PopsDOMUtils_KeyboardEventType = keyof PopsDOMUtils_KeyboardEvent;
41
+ /**
42
+ * 框架/对象事件
43
+ */
44
+ declare interface PopsDOMUtils_Frame_Object_Event {
45
+ abort: Event;
46
+ beforeunload: Event;
47
+ error: Event;
48
+ hashchange: Event;
49
+ load: Event;
50
+ pageshow: Event;
51
+ pagehide: Event;
52
+ resize: Event;
53
+ scroll: Event;
54
+ unload: Event;
55
+ }
56
+ declare type PopsDOMUtils_Frame_Object_EventType =
57
+ keyof PopsDOMUtils_Frame_Object_Event;
58
+ /**
59
+ * 表单事件
60
+ */
61
+ declare interface PopsDOMUtils_FormEvent {
62
+ blur: Event;
63
+ change: Event;
64
+ focus: Event;
65
+ focusin: Event;
66
+ focusout: Event;
67
+ input: Event;
68
+ reset: Event;
69
+ search: Event;
70
+ }
71
+ declare type PopsDOMUtils_FormEventType = keyof PopsDOMUtils_FormEvent;
72
+
73
+ /**
74
+ * 剪贴板事件
75
+ */
76
+ declare interface PopsDOMUtils_ClipboardEvent {
77
+ copy: ClipboardEvent;
78
+ cut: ClipboardEvent;
79
+ paste: ClipboardEvent;
80
+ }
81
+ declare type PopsDOMUtils_ClipboardEventType =
82
+ keyof PopsDOMUtils_ClipboardEvent;
83
+
84
+ /**
85
+ * 打印事件
86
+ */
87
+ declare interface PopsDOMUtils_PrintEvent {
88
+ afterprint: Event;
89
+ beforeprint: Event;
90
+ }
91
+ declare type PopsDOMUtils_PrintEventType = keyof PopsDOMUtils_PrintEvent;
92
+
93
+ /**
94
+ * 拖动事件
95
+ */
96
+ declare interface PopsDOMUtils_DragEvent {
97
+ drag: DragEvent;
98
+ dragend: DragEvent;
99
+ dragenter: DragEvent;
100
+ dragleave: DragEvent;
101
+ dragover: DragEvent;
102
+ dragstart: DragEvent;
103
+ drop: DragEvent;
104
+ }
105
+ declare type PopsDOMUtils_DragEventType = keyof PopsDOMUtils_DragEvent;
106
+
107
+ /**
108
+ * 多媒体(Media)事件
109
+ */
110
+ declare interface PopsDOMUtils_MediaEvent {
111
+ abort: Event;
112
+ canplay: Event;
113
+ canplaythrough: Event;
114
+ durationchange: Event;
115
+ emptied: Event;
116
+ ended: Event;
117
+ error: Event;
118
+ loadeddata: Event;
119
+ loadedmetadata: Event;
120
+ loadstart: Event;
121
+ pause: Event;
122
+ play: Event;
123
+ playing: Event;
124
+ progress: Event;
125
+ ratechange: Event;
126
+ seeked: Event;
127
+ seeking: Event;
128
+ stalled: Event;
129
+ suspend: Event;
130
+ timeupdate: Event;
131
+ volumechange: Event;
132
+ waiting: Event;
133
+ }
134
+ declare type PopsDOMUtils_MediaEventType = keyof PopsDOMUtils_MediaEvent;
135
+
136
+ /**
137
+ * 动画事件
138
+ */
139
+ declare interface PopsDOMUtils_AnimationEvent {
140
+ animationend: AnimationEvent;
141
+ animationiteration: AnimationEvent;
142
+ animationstart: AnimationEvent;
143
+ }
144
+ declare type PopsDOMUtils_AnimationEventType =
145
+ keyof PopsDOMUtils_AnimationEvent;
146
+
147
+ /**
148
+ * 过渡事件
149
+ */
150
+ declare interface PopsDOMUtils_TransitionEvent {
151
+ transitionend: TransitionEvent;
152
+ }
153
+ declare type PopsDOMUtils_TransitionEventType =
154
+ keyof PopsDOMUtils_TransitionEvent;
155
+
156
+ /**
157
+ * 触摸事件
158
+ */
159
+ declare interface PopsDOMUtils_TouchEvent {
160
+ touchstart: TouchEvent;
161
+ touchmove: TouchEvent;
162
+ touchend: TouchEvent;
163
+ touchcancel: TouchEvent;
164
+ touchenter: TouchEvent;
165
+ touchleave: TouchEvent;
166
+ }
167
+ declare type PopsDOMUtils_TouchEventType = keyof PopsDOMUtils_TouchEvent;
168
+ /**
169
+ * 其它事件
170
+ */
171
+ declare interface PopsDOMUtils_OtherEvent {
172
+ message: Event;
173
+ online: Event;
174
+ offline: Event;
175
+ popstate: Event;
176
+ show: Event;
177
+ storage: Event;
178
+ toggle: Event;
179
+ wheel: Event;
180
+ propertychange: Event;
181
+ fullscreenchange: Event;
182
+ DOMContentLoaded: Event;
183
+ }
184
+ declare type PopsDOMUtils_OtherEventType = keyof PopsDOMUtils_OtherEvent;
185
+
186
+ /**
187
+ * 全部事件
188
+ */
189
+ declare type PopsDOMUtils_Event = PopsDOMUtils_MouseEvent &
190
+ PopsDOMUtils_KeyboardEvent &
191
+ PopsDOMUtils_Frame_Object_Event &
192
+ PopsDOMUtils_FormEvent &
193
+ PopsDOMUtils_ClipboardEvent &
194
+ PopsDOMUtils_PrintEvent &
195
+ PopsDOMUtils_DragEvent &
196
+ PopsDOMUtils_MediaEvent &
197
+ PopsDOMUtils_AnimationEvent &
198
+ PopsDOMUtils_TransitionEvent &
199
+ PopsDOMUtils_TouchEvent &
200
+ PopsDOMUtils_OtherEvent;
201
+
202
+ /**
203
+ * 事件类型
204
+ */
205
+ declare type PopsDOMUtils_EventType = keyof PopsDOMUtils_Event;
206
+
207
+ /**
208
+ * 元素上的events属性
209
+ */
210
+ declare interface PopsDOMUtilsEventListenerOptionsAttribute {
211
+ /**
212
+ * 自定义的ownCallBack
213
+ */
214
+ callback: () => void;
215
+ /**
216
+ * 属性配置
217
+ */
218
+ option: AddEventListenerOptions;
219
+ /**
220
+ * 用户添加的事件
221
+ */
222
+ originCallBack: () => void;
223
+ /**
224
+ * 子元素选择器
225
+ */
226
+ selector?: string;
227
+ }
228
+
229
+ declare type PopsDOMUtilsElementEventType =
230
+ | HTMLElement
231
+ | string
232
+ | NodeList
233
+ | (HTMLElement | Window | Document | Element | typeof globalThis)[]
234
+ | Window
235
+ | Document
236
+ | Element
237
+ | null
238
+ | typeof globalThis
239
+ | ShadowRoot
240
+ | EventTarget
241
+ | ChildNode
242
+ | Node;
243
+
244
+ declare type ParseHTMLReturnType<T1, T2> = T1 extends true
245
+ ? T2 extends true
246
+ ? Document
247
+ : HTMLElement
248
+ : HTMLElement;
@@ -0,0 +1,19 @@
1
+ /**
2
+ * 动画
3
+ */
4
+ declare type PopsAnimation =
5
+ | "pops-anim-spread"
6
+ | "pops-anim-shake"
7
+ | "pops-anim-rolling-left"
8
+ | "pops-anim-rolling-right"
9
+ | "pops-anim-slide-top"
10
+ | "pops-anim-slide-bottom"
11
+ | "pops-anim-slide-left"
12
+ | "pops-anim-slide-right"
13
+ | "pops-anim-fadein"
14
+ | "pops-anim-fadein-zoom"
15
+ | "pops-anim-fadein-alert"
16
+ | "pops-anim-don"
17
+ | "pops-anim-roll"
18
+ | "pops-anim-sandra"
19
+ | "pops-anim-gather";
@@ -0,0 +1,216 @@
1
+ import { PopsEventDetails, PopsHandlerEventDetails } from "./event";
2
+ import type { PopsIcon } from "./icon";
3
+
4
+ /**
5
+ * 按钮类型
6
+ */
7
+ declare type PopsButtonType = "close" | "ok" | "cancel" | "other";
8
+ /**
9
+ * 按钮样式类型
10
+ */
11
+ declare type PopsButtonStyleType =
12
+ | "default"
13
+ | "primary"
14
+ | "xiaomi-primary"
15
+ | "success"
16
+ | "info"
17
+ | "warning"
18
+ | "danger";
19
+
20
+ /**
21
+ * 按钮大小
22
+ */
23
+ declare type PopsButtonSize = "large" | "small";
24
+
25
+ /**
26
+ * 按钮的点击回调参数event
27
+ */
28
+ declare interface PopsBtnCallBackEvent {
29
+ /**
30
+ * 元素
31
+ */
32
+ element: HTMLElement;
33
+ /**
34
+ * 动画元素(包裹着弹窗元素)
35
+ */
36
+ animElement: HTMLElement;
37
+ /**
38
+ * 弹窗元素
39
+ */
40
+ popsElement: HTMLElement;
41
+ /**
42
+ * 遮罩层元素
43
+ */
44
+ maskElement: HTMLElement | undefined;
45
+ /**
46
+ * 按钮调用类型
47
+ */
48
+ type: PopsButtonType;
49
+ /**
50
+ * 调用的方法
51
+ */
52
+ mode: PopsMode;
53
+ /**
54
+ * 唯一id
55
+ */
56
+ guid: string;
57
+ /**
58
+ * 关闭弹窗
59
+ */
60
+ close(): void;
61
+ /**
62
+ * 隐藏弹窗
63
+ */
64
+ hide(): void;
65
+ /**
66
+ * 显示弹窗
67
+ */
68
+ show(): void;
69
+ }
70
+
71
+ /**
72
+ * 按钮配置
73
+ */
74
+ declare interface PopsButtonDetails {
75
+ /**
76
+ * 是否启用按钮
77
+ */
78
+ enable: boolean;
79
+ /**
80
+ * 图标按钮,如果名字为内置的,则使用内置的,否则为自定义的svg
81
+ */
82
+ icon: PopsIcon;
83
+ /**
84
+ * 图标按钮是否放在右边
85
+ */
86
+ rightIcon: boolean;
87
+ /**
88
+ * 图标按钮是否是旋转360°,默认false
89
+ */
90
+ iconIsLoading: boolean;
91
+ /**
92
+ * 按钮尺寸大小,默认为空
93
+ */
94
+ size: PopsButtonSize;
95
+ /**
96
+ * 按钮样式类型,默认为default
97
+ */
98
+ type: PopsButtonStyleType;
99
+ /**
100
+ * 按钮文字,默认为空
101
+ */
102
+ text: string;
103
+ /**
104
+ * 按钮点击的回调
105
+ */
106
+ callback(
107
+ eventDetails: PopsHandlerEventDetails,
108
+ event: PointerEvent | MouseEvent
109
+ ): void;
110
+ }
111
+
112
+ /**
113
+ * 按钮配置(匹配任意类型)
114
+ */
115
+ declare interface PopsButtonDetailsAnyType {
116
+ /**
117
+ * 是否启用按钮
118
+ */
119
+ enable: boolean;
120
+ /**
121
+ * 图标按钮,如果名字为内置的,则使用内置的,否则为自定义的svg
122
+ */
123
+ icon: PopsIcon;
124
+ /**
125
+ * 图标按钮是否放在右边
126
+ */
127
+ rightIcon: boolean;
128
+ /**
129
+ * 图标按钮是否是旋转360°,默认false
130
+ */
131
+ iconIsLoading: boolean;
132
+ /**
133
+ * 按钮尺寸大小,默认为空
134
+ */
135
+ size: PopsButtonSize;
136
+ /**
137
+ * 按钮样式类型
138
+ */
139
+ type: string;
140
+ /**
141
+ * 按钮文字,默认为空
142
+ */
143
+ text: string;
144
+ /**
145
+ * 按钮点击的回调
146
+ */
147
+ callback(
148
+ eventDetails: PopsHandlerEventDetails,
149
+ event: PointerEvent | MouseEvent
150
+ ): void;
151
+ }
152
+ /**
153
+ * 右上角关闭按钮点击回调的配置
154
+ */
155
+ declare interface PopsHeaderCloseButtonClickCallBackEvent {
156
+ /**
157
+ * 动画元素(包裹着弹窗元素)
158
+ */
159
+ animElement: HTMLElement;
160
+ /**
161
+ * 遮罩层元素,如果未设置,那么不存在
162
+ */
163
+ maskElement?: HTMLElement;
164
+ /**
165
+ * 按钮调用类型
166
+ */
167
+ type: PopsButtonType;
168
+ /**
169
+ * 唯一id
170
+ */
171
+ guid: string;
172
+ /**
173
+ * 关闭弹窗
174
+ */
175
+ close(): void;
176
+ /**
177
+ * 隐藏弹窗
178
+ */
179
+ hide(): void;
180
+ /**
181
+ * 显示弹窗
182
+ */
183
+ show(): void;
184
+ /**
185
+ * 输入的内容
186
+ */
187
+ text: string;
188
+ }
189
+ /**
190
+ * 顶部关闭按钮配置
191
+ */
192
+ declare interface PopsHeaderCloseButtonDetails {
193
+ /**
194
+ * 是否启用按钮
195
+ */
196
+ enable?: boolean;
197
+ /**
198
+ * 按钮尺寸大小,默认为空
199
+ */
200
+ size?: PopsButtonSize;
201
+ /**
202
+ * 按钮样式类型,默认为default
203
+ */
204
+ type?: PopsButtonStyleType;
205
+ /**
206
+ * 按钮文字,默认为空
207
+ */
208
+ text?: string;
209
+ /**
210
+ * 按钮点击的回调
211
+ */
212
+ callback?: (
213
+ details: PopsEventDetails,
214
+ event: PointerEvent | MouseEvent
215
+ ) => void;
216
+ }
@@ -0,0 +1,197 @@
1
+ import type { PopsAnimation } from "./animation";
2
+ import type {
3
+ PopsPosition,
4
+ PopsTextAlign,
5
+ PopsJustifyContent,
6
+ } from "./position";
7
+ import type {
8
+ PopsButtonDetails,
9
+ PopsButtonDetailsAnyType,
10
+ PopsHeaderCloseButtonDetails,
11
+ } from "./button";
12
+ import type { PopsMaskDetails } from "./mask";
13
+
14
+ /**
15
+ * 标题配置
16
+ */
17
+ declare interface PopsTitleConfig {
18
+ title: {
19
+ /**
20
+ * 标题文字
21
+ */
22
+ text?: string;
23
+ /**
24
+ * 文字的位置
25
+ */
26
+ position?: PopsTextAlign;
27
+ /**
28
+ * 文字是否是html
29
+ */
30
+ html?: boolean;
31
+ /**
32
+ * 文字的自定义CSS
33
+ */
34
+ style?: string;
35
+ };
36
+ }
37
+
38
+ /**
39
+ * 内容配置
40
+ */
41
+ declare interface PopsContentConfig {
42
+ content: {
43
+ /**
44
+ * 内容文字
45
+ */
46
+ text?: string;
47
+ /**
48
+ * 文字是否是html
49
+ */
50
+ html?: boolean;
51
+ /**
52
+ * 文字的自定义CSS
53
+ */
54
+ style?: string;
55
+ };
56
+ }
57
+ /**
58
+ * 按钮配置
59
+ */
60
+ declare interface PopsButtonConfig {
61
+ btn?: {
62
+ /**
63
+ * 按钮的位置,默认left
64
+ */
65
+ position?: PopsJustifyContent;
66
+ /**
67
+ * 右上角的关闭按钮
68
+ */
69
+ close?: PopsHeaderCloseButtonDetails;
70
+ };
71
+ }
72
+ /**
73
+ * 按钮的其它配置
74
+ */
75
+ declare interface PopsMoreButtonConfig {
76
+ btn?: PopsButtonConfig["btn"] & {
77
+ /**
78
+ * 是否合并按钮
79
+ */
80
+ merge?: boolean;
81
+ /**
82
+ * 是否对合并的按钮逆反
83
+ */
84
+ mergeReverse?: boolean;
85
+ /**
86
+ * 是否逆反
87
+ */
88
+ reverse?: boolean;
89
+ /**
90
+ * 确定按钮
91
+ */
92
+ ok?: Partial<PopsButtonDetails | PopsButtonDetailsAnyType>;
93
+ /**
94
+ * 取消按钮
95
+ */
96
+ cancel?: Partial<PopsButtonDetails | PopsButtonDetailsAnyType>;
97
+ /**
98
+ * 其他按钮
99
+ */
100
+ other?: Partial<PopsButtonDetails | PopsButtonDetailsAnyType>;
101
+ };
102
+ }
103
+ /**
104
+ * 拖拽(标题栏)的配置
105
+ */
106
+ declare interface PopsDragConfig {
107
+ /**
108
+ * 是否可以按钮标题栏进行拖拽,默认false
109
+ */
110
+ drag?: boolean;
111
+ /**
112
+ * 是否限制拖拽在浏览器窗口内移动,默认true
113
+ */
114
+ dragLimit?: boolean;
115
+ /**
116
+ * 当启用dragLimit时,该参数为弹窗在窗口中的距离边际的距离,默认为3(px)
117
+ */
118
+ dragExtraDistance?: number;
119
+ /**
120
+ * (可选)拖动中的回调
121
+ * @param moveElement 当前拖动的元素
122
+ * @param left 当前left值
123
+ * @param top 当前的top值
124
+ */
125
+ dragMoveCallBack?: (
126
+ moveElement: HTMLElement,
127
+ left: number,
128
+ top: number
129
+ ) => void;
130
+ /**
131
+ * (可选)拖动结束的回调
132
+ * @param moveElement 当前拖动的元素
133
+ * @param left 当前left值
134
+ * @param top 当前的top值
135
+ */
136
+ dragEndCallBack?: (
137
+ moveElement: HTMLElement,
138
+ left: number,
139
+ top: number
140
+ ) => void;
141
+ }
142
+ /**
143
+ * 通用配置
144
+ */
145
+ declare interface PopsCommonConfig {
146
+ /**
147
+ * 自定义的className,默认为空
148
+ */
149
+ class?: string;
150
+ /**
151
+ * 是否是唯一的,默认false
152
+ */
153
+ only?: boolean;
154
+ /**
155
+ * 宽度,默认350px
156
+ */
157
+ width: string;
158
+ /**
159
+ * 高度,默认200px
160
+ */
161
+ height: string;
162
+ /**
163
+ * 位置,默认center
164
+ */
165
+ position?: PopsPosition;
166
+ /**
167
+ * 动画,默认pops-anim-fadein-zoom
168
+ */
169
+ animation?: PopsAnimation;
170
+ /**
171
+ * z-index显示层级,默认10000
172
+ */
173
+ zIndex?: number;
174
+ /**
175
+ * 遮罩层
176
+ */
177
+ mask?: PopsMaskDetails;
178
+ /**
179
+ * 是否禁用页面滚动,默认false
180
+ *
181
+ * 暂时不会生效
182
+ */
183
+ forbiddenScroll?: boolean;
184
+ /**
185
+ * (可选)自定义style
186
+ */
187
+ style?: string | null;
188
+ /**
189
+ * 在元素添加到页面前的事件
190
+ * @param $shadowRoot 根元素
191
+ * @param $shadowContainer 容器
192
+ */
193
+ beforeAppendToPageCallBack?: (
194
+ $shadowRoot: ShadowRoot,
195
+ $shadowContainer: HTMLDivElement
196
+ ) => void;
197
+ }