@gx-design-vue/pro-utils 0.2.0-beta.86 → 0.2.0-beta.88

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 (175) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +73 -2
  3. package/dist/array/index.d.ts +5 -0
  4. package/dist/array/index.js +6 -0
  5. package/dist/array/slice.d.ts +4 -0
  6. package/dist/array/slice.js +28 -0
  7. package/dist/array/sort.d.ts +7 -0
  8. package/dist/array/sort.js +65 -0
  9. package/dist/array/tree.d.ts +25 -0
  10. package/dist/array/tree.js +157 -0
  11. package/dist/array/unique.d.ts +6 -0
  12. package/dist/array/unique.js +14 -0
  13. package/dist/base64/index.d.ts +10 -19
  14. package/dist/base64/index.js +106 -0
  15. package/dist/class/index.d.ts +2 -0
  16. package/dist/class/index.js +3 -0
  17. package/dist/class/prefix.d.ts +15 -0
  18. package/dist/class/prefix.js +15 -0
  19. package/dist/clone/cloneDeep.d.ts +4 -0
  20. package/dist/clone/cloneDeep.js +35 -0
  21. package/dist/clone/cloneDeepWith.d.ts +6 -0
  22. package/dist/clone/cloneDeepWith.js +150 -0
  23. package/dist/clone/getTag.d.ts +4 -0
  24. package/dist/clone/getTag.js +13 -0
  25. package/dist/clone/index.d.ts +3 -0
  26. package/dist/clone/index.js +4 -0
  27. package/dist/clone/symbols.d.ts +4 -0
  28. package/dist/clone/symbols.js +13 -0
  29. package/dist/clone/tags.d.ts +25 -0
  30. package/dist/clone/tags.js +48 -0
  31. package/dist/dom/event.d.ts +5 -0
  32. package/dist/dom/event.js +26 -0
  33. package/dist/dom/index.d.ts +5 -0
  34. package/dist/dom/index.js +6 -0
  35. package/dist/dom/measure.d.ts +12 -0
  36. package/dist/dom/measure.js +42 -0
  37. package/dist/dom/raf.d.ts +7 -0
  38. package/dist/dom/raf.js +44 -0
  39. package/dist/dom/scroll.d.ts +10 -0
  40. package/dist/dom/scroll.js +74 -0
  41. package/dist/file/config.d.ts +10 -0
  42. package/dist/file/config.js +81 -0
  43. package/dist/file/convert.d.ts +8 -0
  44. package/dist/file/convert.js +69 -0
  45. package/dist/file/index.d.ts +5 -0
  46. package/dist/file/index.js +6 -0
  47. package/dist/file/media.d.ts +16 -0
  48. package/dist/file/media.js +161 -0
  49. package/dist/file/type.d.ts +6 -0
  50. package/dist/file/type.js +58 -0
  51. package/dist/function/copy.d.ts +6 -0
  52. package/dist/function/copy.js +13 -0
  53. package/dist/function/getValue.d.ts +5 -0
  54. package/dist/function/getValue.js +19 -0
  55. package/dist/function/index.d.ts +5 -0
  56. package/dist/function/index.js +6 -0
  57. package/dist/function/object.d.ts +6 -0
  58. package/dist/function/object.js +33 -0
  59. package/dist/function/run.d.ts +4 -0
  60. package/dist/function/run.js +15 -0
  61. package/dist/index.d.ts +58 -26
  62. package/dist/index.js +60 -0
  63. package/dist/is/base64.d.ts +5 -0
  64. package/dist/is/base64.js +27 -0
  65. package/dist/is/browser.d.ts +4 -0
  66. package/dist/is/browser.js +14 -0
  67. package/dist/is/deepEqual.d.ts +4 -0
  68. package/dist/is/deepEqual.js +62 -0
  69. package/dist/is/device.d.ts +6 -0
  70. package/dist/is/device.js +37 -0
  71. package/dist/is/equal.d.ts +4 -0
  72. package/dist/is/equal.js +34 -0
  73. package/dist/is/img.d.ts +4 -0
  74. package/dist/is/img.js +13 -0
  75. package/dist/is/index.d.ts +16 -0
  76. package/dist/is/index.js +17 -0
  77. package/dist/is/nil.d.ts +5 -0
  78. package/dist/is/nil.js +22 -0
  79. package/dist/is/plainObject.d.ts +5 -0
  80. package/dist/is/plainObject.js +30 -0
  81. package/dist/is/primitive.d.ts +4 -0
  82. package/dist/is/primitive.js +13 -0
  83. package/dist/is/server.d.ts +4 -0
  84. package/dist/is/server.js +10 -0
  85. package/dist/is/type.d.ts +11 -0
  86. package/dist/is/type.js +84 -0
  87. package/dist/is/typedArray.d.ts +4 -0
  88. package/dist/is/typedArray.js +33 -0
  89. package/dist/is/unsafeProperty.d.ts +4 -0
  90. package/dist/is/unsafeProperty.js +18 -0
  91. package/dist/is/url.d.ts +4 -0
  92. package/dist/is/url.js +20 -0
  93. package/dist/is/valid.d.ts +5 -0
  94. package/dist/is/valid.js +23 -0
  95. package/dist/merge/index.d.ts +6 -49
  96. package/dist/merge/index.js +41 -0
  97. package/dist/merge/mergeWith.d.ts +4 -49
  98. package/dist/merge/mergeWith.js +31 -0
  99. package/dist/number/chinese.d.ts +4 -0
  100. package/dist/number/chinese.js +46 -0
  101. package/dist/number/format.d.ts +13 -0
  102. package/dist/number/format.js +72 -0
  103. package/dist/number/index.d.ts +3 -0
  104. package/dist/number/index.js +4 -0
  105. package/dist/object/classNames.d.ts +4 -0
  106. package/dist/object/classNames.js +30 -0
  107. package/dist/object/index.d.ts +5 -0
  108. package/dist/object/index.js +6 -0
  109. package/dist/object/omitBoolean.d.ts +4 -0
  110. package/dist/object/omitBoolean.js +13 -0
  111. package/dist/object/omitUndefined.d.ts +6 -0
  112. package/dist/object/omitUndefined.js +18 -0
  113. package/dist/object/omitUndefinedAndEmptyArr.d.ts +4 -0
  114. package/dist/object/omitUndefinedAndEmptyArr.js +19 -0
  115. package/dist/pro-utils.js +1 -1166
  116. package/dist/string/duration.d.ts +4 -0
  117. package/dist/string/duration.js +25 -0
  118. package/dist/string/empty.d.ts +7 -0
  119. package/dist/string/empty.js +26 -0
  120. package/dist/string/index.d.ts +5 -0
  121. package/dist/string/index.js +6 -0
  122. package/dist/string/nanoid.d.ts +4 -0
  123. package/dist/string/nanoid.js +32 -0
  124. package/dist/string/uuid.d.ts +9 -0
  125. package/dist/string/uuid.js +57 -0
  126. package/dist/table/column.d.ts +13 -0
  127. package/dist/table/column.js +42 -0
  128. package/dist/table/index.d.ts +3 -0
  129. package/dist/table/index.js +4 -0
  130. package/dist/table/page.d.ts +6 -0
  131. package/dist/table/page.js +23 -0
  132. package/dist/typing.d.ts +37 -0
  133. package/dist/typing.js +1 -0
  134. package/dist/vue/index.d.ts +2 -0
  135. package/dist/vue/index.js +3 -0
  136. package/dist/vue/slots.d.ts +56 -0
  137. package/dist/vue/slots.js +89 -0
  138. package/package.json +48 -23
  139. package/dist/classNames/index.d.ts +0 -2
  140. package/dist/cloneDeep/cloneDeepWith.d.ts +0 -43
  141. package/dist/cloneDeep/index.d.ts +0 -47
  142. package/dist/getValueFromObjectByKey/index.d.ts +0 -3
  143. package/dist/isBrowser/index.d.ts +0 -1
  144. package/dist/isDeepEqualReact/index.d.ts +0 -1
  145. package/dist/isImg/index.d.ts +0 -2
  146. package/dist/isNil/index.d.ts +0 -1
  147. package/dist/isServer.d.ts +0 -2
  148. package/dist/isUrl/index.d.ts +0 -6
  149. package/dist/merge/useDeepMege.d.ts +0 -43
  150. package/dist/nanoid/index.d.ts +0 -6
  151. package/dist/omitBoolean/index.d.ts +0 -6
  152. package/dist/omitUndefined/index.d.ts +0 -2
  153. package/dist/omitUndefinedAndEmptyArr/index.d.ts +0 -1
  154. package/dist/pro-utils.umd.cjs +0 -13
  155. package/dist/scroll/easings.d.ts +0 -1
  156. package/dist/scroll/getScroll.d.ts +0 -2
  157. package/dist/scroll/index.d.ts +0 -4
  158. package/dist/scroll/scrollTo.d.ts +0 -10
  159. package/dist/scroll/throttleByAnimationFrame.d.ts +0 -5
  160. package/dist/slots/index.d.ts +0 -68
  161. package/dist/typings/index.d.ts +0 -40
  162. package/dist/utils/config.d.ts +0 -7
  163. package/dist/utils/getSymbols.d.ts +0 -1
  164. package/dist/utils/getTag.d.ts +0 -8
  165. package/dist/utils/index.d.ts +0 -333
  166. package/dist/utils/isEqual.d.ts +0 -9
  167. package/dist/utils/isNotNil.d.ts +0 -1
  168. package/dist/utils/isPlainObject.d.ts +0 -43
  169. package/dist/utils/isPrimitive.d.ts +0 -29
  170. package/dist/utils/isTypedArray.d.ts +0 -27
  171. package/dist/utils/isUnsafeProperty.d.ts +0 -11
  172. package/dist/utils/isValid.d.ts +0 -2
  173. package/dist/utils/raf.d.ts +0 -5
  174. package/dist/utils/tags.d.ts +0 -26
  175. package/dist/utils/validate.d.ts +0 -28
