@allahjs/utils 0.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 (160) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +244 -0
  3. package/dist/.tsbuildinfo +1 -0
  4. package/dist/browser/cookieUtils/index.cjs +100 -0
  5. package/dist/browser/cookieUtils/index.cjs.map +1 -0
  6. package/dist/browser/cookieUtils/index.d.ts +55 -0
  7. package/dist/browser/domUtils/index.cjs +237 -0
  8. package/dist/browser/domUtils/index.cjs.map +1 -0
  9. package/dist/browser/domUtils/index.d.ts +116 -0
  10. package/dist/browser/index.cjs +12 -0
  11. package/dist/browser/index.cjs.map +1 -0
  12. package/dist/browser/index.d.ts +3 -0
  13. package/dist/browser/urlUtils/index.cjs +262 -0
  14. package/dist/browser/urlUtils/index.cjs.map +1 -0
  15. package/dist/browser/urlUtils/index.d.ts +72 -0
  16. package/dist/core/arrayUtils/index.cjs +109 -0
  17. package/dist/core/arrayUtils/index.cjs.map +1 -0
  18. package/dist/core/arrayUtils/index.d.ts +67 -0
  19. package/dist/core/asyncUtils/index.cjs +180 -0
  20. package/dist/core/asyncUtils/index.cjs.map +1 -0
  21. package/dist/core/asyncUtils/index.d.ts +80 -0
  22. package/dist/core/colorUtils/index.cjs +38 -0
  23. package/dist/core/colorUtils/index.cjs.map +1 -0
  24. package/dist/core/colorUtils/index.d.ts +10 -0
  25. package/dist/core/cryptoUtils/index.cjs +428 -0
  26. package/dist/core/cryptoUtils/index.cjs.map +1 -0
  27. package/dist/core/cryptoUtils/index.d.ts +132 -0
  28. package/dist/core/dateUtils/index.cjs +245 -0
  29. package/dist/core/dateUtils/index.cjs.map +1 -0
  30. package/dist/core/dateUtils/index.d.ts +117 -0
  31. package/dist/core/index.cjs +34 -0
  32. package/dist/core/index.cjs.map +1 -0
  33. package/dist/core/index.d.ts +118 -0
  34. package/dist/core/numberUtils/index.cjs +126 -0
  35. package/dist/core/numberUtils/index.cjs.map +1 -0
  36. package/dist/core/numberUtils/index.d.ts +91 -0
  37. package/dist/core/objectUtils/index.cjs +249 -0
  38. package/dist/core/objectUtils/index.cjs.map +1 -0
  39. package/dist/core/objectUtils/index.d.ts +91 -0
  40. package/dist/core/pageUtils/index.cjs +74 -0
  41. package/dist/core/pageUtils/index.cjs.map +1 -0
  42. package/dist/core/pageUtils/index.d.ts +52 -0
  43. package/dist/core/stringUtils/index.cjs +163 -0
  44. package/dist/core/stringUtils/index.cjs.map +1 -0
  45. package/dist/core/stringUtils/index.d.ts +69 -0
  46. package/dist/core/validationUtils/index.cjs +154 -0
  47. package/dist/core/validationUtils/index.cjs.map +1 -0
  48. package/dist/core/validationUtils/index.d.ts +87 -0
  49. package/dist/esm/browser/cookieUtils/index.d.ts +55 -0
  50. package/dist/esm/browser/cookieUtils/index.js +96 -0
  51. package/dist/esm/browser/cookieUtils/index.js.map +1 -0
  52. package/dist/esm/browser/domUtils/index.d.ts +116 -0
  53. package/dist/esm/browser/domUtils/index.js +233 -0
  54. package/dist/esm/browser/domUtils/index.js.map +1 -0
  55. package/dist/esm/browser/index.d.ts +3 -0
  56. package/dist/esm/browser/index.js +4 -0
  57. package/dist/esm/browser/index.js.map +1 -0
  58. package/dist/esm/browser/urlUtils/index.d.ts +72 -0
  59. package/dist/esm/browser/urlUtils/index.js +248 -0
  60. package/dist/esm/browser/urlUtils/index.js.map +1 -0
  61. package/dist/esm/core/arrayUtils/index.d.ts +67 -0
  62. package/dist/esm/core/arrayUtils/index.js +105 -0
  63. package/dist/esm/core/arrayUtils/index.js.map +1 -0
  64. package/dist/esm/core/asyncUtils/index.d.ts +80 -0
  65. package/dist/esm/core/asyncUtils/index.js +175 -0
  66. package/dist/esm/core/asyncUtils/index.js.map +1 -0
  67. package/dist/esm/core/colorUtils/index.d.ts +10 -0
  68. package/dist/esm/core/colorUtils/index.js +34 -0
  69. package/dist/esm/core/colorUtils/index.js.map +1 -0
  70. package/dist/esm/core/cryptoUtils/index.d.ts +132 -0
  71. package/dist/esm/core/cryptoUtils/index.js +424 -0
  72. package/dist/esm/core/cryptoUtils/index.js.map +1 -0
  73. package/dist/esm/core/dateUtils/index.d.ts +117 -0
  74. package/dist/esm/core/dateUtils/index.js +241 -0
  75. package/dist/esm/core/dateUtils/index.js.map +1 -0
  76. package/dist/esm/core/index.d.ts +118 -0
  77. package/dist/esm/core/index.js +30 -0
  78. package/dist/esm/core/index.js.map +1 -0
  79. package/dist/esm/core/numberUtils/index.d.ts +91 -0
  80. package/dist/esm/core/numberUtils/index.js +122 -0
  81. package/dist/esm/core/numberUtils/index.js.map +1 -0
  82. package/dist/esm/core/objectUtils/index.d.ts +91 -0
  83. package/dist/esm/core/objectUtils/index.js +245 -0
  84. package/dist/esm/core/objectUtils/index.js.map +1 -0
  85. package/dist/esm/core/pageUtils/index.d.ts +52 -0
  86. package/dist/esm/core/pageUtils/index.js +66 -0
  87. package/dist/esm/core/pageUtils/index.js.map +1 -0
  88. package/dist/esm/core/stringUtils/index.d.ts +69 -0
  89. package/dist/esm/core/stringUtils/index.js +159 -0
  90. package/dist/esm/core/stringUtils/index.js.map +1 -0
  91. package/dist/esm/core/validationUtils/index.d.ts +87 -0
  92. package/dist/esm/core/validationUtils/index.js +150 -0
  93. package/dist/esm/core/validationUtils/index.js.map +1 -0
  94. package/dist/esm/index.d.ts +22 -0
  95. package/dist/esm/index.js +26 -0
  96. package/dist/esm/index.js.map +1 -0
  97. package/dist/esm/request/ReqQueue/index.js +59 -0
  98. package/dist/esm/request/ReqQueue/index.js.map +1 -0
  99. package/dist/esm/request/httpCode/index.js +49 -0
  100. package/dist/esm/request/httpCode/index.js.map +1 -0
  101. package/dist/esm/request/httpUtils/index.js +359 -0
  102. package/dist/esm/request/httpUtils/index.js.map +1 -0
  103. package/dist/esm/request/index.d.ts +15 -0
  104. package/dist/esm/request/index.js +166 -0
  105. package/dist/esm/request/index.js.map +1 -0
  106. package/dist/esm/request/typings/index.d.ts +184 -0
  107. package/dist/esm/request/uniRequest/index.js +62 -0
  108. package/dist/esm/request/uniRequest/index.js.map +1 -0
  109. package/dist/esm/types/data/index.d.ts +188 -0
  110. package/dist/esm/types/data/index.js +13 -0
  111. package/dist/esm/types/data/index.js.map +1 -0
  112. package/dist/esm/types/index.d.ts +1 -0
  113. package/dist/esm/types/index.js +2 -0
  114. package/dist/esm/types/index.js.map +1 -0
  115. package/dist/esm/uniapp/Tips/index.d.ts +295 -0
  116. package/dist/esm/uniapp/Tips/index.js +498 -0
  117. package/dist/esm/uniapp/Tips/index.js.map +1 -0
  118. package/dist/esm/uniapp/cloudUtils/index.d.ts +56 -0
  119. package/dist/esm/uniapp/cloudUtils/index.js +90 -0
  120. package/dist/esm/uniapp/cloudUtils/index.js.map +1 -0
  121. package/dist/esm/uniapp/index.d.ts +3 -0
  122. package/dist/esm/uniapp/index.js +4 -0
  123. package/dist/esm/uniapp/index.js.map +1 -0
  124. package/dist/esm/uniapp/uniUtils/index.d.ts +113 -0
  125. package/dist/esm/uniapp/uniUtils/index.js +199 -0
  126. package/dist/esm/uniapp/uniUtils/index.js.map +1 -0
  127. package/dist/index.cjs +88 -0
  128. package/dist/index.cjs.map +1 -0
  129. package/dist/index.d.ts +22 -0
  130. package/dist/request/ReqQueue/index.cjs +63 -0
  131. package/dist/request/ReqQueue/index.cjs.map +1 -0
  132. package/dist/request/httpCode/index.cjs +52 -0
  133. package/dist/request/httpCode/index.cjs.map +1 -0
  134. package/dist/request/httpUtils/index.cjs +365 -0
  135. package/dist/request/httpUtils/index.cjs.map +1 -0
  136. package/dist/request/index.cjs +170 -0
  137. package/dist/request/index.cjs.map +1 -0
  138. package/dist/request/index.d.ts +15 -0
  139. package/dist/request/typings/index.d.ts +184 -0
  140. package/dist/request/uniRequest/index.cjs +66 -0
  141. package/dist/request/uniRequest/index.cjs.map +1 -0
  142. package/dist/types/data/index.cjs +15 -0
  143. package/dist/types/data/index.cjs.map +1 -0
  144. package/dist/types/data/index.d.ts +188 -0
  145. package/dist/types/index.cjs +8 -0
  146. package/dist/types/index.cjs.map +1 -0
  147. package/dist/types/index.d.ts +1 -0
  148. package/dist/uniapp/Tips/index.cjs +521 -0
  149. package/dist/uniapp/Tips/index.cjs.map +1 -0
  150. package/dist/uniapp/Tips/index.d.ts +295 -0
  151. package/dist/uniapp/cloudUtils/index.cjs +92 -0
  152. package/dist/uniapp/cloudUtils/index.cjs.map +1 -0
  153. package/dist/uniapp/cloudUtils/index.d.ts +56 -0
  154. package/dist/uniapp/index.cjs +53 -0
  155. package/dist/uniapp/index.cjs.map +1 -0
  156. package/dist/uniapp/index.d.ts +3 -0
  157. package/dist/uniapp/uniUtils/index.cjs +213 -0
  158. package/dist/uniapp/uniUtils/index.cjs.map +1 -0
  159. package/dist/uniapp/uniUtils/index.d.ts +113 -0
  160. package/package.json +129 -0
