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
@@ -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
  */
@@ -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/cjs/date.cjs 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
  */
@@ -35,9 +35,9 @@ const guessDateTimezone = value => {
35
35
  return d;
36
36
  };
37
37
  /**
38
- * 解析为Date对象
39
- * @param {DateValue} value - 可以是数值、字符串或 Date 对象
40
- * @returns {Date} - 转换后的目标Date
38
+ * 解析为 Date 对象(支持 Safari 兼容性处理)
39
+ * @param {DateValue} value - 时间戳、字符串或 Date 对象
40
+ * @returns {Date}
41
41
  */
42
42
  function dateParse(value) {
43
43
  const d1 = new Date(value);
@@ -57,46 +57,7 @@ function dateParse(value) {
57
57
  throw new SyntaxError(`${value.toString()} 不是一个合法的日期描述`);
58
58
  }
59
59
  /**
60
- * 格式化为日期对象(带自定义格式化模板)
61
- * @param {DateValue} value 可以是数值、字符串或 Date 对象
62
- * @param {string} [format] 模板,默认是 YYYY-MM-DD HH:mm:ss,模板字符:
63
- * - YYYY:年
64
- * - yyyy: 年
65
- * - MM:月
66
- * - DD:日
67
- * - dd: 日
68
- * - HH:时(24 小时制)
69
- * - hh:时(12 小时制)
70
- * - mm:分
71
- * - ss:秒
72
- * - SSS:毫秒
73
- * @returns {string}
74
- */
75
- // export const dateStringify = (value: DateValue, format = 'YYYY-MM-DD HH:mm:ss'): string => {
76
- // const date = dateParse(value);
77
- // let fmt = format;
78
- // let ret;
79
- // const opt: DateObj = {
80
- // 'Y+': `${date.getFullYear()}`, // 年
81
- // 'y+': `${date.getFullYear()}`, // 年
82
- // 'M+': `${date.getMonth() + 1}`, // 月
83
- // 'D+': `${date.getDate()}`, // 日
84
- // 'd+': `${date.getDate()}`, // 日
85
- // 'H+': `${date.getHours()}`, // 时
86
- // 'm+': `${date.getMinutes()}`, // 分
87
- // 's+': `${date.getSeconds()}`, // 秒
88
- // 'S+': `${date.getMilliseconds()}` // 豪秒
89
- // };
90
- // for (const k in opt) {
91
- // ret = new RegExp(`(${k})`).exec(fmt);
92
- // if (ret) {
93
- // fmt = fmt.replace(ret[1], ret[1].length === 1 ? opt[k] : opt[k].padStart(ret[1].length, '0'));
94
- // }
95
- // }
96
- // return fmt;
97
- // };
98
- /**
99
- * 将日期转换为一天的开始时间,即0点0分0秒0毫秒
60
+ * 将日期转换为一天的开始时间(00:00:00.000)
100
61
  * @param {DateValue} value
101
62
  * @returns {Date}
102
63
  */
@@ -105,7 +66,7 @@ function dateToStart(value) {
105
66
  return new Date(d.getFullYear(), d.getMonth(), d.getDate(), 0, 0, 0, 0);
106
67
  }
107
68
  /**
108
- * 将日期转换为一天的结束时间,即235959999毫秒
69
+ * 将日期转换为一天的结束时间(23:59:59.999
109
70
  * @param {DateValue} value
110
71
  * @returns {Date}
111
72
  */
@@ -115,26 +76,17 @@ function dateToEnd(value) {
115
76
  return dateParse(d.getTime() - 1);
116
77
  }
117
78
  /**
118
- * 格式化为日期对象 (带自定义格式化模板)
119
- * @param {Date} value - 可以是数值、字符串或 Date 对象
120
- * @param {string} [format] - 模板,默认是 YYYY-MM-DD HH:mm:ss,模板字符:
121
- * - YYYY/yyyy:年
122
- * - MM:月(补零)
123
- * - M:月(不补零)
124
- * - DD/dd:日(补零)
125
- * - D/d:日(不补零)
126
- * - HH:时(24 小时制,补零)
127
- * - H:时(24 小时制,不补零)
128
- * - mm:分(补零)
129
- * - m:分(不补零)
130
- * - ss:秒(补零)
131
- * - s:秒(不补零)
132
- * - SSS:毫秒(3 位)
133
- * - SS:毫秒(2 位)
134
- * - S:毫秒(1 位)
135
- * - ww:中文完整星期(如:周日)
136
- * - w:中文星期(如:周日)
137
- * @returns {string} 格式化后的日期字符串
79
+ * 格式化日期为字符串
80
+ * @param {Date} value - 时间戳、字符串或 Date 对象
81
+ * @param {string} [format] - 模板,默认 YYYY-MM-DD HH:mm:ss
82
+ * @returns {string} 格式化后的日期字符串
83
+ *
84
+ * 模板字符说明:
85
+ * - YYYY/yyyy:年 | MM:月(补零)| M:月(不补零)
86
+ * - DD/dd:日(补零)| D/d:日(不补零)
87
+ * - HH:时(24 小时制,补零)| H:时(不补零)
88
+ * - mm/m:分 | ss/s:秒 | SSS/SS/S:毫秒
89
+ * - ww/w:中文星期
138
90
  */
139
91
  function formatDate(value, format = 'YYYY-MM-DD HH:mm:ss') {
140
92
  const date = dateParse(value);
package/dist/cjs/dom.cjs 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/cjs/file.cjs 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
  */
@@ -197,7 +197,7 @@ function compressImg(file, options = { mime: 'image/jpeg', minFileSizeKB: 50 })
197
197
  beforeSrc: src,
198
198
  afterSrc: canvasURL,
199
199
  beforeKB: sizeKB,
200
- afterKB: Number((miniFile.size / 1024).toFixed(2))
200
+ afterKB: Number((Number(miniFile.size) / 1024).toFixed(2))
201
201
  });
202
202
  };
203
203
  image.src = src;
package/dist/cjs/func.cjs 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/cjs/math.cjs 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/cjs/path.cjs 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/cjs/qs.cjs 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
  */
@@ -132,13 +132,16 @@ const stringFill = (length, value = ' ') => new Array(length).fill(value).join('
132
132
  */
133
133
  function parseQueryParams(searchStr = location.search) {
134
134
  const queryObj = {};
135
- Array.from(searchStr.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach((item, i) => {
136
- if (!queryObj[item[1]]) {
137
- queryObj[item[1]] = item[2];
138
- } else if (typeof queryObj[item[1]] === 'string') {
139
- queryObj[item[1]] = [queryObj[item[1]], item[2]];
135
+ Array.from(searchStr.matchAll(/[&?]?([^=&]+)=?([^=&]*)/g)).forEach(item => {
136
+ const key = item[1];
137
+ const value = item[2];
138
+ const existing = queryObj[key];
139
+ if (!existing) {
140
+ queryObj[key] = value;
141
+ } else if (Array.isArray(existing)) {
142
+ existing.push(value);
140
143
  } else {
141
- queryObj[item[1]].push(item[2]);
144
+ queryObj[key] = [existing, value];
142
145
  }
143
146
  });
144
147
  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
  */