@@ -1,49 +1,4 @@
1
- /**
2
- * Merges the properties of the source object into the target object.
3
- *
4
- * You can provide a custom `merge` function to control how properties are merged. It should return the value to be set in the target object.
5
- *
6
- * If it returns `undefined`, a default deep merge will be applied for arrays and objects:
7
- *
8
- * - If a property in the source object is an array or an object and the corresponding property in the target object is also an array or object, they will be merged.
9
- * - If a property in the source object is undefined, it will not overwrite a defined property in the target object.
10
- *
11
- * Note that this function mutates the target object.
12
- *
13
- * @param {T} target - The target object into which the source object properties will be merged. This object is modified in place.
14
- * @param {S} source - The source object whose properties will be merged into the target object.
15
- * @param {(targetValue: any, sourceValue: any, key: string, target: T, source: S) => any} merge - A custom merge function that defines how properties should be combined. It receives the following arguments:
16
- * - `targetValue`: The current value of the property in the target object.
17
- * - `sourceValue`: The value of the property in the source object.
18
- * - `key`: The key of the property being merged.
19
- * - `target`: The target object.
20
- * - `source`: The source object.
21
- *
22
- * @returns {T & S} The updated target object with properties from the source object merged in.
23
- *
24
- * @template T - Type of the target object.
25
- * @template S - Type of the source object.
26
- *
27
- * @example
28
- * const target = { a: 1, b: 2 };
29
- * const source = { b: 3, c: 4 };
30
- *
31
- * mergeWith(target, source, (targetValue, sourceValue) => {
32
- * if (typeof targetValue === 'number' && typeof sourceValue === 'number') {
33
- * return targetValue + sourceValue;
34
- * }
35
- * });
36
- * // Returns { a: 1, b: 5, c: 4 }
37
- * @example
38
- * const target = { a: [1], b: [2] };
39
- * const source = { a: [3], b: [4] };
40
- *
41
- * const result = mergeWith(target, source, (objValue, srcValue) => {
42
- * if (Array.isArray(objValue)) {
43
- * return objValue.concat(srcValue);
44
- * }
45
- * });
46
- *
47
- * expect(result).toEqual({ a: [1, 3], b: [2, 4] });
48
- */
49
- export declare function mergeWith<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S, merge: (targetValue: any, sourceValue: any, key: string, target: T, source: S) => any): T & S;
1
+ //#region src/merge/mergeWith.d.ts
2
+ declare function mergeWith<T extends Record<PropertyKey, any>, S extends Record<PropertyKey, any>>(target: T, source: S, merge: (targetValue: any, sourceValue: any, key: string, target: T, source: S) => any): T & S;
3
+ //#endregion
4
+ export { mergeWith };
@@ -0,0 +1,31 @@
1
+ import { isPlainObject } from "../is/plainObject.js";
2
+ import { isUnsafeProperty } from "../is/unsafeProperty.js";
3
+ import "../is/index.js";
4
+
5
+ //#region src/merge/mergeWith.ts
6
+ /**
7
+ * 合并对象(带自定义处理)
8
+ *
9
+ * @param target - 目标对象
10
+ * @param source - 源对象
11
+ * @param merge - 自定义合并函数
12
+ * @returns 合并后的对象
13
+ */
14
+ function mergeWith(target, source, merge) {
15
+ const sourceKeys = Object.keys(source);
16
+ for (let i = 0; i < sourceKeys.length; i++) {
17
+ const key = sourceKeys[i];
18
+ if (isUnsafeProperty(key)) continue;
19
+ const sourceValue = source[key];
20
+ const targetValue = target[key];
21
+ const merged = merge(targetValue, sourceValue, key, target, source);
22
+ if (merged !== void 0) target[key] = merged;
23
+ else if (isPlainObject(sourceValue)) if (isPlainObject(targetValue)) target[key] = mergeWith(targetValue, sourceValue, merge);
24
+ else target[key] = mergeWith({}, sourceValue, merge);
25
+ else target[key] = sourceValue;
26
+ }
27
+ return target;
28
+ }
29
+
30
+ //#endregion
31
+ export { mergeWith };
@@ -0,0 +1,4 @@
1
+ //#region src/number/chinese.d.ts
2
+ declare function toChinesNum(num: number): string;
3
+ //#endregion
4
+ export { toChinesNum };
@@ -0,0 +1,46 @@
1
+ import { isNumber } from "../is/type.js";
2
+ import "../is/index.js";
3
+
4
+ //#region src/number/chinese.ts
5
+ /**
6
+ * 数字转中文
7
+ *
8
+ * @param num - 要转换的数字
9
+ * @returns 中文数字
10
+ */
11
+ function toChinesNum(num) {
12
+ num = isNumber(num) && !Number.isNaN(num) ? num : 0;
13
+ const changeNum = [
14
+ "零",
15
+ "一",
16
+ "二",
17
+ "三",
18
+ "四",
19
+ "五",
20
+ "六",
21
+ "七",
22
+ "八",
23
+ "九"
24
+ ];
25
+ const unit = [
26
+ "",
27
+ "十",
28
+ "百",
29
+ "千",
30
+ "万"
31
+ ];
32
+ num = Number.parseInt(`${num}`);
33
+ const getWan = (temp) => {
34
+ const strArr = temp.toString().split("").reverse();
35
+ let newNum = "";
36
+ for (let i = 0; i < strArr.length; i++) newNum = (i === 0 && strArr[i] === "0" ? "" : i > 0 && strArr[i] === "0" && strArr[i - 1] === "0" ? "" : (num < 20 && i > 0 ? "" : changeNum[strArr[i]]) + (strArr[i] === "0" ? unit[0] : unit[i])) + newNum;
37
+ return newNum;
38
+ };
39
+ const overWan = Math.floor(num / 1e4);
40
+ let noWan = num % 1e4;
41
+ if (noWan.toString().length < 4) noWan = `0${noWan}`;
42
+ return overWan ? `${getWan(overWan)}万${getWan(noWan)}` : getWan(num);
43
+ }
44
+
45
+ //#endregion
46
+ export { toChinesNum };
@@ -0,0 +1,13 @@
1
+ //#region src/number/format.d.ts
2
+ declare function formatNumber(fixedNum: number, value: number): string;
3
+ declare function toConvertNumberShow(number: number, options?: {
4
+ toChinese?: boolean;
5
+ fixed?: number;
6
+ min?: number;
7
+ }): {
8
+ str: string;
9
+ number: string;
10
+ unit?: string;
11
+ };
12
+ //#endregion
13
+ export { formatNumber, toConvertNumberShow };
@@ -0,0 +1,72 @@
1
+ import { isNumber } from "../is/type.js";
2
+ import "../is/index.js";
3
+
4
+ //#region src/number/format.ts
5
+ /**
6
+ * 格式化数字,保留指定小数位
7
+ *
8
+ * @param fixedNum - 小数位数
9
+ * @param value - 要格式化的值
10
+ * @returns 格式化后的字符串
11
+ */
12
+ function formatNumber(fixedNum, value) {
13
+ const regexPattern = `^\\d+(?:\\.\\d{0,${fixedNum}})?`;
14
+ const match = new RegExp(regexPattern);
15
+ const result = value.toString().match(match);
16
+ if (result) {
17
+ const formattedValue = result[0];
18
+ if (formattedValue.includes(".")) {
19
+ const [integerPart, decimalPart] = formattedValue.split(".");
20
+ if (/^0*$/.test(decimalPart)) return integerPart;
21
+ }
22
+ return formattedValue;
23
+ }
24
+ return value.toString();
25
+ }
26
+ /**
27
+ * 转换数字为带单位的显示格式
28
+ *
29
+ * @param number - 要转换的数字
30
+ * @param options - 配置选项
31
+ * @returns 转换结果
32
+ */
33
+ function toConvertNumberShow(number, options) {
34
+ const { toChinese = false, fixed = 2, min = 1e4 } = options || {};
35
+ const minCount = isNumber(min) ? min : 1e4;
36
+ const fixedNum = isNumber(fixed) ? fixed : 2;
37
+ const countStr = toChinese ? number < minCount ? "" : number < 1e8 ? "万" : "亿" : number < minCount ? "" : number < 1e8 ? "w" : "亿";
38
+ if (!isNumber(number)) return {
39
+ str: `${number}`,
40
+ number: `${number}`
41
+ };
42
+ if (number < minCount) return {
43
+ str: `${number}`,
44
+ number: `${number}`
45
+ };
46
+ if (fixedNum === 0) {
47
+ const numStr = (number / (number < 1e8 ? 1e4 : 1e8)).toFixed(1).split(".")[0];
48
+ return {
49
+ str: `${numStr}${countStr}`,
50
+ number: numStr,
51
+ unit: countStr
52
+ };
53
+ }
54
+ let value;
55
+ if (number < 1e8) {
56
+ value = formatNumber(fixedNum, number / 1e4);
57
+ return {
58
+ str: value + countStr,
59
+ number: value,
60
+ unit: countStr
61
+ };
62
+ }
63
+ value = formatNumber(fixedNum, number / 1e8);
64
+ return {
65
+ str: value + countStr,
66
+ number: value,
67
+ unit: countStr
68
+ };
69
+ }
70
+
71
+ //#endregion
72
+ export { formatNumber, toConvertNumberShow };
@@ -0,0 +1,3 @@
1
+ import { toChinesNum } from "./chinese.js";
2
+ import { formatNumber, toConvertNumberShow } from "./format.js";
3
+ export { formatNumber, toChinesNum, toConvertNumberShow };
@@ -0,0 +1,4 @@
1
+ import { toChinesNum } from "./chinese.js";
2
+ import { formatNumber, toConvertNumberShow } from "./format.js";
3
+
4
+ export { formatNumber, toChinesNum, toConvertNumberShow };
@@ -0,0 +1,4 @@
1
+ //#region src/object/classNames.d.ts
2
+ declare function classNames(...args: any[]): string;
3
+ //#endregion
4
+ export { classNames as default };
@@ -0,0 +1,30 @@
1
+ import { isArray, isObject, isString } from "../is/type.js";
2
+ import "../is/index.js";
3
+
4
+ //#region src/object/classNames.ts
5
+ /**
6
+ * 类名合并工具
7
+ *
8
+ * @param args - 类名参数
9
+ * @returns 合并后的类名字符串
10
+ */
11
+ function classNames(...args) {
12
+ const classes = [];
13
+ for (let i = 0; i < args.length; i++) {
14
+ const value = args[i];
15
+ if (!value) continue;
16
+ if (isString(value)) classes.push(value);
17
+ else if (isArray(value)) for (let i = 0; i < value.length; i++) {
18
+ const inner = classNames(value[i]);
19
+ if (inner) classes.push(inner);
20
+ }
21
+ else if (isObject(value)) {
22
+ for (const name in value) if (value[name]) classes.push(name);
23
+ }
24
+ }
25
+ return classes.filter((el) => el).join(" ");
26
+ }
27
+ var classNames_default = classNames;
28
+
29
+ //#endregion
30
+ export { classNames_default as default };
@@ -0,0 +1,5 @@
1
+ import classNames from "./classNames.js";
2
+ import { omitBoolean } from "./omitBoolean.js";
3
+ import { omitUndefined } from "./omitUndefined.js";
4
+ import { omitUndefinedAndEmptyArr } from "./omitUndefinedAndEmptyArr.js";
5
+ export { classNames, omitBoolean, omitUndefined, omitUndefinedAndEmptyArr };
@@ -0,0 +1,6 @@
1
+ import classNames_default from "./classNames.js";
2
+ import { omitBoolean } from "./omitBoolean.js";
3
+ import { omitUndefined } from "./omitUndefined.js";
4
+ import { omitUndefinedAndEmptyArr } from "./omitUndefinedAndEmptyArr.js";
5
+
6
+ export { classNames_default as classNames, omitBoolean, omitUndefined, omitUndefinedAndEmptyArr };
@@ -0,0 +1,4 @@
1
+ //#region src/object/omitBoolean.d.ts
2
+ declare function omitBoolean<T>(obj: boolean | T): T | undefined;
3
+ //#endregion
4
+ export { omitBoolean };
@@ -0,0 +1,13 @@
1
+ //#region src/object/omitBoolean.ts
2
+ /**
3
+ * 剔除 boolean 值
4
+ *
5
+ * @param obj - 要处理的对象
6
+ * @returns 处理后的值
7
+ */
8
+ function omitBoolean(obj) {
9
+ if (obj && obj !== true) return obj;
10
+ }
11
+
12
+ //#endregion
13
+ export { omitBoolean };
@@ -0,0 +1,6 @@
1
+ import { OmitUndefined } from "../typing.js";
2
+
3
+ //#region src/object/omitUndefined.d.ts
4
+ declare function omitUndefined<T extends Record<string, any>>(obj: T): OmitUndefined<T>;
5
+ //#endregion
6
+ export { omitUndefined };
@@ -0,0 +1,18 @@
1
+ //#region src/object/omitUndefined.ts
2
+ /**
3
+ * 剔除 undefined 值
4
+ *
5
+ * @param obj - 要处理的对象
6
+ * @returns 处理后的对象
7
+ */
8
+ function omitUndefined(obj) {
9
+ const newObj = {};
10
+ Object.keys(obj || {}).forEach((key) => {
11
+ if (obj[key] !== void 0) newObj[key] = obj[key];
12
+ });
13
+ if (Object.keys(newObj).length < 1) return;
14
+ return newObj;
15
+ }
16
+
17
+ //#endregion
18
+ export { omitUndefined };
@@ -0,0 +1,4 @@
1
+ //#region src/object/omitUndefinedAndEmptyArr.d.ts
2
+ declare function omitUndefinedAndEmptyArr<T extends Record<string, any>>(obj: T): T;
3
+ //#endregion
4
+ export { omitUndefinedAndEmptyArr };
@@ -0,0 +1,19 @@
1
+ //#region src/object/omitUndefinedAndEmptyArr.ts
2
+ /**
3
+ * 剔除 undefined 和空数组
4
+ *
5
+ * @param obj - 要处理的对象
6
+ * @returns 处理后的对象
7
+ */
8
+ function omitUndefinedAndEmptyArr(obj) {
9
+ const newObj = {};
10
+ Object.keys(obj || {}).forEach((key) => {
11
+ if (Array.isArray(obj[key]) && obj[key]?.length === 0) return;
12
+ if (obj[key] === void 0) return;
13
+ newObj[key] = obj[key];
14
+ });
15
+ return newObj;
16
+ }
17
+
18
+ //#endregion
19
+ export { omitUndefinedAndEmptyArr };