@whitesev/pops 2.6.1 → 3.0.1

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 (165) hide show
  1. package/dist/index.amd.js +2513 -1534
  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 +2513 -1534
  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 +2513 -1534
  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 +2513 -1534
  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 +2513 -1534
  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 +2513 -1534
  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/eslint.config.d.mts +2 -0
  26. package/dist/types/src/Pops.d.ts +449 -103
  27. package/dist/types/src/PopsCSS.d.ts +3 -1
  28. package/dist/types/src/PopsIcon.d.ts +1 -1
  29. package/dist/types/src/PopsInst.d.ts +2 -2
  30. package/dist/types/src/components/alert/defaultConfig.d.ts +2 -0
  31. package/dist/types/src/components/alert/index.d.ts +2 -2
  32. package/dist/types/src/components/alert/types/index.d.ts +4 -4
  33. package/dist/types/src/components/confirm/defaultConfig.d.ts +2 -0
  34. package/dist/types/src/components/confirm/index.d.ts +2 -2
  35. package/dist/types/src/components/confirm/types/index.d.ts +2 -2
  36. package/dist/types/src/components/drawer/defaultConfig.d.ts +2 -0
  37. package/dist/types/src/components/drawer/index.d.ts +2 -2
  38. package/dist/types/src/components/drawer/types/index.d.ts +2 -2
  39. package/dist/types/src/components/folder/defaultConfig.d.ts +2 -0
  40. package/dist/types/src/components/folder/index.d.ts +2 -2
  41. package/dist/types/src/components/folder/types/index.d.ts +31 -7
  42. package/dist/types/src/components/iframe/defaultConfig.d.ts +2 -0
  43. package/dist/types/src/components/iframe/index.d.ts +2 -5
  44. package/dist/types/src/components/iframe/types/index.d.ts +13 -42
  45. package/dist/types/src/components/loading/defaultConfig.d.ts +2 -0
  46. package/dist/types/src/components/loading/index.d.ts +2 -2
  47. package/dist/types/src/components/loading/types/index.d.ts +4 -4
  48. package/dist/types/src/components/panel/defaultConfig.d.ts +2 -0
  49. package/dist/types/src/components/panel/handlerComponents.d.ts +988 -49
  50. package/dist/types/src/components/panel/index.d.ts +2 -2
  51. package/dist/types/src/components/panel/types/components-button.d.ts +7 -6
  52. package/dist/types/src/components/panel/types/components-common.d.ts +7 -7
  53. package/dist/types/src/components/panel/types/components-container.d.ts +24 -0
  54. package/dist/types/src/components/panel/types/components-deepMenu.d.ts +14 -14
  55. package/dist/types/src/components/panel/types/components-input.d.ts +46 -21
  56. package/dist/types/src/components/panel/types/components-own.d.ts +5 -5
  57. package/dist/types/src/components/panel/types/components-select.d.ts +95 -36
  58. package/dist/types/src/components/panel/types/components-selectMultiple.d.ts +15 -20
  59. package/dist/types/src/components/panel/types/components-slider.d.ts +7 -8
  60. package/dist/types/src/components/panel/types/components-switch.d.ts +6 -6
  61. package/dist/types/src/components/panel/types/components-textarea.d.ts +6 -6
  62. package/dist/types/src/components/panel/types/index.d.ts +36 -28
  63. package/dist/types/src/components/prompt/defaultConfig.d.ts +2 -0
  64. package/dist/types/src/components/prompt/index.d.ts +2 -2
  65. package/dist/types/src/components/prompt/types/index.d.ts +4 -3
  66. package/dist/types/src/components/rightClickMenu/defaultConfig.d.ts +2 -0
  67. package/dist/types/src/components/rightClickMenu/index.d.ts +29 -27
  68. package/dist/types/src/components/rightClickMenu/types/index.d.ts +32 -11
  69. package/dist/types/src/components/searchSuggestion/defaultConfig.d.ts +2 -0
  70. package/dist/types/src/components/searchSuggestion/index.d.ts +24 -9
  71. package/dist/types/src/components/searchSuggestion/types/index.d.ts +15 -13
  72. package/dist/types/src/components/tooltip/defaultConfig.d.ts +2 -0
  73. package/dist/types/src/components/tooltip/index.d.ts +6 -21
  74. package/dist/types/src/components/tooltip/types/index.d.ts +8 -6
  75. package/dist/types/src/config/GlobalConfig.d.ts +3 -3
  76. package/dist/types/src/handler/PopsElementHandler.d.ts +6 -6
  77. package/dist/types/src/handler/PopsHandler.d.ts +18 -18
  78. package/dist/types/src/types/button.d.ts +4 -97
  79. package/dist/types/src/types/components.d.ts +8 -8
  80. package/dist/types/src/types/event.d.ts +0 -30
  81. package/dist/types/src/types/global.d.ts +4 -0
  82. package/dist/types/src/types/inst.d.ts +5 -5
  83. package/dist/types/src/types/main.d.ts +35 -80
  84. package/dist/types/src/types/mask.d.ts +18 -15
  85. package/dist/types/src/utils/PopsInstanceUtils.d.ts +15 -15
  86. package/dist/types/src/utils/PopsUtils.d.ts +4 -0
  87. package/package.json +12 -12
  88. package/src/Pops.ts +44 -44
  89. package/src/PopsAnimation.ts +1 -1
  90. package/src/PopsCSS.ts +4 -1
  91. package/src/PopsInst.ts +2 -2
  92. package/src/components/alert/{config.ts → defaultConfig.ts} +7 -7
  93. package/src/components/alert/index.ts +16 -18
  94. package/src/components/alert/types/index.ts +4 -4
  95. package/src/components/confirm/{config.ts → defaultConfig.ts} +11 -11
  96. package/src/components/confirm/index.ts +11 -13
  97. package/src/components/confirm/types/index.ts +3 -3
  98. package/src/components/drawer/{config.ts → defaultConfig.ts} +10 -10
  99. package/src/components/drawer/index.ts +18 -17
  100. package/src/components/drawer/types/index.ts +3 -3
  101. package/src/components/folder/{config.ts → defaultConfig.ts} +22 -18
  102. package/src/components/folder/index.ts +61 -60
  103. package/src/components/folder/types/index.ts +31 -18
  104. package/src/components/iframe/{config.ts → defaultConfig.ts} +2 -2
  105. package/src/components/iframe/index.ts +24 -29
  106. package/src/components/iframe/types/index.ts +13 -56
  107. package/src/components/loading/{config.ts → defaultConfig.ts} +3 -3
  108. package/src/components/loading/index.ts +13 -11
  109. package/src/components/loading/types/index.ts +5 -5
  110. package/src/components/panel/css/components-select.css +84 -0
  111. package/src/components/panel/defaultConfig.ts +818 -0
  112. package/src/components/panel/handlerComponents.ts +1431 -762
  113. package/src/components/panel/index.css +90 -6
  114. package/src/components/panel/index.ts +15 -28
  115. package/src/components/panel/types/components-button.ts +7 -6
  116. package/src/components/panel/types/components-common.ts +7 -7
  117. package/src/components/panel/types/components-container.ts +25 -0
  118. package/src/components/panel/types/components-deepMenu.ts +14 -14
  119. package/src/components/panel/types/components-input.ts +56 -21
  120. package/src/components/panel/types/components-own.ts +5 -5
  121. package/src/components/panel/types/components-select.ts +100 -38
  122. package/src/components/panel/types/components-selectMultiple.ts +16 -22
  123. package/src/components/panel/types/components-slider.ts +7 -8
  124. package/src/components/panel/types/components-switch.ts +6 -6
  125. package/src/components/panel/types/components-textarea.ts +6 -6
  126. package/src/components/panel/types/index.ts +45 -38
  127. package/src/components/prompt/{config.ts → defaultConfig.ts} +10 -10
  128. package/src/components/prompt/index.ts +13 -15
  129. package/src/components/prompt/types/index.ts +4 -3
  130. package/src/components/rightClickMenu/{config.ts → defaultConfig.ts} +20 -19
  131. package/src/components/rightClickMenu/index.ts +125 -108
  132. package/src/components/rightClickMenu/types/index.ts +36 -14
  133. package/src/components/searchSuggestion/{config.ts → defaultConfig.ts} +18 -11
  134. package/src/components/searchSuggestion/index.ts +130 -155
  135. package/src/components/searchSuggestion/types/index.ts +17 -15
  136. package/src/components/tooltip/{config.ts → defaultConfig.ts} +5 -6
  137. package/src/components/tooltip/index.ts +21 -21
  138. package/src/components/tooltip/types/index.ts +9 -7
  139. package/src/config/GlobalConfig.ts +2 -2
  140. package/src/handler/PopsElementHandler.ts +29 -30
  141. package/src/handler/PopsHandler.ts +43 -43
  142. package/src/types/button.d.ts +4 -97
  143. package/src/types/components.d.ts +8 -8
  144. package/src/types/event.d.ts +0 -30
  145. package/src/types/global.d.ts +4 -0
  146. package/src/types/inst.d.ts +5 -5
  147. package/src/types/main.d.ts +35 -80
  148. package/src/types/mask.d.ts +18 -15
  149. package/src/utils/PopsDOMUtils.ts +34 -34
  150. package/src/utils/PopsInstanceUtils.ts +129 -139
  151. package/src/utils/PopsUtils.ts +60 -45
  152. package/dist/types/src/components/alert/config.d.ts +0 -2
  153. package/dist/types/src/components/confirm/config.d.ts +0 -2
  154. package/dist/types/src/components/drawer/config.d.ts +0 -2
  155. package/dist/types/src/components/folder/config.d.ts +0 -2
  156. package/dist/types/src/components/iframe/config.d.ts +0 -2
  157. package/dist/types/src/components/loading/config.d.ts +0 -2
  158. package/dist/types/src/components/panel/config.d.ts +0 -2
  159. package/dist/types/src/components/panel/types/components-forms.d.ts +0 -23
  160. package/dist/types/src/components/prompt/config.d.ts +0 -2
  161. package/dist/types/src/components/rightClickMenu/config.d.ts +0 -2
  162. package/dist/types/src/components/searchSuggestion/config.d.ts +0 -2
  163. package/dist/types/src/components/tooltip/config.d.ts +0 -2
  164. package/src/components/panel/config.ts +0 -530
  165. package/src/components/panel/types/components-forms.ts +0 -24