@@ -0,0 +1,100 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * Cookie操作工具类
7
+ * 提供cookie的读取、设置、删除等功能
8
+ */
9
+ const cookieUtils = {
10
+ /**
11
+ * 读取指定名称的cookie值
12
+ * @param name cookie名称
13
+ * @returns cookie值,如果不存在则返回null
14
+ */
15
+ read(name) {
16
+ const match = document.cookie.match(new RegExp(`(^|;\\s*)(${name})=([^;]*)`));
17
+ return match ? decodeURIComponent(match[3]) : null;
18
+ },
19
+ /**
20
+ * 设置cookie
21
+ * @param name cookie名称
22
+ * @param value cookie值
23
+ * @param options cookie选项
24
+ */
25
+ set(name, value, options = {}) {
26
+ let cookieString = `${encodeURIComponent(name)}=${encodeURIComponent(value)}`;
27
+ if (options.expires) {
28
+ if (typeof options.expires === 'number') {
29
+ // 如果是数字,表示天数
30
+ const date = new Date();
31
+ date.setTime(date.getTime() + options.expires * 24 * 60 * 60 * 1000);
32
+ cookieString += `; expires=${date.toUTCString()}`;
33
+ }
34
+ else {
35
+ cookieString += `; expires=${options.expires.toUTCString()}`;
36
+ }
37
+ }
38
+ if (options.path) {
39
+ cookieString += `; path=${options.path}`;
40
+ }
41
+ if (options.domain) {
42
+ cookieString += `; domain=${options.domain}`;
43
+ }
44
+ if (options.secure) {
45
+ cookieString += '; secure';
46
+ }
47
+ if (options.sameSite) {
48
+ cookieString += `; samesite=${options.sameSite}`;
49
+ }
50
+ document.cookie = cookieString;
51
+ },
52
+ /**
53
+ * 删除指定名称的cookie
54
+ * @param name cookie名称
55
+ * @param options cookie选项(path和domain需要与设置时一致)
56
+ */
57
+ remove(name, options = {}) {
58
+ this.set(name, '', {
59
+ ...options,
60
+ expires: new Date(0)
61
+ });
62
+ },
63
+ /**
64
+ * 获取所有cookie
65
+ * @returns 包含所有cookie的对象
66
+ */
67
+ getAll() {
68
+ const cookies = {};
69
+ if (document.cookie) {
70
+ document.cookie.split(';').forEach(cookie => {
71
+ const [name, value] = cookie.trim().split('=');
72
+ if (name && value) {
73
+ cookies[decodeURIComponent(name)] = decodeURIComponent(value);
74
+ }
75
+ });
76
+ }
77
+ return cookies;
78
+ },
79
+ /**
80
+ * 检查cookie是否存在
81
+ * @param name cookie名称
82
+ * @returns 是否存在
83
+ */
84
+ exists(name) {
85
+ return this.read(name) !== null;
86
+ },
87
+ /**
88
+ * 清除所有cookie
89
+ * @param options cookie选项
90
+ */
91
+ clearAll(options = {}) {
92
+ const cookies = this.getAll();
93
+ Object.keys(cookies).forEach(name => {
94
+ this.remove(name, options);
95
+ });
96
+ }
97
+ };
98
+
99
+ exports.default = cookieUtils;
100
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/browser/cookieUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ /**
2
+ * Cookie操作工具类
3
+ * 提供cookie的读取、设置、删除等功能
4
+ */
5
+ declare const cookieUtils: {
6
+ /**
7
+ * 读取指定名称的cookie值
8
+ * @param name cookie名称
9
+ * @returns cookie值,如果不存在则返回null
10
+ */
11
+ read(name: string): string | null;
12
+ /**
13
+ * 设置cookie
14
+ * @param name cookie名称
15
+ * @param value cookie值
16
+ * @param options cookie选项
17
+ */
18
+ set(name: string, value: string, options?: {
19
+ expires?: Date | number;
20
+ path?: string;
21
+ domain?: string;
22
+ secure?: boolean;
23
+ sameSite?: "Strict" | "Lax" | "None";
24
+ }): void;
25
+ /**
26
+ * 删除指定名称的cookie
27
+ * @param name cookie名称
28
+ * @param options cookie选项(path和domain需要与设置时一致)
29
+ */
30
+ remove(name: string, options?: {
31
+ path?: string;
32
+ domain?: string;
33
+ }): void;
34
+ /**
35
+ * 获取所有cookie
36
+ * @returns 包含所有cookie的对象
37
+ */
38
+ getAll(): Record<string, string>;
39
+ /**
40
+ * 检查cookie是否存在
41
+ * @param name cookie名称
42
+ * @returns 是否存在
43
+ */
44
+ exists(name: string): boolean;
45
+ /**
46
+ * 清除所有cookie
47
+ * @param options cookie选项
48
+ */
49
+ clearAll(options?: {
50
+ path?: string;
51
+ domain?: string;
52
+ }): void;
53
+ };
54
+
55
+ export { cookieUtils as default };
@@ -0,0 +1,237 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ /**
6
+ * DOM工具函数(仅在浏览器环境中可用)
7
+ */
8
+ const domUtils = {
9
+ /**
10
+ * 检查是否在浏览器环境
11
+ * @returns 是否在浏览器环境
12
+ */
13
+ isBrowser() {
14
+ return typeof window !== 'undefined' && typeof document !== 'undefined';
15
+ },
16
+ /**
17
+ * 查询元素
18
+ * @param selector 选择器
19
+ * @param parent 父元素,默认为document
20
+ * @returns 元素或null
21
+ */
22
+ $(selector, parent = document) {
23
+ if (!this.isBrowser())
24
+ return null;
25
+ return parent.querySelector(selector);
26
+ },
27
+ /**
28
+ * 查询所有元素
29
+ * @param selector 选择器
30
+ * @param parent 父元素,默认为document
31
+ * @returns 元素数组
32
+ */
33
+ $$(selector, parent = document) {
34
+ if (!this.isBrowser())
35
+ return [];
36
+ return Array.from(parent.querySelectorAll(selector));
37
+ },
38
+ /**
39
+ * 添加CSS类
40
+ * @param element 元素
41
+ * @param className 类名
42
+ */
43
+ addClass(element, className) {
44
+ if (!this.isBrowser())
45
+ return;
46
+ element.classList.add(className);
47
+ },
48
+ /**
49
+ * 移除CSS类
50
+ * @param element 元素
51
+ * @param className 类名
52
+ */
53
+ removeClass(element, className) {
54
+ if (!this.isBrowser())
55
+ return;
56
+ element.classList.remove(className);
57
+ },
58
+ /**
59
+ * 切换CSS类
60
+ * @param element 元素
61
+ * @param className 类名
62
+ * @returns 是否添加了类
63
+ */
64
+ toggleClass(element, className) {
65
+ if (!this.isBrowser())
66
+ return false;
67
+ return element.classList.toggle(className);
68
+ },
69
+ /**
70
+ * 检查是否包含CSS类
71
+ * @param element 元素
72
+ * @param className 类名
73
+ * @returns 是否包含类
74
+ */
75
+ hasClass(element, className) {
76
+ if (!this.isBrowser())
77
+ return false;
78
+ return element.classList.contains(className);
79
+ },
80
+ /**
81
+ * 设置元素样式
82
+ * @param element 元素
83
+ * @param styles 样式对象
84
+ */
85
+ setStyle(element, styles) {
86
+ if (!this.isBrowser())
87
+ return;
88
+ Object.assign(element.style, styles);
89
+ },
90
+ /**
91
+ * 获取元素样式
92
+ * @param element 元素
93
+ * @param property 样式属性
94
+ * @returns 样式值
95
+ */
96
+ getStyle(element, property) {
97
+ if (!this.isBrowser())
98
+ return '';
99
+ return window.getComputedStyle(element).getPropertyValue(property);
100
+ },
101
+ /**
102
+ * 创建元素
103
+ * @param tagName 标签名
104
+ * @param attributes 属性对象
105
+ * @param children 子元素或文本
106
+ * @returns 创建的元素
107
+ */
108
+ createElement(tagName, attributes = {}, children = []) {
109
+ if (!this.isBrowser())
110
+ return null;
111
+ const element = document.createElement(tagName);
112
+ // 设置属性
113
+ Object.entries(attributes).forEach(([key, value]) => {
114
+ element.setAttribute(key, value);
115
+ });
116
+ // 添加子元素
117
+ children.forEach(child => {
118
+ if (typeof child === 'string') {
119
+ element.appendChild(document.createTextNode(child));
120
+ }
121
+ else {
122
+ element.appendChild(child);
123
+ }
124
+ });
125
+ return element;
126
+ },
127
+ /**
128
+ * 获取元素位置信息
129
+ * @param element 元素
130
+ * @returns 位置信息
131
+ */
132
+ getElementPosition(element) {
133
+ if (!this.isBrowser())
134
+ return { top: 0, left: 0, width: 0, height: 0 };
135
+ const rect = element.getBoundingClientRect();
136
+ return {
137
+ top: rect.top + window.scrollY,
138
+ left: rect.left + window.scrollX,
139
+ width: rect.width,
140
+ height: rect.height
141
+ };
142
+ },
143
+ /**
144
+ * 检查元素是否在视口中
145
+ * @param element 元素
146
+ * @param threshold 阈值(0-1),默认为0
147
+ * @returns 是否在视口中
148
+ */
149
+ isInViewport(element, threshold = 0) {
150
+ if (!this.isBrowser())
151
+ return false;
152
+ const rect = element.getBoundingClientRect();
153
+ const windowHeight = window.innerHeight;
154
+ const windowWidth = window.innerWidth;
155
+ const verticalThreshold = windowHeight * threshold;
156
+ const horizontalThreshold = windowWidth * threshold;
157
+ return (rect.top >= -verticalThreshold &&
158
+ rect.left >= -horizontalThreshold &&
159
+ rect.bottom <= windowHeight + verticalThreshold &&
160
+ rect.right <= windowWidth + horizontalThreshold);
161
+ },
162
+ /**
163
+ * 平滑滚动到元素
164
+ * @param element 目标元素
165
+ * @param options 滚动选项
166
+ */
167
+ scrollToElement(element, options = { behavior: 'smooth', block: 'start' }) {
168
+ if (!this.isBrowser())
169
+ return;
170
+ element.scrollIntoView(options);
171
+ },
172
+ /**
173
+ * 复制文本到剪贴板
174
+ * @param text 要复制的文本
175
+ * @returns 是否复制成功
176
+ */
177
+ async copyToClipboard(text) {
178
+ if (!this.isBrowser())
179
+ return false;
180
+ try {
181
+ if (navigator.clipboard) {
182
+ await navigator.clipboard.writeText(text);
183
+ return true;
184
+ }
185
+ // 降级方案
186
+ const textArea = document.createElement('textarea');
187
+ textArea.value = text;
188
+ textArea.style.position = 'fixed';
189
+ textArea.style.opacity = '0';
190
+ document.body.appendChild(textArea);
191
+ textArea.select();
192
+ const success = document.execCommand('copy');
193
+ document.body.removeChild(textArea);
194
+ return success;
195
+ }
196
+ catch {
197
+ return false;
198
+ }
199
+ },
200
+ /**
201
+ * 监听元素大小变化
202
+ * @param element 元素
203
+ * @param callback 回调函数
204
+ * @returns 取消监听的函数
205
+ */
206
+ observeResize(element, callback) {
207
+ if (!this.isBrowser() || !window.ResizeObserver) {
208
+ return () => { };
209
+ }
210
+ const observer = new ResizeObserver(entries => {
211
+ entries.forEach(callback);
212
+ });
213
+ observer.observe(element);
214
+ return () => observer.disconnect();
215
+ },
216
+ /**
217
+ * 导入cdn的方法
218
+ * @param url 需要导入的文件
219
+ * @param name 名称
220
+ */
221
+ importCDN(url, name) {
222
+ new Promise(resolve => {
223
+ const dom = document.createElement('script');
224
+ dom.src = url;
225
+ dom.type = 'text/javascript';
226
+ dom.onload = () => {
227
+ resolve(window[name]);
228
+ };
229
+ if (document.head !== null) {
230
+ document.head.appendChild(dom);
231
+ }
232
+ });
233
+ }
234
+ };
235
+
236
+ exports.default = domUtils;
237
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":["../../../src/browser/domUtils/index.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,116 @@
1
+ /**
2
+ * DOM工具函数(仅在浏览器环境中可用)
3
+ */
4
+ declare const domUtils: {
5
+ /**
6
+ * 检查是否在浏览器环境
7
+ * @returns 是否在浏览器环境
8
+ */
9
+ isBrowser(): boolean;
10
+ /**
11
+ * 查询元素
12
+ * @param selector 选择器
13
+ * @param parent 父元素,默认为document
14
+ * @returns 元素或null
15
+ */
16
+ $(selector: string, parent?: Document | Element): Element | null;
17
+ /**
18
+ * 查询所有元素
19
+ * @param selector 选择器
20
+ * @param parent 父元素,默认为document
21
+ * @returns 元素数组
22
+ */
23
+ $$(selector: string, parent?: Document | Element): Element[];
24
+ /**
25
+ * 添加CSS类
26
+ * @param element 元素
27
+ * @param className 类名
28
+ */
29
+ addClass(element: Element, className: string): void;
30
+ /**
31
+ * 移除CSS类
32
+ * @param element 元素
33
+ * @param className 类名
34
+ */
35
+ removeClass(element: Element, className: string): void;
36
+ /**
37
+ * 切换CSS类
38
+ * @param element 元素
39
+ * @param className 类名
40
+ * @returns 是否添加了类
41
+ */
42
+ toggleClass(element: Element, className: string): boolean;
43
+ /**
44
+ * 检查是否包含CSS类
45
+ * @param element 元素
46
+ * @param className 类名
47
+ * @returns 是否包含类
48
+ */
49
+ hasClass(element: Element, className: string): boolean;
50
+ /**
51
+ * 设置元素样式
52
+ * @param element 元素
53
+ * @param styles 样式对象
54
+ */
55
+ setStyle(element: HTMLElement, styles: Partial<CSSStyleDeclaration>): void;
56
+ /**
57
+ * 获取元素样式
58
+ * @param element 元素
59
+ * @param property 样式属性
60
+ * @returns 样式值
61
+ */
62
+ getStyle(element: Element, property: string): string;
63
+ /**
64
+ * 创建元素
65
+ * @param tagName 标签名
66
+ * @param attributes 属性对象
67
+ * @param children 子元素或文本
68
+ * @returns 创建的元素
69
+ */
70
+ createElement(tagName: string, attributes?: Record<string, string>, children?: (Element | string)[]): HTMLElement | null;
71
+ /**
72
+ * 获取元素位置信息
73
+ * @param element 元素
74
+ * @returns 位置信息
75
+ */
76
+ getElementPosition(element: Element): {
77
+ top: number;
78
+ left: number;
79
+ width: number;
80
+ height: number;
81
+ };
82
+ /**
83
+ * 检查元素是否在视口中
84
+ * @param element 元素
85
+ * @param threshold 阈值(0-1),默认为0
86
+ * @returns 是否在视口中
87
+ */
88
+ isInViewport(element: Element, threshold?: number): boolean;
89
+ /**
90
+ * 平滑滚动到元素
91
+ * @param element 目标元素
92
+ * @param options 滚动选项
93
+ */
94
+ scrollToElement(element: Element, options?: ScrollIntoViewOptions): void;
95
+ /**
96
+ * 复制文本到剪贴板
97
+ * @param text 要复制的文本
98
+ * @returns 是否复制成功
99
+ */
100
+ copyToClipboard(text: string): Promise<boolean>;
101
+ /**
102
+ * 监听元素大小变化
103
+ * @param element 元素
104
+ * @param callback 回调函数
105
+ * @returns 取消监听的函数
106
+ */
107
+ observeResize(element: Element, callback: (entry: ResizeObserverEntry) => void): () => void;
108
+ /**
109
+ * 导入cdn的方法
110
+ * @param url 需要导入的文件
111
+ * @param name 名称
112
+ */
113
+ importCDN(url: string, name: keyof Window): void;
114
+ };
115
+
116
+ export { domUtils as default };
@@ -0,0 +1,12 @@
1
+ 'use strict';
2
+
3
+ var index = require('./cookieUtils/index.cjs');
4
+ var index$1 = require('./domUtils/index.cjs');
5
+ var index$2 = require('./urlUtils/index.cjs');
6
+
7
+
8
+
9
+ exports.cookieUtils = index.default;
10
+ exports.domUtils = index$1.default;
11
+ exports.urlUtils = index$2.default;
12
+ //# sourceMappingURL=index.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
@@ -0,0 +1,3 @@
1
+ export { default as cookieUtils } from './cookieUtils/index.js';
2
+ export { default as domUtils } from './domUtils/index.js';
3
+ export { default as urlUtils } from './urlUtils/index.js';