@whitesev/pops 3.2.1 → 3.2.2

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 (126) hide show
  1. package/README.md +249 -249
  2. package/dist/index.amd.js +702 -667
  3. package/dist/index.amd.js.map +1 -1
  4. package/dist/index.amd.min.js +1 -1
  5. package/dist/index.amd.min.js.map +1 -1
  6. package/dist/index.cjs.js +702 -667
  7. package/dist/index.cjs.js.map +1 -1
  8. package/dist/index.cjs.min.js +1 -1
  9. package/dist/index.cjs.min.js.map +1 -1
  10. package/dist/index.esm.js +702 -667
  11. package/dist/index.esm.js.map +1 -1
  12. package/dist/index.esm.min.js +1 -1
  13. package/dist/index.esm.min.js.map +1 -1
  14. package/dist/index.iife.js +702 -667
  15. package/dist/index.iife.js.map +1 -1
  16. package/dist/index.iife.min.js +1 -1
  17. package/dist/index.iife.min.js.map +1 -1
  18. package/dist/index.system.js +702 -667
  19. package/dist/index.system.js.map +1 -1
  20. package/dist/index.system.min.js +1 -1
  21. package/dist/index.system.min.js.map +1 -1
  22. package/dist/index.umd.js +702 -667
  23. package/dist/index.umd.js.map +1 -1
  24. package/dist/index.umd.min.js +1 -1
  25. package/dist/index.umd.min.js.map +1 -1
  26. package/dist/types/src/components/folder/types/index.d.ts +43 -13
  27. package/dist/types/src/types/PopsDOMUtilsEventType.d.ts +313 -313
  28. package/dist/types/src/types/animation.d.ts +19 -19
  29. package/dist/types/src/types/button.d.ts +94 -94
  30. package/dist/types/src/types/components.d.ts +211 -211
  31. package/dist/types/src/types/event.d.ts +43 -43
  32. package/dist/types/src/types/global.d.ts +31 -31
  33. package/dist/types/src/types/icon.d.ts +32 -32
  34. package/dist/types/src/types/inst.d.ts +28 -28
  35. package/dist/types/src/types/main.d.ts +66 -66
  36. package/dist/types/src/types/mask.d.ts +52 -52
  37. package/dist/types/src/types/position.d.ts +60 -60
  38. package/package.json +27 -25
  39. package/src/Pops.ts +206 -206
  40. package/src/PopsAnimation.ts +32 -32
  41. package/src/PopsCSS.ts +54 -54
  42. package/src/PopsCore.ts +37 -37
  43. package/src/PopsIcon.ts +95 -95
  44. package/src/PopsInst.ts +21 -21
  45. package/src/components/alert/defaultConfig.ts +62 -62
  46. package/src/components/alert/index.ts +163 -163
  47. package/src/components/alert/types/index.ts +23 -23
  48. package/src/components/confirm/defaultConfig.ts +90 -90
  49. package/src/components/confirm/index.ts +165 -165
  50. package/src/components/confirm/types/index.ts +13 -17
  51. package/src/components/drawer/defaultConfig.ts +89 -89
  52. package/src/components/drawer/index.css +37 -37
  53. package/src/components/drawer/index.ts +245 -245
  54. package/src/components/drawer/types/index.ts +62 -61
  55. package/src/components/folder/defaultConfig.ts +151 -151
  56. package/src/components/folder/folderIcon.ts +28 -28
  57. package/src/components/folder/index.css +303 -303
  58. package/src/components/folder/index.ts +953 -932
  59. package/src/components/folder/types/index.ts +143 -110
  60. package/src/components/iframe/defaultConfig.ts +60 -60
  61. package/src/components/iframe/index.css +76 -76
  62. package/src/components/iframe/index.ts +331 -331
  63. package/src/components/iframe/types/index.ts +96 -96
  64. package/src/components/loading/defaultConfig.ts +29 -29
  65. package/src/components/loading/index.css +66 -66
  66. package/src/components/loading/index.ts +101 -101
  67. package/src/components/loading/types/index.ts +36 -34
  68. package/src/components/panel/css/components-select.css +84 -84
  69. package/src/components/panel/defaultConfig.ts +868 -868
  70. package/src/components/panel/handlerComponents.ts +3993 -3993
  71. package/src/components/panel/index.css +1403 -1403
  72. package/src/components/panel/index.ts +221 -221
  73. package/src/components/panel/types/components-button.ts +56 -56
  74. package/src/components/panel/types/components-common.ts +73 -73
  75. package/src/components/panel/types/components-container.ts +25 -25
  76. package/src/components/panel/types/components-deepMenu.ts +64 -64
  77. package/src/components/panel/types/components-input.ts +90 -90
  78. package/src/components/panel/types/components-own.ts +16 -16
  79. package/src/components/panel/types/components-select.ts +169 -169
  80. package/src/components/panel/types/components-selectMultiple.ts +105 -104
  81. package/src/components/panel/types/components-slider.ts +55 -55
  82. package/src/components/panel/types/components-switch.ts +33 -33
  83. package/src/components/panel/types/components-textarea.ts +45 -45
  84. package/src/components/panel/types/index.ts +244 -244
  85. package/src/components/prompt/defaultConfig.ts +94 -94
  86. package/src/components/prompt/index.css +34 -34
  87. package/src/components/prompt/index.ts +187 -215
  88. package/src/components/prompt/types/index.ts +57 -56
  89. package/src/components/rightClickMenu/defaultConfig.ts +103 -103
  90. package/src/components/rightClickMenu/index.css +115 -115
  91. package/src/components/rightClickMenu/index.ts +662 -662
  92. package/src/components/rightClickMenu/types/index.ts +145 -143
  93. package/src/components/searchSuggestion/defaultConfig.ts +63 -63
  94. package/src/components/searchSuggestion/index.ts +813 -813
  95. package/src/components/searchSuggestion/types/index.ts +244 -242
  96. package/src/components/tooltip/defaultConfig.ts +33 -33
  97. package/src/components/tooltip/index.css +199 -199
  98. package/src/components/tooltip/index.ts +617 -617
  99. package/src/components/tooltip/types/index.ts +123 -121
  100. package/src/config/CommonCSSClassName.ts +17 -17
  101. package/src/config/GlobalConfig.ts +63 -63
  102. package/src/css/animation.css +987 -987
  103. package/src/css/button.css +551 -551
  104. package/src/css/common.css +54 -54
  105. package/src/css/index.css +253 -253
  106. package/src/css/ninePalaceGridPosition.css +50 -50
  107. package/src/css/scrollbar.css +22 -22
  108. package/src/handler/PopsElementHandler.ts +303 -303
  109. package/src/handler/PopsHandler.ts +611 -611
  110. package/src/types/PopsDOMUtilsEventType.d.ts +313 -313
  111. package/src/types/animation.d.ts +19 -19
  112. package/src/types/button.d.ts +94 -94
  113. package/src/types/components.d.ts +211 -211
  114. package/src/types/event.d.ts +43 -43
  115. package/src/types/global.d.ts +31 -31
  116. package/src/types/icon.d.ts +32 -32
  117. package/src/types/inst.d.ts +28 -28
  118. package/src/types/main.d.ts +66 -66
  119. package/src/types/mask.d.ts +52 -52
  120. package/src/types/position.d.ts +60 -60
  121. package/src/utils/PopsDOMUtils.ts +2483 -2483
  122. package/src/utils/PopsDOMUtilsEventsConfig.ts +4 -4
  123. package/src/utils/PopsInstanceUtils.ts +714 -714
  124. package/src/utils/PopsMathUtils.ts +71 -71
  125. package/src/utils/PopsSafeUtils.ts +22 -22
  126. package/src/utils/PopsUtils.ts +421 -421
