sculp-js 1.19.3 → 1.19.5

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 (66) hide show
  1. package/dist/cjs/array.cjs +1 -1
  2. package/dist/cjs/async.cjs +1 -1
  3. package/dist/cjs/base64.cjs +1 -1
  4. package/dist/cjs/clipboard.cjs +1 -1
  5. package/dist/cjs/cloneDeep.cjs +1 -1
  6. package/dist/cjs/cookie.cjs +1 -1
  7. package/dist/cjs/date.cjs +17 -65
  8. package/dist/cjs/dom.cjs +1 -1
  9. package/dist/cjs/download.cjs +1 -1
  10. package/dist/cjs/file.cjs +2 -2
  11. package/dist/cjs/func.cjs +1 -1
  12. package/dist/cjs/index.cjs +1 -1
  13. package/dist/cjs/isEqual.cjs +1 -1
  14. package/dist/cjs/math.cjs +1 -1
  15. package/dist/cjs/number.cjs +1 -1
  16. package/dist/cjs/object.cjs +1 -1
  17. package/dist/cjs/path.cjs +1 -1
  18. package/dist/cjs/qs.cjs +1 -1
  19. package/dist/cjs/random.cjs +1 -1
  20. package/dist/cjs/string.cjs +10 -7
  21. package/dist/cjs/tooltip.cjs +1 -1
  22. package/dist/cjs/tree.cjs +159 -180
  23. package/dist/cjs/type.cjs +1 -1
  24. package/dist/cjs/unicodeToolkit.cjs +3 -3
  25. package/dist/cjs/unique.cjs +1 -1
  26. package/dist/cjs/url.cjs +1 -1
  27. package/dist/cjs/validator.cjs +1 -1
  28. package/dist/cjs/variable.cjs +1 -1
  29. package/dist/cjs/watermark.cjs +1 -1
  30. package/dist/esm/array.mjs +1 -1
  31. package/dist/esm/async.mjs +1 -1
  32. package/dist/esm/base64.mjs +1 -1
  33. package/dist/esm/clipboard.mjs +1 -1
  34. package/dist/esm/cloneDeep.mjs +1 -1
  35. package/dist/esm/cookie.mjs +1 -1
  36. package/dist/esm/date.mjs +17 -65
  37. package/dist/esm/dom.mjs +1 -1
  38. package/dist/esm/download.mjs +1 -1
  39. package/dist/esm/file.mjs +2 -2
  40. package/dist/esm/func.mjs +1 -1
  41. package/dist/esm/index.mjs +1 -1
  42. package/dist/esm/isEqual.mjs +1 -1
  43. package/dist/esm/math.mjs +1 -1
  44. package/dist/esm/number.mjs +1 -1
  45. package/dist/esm/object.mjs +1 -1
  46. package/dist/esm/path.mjs +1 -1
  47. package/dist/esm/qs.mjs +1 -1
  48. package/dist/esm/random.mjs +1 -1
  49. package/dist/esm/string.mjs +10 -7
  50. package/dist/esm/tooltip.mjs +1 -1
  51. package/dist/esm/tree.mjs +159 -180
  52. package/dist/esm/type.mjs +1 -1
  53. package/dist/esm/unicodeToolkit.mjs +3 -3
  54. package/dist/esm/unique.mjs +1 -1
  55. package/dist/esm/url.mjs +1 -1
  56. package/dist/esm/validator.mjs +1 -1
  57. package/dist/esm/variable.mjs +1 -1
  58. package/dist/esm/watermark.mjs +1 -1
  59. package/dist/sculp-js.d.ts +2275 -0
  60. package/dist/types/date.d.ts +21 -57
  61. package/dist/types/file.d.ts +1 -1
  62. package/dist/types/tree.d.ts +12 -12
  63. package/dist/types/tsdoc-metadata.json +11 -0
  64. package/dist/types/unicodeToolkit.d.ts +2 -2
  65. package/dist/umd/index.min.js +2 -2
  66. package/package.json +147 -117
package/dist/esm/date.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -31,9 +31,9 @@ const guessDateTimezone = value => {
31
31
  return d;
32
32
  };
33
33
  /**
34
- * 解析为Date对象
35
- * @param {DateValue} value - 可以是数值、字符串或 Date 对象
36
- * @returns {Date} - 转换后的目标Date
34
+ * 解析为 Date 对象(支持 Safari 兼容性处理)
35
+ * @param {DateValue} value - 时间戳、字符串或 Date 对象
36
+ * @returns {Date}
37
37
  */
