@whitesev/pops 3.2.1 → 3.3.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 (127) hide show
  1. package/README.md +249 -249
  2. package/dist/index.amd.js +736 -948
  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 +736 -948
  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 +736 -948
  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 +736 -948
  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 +736 -948
  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 +736 -948
  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/PopsCore.d.ts +15 -7
  27. package/dist/types/src/components/folder/types/index.d.ts +43 -13
  28. package/dist/types/src/types/PopsDOMUtilsEventType.d.ts +313 -313
  29. package/dist/types/src/types/animation.d.ts +19 -19
  30. package/dist/types/src/types/button.d.ts +94 -94
  31. package/dist/types/src/types/components.d.ts +211 -211
  32. package/dist/types/src/types/event.d.ts +43 -43
  33. package/dist/types/src/types/global.d.ts +31 -31
  34. package/dist/types/src/types/icon.d.ts +32 -32
  35. package/dist/types/src/types/inst.d.ts +28 -28
  36. package/dist/types/src/types/main.d.ts +66 -66
  37. package/dist/types/src/types/mask.d.ts +52 -52
  38. package/dist/types/src/types/position.d.ts +60 -60
  39. package/package.json +28 -27
  40. package/src/Pops.ts +206 -206
  41. package/src/PopsAnimation.ts +32 -32
  42. package/src/PopsCSS.ts +54 -54
  43. package/src/PopsCore.ts +53 -37
  44. package/src/PopsIcon.ts +95 -95
  45. package/src/PopsInst.ts +21 -21
  46. package/src/components/alert/defaultConfig.ts +62 -62
  47. package/src/components/alert/index.ts +163 -163
  48. package/src/components/alert/types/index.ts +23 -23
  49. package/src/components/confirm/defaultConfig.ts +90 -90
  50. package/src/components/confirm/index.ts +165 -165
  51. package/src/components/confirm/types/index.ts +13 -17
  52. package/src/components/drawer/defaultConfig.ts +89 -89
  53. package/src/components/drawer/index.css +37 -37
  54. package/src/components/drawer/index.ts +245 -245
  55. package/src/components/drawer/types/index.ts +62 -61
  56. package/src/components/folder/defaultConfig.ts +151 -151
  57. package/src/components/folder/folderIcon.ts +28 -28
  58. package/src/components/folder/index.css +303 -303
  59. package/src/components/folder/index.ts +953 -932
  60. package/src/components/folder/types/index.ts +143 -110
  61. package/src/components/iframe/defaultConfig.ts +60 -60
  62. package/src/components/iframe/index.css +76 -76
  63. package/src/components/iframe/index.ts +331 -331
  64. package/src/components/iframe/types/index.ts +96 -96
  65. package/src/components/loading/defaultConfig.ts +29 -29
  66. package/src/components/loading/index.css +66 -66
  67. package/src/components/loading/index.ts +101 -101
  68. package/src/components/loading/types/index.ts +36 -34
  69. package/src/components/panel/css/components-select.css +84 -84
  70. package/src/components/panel/defaultConfig.ts +868 -868
  71. package/src/components/panel/handlerComponents.ts +3993 -3993
  72. package/src/components/panel/index.css +1403 -1403
  73. package/src/components/panel/index.ts +221 -221
  74. package/src/components/panel/types/components-button.ts +56 -56
  75. package/src/components/panel/types/components-common.ts +73 -73
  76. package/src/components/panel/types/components-container.ts +25 -25
  77. package/src/components/panel/types/components-deepMenu.ts +64 -64
  78. package/src/components/panel/types/components-input.ts +90 -90
  79. package/src/components/panel/types/components-own.ts +16 -16
  80. package/src/components/panel/types/components-select.ts +169 -169
  81. package/src/components/panel/types/components-selectMultiple.ts +105 -104
  82. package/src/components/panel/types/components-slider.ts +55 -55
  83. package/src/components/panel/types/components-switch.ts +33 -33
  84. package/src/components/panel/types/components-textarea.ts +45 -45
  85. package/src/components/panel/types/index.ts +244 -244
  86. package/src/components/prompt/defaultConfig.ts +94 -94
  87. package/src/components/prompt/index.css +34 -34
  88. package/src/components/prompt/index.ts +187 -215
  89. package/src/components/prompt/types/index.ts +57 -56
  90. package/src/components/rightClickMenu/defaultConfig.ts +103 -103
  91. package/src/components/rightClickMenu/index.css +115 -115
  92. package/src/components/rightClickMenu/index.ts +662 -662
  93. package/src/components/rightClickMenu/types/index.ts +145 -143
  94. package/src/components/searchSuggestion/defaultConfig.ts +63 -63
  95. package/src/components/searchSuggestion/index.ts +813 -813
  96. package/src/components/searchSuggestion/types/index.ts +244 -242
  97. package/src/components/tooltip/defaultConfig.ts +33 -33
  98. package/src/components/tooltip/index.css +199 -199
  99. package/src/components/tooltip/index.ts +617 -617
  100. package/src/components/tooltip/types/index.ts +123 -121
  101. package/src/config/CommonCSSClassName.ts +17 -17
  102. package/src/config/GlobalConfig.ts +63 -63
  103. package/src/css/animation.css +987 -987
  104. package/src/css/button.css +551 -551
  105. package/src/css/common.css +54 -54
  106. package/src/css/index.css +253 -253
  107. package/src/css/ninePalaceGridPosition.css +50 -50
  108. package/src/css/scrollbar.css +22 -22
  109. package/src/handler/PopsElementHandler.ts +303 -303
  110. package/src/handler/PopsHandler.ts +611 -611
  111. package/src/types/PopsDOMUtilsEventType.d.ts +313 -313
  112. package/src/types/animation.d.ts +19 -19
  113. package/src/types/button.d.ts +94 -94
  114. package/src/types/components.d.ts +211 -211
  115. package/src/types/event.d.ts +43 -43
  116. package/src/types/global.d.ts +31 -31
  117. package/src/types/icon.d.ts +32 -32
  118. package/src/types/inst.d.ts +28 -28
  119. package/src/types/main.d.ts +66 -66
  120. package/src/types/mask.d.ts +52 -52
  121. package/src/types/position.d.ts +60 -60
  122. package/src/utils/PopsDOMUtils.ts +2483 -2483
  123. package/src/utils/PopsDOMUtilsEventsConfig.ts +4 -4
  124. package/src/utils/PopsInstanceUtils.ts +714 -714
  125. package/src/utils/PopsMathUtils.ts +71 -71
  126. package/src/utils/PopsSafeUtils.ts +22 -22
  127. package/src/utils/PopsUtils.ts +391 -421