@@ -1,868 +1,868 @@
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
- type: "container",
365
- text: "",
366
- views: [
367
- {
368
- className: "panel-select-disabled",
369
- text: "select-disabled",
370
- type: "select",
371
- disabled: true,
372
- getValue() {
373
- return "text";
374
- },
375
- callback(isSelectedInfo) {
376
- if (isSelectedInfo == null) return;
377
- console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
378
- },
379
- data: [
380
- {
381
- value: "all",
382
- text: "所有",
383
- disable() {
384
- return false;
385
- },
386
- },
387
- {
388
- value: "text",
389
- text: "文本",
390
- disable() {
391
- return false;
392
- },
393
- },
394
- {
395
- value: "html",
396
- text: "超文本",
397
- disable() {
398
- return false;
399
- },
400
- },
401
- ],
402
- },
403
- {
404
- className: "panel-select-multiple-disabled",
405
- type: "select-multiple",
406
- text: "select-multiple-disabled",
407
- disabled: true,
408
- placeholder: "请至少选择一个选项",
409
- getValue() {
410
- return ["select-1", "select-2"];
411
- },
412
- callback(selectInfo) {
413
- console.log(`select值改变,多选信息`, selectInfo);
414
- },
415
- clickCallBack(event, isSelectedInfo) {
416
- console.log("点击", event, isSelectedInfo);
417
- },
418
- closeIconClickCallBack(event, data) {
419
- console.log("点击关闭图标的事件", data);
420
- },
421
- data: [
422
- {
423
- value: "select-1",
424
- text: "单选1",
425
- isHTML: false,
426
- },
427
- {
428
- value: "select-2",
429
- text: "单选2",
430
- isHTML: false,
431
- },
432
- {
433
- value: "select-3",
434
- text: "单选3",
435
- isHTML: false,
436
- },
437
- {
438
- value: "select-4",
439
- text: "单选4",
440
- isHTML: false,
441
- },
442
- ],
443
- },
444
- {
445
- className: "panel-select-native",
446
- text: "select-native",
447
- type: "select",
448
- mode: "native",
449
- getValue() {
450
- return "all";
451
- },
452
- callback(isSelectedInfo) {
453
- if (isSelectedInfo == null) return;
454
- console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
455
- },
456
- data: [
457
- {
458
- value: "all",
459
- text: "所有",
460
- disable() {
461
- return false;
462
- },
463
- },
464
- {
465
- value: "text",
466
- text: "文本",
467
- disable() {
468
- return false;
469
- },
470
- },
471
- {
472
- value: "html",
473
- text: "超文本",
474
- disable() {
475
- return false;
476
- },
477
- },
478
- ],
479
- },
480
- {
481
- className: "panel-select-dialog",
482
- text: "select-dialog",
483
- type: "select",
484
- mode: "dialog",
485
- getValue() {
486
- return window.localStorage.getItem("select-dialog-customInput") || "";
487
- },
488
- callback(isSelectedInfo) {
489
- if (isSelectedInfo == null) {
490
- console.warn(`select当前选项为空`);
491
- return;
492
- }
493
- if (isSelectedInfo.addCustomInput) {
494
- if (isSelectedInfo.value === "") {
495
- // 空值,不存储
496
- if (isSelectedInfo.customInputStoreKey) {
497
- console.log(`select删除自定义输入的值`);
498
- window.localStorage.removeItem(isSelectedInfo.customInputStoreKey);
499
- }
500
- } else {
501
- console.log(
502
- `select当前自定义输入框内容:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`
503
- );
504
- if (isSelectedInfo.customInputStoreKey) {
505
- window.localStorage.setItem(isSelectedInfo.customInputStoreKey!, isSelectedInfo.value);
506
- }
507
- }
508
- } else {
509
- console.log(`select当前选项:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`);
510
- }
511
- },
512
- data: [
513
- {
514
- value: "all",
515
- text: "所有",
516
- disable() {
517
- return false;
518
- },
519
- },
520
- {
521
- value: "text",
522
- text: "文本",
523
- disable(value, selectInfo) {
524
- if (selectInfo?.value === "all") return true;
525
- return false;
526
- },
527
- },
528
- {
529
- value: "html",
530
- text: "超文本",
531
- disable(value, selectInfo) {
532
- if (selectInfo?.value === "all") return true;
533
- return false;
534
- },
535
- },
536
- {
537
- value: "own",
538
- text: "自定义",
539
- disable(value, selectInfo) {
540
- if (selectInfo?.value === "all") return true;
541
- return false;
542
- },
543
- },
544
- {
545
- value: window.localStorage.getItem("select-dialog-customInput") || "",
546
- text: window.localStorage.getItem("select-dialog-customInput") || "",
547
- addCustomInput: true,
548
- customInputStoreKey: "select-dialog-customInput",
549
- onValid(dataOption) {
550
- if (dataOption.value === "123") {
551
- console.error("非规范值");
552
- return {
553
- valid: false,
554
- message: "非规范值",
555
- };
556
- }
557
- return {
558
- valid: true,
559
- };
560
- },
561
- },
562
- ],
563
- },
564
- {
565
- className: "panel-select-horizontal",
566
- text: "select-horizontal",
567
- type: "select",
568
- mode: "horizontal",
569
- getValue() {
570
- return "text";
571
- },
572
- callback(isSelectedInfo) {
573
- if (isSelectedInfo == null) return;
574
- console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
575
- },
576
- data: [
577
- {
578
- value: "all",
579
- text: "所有",
580
- disable() {
581
- return false;
582
- },
583
- },
584
- {
585
- value: "text",
586
- text: "文本",
587
- disable() {
588
- return false;
589
- },
590
- },
591
- {
592
- value: "html",
593
- text: "超文本",
594
- disable() {
595
- return false;
596
- },
597
- },
598
- {
599
- value: "own",
600
- text: "自定义",
601
- disable() {
602
- return true;
603
- },
604
- },
605
- ],
606
- },
607
- {
608
- className: "panel-select-multiple",
609
- type: "select-multiple",
610
- text: "select-multiple",
611
- placeholder: "请至少选择一个选项",
612
- getValue() {
613
- return ["select-1", "select-2"];
614
- },
615
- callback(selectInfo) {
616
- console.log(`select值改变,多选信息`, selectInfo);
617
- },
618
- clickCallBack(event, isSelectedInfo) {
619
- console.log("点击", event, isSelectedInfo);
620
- },
621
- closeIconClickCallBack(event, data) {
622
- console.log("点击关闭图标的事件", data);
623
- },
624
- data: [
625
- {
626
- value: "select-1",
627
- text: "单选1",
628
- isHTML: false,
629
- disable(value, allSelectedInfo) {
630
- return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
631
- },
632
- },
633
- {
634
- value: "select-2",
635
- text: "单选2",
636
- isHTML: false,
637
- disable(value, allSelectedInfo) {
638
- return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
639
- },
640
- },
641
- {
642
- value: "select-3",
643
- text: "单选3",
644
- isHTML: false,
645
- disable(value, allSelectedInfo) {
646
- return allSelectedInfo.findIndex((it) => ["select-2", "select-5"].includes(it.value)) !== -1;
647
- },
648
- },
649
- {
650
- value: "select-4",
651
- text: "单选4",
652
- isHTML: false,
653
- disable(value, allSelectedInfo) {
654
- return allSelectedInfo.findIndex((it) => ["select-3", "select-5"].includes(it.value)) !== -1;
655
- },
656
- },
657
- {
658
- value: "select-5",
659
- text(value, allSelectedInfo) {
660
- return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1
661
- ? "单选5-禁用"
662
- : "单选5";
663
- },
664
- isHTML: false,
665
- disable(value, allSelectedInfo) {
666
- return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1;
667
- },
668
- },
669
- ],
670
- },
671
- ],
672
- },
673
- {
674
- type: "container",
675
- text: "deep菜单",
676
- views: [
677
- {
678
- type: "deepMenu",
679
- className: "panel-deepMenu",
680
- text: "deepMenu",
681
- description: "二级菜单",
682
- rightText: "自定义配置",
683
- arrowRightIcon: true,
684
- afterAddToUListCallBack(viewConfig, container) {
685
- console.log(viewConfig, container);
686
- },
687
- clickCallBack(event, viewConfig) {
688
- console.log("进入子配置", event, viewConfig);
689
- },
690
- views: [
691
- {
692
- className: "forms-1",
693
- text: "区域设置",
694
- type: "container",
695
- views: [
696
- {
697
- className: "panel-switch",
698
- text: "switch",
699
- type: "switch",
700
- getValue() {
701
- return true;
702
- },
703
- callback(event, value) {
704
- console.log("按钮开启状态:", value);
705
- },
706
- },
707
- {
708
- className: "panel-slider",
709
- text: "slider",
710
- type: "slider",
711
- getValue() {
712
- return 50;
713
- },
714
- callback(event, value) {
715
- console.log("滑块当前数值:", value);
716
- },
717
- min: 1,
718
- max: 100,
719
- },
720
- {
721
- className: "panel-button",
722
- text: "button",
723
- type: "button",
724
- buttonIcon: "eleme",
725
- buttonIconIsLoading: true,
726
- buttonType: "warning",
727
- buttonText: "warning按钮",
728
- callback(event) {
729
- console.log("点击按钮", event);
730
- },
731
- },
732
- {
733
- className: "panel-button",
734
- text: "button",
735
- type: "button",
736
- buttonIcon: "chromeFilled",
737
- buttonIconIsLoading: true,
738
- buttonType: "danger",
739
- buttonText: "danger按钮",
740
- callback(event) {
741
- console.log("点击按钮", event);
742
- },
743
- },
744
- {
745
- className: "panel-button",
746
- text: "button",
747
- type: "button",
748
- buttonIcon: "upload",
749
- buttonIconIsLoading: false,
750
- buttonType: "info",
751
- buttonText: "info按钮",
752
- callback(event) {
753
- console.log("点击按钮", event);
754
- },
755
- },
756
- ],
757
- },
758
- ],
759
- },
760
- {
761
- type: "deepMenu",
762
- className: "panel-deepMenu2",
763
- //@ts-ignore
764
- text: "deepMenu2",
765
- description: "二级菜单",
766
- rightText: "自定义配置",
767
- arrowRightIcon: true,
768
- afterAddToUListCallBack(viewConfig, container) {
769
- console.log(viewConfig, container);
770
- },
771
- clickCallBack(event, viewConfig) {
772
- console.log("进入子配置", event, viewConfig);
773
- },
774
- views: [],
775
- },
776
- ],
777
- },
778
- {
779
- type: "container",
780
- isFold: true,
781
- text: "折叠菜单",
782
- afterAddToUListCallBack(viewConfig, container) {
783
- console.log(viewConfig, container);
784
- },
785
- views: [
786
- {
787
- className: "panel-switch",
788
- text: "switch",
789
- type: "switch",
790
- getValue() {
791
- return true;
792
- },
793
- callback(event, value) {
794
- console.log("按钮开启状态:", value);
795
- },
796
- },
797
- ],
798
- },
799
- ],
800
- },
801
- {
802
- id: "whitesev-panel-bottom-config-1",
803
- title: /*html*/ `
804
- <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>
805
- `,
806
- isBottom: true,
807
- disableAsideItemHoverCSS: true,
808
- attributes: {
809
- "data-value": "value",
810
- "data-value-2": "value2",
811
- },
812
- views: [],
813
- clickFirstCallback: function () {
814
- return false;
815
- },
816
- },
817
- {
818
- id: "whitesev-panel-bottom-config-2",
819
- title: "版本:xxx.xx.xx",
820
- isBottom: true,
821
- attributes: {
822
- "data-value": "value",
823
- "data-value-2": "value2",
824
- },
825
- views: [],
826
- clickFirstCallback: function () {
827
- return false;
828
- },
829
- },
830
- ],
831
- bottomContentConfig: [],
832
- btn: {
833
- close: {
834
- enable: true,
835
- callback(event) {
836
- event.close();
837
- },
838
- },
839
- },
840
- mask: {
841
- enable: false,
842
- clickEvent: {
843
- toClose: false,
844
- toHide: false,
845
- },
846
- clickCallBack: null,
847
- },
848
- useShadowRoot: true,
849
- class: "",
850
- mobileClassName: "pops-panel-is-mobile",
851
- isMobile: false,
852
- only: false,
853
- width: window.innerWidth < 550 ? "88vw" : "700px",
854
- height: window.innerHeight < 450 ? "70vh" : "500px",
855
- position: "center",
856
- animation: "pops-anim-fadein-zoom",
857
- useDeepMenuSwtichAnimation: true,
858
- zIndex: 10000,
859
- drag: false,
860
- dragLimit: true,
861
- dragExtraDistance: 3,
862
- dragMoveCallBack() {},
863
- dragEndCallBack() {},
864
- forbiddenScroll: false,
865
- style: null,
866
- beforeAppendToPageCallBack() {},
867
- };
868
- };
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
+ type: "container",
365
+ text: "",
366
+ views: [
367
+ {
368
+ className: "panel-select-disabled",
369
+ text: "select-disabled",
370
+ type: "select",
371
+ disabled: true,
372
+ getValue() {
373
+ return "text";
374
+ },
375
+ callback(isSelectedInfo) {
376
+ if (isSelectedInfo == null) return;
377
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
378
+ },
379
+ data: [
380
+ {
381
+ value: "all",
382
+ text: "所有",
383
+ disable() {
384
+ return false;
385
+ },
386
+ },
387
+ {
388
+ value: "text",
389
+ text: "文本",
390
+ disable() {
391
+ return false;
392
+ },
393
+ },
394
+ {
395
+ value: "html",
396
+ text: "超文本",
397
+ disable() {
398
+ return false;
399
+ },
400
+ },
401
+ ],
402
+ },
403
+ {
404
+ className: "panel-select-multiple-disabled",
405
+ type: "select-multiple",
406
+ text: "select-multiple-disabled",
407
+ disabled: true,
408
+ placeholder: "请至少选择一个选项",
409
+ getValue() {
410
+ return ["select-1", "select-2"];
411
+ },
412
+ callback(selectInfo) {
413
+ console.log(`select值改变,多选信息`, selectInfo);
414
+ },
415
+ clickCallBack(event, isSelectedInfo) {
416
+ console.log("点击", event, isSelectedInfo);
417
+ },
418
+ closeIconClickCallBack(event, data) {
419
+ console.log("点击关闭图标的事件", data);
420
+ },
421
+ data: [
422
+ {
423
+ value: "select-1",
424
+ text: "单选1",
425
+ isHTML: false,
426
+ },
427
+ {
428
+ value: "select-2",
429
+ text: "单选2",
430
+ isHTML: false,
431
+ },
432
+ {
433
+ value: "select-3",
434
+ text: "单选3",
435
+ isHTML: false,
436
+ },
437
+ {
438
+ value: "select-4",
439
+ text: "单选4",
440
+ isHTML: false,
441
+ },
442
+ ],
443
+ },
444
+ {
445
+ className: "panel-select-native",
446
+ text: "select-native",
447
+ type: "select",
448
+ mode: "native",
449
+ getValue() {
450
+ return "all";
451
+ },
452
+ callback(isSelectedInfo) {
453
+ if (isSelectedInfo == null) return;
454
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
455
+ },
456
+ data: [
457
+ {
458
+ value: "all",
459
+ text: "所有",
460
+ disable() {
461
+ return false;
462
+ },
463
+ },
464
+ {
465
+ value: "text",
466
+ text: "文本",
467
+ disable() {
468
+ return false;
469
+ },
470
+ },
471
+ {
472
+ value: "html",
473
+ text: "超文本",
474
+ disable() {
475
+ return false;
476
+ },
477
+ },
478
+ ],
479
+ },
480
+ {
481
+ className: "panel-select-dialog",
482
+ text: "select-dialog",
483
+ type: "select",
484
+ mode: "dialog",
485
+ getValue() {
486
+ return window.localStorage.getItem("select-dialog-customInput") || "";
487
+ },
488
+ callback(isSelectedInfo) {
489
+ if (isSelectedInfo == null) {
490
+ console.warn(`select当前选项为空`);
491
+ return;
492
+ }
493
+ if (isSelectedInfo.addCustomInput) {
494
+ if (isSelectedInfo.value === "") {
495
+ // 空值,不存储
496
+ if (isSelectedInfo.customInputStoreKey) {
497
+ console.log(`select删除自定义输入的值`);
498
+ window.localStorage.removeItem(isSelectedInfo.customInputStoreKey);
499
+ }
500
+ } else {
501
+ console.log(
502
+ `select当前自定义输入框内容:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`
503
+ );
504
+ if (isSelectedInfo.customInputStoreKey) {
505
+ window.localStorage.setItem(isSelectedInfo.customInputStoreKey!, isSelectedInfo.value);
506
+ }
507
+ }
508
+ } else {
509
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项显示文本:${isSelectedInfo.text}`);
510
+ }
511
+ },
512
+ data: [
513
+ {
514
+ value: "all",
515
+ text: "所有",
516
+ disable() {
517
+ return false;
518
+ },
519
+ },
520
+ {
521
+ value: "text",
522
+ text: "文本",
523
+ disable(value, selectInfo) {
524
+ if (selectInfo?.value === "all") return true;
525
+ return false;
526
+ },
527
+ },
528
+ {
529
+ value: "html",
530
+ text: "超文本",
531
+ disable(value, selectInfo) {
532
+ if (selectInfo?.value === "all") return true;
533
+ return false;
534
+ },
535
+ },
536
+ {
537
+ value: "own",
538
+ text: "自定义",
539
+ disable(value, selectInfo) {
540
+ if (selectInfo?.value === "all") return true;
541
+ return false;
542
+ },
543
+ },
544
+ {
545
+ value: window.localStorage.getItem("select-dialog-customInput") || "",
546
+ text: window.localStorage.getItem("select-dialog-customInput") || "",
547
+ addCustomInput: true,
548
+ customInputStoreKey: "select-dialog-customInput",
549
+ onValid(dataOption) {
550
+ if (dataOption.value === "123") {
551
+ console.error("非规范值");
552
+ return {
553
+ valid: false,
554
+ message: "非规范值",
555
+ };
556
+ }
557
+ return {
558
+ valid: true,
559
+ };
560
+ },
561
+ },
562
+ ],
563
+ },
564
+ {
565
+ className: "panel-select-horizontal",
566
+ text: "select-horizontal",
567
+ type: "select",
568
+ mode: "horizontal",
569
+ getValue() {
570
+ return "text";
571
+ },
572
+ callback(isSelectedInfo) {
573
+ if (isSelectedInfo == null) return;
574
+ console.log(`select当前选项:${isSelectedInfo.value},当前选项文本:${isSelectedInfo.text}`);
575
+ },
576
+ data: [
577
+ {
578
+ value: "all",
579
+ text: "所有",
580
+ disable() {
581
+ return false;
582
+ },
583
+ },
584
+ {
585
+ value: "text",
586
+ text: "文本",
587
+ disable() {
588
+ return false;
589
+ },
590
+ },
591
+ {
592
+ value: "html",
593
+ text: "超文本",
594
+ disable() {
595
+ return false;
596
+ },
597
+ },
598
+ {
599
+ value: "own",
600
+ text: "自定义",
601
+ disable() {
602
+ return true;
603
+ },
604
+ },
605
+ ],
606
+ },
607
+ {
608
+ className: "panel-select-multiple",
609
+ type: "select-multiple",
610
+ text: "select-multiple",
611
+ placeholder: "请至少选择一个选项",
612
+ getValue() {
613
+ return ["select-1", "select-2"];
614
+ },
615
+ callback(selectInfo) {
616
+ console.log(`select值改变,多选信息`, selectInfo);
617
+ },
618
+ clickCallBack(event, isSelectedInfo) {
619
+ console.log("点击", event, isSelectedInfo);
620
+ },
621
+ closeIconClickCallBack(event, data) {
622
+ console.log("点击关闭图标的事件", data);
623
+ },
624
+ data: [
625
+ {
626
+ value: "select-1",
627
+ text: "单选1",
628
+ isHTML: false,
629
+ disable(value, allSelectedInfo) {
630
+ return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
631
+ },
632
+ },
633
+ {
634
+ value: "select-2",
635
+ text: "单选2",
636
+ isHTML: false,
637
+ disable(value, allSelectedInfo) {
638
+ return allSelectedInfo.findIndex((it) => ["select-5"].includes(it.value)) !== -1;
639
+ },
640
+ },
641
+ {
642
+ value: "select-3",
643
+ text: "单选3",
644
+ isHTML: false,
645
+ disable(value, allSelectedInfo) {
646
+ return allSelectedInfo.findIndex((it) => ["select-2", "select-5"].includes(it.value)) !== -1;
647
+ },
648
+ },
649
+ {
650
+ value: "select-4",
651
+ text: "单选4",
652
+ isHTML: false,
653
+ disable(value, allSelectedInfo) {
654
+ return allSelectedInfo.findIndex((it) => ["select-3", "select-5"].includes(it.value)) !== -1;
655
+ },
656
+ },
657
+ {
658
+ value: "select-5",
659
+ text(value, allSelectedInfo) {
660
+ return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1
661
+ ? "单选5-禁用"
662
+ : "单选5";
663
+ },
664
+ isHTML: false,
665
+ disable(value, allSelectedInfo) {
666
+ return allSelectedInfo.findIndex((it) => ["select-4"].includes(it.value)) !== -1;
667
+ },
668
+ },
669
+ ],
670
+ },
671
+ ],
672
+ },
673
+ {
674
+ type: "container",
675
+ text: "deep菜单",
676
+ views: [
677
+ {
678
+ type: "deepMenu",
679
+ className: "panel-deepMenu",
680
+ text: "deepMenu",
681
+ description: "二级菜单",
682
+ rightText: "自定义配置",
683
+ arrowRightIcon: true,
684
+ afterAddToUListCallBack(viewConfig, container) {
685
+ console.log(viewConfig, container);
686
+ },
687
+ clickCallBack(event, viewConfig) {
688
+ console.log("进入子配置", event, viewConfig);
689
+ },
690
+ views: [
691
+ {
692
+ className: "forms-1",
693
+ text: "区域设置",
694
+ type: "container",
695
+ views: [
696
+ {
697
+ className: "panel-switch",
698
+ text: "switch",
699
+ type: "switch",
700
+ getValue() {
701
+ return true;
702
+ },
703
+ callback(event, value) {
704
+ console.log("按钮开启状态:", value);
705
+ },
706
+ },
707
+ {
708
+ className: "panel-slider",
709
+ text: "slider",
710
+ type: "slider",
711
+ getValue() {
712
+ return 50;
713
+ },
714
+ callback(event, value) {
715
+ console.log("滑块当前数值:", value);
716
+ },
717
+ min: 1,
718
+ max: 100,
719
+ },
720
+ {
721
+ className: "panel-button",
722
+ text: "button",
723
+ type: "button",
724
+ buttonIcon: "eleme",
725
+ buttonIconIsLoading: true,
726
+ buttonType: "warning",
727
+ buttonText: "warning按钮",
728
+ callback(event) {
729
+ console.log("点击按钮", event);
730
+ },
731
+ },
732
+ {
733
+ className: "panel-button",
734
+ text: "button",
735
+ type: "button",
736
+ buttonIcon: "chromeFilled",
737
+ buttonIconIsLoading: true,
738
+ buttonType: "danger",
739
+ buttonText: "danger按钮",
740
+ callback(event) {
741
+ console.log("点击按钮", event);
742
+ },
743
+ },
744
+ {
745
+ className: "panel-button",
746
+ text: "button",
747
+ type: "button",
748
+ buttonIcon: "upload",
749
+ buttonIconIsLoading: false,
750
+ buttonType: "info",
751
+ buttonText: "info按钮",
752
+ callback(event) {
753
+ console.log("点击按钮", event);
754
+ },
755
+ },
756
+ ],
757
+ },
758
+ ],
759
+ },
760
+ {
761
+ type: "deepMenu",
762
+ className: "panel-deepMenu2",
763
+ //@ts-ignore
764
+ text: "deepMenu2",
765
+ description: "二级菜单",
766
+ rightText: "自定义配置",
767
+ arrowRightIcon: true,
768
+ afterAddToUListCallBack(viewConfig, container) {
769
+ console.log(viewConfig, container);
770
+ },
771
+ clickCallBack(event, viewConfig) {
772
+ console.log("进入子配置", event, viewConfig);
773
+ },
774
+ views: [],
775
+ },
776
+ ],
777
+ },
778
+ {
779
+ type: "container",
780
+ isFold: true,
781
+ text: "折叠菜单",
782
+ afterAddToUListCallBack(viewConfig, container) {
783
+ console.log(viewConfig, container);
784
+ },
785
+ views: [
786
+ {
787
+ className: "panel-switch",
788
+ text: "switch",
789
+ type: "switch",
790
+ getValue() {
791
+ return true;
792
+ },
793
+ callback(event, value) {
794
+ console.log("按钮开启状态:", value);
795
+ },
796
+ },
797
+ ],
798
+ },
799
+ ],
800
+ },
801
+ {
802
+ id: "whitesev-panel-bottom-config-1",
803
+ title: /*html*/ `
804
+ <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>
805
+ `,
806
+ isBottom: true,
807
+ disableAsideItemHoverCSS: true,
808
+ attributes: {
809
+ "data-value": "value",
810
+ "data-value-2": "value2",
811
+ },
812
+ views: [],
813
+ clickFirstCallback: function () {
814
+ return false;
815
+ },
816
+ },
817
+ {
818
+ id: "whitesev-panel-bottom-config-2",
819
+ title: "版本:xxx.xx.xx",
820
+ isBottom: true,
821
+ attributes: {
822
+ "data-value": "value",
823
+ "data-value-2": "value2",
824
+ },
825
+ views: [],
826
+ clickFirstCallback: function () {
827
+ return false;
828
+ },
829
+ },
830
+ ],
831
+ bottomContentConfig: [],
832
+ btn: {
833
+ close: {
834
+ enable: true,
835
+ callback(event) {
836
+ event.close();
837
+ },
838
+ },
839
+ },
840
+ mask: {
841
+ enable: false,
842
+ clickEvent: {
843
+ toClose: false,
844
+ toHide: false,
845
+ },
846
+ clickCallBack: null,
847
+ },
848
+ useShadowRoot: true,
849
+ class: "",
850
+ mobileClassName: "pops-panel-is-mobile",
851
+ isMobile: false,
852
+ only: false,
853
+ width: window.innerWidth < 550 ? "88vw" : "700px",
854
+ height: window.innerHeight < 450 ? "70vh" : "500px",
855
+ position: "center",
856
+ animation: "pops-anim-fadein-zoom",
857
+ useDeepMenuSwtichAnimation: true,
858
+ zIndex: 10000,
859
+ drag: false,
860
+ dragLimit: true,
861
+ dragExtraDistance: 3,
862
+ dragMoveCallBack() {},
863
+ dragEndCallBack() {},
864
+ forbiddenScroll: false,
865
+ style: null,
866
+ beforeAppendToPageCallBack() {},
867
+ };
868
+ };