38
38
  function dateParse(value) {
39
39
  const d1 = new Date(value);
@@ -53,46 +53,7 @@ function dateParse(value) {
53
53
  throw new SyntaxError(`${value.toString()} 不是一个合法的日期描述`);
54
54
  }
55
55
  /**
56
- * 格式化为日期对象(带自定义格式化模板)
57
- * @param {DateValue} value 可以是数值、字符串或 Date 对象
58
- * @param {string} [format] 模板,默认是 YYYY-MM-DD HH:mm:ss,模板字符:
59
- * - YYYY:年
60
- * - yyyy: 年
61
- * - MM:月
62
- * - DD:日
63
- * - dd: 日
64
- * - HH:时(24 小时制)
65
- * - hh:时(12 小时制)
66
- * - mm:分
67
- * - ss:秒
68
- * - SSS:毫秒
69
- * @returns {string}
70
- */
71
- // export const dateStringify = (value: DateValue, format = 'YYYY-MM-DD HH:mm:ss'): string => {
72
- // const date = dateParse(value);
73
- // let fmt = format;
74
- // let ret;
75
- // const opt: DateObj = {
76
- // 'Y+': `${date.getFullYear()}`, // 年
77
- // 'y+': `${date.getFullYear()}`, // 年
78
- // 'M+': `${date.getMonth() + 1}`, // 月
79
- // 'D+': `${date.getDate()}`, // 日
80
- // 'd+': `${date.getDate()}`, // 日
81
- // 'H+': `${date.getHours()}`, // 时
82
- // 'm+': `${date.getMinutes()}`, // 分
83
- // 's+': `${date.getSeconds()}`, // 秒
84
- // 'S+': `${date.getMilliseconds()}` // 豪秒
85
- // };
86
- // for (const k in opt) {
87
- // ret = new RegExp(`(${k})`).exec(fmt);
88
- // if (ret) {
89
- // fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
90
- // }
91
- // }
92
- // return fmt;
93
- // };
94
- /**
95
- * 将日期转换为一天的开始时间,即0点0分0秒0毫秒
56
+ * 将日期转换为一天的开始时间(00:00:00.000)
96
57
  * @param {DateValue} value
97
58
  * @returns {Date}
98
59
  */
@@ -101,7 +62,7 @@ function dateToStart(value) {
101
62
  return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0);
102
63
  }
103
64
  /**
104
- * 将日期转换为一天的结束时间,即235959999毫秒
65
+ * 将日期转换为一天的结束时间(23:59:59.999
105
66
  * @param {DateValue} value
106
67
  * @returns {Date}
107
68
  */
@@ -111,26 +72,17 @@ function dateToEnd(value) {
111
72
  return dateParse(d.getTime() - 1);
112
73
  }
113
74
  /**
114
- * 格式化为日期对象 (带自定义格式化模板)
115
- * @param {Date} value - 可以是数值、字符串或 Date 对象
116
- * @param {string} [format] - 模板,默认是 YYYY-MM-DD HH:mm:ss,模板字符:
117
- * - YYYY/yyyy:年
118
- * - MM:月(补零)
119
- * - M:月(不补零)
120
- * - DD/dd:日(补零)
121
- * - D/d:日(不补零)
122
- * - HH:时(24 小时制,补零)
123
- * - H:时(24 小时制,不补零)
124
- * - mm:分(补零)
125
- * - m:分(不补零)
126
- * - ss:秒(补零)
127
- * - s:秒(不补零)
128
- * - SSS:毫秒(3 位)
129
- * - SS:毫秒(2 位)
130
- * - S:毫秒(1 位)
131
- * - ww:中文完整星期(如:周日)
132
- * - w:中文星期(如:周日)
133
- * @returns {string} 格式化后的日期字符串
75
+ * 格式化日期为字符串
76
+ * @param {Date} value - 时间戳、字符串或 Date 对象
77
+ * @param {string} [format] - 模板,默认 YYYY-MM-DD HH:mm:ss
78
+ * @returns {string} 格式化后的日期字符串
79
+ *
80
+ * 模板字符说明:
81
+ * - YYYY/yyyy:年 | MM:月(补零)| M:月(不补零)
82
+ * - DD/dd:日(补零)| D/d:日(不补零)
83
+ * - HH:时(24 小时制,补零)| H:时(不补零)
84
+ * - mm/m:分 | ss/s:秒 | SSS/SS/S:毫秒
85
+ * - ww/w:中文星期
134
86
  */
135
87
  function formatDate(value, format = 'YYYY-MM-DD HH:mm:ss') {
136
88
  const date = dateParse(value);
package/dist/esm/dom.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/file.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -193,7 +193,7 @@ function compressImg(file, options = { mime: 'image/jpeg', minFileSizeKB: 50 })
193
193
  beforeSrc: src,
194
194
  afterSrc: canvasURL,
195
195
  beforeKB: sizeKB,
196
- afterKB: Number((miniFile.size / 1024).toFixed(2))
196
+ afterKB: Number((Number(miniFile.size) / 1024).toFixed(2))
197
197
  });
198
198
  };
199
199
  image.src = src;
package/dist/esm/func.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/math.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/path.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
package/dist/esm/qs.mjs CHANGED
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */
@@ -128,13 +128,16 @@ const stringFill = (length, value = ' ') => new Array(length).fill(value).join('
128
128
  */
129
129
  function parseQueryParams(searchStr = location.search) {
130
130
  const queryObj = {};
131
- Array.from(searchStr.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach((item, i) => {
132
- if (!queryObj[item[1]]) {
133
- queryObj[item[1]] = item[2];
134
- } else if (typeof queryObj[item[1]] === 'string') {
135
- queryObj[item[1]] = [queryObj[item[1]], item[2]];
131
+ Array.from(searchStr.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach(item => {
132
+ const key = item[1];
133
+ const value = item[2];
134
+ const existing = queryObj[key];
135
+ if (!existing) {
136
+ queryObj[key] = value;
137
+ } else if (Array.isArray(existing)) {
138
+ existing.push(value);
136
139
  } else {
137
- queryObj[item[1]].push(item[2]);
140
+ queryObj[key] = [existing, value];
138
141
  }
139
142
  });
140
143
  return queryObj;
@@ -1,5 +1,5 @@
1
1
  /*!
2
- * sculp-js v1.19.3
2
+ * sculp-js v1.19.5
3
3
  * (c) 2023-present chandq
4
4
  * Released under the MIT License.
5
5
  */