@@ -1,110 +1,143 @@
1
- import type {
2
- PopsTitleConfig,
3
- PopsDragConfig,
4
- PopsGeneralConfig,
5
- PopsMoreButtonConfig,
6
- } from "../../../types/components";
7
-
8
- /**
9
- * pops.folder的下载配置选项
10
- */
11
- export type PopsFolderDownloadOption = {
12
- /**
13
- * 是否点击触发下载
14
- *
15
- * + true:根据设置的`mode`值来选择下载方式
16
- * + false:不触发下载
17
- */
18
- autoDownload: boolean;
19
- /**
20
- * 触发下载后会根据提供的url链接进行下载
21
- */
22
- url: string;
23
- /**
24
- * 下载方式
25
- *
26
- * + a:使用a标签进行下载
27
- * + aBlank:使用a标签进行下载(添加属性`target="_blank"`)
28
- * + iframe:使用iframe进行下载
29
- * + open:使用window.open进行下载
30
- * + openBlank:使用window.open进行下载(添加参数`_blank`)
31
- *
32
- * @default "aBlank"
33
- */
34
- mode?: "a" | "aBlank" | "iframe" | "open" | "openBlank";
35
- };
36
- /**
37
- * pops.folder的folder配置信息
38
- */
39
- export interface PopsFolderDataConfig {
40
- /**
41
- * 文件/文件夹名
42
- */
43
- fileName: string;
44
- /**
45
- * 文件大小,如果是文件夹的话,为0
46
- */
47
- fileSize: number | string;
48
- /**
49
- * 文件类型,如果是文件夹,填入空字符串
50
- */
51
- fileType: string;
52
- /**
53
- * 创建时间
54
- */
55
- createTime: number;
56
- /**
57
- * 修改时间(最新时间)
58
- */
59
- latestTime: number;
60
- /**
61
- * 是否是文件夹
62
- */
63
- isFolder: boolean;
64
- /**
65
- * 层级
66
- */
67
- index: number;
68
- /**
69
- * 点击事件
70
- */
71
- clickEvent?: (
72
- event: MouseEvent | PointerEvent,
73
- config: PopsFolderDataConfig
74
- ) => IPromise<PopsFolderDownloadOption | PopsFolderDataConfig[] | null | undefined | void>;
75
- }
76
-
77
- /**
78
- * pops.folder
79
- */
80
- export interface PopsFolderConfig extends PopsTitleConfig, PopsDragConfig, PopsMoreButtonConfig, PopsGeneralConfig {
81
- /**
82
- * 排序
83
- */
84
- sort: {
85
- /**
86
- * 比较的名字,默认为fileName
87
- */
88
- name: "fileName" | "fileSize" | "latestTime";
89
- /**
90
- * 是否降序,默认false(升序)
91
- * @default false
92
- */
93
- isDesc: boolean;
94
- /**
95
- * 触发排序的回调
96
- * @returns
97
- * + true 中止内部的排序
98
- */
99
- callback?: (
100
- targert: HTMLElement,
101
- event: PointerEvent | MouseEvent,
102
- sortName: "fileName" | "fileSize" | "latestTime",
103
- sortDesc: boolean
104
- ) => boolean | undefined | void;
105
- };
106
- /**
107
- * 文件夹信息
108
- */
109
- folder: PopsFolderDataConfig[];
110
- }
1
+ import type {
2
+ PopsTitleConfig,
3
+ PopsDragConfig,
4
+ PopsGeneralConfig,
5
+ PopsMoreButtonConfig,
6
+ } from "../../../types/components";
7
+
8
+ /**
9
+ * pops.folder的下载配置选项
10
+ */
11
+ export type PopsFolderDownloadOption = {
12
+ /**
13
+ * 是否点击后自动触发下载
14
+ *
15
+ * + `true`: 自动根据设置的`mode`值来选择下载方式
16
+ * + `false`: 不触发下载
17
+ */
18
+ autoDownload: boolean;
19
+ /**
20
+ * 触发下载后会根据提供的url链接进行下载
21
+ */
22
+ url: string;
23
+ /**
24
+ * 下载方式
25
+ *
26
+ * + `a`: 使用`a标签`进行下载
27
+ * + `aBlank`: 使用`a标签`进行下载(添加属性`target="_blank"`)
28
+ * + `iframe`: 使用`iframe`进行下载
29
+ * + `open`: 使用`window.open`进行下载
30
+ * + `openBlank`: 使用`window.open`进行下载(添加参数`_blank`)
31
+ *
32
+ * @default "aBlank"
33
+ */
34
+ mode?: "a" | "aBlank" | "iframe" | "open" | "openBlank";
35
+ };
36
+ /**
37
+ * pops.folder的folder配置信息
38
+ */
39
+ export interface PopsFolderDataConfig {
40
+ /**
41
+ * 文件/文件夹名
42
+ */
43
+ fileName: string;
44
+ /**
45
+ * 文件大小,如果是文件夹的话,请设置为`0`
46
+ */
47
+ fileSize: number | string;
48
+ /**
49
+ * 文件类型,如果是文件夹,填入`""`即可
50
+ *
51
+ * 填入后会根据文件类型,自动设置图标
52
+ */
53
+ fileType: string;
54
+ /**
55
+ * 文件图标
56
+ * @default undefined
57
+ */
58
+ fileIcon?: string;
59
+ /**
60
+ * 创建时间
61
+ */
62
+ createTime:
63
+ | number
64
+ | (() => {
65
+ /**
66
+ * 该值用于排序
67
+ */
68
+ timeStamp: number;
69
+ /**
70
+ * 用于显示的文本
71
+ */
72
+ showText: string;
73
+ });
74
+ /**
75
+ * 修改时间(最新时间)
76
+ */
77
+ latestTime:
78
+ | number
79
+ | (() => {
80
+ /**
81
+ * 该值用于排序
82
+ */
83
+ timeStamp: number;
84
+ /**
85
+ * 用于显示的文本
86
+ */
87
+ showText: string;
88
+ });
89
+ /**
90
+ * 是否是文件夹
91
+ * @default false
92
+ */
93
+ isFolder: boolean;
94
+ /**
95
+ * 层级
96
+ */
97
+ index: number;
98
+ /**
99
+ * 点击事件
100
+ */
101
+ clickEvent?: (
102
+ event: MouseEvent | PointerEvent,
103
+ /**
104
+ * 当前层级的文件|文件夹信息配置
105
+ */
106
+ config: PopsFolderDataConfig
107
+ ) => IPromise<PopsFolderDownloadOption | PopsFolderDataConfig[] | null | undefined | void>;
108
+ }
109
+
110
+ /**
111
+ * pops.folder
112
+ */
113
+ export interface PopsFolderConfig extends PopsTitleConfig, PopsDragConfig, PopsMoreButtonConfig, PopsGeneralConfig {
114
+ /**
115
+ * 排序
116
+ */
117
+ sort: {
118
+ /**
119
+ * 比较的名字,默认为fileName
120
+ */
121
+ name: "fileName" | "fileSize" | "latestTime";
122
+ /**
123
+ * 是否降序,默认false(升序)
124
+ * @default false
125
+ */
126
+ isDesc: boolean;
127
+ /**
128
+ * 触发排序的回调
129
+ * @returns
130
+ * + true 中止内部的排序
131
+ */
132
+ callback?: (
133
+ targert: HTMLElement,
134
+ event: PointerEvent | MouseEvent,
135
+ sortName: "fileName" | "fileSize" | "latestTime",
136
+ sortDesc: boolean
137
+ ) => boolean | undefined | void;
138
+ };
139
+ /**
140
+ * 文件夹信息
141
+ */
142
+ folder: PopsFolderDataConfig[];
143
+ }
@@ -1,60 +1,60 @@
1
- import type { PopsIframeConfig } from "./types";
2
-
3
- export const PopsIframeDefaultConfig = (): DeepRequired<PopsIframeConfig> => {
4
- return {
5
- title: {
6
- position: "center",
7
- text: "",
8
- html: false,
9
- style: "",
10
- },
11
- loading: {
12
- enable: true,
13
- icon: true,
14
- text: "",
15
- },
16
- useShadowRoot: true,
17
- class: "",
18
- url: window.location.href,
19
- only: false,
20
- zIndex: 10000,
21
- mask: {
22
- enable: false,
23
- clickEvent: {
24
- toClose: false,
25
- toHide: false,
26
- },
27
- clickCallBack: null,
28
- },
29
- animation: "pops-anim-fadein-zoom",
30
- position: "center",
31
- drag: true,
32
- dragLimit: true,
33
- dragExtraDistance: 3,
34
- dragMoveCallBack() {},
35
- dragEndCallBack() {},
36
- width: window.innerWidth < 550 ? "88vw" : "350px",
37
- height: window.innerHeight < 450 ? "70vh" : "200px",
38
- topRightButton: "min|max|mise|close",
39
- sandbox: false,
40
- forbiddenScroll: false,
41
- loadEndCallBack() {},
42
- btn: {
43
- min: {
44
- callback() {},
45
- },
46
- max: {
47
- callback() {},
48
- },
49
- mise: {
50
- callback() {},
51
- },
52
- close: {
53
- callback() {},
54
- },
55
- },
56
-
57
- style: null,
58
- beforeAppendToPageCallBack() {},
59
- };
60
- };
1
+ import type { PopsIframeConfig } from "./types";
2
+
3
+ export const PopsIframeDefaultConfig = (): DeepRequired<PopsIframeConfig> => {
4
+ return {
5
+ title: {
6
+ position: "center",
7
+ text: "",
8
+ html: false,
9
+ style: "",
10
+ },
11
+ loading: {
12
+ enable: true,
13
+ icon: true,
14
+ text: "",
15
+ },
16
+ useShadowRoot: true,
17
+ class: "",
18
+ url: window.location.href,
19
+ only: false,
20
+ zIndex: 10000,
21
+ mask: {
22
+ enable: false,
23
+ clickEvent: {
24
+ toClose: false,
25
+ toHide: false,
26
+ },
27
+ clickCallBack: null,
28
+ },
29
+ animation: "pops-anim-fadein-zoom",
30
+ position: "center",
31
+ drag: true,
32
+ dragLimit: true,
33
+ dragExtraDistance: 3,
34
+ dragMoveCallBack() {},
35
+ dragEndCallBack() {},
36
+ width: window.innerWidth < 550 ? "88vw" : "350px",
37
+ height: window.innerHeight < 450 ? "70vh" : "200px",
38
+ topRightButton: "min|max|mise|close",
39
+ sandbox: false,
40
+ forbiddenScroll: false,
41
+ loadEndCallBack() {},
42
+ btn: {
43
+ min: {
44
+ callback() {},
45
+ },
46
+ max: {
47
+ callback() {},
48
+ },
49
+ mise: {
50
+ callback() {},
51
+ },
52
+ close: {
53
+ callback() {},
54
+ },
55
+ },
56
+
57
+ style: null,
58
+ beforeAppendToPageCallBack() {},
59
+ };
60
+ };
@@ -1,76 +1,76 @@
1
- .pops[type-value="iframe"] {
2
- --container-title-height: 55px;
3
- transition:
4
- width 0.35s ease,
5
- height 0.35s ease;
6
- }
7
- .pops[type-value="iframe"] .pops-content {
8
- overflow: hidden;
9
- }
10
- .pops-loading {
11
- position: absolute;
12
- top: 40px;
13
- right: 0;
14
- bottom: 0;
15
- left: 0;
16
- z-index: 5;
17
- background-color: rgb(255, 255, 255, var(--pops-bg-opacity));
18
- }
19
- .pops-loading:before {
20
- position: absolute;
21
- top: 50%;
22
- left: 50%;
23
- z-index: 3;
24
- display: block;
25
- margin: -20px 0 0 -20px;
26
- padding: 20px;
27
- border: 4px solid rgb(221, 221, 221, var(--pops-bd-opacity));
28
- border-radius: 50%;
29
- content: "";
30
- border-top-color: transparent;
31
- animation: pops-anim-wait-rotate 1.2s linear infinite;
32
- }
33
- .pops[type-value="iframe"].pops[type-module="min"] {
34
- bottom: 0;
35
- max-width: 200px;
36
- max-height: 53px;
37
- position: unset;
38
- }
39
- .pops[type-value="iframe"].pops[type-module="min"] .pops-header-control[data-type="min"] {
40
- display: none;
41
- }
42
- .pops[type-value="iframe"].pops-iframe-unset-top {
43
- top: unset !important;
44
- }
45
- .pops[type-value="iframe"].pops-iframe-unset-left {
46
- left: unset !important;
47
- }
48
- .pops[type-value="iframe"].pops-iframe-unset-transform {
49
- transform: none !important;
50
- }
51
- .pops[type-value="iframe"].pops-iframe-unset-transition {
52
- transition: none !important;
53
- }
54
- .pops[type-value="iframe"].pops[type-module="max"] {
55
- width: 100% !important;
56
- height: 100% !important;
57
- }
58
- .pops[type-value="iframe"] iframe[pops] {
59
- width: 100%;
60
- height: 100%;
61
- border: 0;
62
- }
63
- .pops-iframe-content-global-loading {
64
- position: absolute;
65
- top: 0;
66
- left: 0;
67
- z-index: 999999;
68
- width: 0;
69
- height: 4px;
70
- background: linear-gradient(to right, #4995dd, #fff, rgb(202 224 246));
71
- animation: iframeLoadingChange 2s forwards;
72
- }
73
-
74
- .pops-anim:has(.pops[type-value="iframe"].pops[type-module="min"]) {
75
- position: unset;
76
- }
1
+ .pops[type-value="iframe"] {
2
+ --container-title-height: 55px;
3
+ transition:
4
+ width 0.35s ease,
5
+ height 0.35s ease;
6
+ }
7
+ .pops[type-value="iframe"] .pops-content {
8
+ overflow: hidden;
9
+ }
10
+ .pops-loading {
11
+ position: absolute;
12
+ top: 40px;
13
+ right: 0;
14
+ bottom: 0;
15
+ left: 0;
16
+ z-index: 5;
17
+ background-color: rgb(255, 255, 255, var(--pops-bg-opacity));
18
+ }
19
+ .pops-loading:before {
20
+ position: absolute;
21
+ top: 50%;
22
+ left: 50%;
23
+ z-index: 3;
24
+ display: block;
25
+ margin: -20px 0 0 -20px;
26
+ padding: 20px;
27
+ border: 4px solid rgb(221, 221, 221, var(--pops-bd-opacity));
28
+ border-radius: 50%;
29
+ content: "";
30
+ border-top-color: transparent;
31
+ animation: pops-anim-wait-rotate 1.2s linear infinite;
32
+ }
33
+ .pops[type-value="iframe"].pops[type-module="min"] {
34
+ bottom: 0;
35
+ max-width: 200px;
36
+ max-height: 53px;
37
+ position: unset;
38
+ }
39
+ .pops[type-value="iframe"].pops[type-module="min"] .pops-header-control[data-type="min"] {
40
+ display: none;
41
+ }
42
+ .pops[type-value="iframe"].pops-iframe-unset-top {
43
+ top: unset !important;
44
+ }
45
+ .pops[type-value="iframe"].pops-iframe-unset-left {
46
+ left: unset !important;
47
+ }
48
+ .pops[type-value="iframe"].pops-iframe-unset-transform {
49
+ transform: none !important;
50
+ }
51
+ .pops[type-value="iframe"].pops-iframe-unset-transition {
52
+ transition: none !important;
53
+ }
54
+ .pops[type-value="iframe"].pops[type-module="max"] {
55
+ width: 100% !important;
56
+ height: 100% !important;
57
+ }
58
+ .pops[type-value="iframe"] iframe[pops] {
59
+ width: 100%;
60
+ height: 100%;
61
+ border: 0;
62
+ }
63
+ .pops-iframe-content-global-loading {
64
+ position: absolute;
65
+ top: 0;
66
+ left: 0;
67
+ z-index: 999999;
68
+ width: 0;
69
+ height: 4px;
70
+ background: linear-gradient(to right, #4995dd, #fff, rgb(202 224 246));
71
+ animation: iframeLoadingChange 2s forwards;
72
+ }
73
+
74
+ .pops-anim:has(.pops[type-value="iframe"].pops[type-module="min"]) {
75
+ position: unset;
76
+ }