@@ -0,0 +1,818 @@
1
+ import { popsDOMUtils } from "../../utils/PopsDOMUtils";
2
+ import type { PopsPanelConfig } from "./types";
3
+
4
+ export const PopsPanelDefaultConfig = (): DeepRequired<PopsPanelConfig> => {
5
+ return {
6
+ title: {
7
+ text: "默认标题",
8
+ position: "center",
9
+ html: false,
10
+ style: "",
11
+ },
12
+ content: [
13
+ {
14
+ id: "whitesev-panel-config-1",
15
+ title: "菜单配置1",
16
+ headerTitle: "菜单配置1",
17
+ isDefault: true,
18
+ attributes: {
19
+ "data-test": "test",
20
+ "data-test-2": "test2",
21
+ },
22
+ views: [
23
+ {
24
+ className: "forms-1",
25
+ text: "区域设置",
26
+ type: "container",
27
+ views: [
28
+ {
29
+ className: "panel-switch",
30
+ text: "switch",
31
+ type: "switch",
32
+ disabled: false,
33
+ description: "",
34
+ getValue() {
35
+ return true;
36
+ },
37
+ callback(event, value) {
38
+ console.log("按钮开启状态:", value);
39
+ },
40
+ },
41
+ {
42
+ className: "panel-slider",
43
+ text: "slider",
44
+ type: "slider",
45
+ description: "",
46
+ disabled: false,
47
+ getToolTipContent(value) {
48
+ return String(value);
49
+ },
50
+ isShowHoverTip: true,
51
+ step: 1,
52
+ getValue() {
53
+ return 50;
54
+ },
55
+ callback(event, value) {
56
+ console.log("滑块当前数值:", value);
57
+ },
58
+ min: 1,
59
+ max: 100,
60
+ },
61
+ {
62
+ className: "panel-button",
63
+ text: "button",
64
+ type: "button",
65
+ description: "",
66
+ disable: false,
67
+ buttonIsRightIcon: false,
68
+ buttonIcon: "view",
69
+ buttonIconIsLoading: true,
70
+ buttonType: "default",
71
+ buttonText: "default按钮",
72
+ callback(event) {
73
+ console.log("点击按钮", event);
74
+ },
75
+ },
76
+ {
77
+ className: "panel-button",
78
+ text: "button",
79
+ type: "button",
80
+ buttonIcon: "eleme",
81
+ buttonIconIsLoading: true,
82
+ buttonType: "warning",
83
+ buttonText: "warning按钮",
84
+ callback(event) {
85
+ console.log("点击按钮", event);
86
+ },
87
+ },
88
+ {
89
+ className: "panel-button",
90
+ text: "button",
91
+ type: "button",
92
+ buttonIcon: "chromeFilled",
93
+ buttonIconIsLoading: true,
94
+ buttonType: "danger",
95
+ buttonText: "danger按钮",
96
+ callback(event) {
97
+ console.log("点击按钮", event);
98
+ },
99
+ },
100
+ {
101
+ className: "panel-button",
102
+ text: "button",
103
+ type: "button",
104
+ buttonIcon: "upload",
105
+ buttonIconIsLoading: false,
106
+ buttonType: "info",
107
+ buttonText: "info按钮",
108
+ callback(event) {
109
+ console.log("点击按钮", event);
110
+ },
111
+ },
112
+ ],
113
+ },
114
+ ],
115
+ },
116
+ {
117
+ id: "whitesev-panel-config-2",
118
+ title: "菜单配置2",
119
+ headerTitle: "菜单配置2",
120
+ isDefault: false,
121
+ attributes: {
122
+ "data-value": "value",
123
+ "data-value-2": "value2",
124
+ },
125
+ views: [
126
+ {
127
+ className: "panel-input",
128
+ text: "input",
129
+ type: "input",
130
+ getValue() {
131
+ return "50";
132
+ },
133
+ callback(event, value) {
134
+ popsDOMUtils.preventEvent(event);
135
+ console.log("输入框内容改变:", value);
136
+ },
137
+ placeholder: "请输入内容",
138
+ },
139
+ {
140
+ className: "panel-input-number",
141
+ text: "input-number",
142
+ type: "input",
143
+ inputType: "number",
144
+ getValue() {
145
+ return "50";
146
+ },
147
+ callback(event, value, valueAsNumber) {
148
+ popsDOMUtils.preventEvent(event);
149
+ console.log("输入框内容改变:", valueAsNumber);
150
+ if (valueAsNumber! > 60) {
151
+ return {
152
+ valid: false,
153
+ message: "输入值不能大于60,当前:" + value,
154
+ };
155
+ }
156
+ },
157
+ placeholder: "请输入内容",
158
+ },
159
+ {
160
+ className: "panel-input-password",
161
+ text: "input-password",
162
+ type: "input",
163
+ inputType: "password",
164
+ placeholder: "请输入密码",
165
+ getValue() {
166
+ return "123456";
167
+ },
168
+ callback(event, value) {
169
+ popsDOMUtils.preventEvent(event);
170
+ console.log("密码输入框内容改变:", value);
171
+ },
172
+ },
173
+ {
174
+ className: "panel-input-file",
175
+ text: "input-file",
176
+ type: "input",
177
+ inputType: "file",
178
+ getValue() {
179
+ return "";
180
+ },
181
+ callback(event, value) {
182
+ popsDOMUtils.preventEvent(event);
183
+ console.log("内容改变:", value);
184
+ },
185
+ placeholder: "请输入密码",
186
+ },
187
+ {
188
+ className: "panel-input-date",
189
+ text: "input-date",
190
+ type: "input",
191
+ inputType: "date",
192
+ placeholder: "请输入内容",
193
+ getValue() {
194
+ const date = new Date();
195
+ let hour = date.getHours().toString();
196
+ let minutes = date.getMinutes().toString();
197
+ if (hour.length === 1) {
198
+ hour = `0${hour}`;
199
+ }
200
+ if (minutes.length === 1) {
201
+ minutes = `0${minutes}`;
202
+ }
203
+ return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;
204
+ },
205
+ callback(event, value, valueAsNumber, valueAsDate) {
206
+ popsDOMUtils.preventEvent(event);
207
+ console.log("输入框内容改变:", value, valueAsNumber, valueAsDate);
208
+ },
209
+ },
210
+ {
211
+ className: "panel-input-datetime-local",
212
+ text: "input-datetime-local",
213
+ type: "input",
214
+ inputType: "datetime-local",
215
+ getValue() {
216
+ const date = new Date();
217
+ let hour = date.getHours().toString();
218
+ let minutes = date.getMinutes().toString();
219
+ if (hour.length === 1) {
220
+ hour = `0${hour}`;
221
+ }
222
+ if (minutes.length === 1) {
223
+ minutes = `0${minutes}`;
224
+ }
225
+ return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}T${hour}:${minutes}`;
226
+ },
227
+ callback(event, value, valueAsNumber, valueAsDate) {
228
+ popsDOMUtils.preventEvent(event);
229
+ console.log("输入框内容改变:", value, valueAsNumber, valueAsDate);
230
+ },
231
+ placeholder: "请输入内容",
232
+ },
233
+ {
234
+ className: "panel-input-time",
235
+ text: "input-time",
236
+ type: "input",
237
+ inputType: "time",
238
+ getValue() {
239
+ return "11:30";
240
+ },
241
+ callback(event, value, valueAsNumber, valueAsDate) {
242
+ popsDOMUtils.preventEvent(event);
243
+ console.log("输入框内容改变:", value, valueAsNumber, valueAsDate);
244
+ },
245
+ placeholder: "请输入内容",
246
+ },
247
+ {
248
+ className: "panel-input-month",
249
+ text: "input-month",
250
+ type: "input",
251
+ inputType: "month",
252
+ getValue() {
253
+ const date = new Date();
254
+ return `${date.getFullYear()}-${date.getMonth() + 1}`;
255
+ },
256
+ callback(event, value, valueAsNumber, valueAsDate) {
257
+ popsDOMUtils.preventEvent(event);
258
+ console.log("输入框内容改变:", value, valueAsNumber, valueAsDate);
259
+ },
260
+ placeholder: "请输入内容",
261
+ },
262
+ {
263
+ className: "panel-input-week",
264
+ text: "input-week",
265
+ type: "input",
266
+ inputType: "week",
267
+ getValue() {
268
+ const date = new Date();
269
+ return `${date.getFullYear()}-W01`;
270
+ },
271
+ callback(event, value, valueAsNumber, valueAsDate) {
272
+ popsDOMUtils.preventEvent(event);
273
+ console.log("输入框内容改变:", value, valueAsNumber, valueAsDate);
274
+ },
275
+ placeholder: "请输入内容",
276
+ },
277
+ {
278
+ className: "panel-input-search",
279
+ text: "input-search",
280
+ type: "input",
281
+ inputType: "search",
282
+ getValue() {
283
+ return "search test";
284
+ },
285
+ callback(event, value) {
286
+ popsDOMUtils.preventEvent(event);
287
+ console.log("输入框内容改变:", value);
288
+ },
289
+ placeholder: "请输入内容",
290
+ },
291
+ {
292
+ className: "panel-input-color",
293
+ text: "input-color",
294
+ type: "input",
295
+ inputType: "color",
296
+ getValue() {
297
+ return "#ff0000";
298
+ },
299
+ callback(event, value) {
300
+ popsDOMUtils.preventEvent(event);
301
+ console.log("输入框内容改变:", value);
302
+ },
303
+ placeholder: "请输入内容",
304
+ },
305
+ {
306
+ className: "panel-input-email",
307
+ text: "input-email",
308
+ type: "input",
309
+ inputType: "email",
310
+ getValue() {
311
+ return "test@gmail.com";
312
+ },
313
+ callback(event, value) {
314
+ popsDOMUtils.preventEvent(event);
315
+ const $input = event.target as HTMLInputElement;
316
+ console.log("输入框内容改变:", value, $input.validity);
317
+ },
318
+ placeholder: "请输入内容",
319
+ },
320
+ {
321
+ className: "panel-input-tel",
322
+ text: "input-tel",
323
+ type: "input",
324
+ inputType: "tel",
325
+ getValue() {
326
+ return "11111111111";
327
+ },
328
+ callback(event, value) {
329
+ popsDOMUtils.preventEvent(event);
330
+ const $input = event.target as HTMLInputElement;
331
+ console.log("输入框内容改变:", value, $input.validity);
332
+ },
333
+ placeholder: "请输入内容",
334
+ },
335
+ {
336
+ className: "panel-input-url",
337
+ text: "input-url",
338
+ type: "input",
339
+ inputType: "url",
340
+ getValue() {
341
+ return "https://github.com/";
342
+ },
343
+ callback(event, value) {
344
+ popsDOMUtils.preventEvent(event);
345
+ const $input = event.target as HTMLInputElement;
346
+ console.log("输入框内容改变:", value, $input.validity);
347
+ },
348
+ placeholder: "请输入内容",
349
+ },
350
+ {
351
+ className: "panel-textarea",
352
+ text: "textarea",
353
+ type: "textarea",
354
+ getValue() {
355
+ return "50";
356
+ },
357
+ callback(event, value) {
358
+ popsDOMUtils.preventEvent(event);
359
+ console.log("textarea输入框内容改变:", value);
360
+ },
361
+ placeholder: "请输入内容",
362
+ },
363
+ {
364
+ className: "panel-select-disabled",
365
+ text: "select-disabled",
366
+ type: "select",
367
+ disabled: true,
368
+ getValue() {
369
+ return "text";
370
+ },
371
+ callback(isSelectedInfo) {
372
+ if (isSelectedInfo == null) return;
373
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
374
+ },
375
+ data: [
376
+ {
377
+ value: "all",
378
+ text: "所有",
379
+ disable() {
380
+ return false;
381
+ },
382
+ },
383
+ {
384
+ value: "text",
385
+ text: "文本",
386
+ disable() {
387
+ return false;
388
+ },
389
+ },
390
+ {
391
+ value: "html",
392
+ text: "超文本",
393
+ disable() {
394
+ return false;
395
+ },
396
+ },
397
+ ],
398
+ },
399
+ {
400
+ className: "panel-select-multiple-disabled",
401
+ type: "select-multiple",
402
+ text: "select-multiple-disabled",
403
+ disabled: true,
404
+ placeholder: "请至少选择一个选项",
405
+ getValue() {
406
+ return ["select-1", "select-2"];
407
+ },
408
+ callback(selectInfo) {
409
+ console.log(`select值改变,多选信息`, selectInfo);
410
+ },
411
+ clickCallBack(event, isSelectedInfo) {
412
+ console.log("点击", event, isSelectedInfo);
413
+ },
414
+ closeIconClickCallBack(event, data) {
415
+ console.log("点击关闭图标的事件", data);
416
+ },
417
+ data: [
418
+ {
419
+ value: "select-1",
420
+ text: "单选1",
421
+ isHTML: false,
422
+ },
423
+ {
424
+ value: "select-2",
425
+ text: "单选2",
426
+ isHTML: false,
427
+ },
428
+ {
429
+ value: "select-3",
430
+ text: "单选3",
431
+ isHTML: false,
432
+ },
433
+ {
434
+ value: "select-4",
435
+ text: "单选4",
436
+ isHTML: false,
437
+ },
438
+ ],
439
+ },
440
+ {
441
+ className: "panel-select",
442
+ text: "select",
443
+ type: "select",
444
+ getValue() {
445
+ return "all";
446
+ },
447
+ callback(isSelectedInfo) {
448
+ if (isSelectedInfo == null) return;
449
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
450
+ },
451
+ data: [
452
+ {
453
+ value: "all",
454
+ text: "所有",
455
+ disable() {
456
+ return false;
457
+ },
458
+ },
459
+ {
460
+ value: "text",
461
+ text: "文本",
462
+ disable() {
463
+ return false;
464
+ },
465
+ },
466
+ {
467
+ value: "html",
468
+ text: "超文本",
469
+ disable() {
470
+ return false;
471
+ },
472
+ },
473
+ ],
474
+ },
475
+ {
476
+ className: "panel-select-dialog",
477
+ text: "select-dialog",
478
+ type: "select",
479
+ getValue() {
480
+ return window.localStorage.getItem("select-dialog-customInput") || "";
481
+ },
482
+ callback(isSelectedInfo) {
483
+ if (isSelectedInfo == null) {
484
+ console.warn(`select当前选项为空`);
485
+ return;
486
+ }
487
+ if (isSelectedInfo.addCustomInput) {
488
+ if (isSelectedInfo.value === "") {
489
+ // 空值,不存储
490
+ if (isSelectedInfo.customInputStoreKey) {
491
+ console.log(`select删除自定义输入的值`);
492
+ window.localStorage.removeItem(isSelectedInfo.customInputStoreKey);
493
+ }
494
+ } else {
495
+ console.log(
496
+ `select当前自定义输入框内容:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`
497
+ );
498
+ if (isSelectedInfo.customInputStoreKey) {
499
+ window.localStorage.setItem(isSelectedInfo.customInputStoreKey!, isSelectedInfo.value);
500
+ }
501
+ }
502
+ } else {
503
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`);
504
+ }
505
+ },
506
+ data: [
507
+ {
508
+ value: "all",
509
+ text: "所有",
510
+ disable() {
511
+ return false;
512
+ },
513
+ },
514
+ {
515
+ value: "text",
516
+ text: "文本",
517
+ disable(value, selectInfo) {
518
+ if (selectInfo?.value === "all") return true;
519
+ return false;
520
+ },
521
+ },
522
+ {
523
+ value: "html",
524
+ text: "超文本",
525
+ disable(value, selectInfo) {
526
+ if (selectInfo?.value === "all") return true;
527
+ return false;
528
+ },
529
+ },
530
+ {
531
+ value: "own",
532
+ text: "自定义",
533
+ disable(value, selectInfo) {
534
+ if (selectInfo?.value === "all") return true;
535
+ return false;
536
+ },
537
+ },
538
+ {
539
+ value: window.localStorage.getItem("select-dialog-customInput") || "",
540
+ text: window.localStorage.getItem("select-dialog-customInput") || "",
541
+ addCustomInput: true,
542
+ customInputStoreKey: "select-dialog-customInput",
543
+ onValid(dataOption) {
544
+ if (dataOption.value === "123") {
545
+ console.error("非规范值");
546
+ return {
547
+ valid: false,
548
+ message: "非规范值",
549
+ };
550
+ }
551
+ return {
552
+ valid: true,
553
+ };
554
+ },
555
+ },
556
+ ],
557
+ useDialog: true,
558
+ },
559
+ {
560
+ className: "panel-select-multiple",
561
+ type: "select-multiple",
562
+ text: "select-multiple",
563
+ placeholder: "请至少选择一个选项",
564
+ getValue() {
565
+ return ["select-1", "select-2"];
566
+ },
567
+ callback(selectInfo) {
568
+ console.log(`select值改变,多选信息`, selectInfo);
569
+ },
570
+ clickCallBack(event, isSelectedInfo) {
571
+ console.log("点击", event, isSelectedInfo);
572
+ },
573
+ closeIconClickCallBack(event, data) {
574
+ console.log("点击关闭图标的事件", data);
575
+ },
576
+ data: [
577
+ {
578
+ value: "select-1",
579
+ text: "单选1",
580
+ isHTML: false,
581
+ disable(value, allSelectedInfo) {
582
+ return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
583
+ },
584
+ },
585
+ {
586
+ value: "select-2",
587
+ text: "单选2",
588
+ isHTML: false,
589
+ disable(value, allSelectedInfo) {
590
+ return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
591
+ },
592
+ },
593
+ {
594
+ value: "select-3",
595
+ text: "单选3",
596
+ isHTML: false,
597
+ disable(value, allSelectedInfo) {
598
+ return allSelectedInfo.findIndex((it) => ["select-2", "select-5"].includes(it.value)) !== -1;
599
+ },
600
+ },
601
+ {
602
+ value: "select-4",
603
+ text: "单选4",
604
+ isHTML: false,
605
+ disable(value, allSelectedInfo) {
606
+ return allSelectedInfo.findIndex((it) => ["select-3", "select-5"].includes(it.value)) !== -1;
607
+ },
608
+ },
609
+ {
610
+ value: "select-5",
611
+ text(value, allSelectedInfo) {
612
+ return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1
613
+ ? "单选5-禁用"
614
+ : "单选5";
615
+ },
616
+ isHTML: false,
617
+ disable(value, allSelectedInfo) {
618
+ return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1;
619
+ },
620
+ },
621
+ ],
622
+ },
623
+ {
624
+ type: "container",
625
+ text: "deep菜单",
626
+ views: [
627
+ {
628
+ type: "deepMenu",
629
+ className: "panel-deepMenu",
630
+ text: "deepMenu",
631
+ description: "二级菜单",
632
+ rightText: "自定义配置",
633
+ arrowRightIcon: true,
634
+ afterAddToUListCallBack(viewConfig, container) {
635
+ console.log(viewConfig, container);
636
+ },
637
+ clickCallBack(event, viewConfig) {
638
+ console.log("进入子配置", event, viewConfig);
639
+ },
640
+ views: [
641
+ {
642
+ className: "forms-1",
643
+ text: "区域设置",
644
+ type: "container",
645
+ views: [
646
+ {
647
+ className: "panel-switch",
648
+ text: "switch",
649
+ type: "switch",
650
+ getValue() {
651
+ return true;
652
+ },
653
+ callback(event, value) {
654
+ console.log("按钮开启状态:", value);
655
+ },
656
+ },
657
+ {
658
+ className: "panel-slider",
659
+ text: "slider",
660
+ type: "slider",
661
+ getValue() {
662
+ return 50;
663
+ },
664
+ callback(event, value) {
665
+ console.log("滑块当前数值:", value);
666
+ },
667
+ min: 1,
668
+ max: 100,
669
+ },
670
+ {
671
+ className: "panel-button",
672
+ text: "button",
673
+ type: "button",
674
+ buttonIcon: "eleme",
675
+ buttonIconIsLoading: true,
676
+ buttonType: "warning",
677
+ buttonText: "warning按钮",
678
+ callback(event) {
679
+ console.log("点击按钮", event);
680
+ },
681
+ },
682
+ {
683
+ className: "panel-button",
684
+ text: "button",
685
+ type: "button",
686
+ buttonIcon: "chromeFilled",
687
+ buttonIconIsLoading: true,
688
+ buttonType: "danger",
689
+ buttonText: "danger按钮",
690
+ callback(event) {
691
+ console.log("点击按钮", event);
692
+ },
693
+ },
694
+ {
695
+ className: "panel-button",
696
+ text: "button",
697
+ type: "button",
698
+ buttonIcon: "upload",
699
+ buttonIconIsLoading: false,
700
+ buttonType: "info",
701
+ buttonText: "info按钮",
702
+ callback(event) {
703
+ console.log("点击按钮", event);
704
+ },
705
+ },
706
+ ],
707
+ },
708
+ ],
709
+ },
710
+ {
711
+ type: "deepMenu",
712
+ className: "panel-deepMenu2",
713
+ //@ts-ignore
714
+ text: "deepMenu2",
715
+ description: "二级菜单",
716
+ rightText: "自定义配置",
717
+ arrowRightIcon: true,
718
+ afterAddToUListCallBack(viewConfig, container) {
719
+ console.log(viewConfig, container);
720
+ },
721
+ clickCallBack(event, viewConfig) {
722
+ console.log("进入子配置", event, viewConfig);
723
+ },
724
+ views: [],
725
+ },
726
+ ],
727
+ },
728
+ {
729
+ type: "container",
730
+ isFold: true,
731
+ text: "折叠菜单",
732
+ afterAddToUListCallBack(viewConfig, container) {
733
+ console.log(viewConfig, container);
734
+ },
735
+ views: [
736
+ {
737
+ className: "panel-switch",
738
+ text: "switch",
739
+ type: "switch",
740
+ getValue() {
741
+ return true;
742
+ },
743
+ callback(event, value) {
744
+ console.log("按钮开启状态:", value);
745
+ },
746
+ },
747
+ ],
748
+ },
749
+ ],
750
+ },
751
+ {
752
+ id: "whitesev-panel-bottom-config-1",
753
+ title: /*html*/ `
754
+ <a rel="nofollow" href="https://www.npmjs.com/package/@whitesev/pops" target="_blank"><img src="https://img.shields.io/npm/v/@whitesev/pops?label=pops" alt="npm pops version"></a>
755
+ `,
756
+ isBottom: true,
757
+ disableAsideItemHoverCSS: true,
758
+ attributes: {
759
+ "data-value": "value",
760
+ "data-value-2": "value2",
761
+ },
762
+ views: [],
763
+ clickFirstCallback: function () {
764
+ return false;
765
+ },
766
+ },
767
+ {
768
+ id: "whitesev-panel-bottom-config-2",
769
+ title: "版本:xxx.xx.xx",
770
+ isBottom: true,
771
+ attributes: {
772
+ "data-value": "value",
773
+ "data-value-2": "value2",
774
+ },
775
+ views: [],
776
+ clickFirstCallback: function () {
777
+ return false;
778
+ },
779
+ },
780
+ ],
781
+ bottomContentConfig: [],
782
+ btn: {
783
+ close: {
784
+ enable: true,
785
+ callback(event) {
786
+ event.close();
787
+ },
788
+ },
789
+ },
790
+ mask: {
791
+ enable: false,
792
+ clickEvent: {
793
+ toClose: false,
794
+ toHide: false,
795
+ },
796
+ clickCallBack: null,
797
+ },
798
+ useShadowRoot: true,
799
+ class: "",
800
+ mobileClassName: "pops-panel-is-mobile",
801
+ isMobile: false,
802
+ only: false,
803
+ width: window.innerWidth < 550 ? "88vw" : "700px",
804
+ height: window.innerHeight < 450 ? "70vh" : "500px",
805
+ position: "center",
806
+ animation: "pops-anim-fadein-zoom",
807
+ useDeepMenuSwtichAnimation: true,
808
+ zIndex: 10000,
809
+ drag: false,
810
+ dragLimit: true,
811
+ dragExtraDistance: 3,
812
+ dragMoveCallBack() {},
813
+ dragEndCallBack() {},
814
+ forbiddenScroll: false,
815
+ style: null,
816
+ beforeAppendToPageCallBack() {},
817
+ };
818
+ };