@yelon/util 12.0.16 → 12.0.17

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 (224) hide show
  1. package/LICENSE +21 -21
  2. package/array/array-type.service.d.ts +68 -68
  3. package/array/array.service.d.ts +75 -75
  4. package/array/index.d.ts +2 -2
  5. package/array/yelon-util-array.d.ts +4 -4
  6. package/browser/browser.d.ts +4 -4
  7. package/browser/cookie.service.d.ts +64 -64
  8. package/browser/copy.d.ts +6 -6
  9. package/browser/index.d.ts +5 -5
  10. package/browser/is-empty.d.ts +6 -6
  11. package/browser/scroll.service.d.ts +34 -34
  12. package/browser/style.d.ts +21 -21
  13. package/bundles/browser.umd.js +275 -275
  14. package/bundles/yelon-util-array.umd.js +602 -602
  15. package/bundles/yelon-util-config.umd.js +366 -366
  16. package/bundles/yelon-util-date-time.umd.js +216 -216
  17. package/bundles/yelon-util-decorator.umd.js +437 -437
  18. package/bundles/yelon-util-form.umd.js +116 -116
  19. package/bundles/yelon-util-format.umd.js +726 -726
  20. package/bundles/yelon-util-math.umd.js +83 -83
  21. package/bundles/yelon-util-other.umd.js +652 -652
  22. package/bundles/yelon-util-pipes-currency.umd.js +83 -83
  23. package/bundles/yelon-util-pipes-filter.umd.js +353 -353
  24. package/bundles/yelon-util-pipes-format.umd.js +47 -47
  25. package/bundles/yelon-util-pipes.umd.js +7 -7
  26. package/bundles/yelon-util-token.umd.js +30 -30
  27. package/bundles/yelon-util.umd.js +7 -7
  28. package/config/abc/date-picker.type.d.ts +52 -52
  29. package/config/abc/error-collect.type.d.ts +10 -10
  30. package/config/abc/image.type.d.ts +15 -15
  31. package/config/abc/index.d.ts +16 -16
  32. package/config/abc/loading.type.d.ts +31 -31
  33. package/config/abc/lodop.type.d.ts +33 -33
  34. package/config/abc/media.type.d.ts +11 -11
  35. package/config/abc/onboarding.type.d.ts +4 -4
  36. package/config/abc/page-header.type.d.ts +39 -39
  37. package/config/abc/pdf.type.d.ts +35 -35
  38. package/config/abc/qr.type.d.ts +25 -25
  39. package/config/abc/se.type.d.ts +32 -32
  40. package/config/abc/sg.type.d.ts +10 -10
  41. package/config/abc/st.type.d.ts +427 -427
  42. package/config/abc/sv.type.d.ts +14 -14
  43. package/config/abc/xlsx.type.d.ts +12 -12
  44. package/config/abc/zip.type.d.ts +10 -10
  45. package/config/acl/acl.type.d.ts +32 -32
  46. package/config/auth/auth.type.d.ts +55 -55
  47. package/config/bis/bis.type.d.ts +7 -7
  48. package/config/cache/cache.type.d.ts +40 -40
  49. package/config/chart/chart.type.d.ts +33 -33
  50. package/config/config.service.d.ts +10 -10
  51. package/config/config.types.d.ts +49 -49
  52. package/config/index.d.ts +14 -14
  53. package/config/mock/mock.type.d.ts +18 -18
  54. package/config/sf/sf.type.d.ts +127 -127
  55. package/config/stomp/stomp.type.d.ts +2 -2
  56. package/config/theme/http.type.d.ts +14 -14
  57. package/config/theme/i18n.type.d.ts +8 -8
  58. package/config/theme/index.d.ts +3 -3
  59. package/config/theme/responsive.type.d.ts +12 -12
  60. package/config/util/array.type.d.ts +22 -22
  61. package/config/util/currency.type.d.ts +39 -39
  62. package/config/yelon-util-config.d.ts +4 -4
  63. package/date-time/index.d.ts +2 -2
  64. package/date-time/picker.d.ts +68 -68
  65. package/date-time/time.d.ts +26 -26
  66. package/date-time/yelon-util-date-time.d.ts +4 -4
  67. package/decorator/convert.d.ts +24 -24
  68. package/decorator/index.d.ts +2 -2
  69. package/decorator/yelon-util-decorator.d.ts +4 -4
  70. package/decorator/zone-outside.d.ts +35 -35
  71. package/esm2015/array/array-type.service.js +1 -1
  72. package/esm2015/array/array.service.js +249 -249
  73. package/esm2015/array/index.js +2 -2
  74. package/esm2015/array/yelon-util-array.js +4 -4
  75. package/esm2015/browser/browser.js +4 -4
  76. package/esm2015/browser/cookie.service.js +103 -103
  77. package/esm2015/browser/copy.js +26 -26
  78. package/esm2015/browser/index.js +5 -5
  79. package/esm2015/browser/is-empty.js +18 -18
  80. package/esm2015/browser/scroll.service.js +88 -88
  81. package/esm2015/browser/style.js +37 -37
  82. package/esm2015/config/abc/date-picker.type.js +1 -1
  83. package/esm2015/config/abc/error-collect.type.js +1 -1
  84. package/esm2015/config/abc/image.type.js +1 -1
  85. package/esm2015/config/abc/index.js +16 -16
  86. package/esm2015/config/abc/loading.type.js +1 -1
  87. package/esm2015/config/abc/lodop.type.js +1 -1
  88. package/esm2015/config/abc/media.type.js +1 -1
  89. package/esm2015/config/abc/onboarding.type.js +1 -1
  90. package/esm2015/config/abc/page-header.type.js +1 -1
  91. package/esm2015/config/abc/pdf.type.js +1 -1
  92. package/esm2015/config/abc/qr.type.js +1 -1
  93. package/esm2015/config/abc/se.type.js +1 -1
  94. package/esm2015/config/abc/sg.type.js +1 -1
  95. package/esm2015/config/abc/st.type.js +1 -1
  96. package/esm2015/config/abc/sv.type.js +2 -2
  97. package/esm2015/config/abc/xlsx.type.js +1 -1
  98. package/esm2015/config/abc/zip.type.js +1 -1
  99. package/esm2015/config/acl/acl.type.js +1 -1
  100. package/esm2015/config/auth/auth.type.js +1 -1
  101. package/esm2015/config/bis/bis.type.js +1 -1
  102. package/esm2015/config/cache/cache.type.js +1 -1
  103. package/esm2015/config/chart/chart.type.js +1 -1
  104. package/esm2015/config/config.service.js +33 -33
  105. package/esm2015/config/config.types.js +8 -8
  106. package/esm2015/config/index.js +14 -14
  107. package/esm2015/config/mock/mock.type.js +1 -1
  108. package/esm2015/config/sf/sf.type.js +1 -1
  109. package/esm2015/config/stomp/stomp.type.js +1 -1
  110. package/esm2015/config/theme/http.type.js +1 -1
  111. package/esm2015/config/theme/i18n.type.js +1 -1
  112. package/esm2015/config/theme/index.js +3 -3
  113. package/esm2015/config/theme/responsive.type.js +1 -1
  114. package/esm2015/config/util/array.type.js +1 -1
  115. package/esm2015/config/util/currency.type.js +1 -1
  116. package/esm2015/config/yelon-util-config.js +4 -4
  117. package/esm2015/date-time/index.js +2 -2
  118. package/esm2015/date-time/picker.js +115 -115
  119. package/esm2015/date-time/time.js +83 -83
  120. package/esm2015/date-time/yelon-util-date-time.js +4 -4
  121. package/esm2015/decorator/convert.js +55 -55
  122. package/esm2015/decorator/index.js +2 -2
  123. package/esm2015/decorator/yelon-util-decorator.js +4 -4
  124. package/esm2015/decorator/zone-outside.js +54 -54
  125. package/esm2015/form/index.js +2 -2
  126. package/esm2015/form/match-control.js +29 -29
  127. package/esm2015/form/validators.js +80 -80
  128. package/esm2015/form/yelon-util-form.js +4 -4
  129. package/esm2015/format/currency.service.js +224 -224
  130. package/esm2015/format/currency.types.js +7 -7
  131. package/esm2015/format/index.js +4 -4
  132. package/esm2015/format/string.js +75 -75
  133. package/esm2015/format/validate.js +93 -93
  134. package/esm2015/format/yelon-util-format.js +4 -4
  135. package/esm2015/index.js +11 -11
  136. package/esm2015/math/in-range.js +24 -24
  137. package/esm2015/math/index.js +2 -2
  138. package/esm2015/math/round.js +52 -52
  139. package/esm2015/math/yelon-util-math.js +4 -4
  140. package/esm2015/other/assert.js +66 -66
  141. package/esm2015/other/deep.js +75 -75
  142. package/esm2015/other/index.js +4 -4
  143. package/esm2015/other/lazy.service.js +117 -117
  144. package/esm2015/other/logger.js +32 -32
  145. package/esm2015/other/yelon-util-other.js +4 -4
  146. package/esm2015/pipes/currency/cny.pipe.js +21 -21
  147. package/esm2015/pipes/currency/index.js +3 -3
  148. package/esm2015/pipes/currency/mega.pipe.js +25 -25
  149. package/esm2015/pipes/currency/module.js +13 -13
  150. package/esm2015/pipes/currency/price.pipe.js +25 -25
  151. package/esm2015/pipes/currency/yelon-util-pipes-currency.js +5 -5
  152. package/esm2015/pipes/filter/filter.pipe.js +14 -14
  153. package/esm2015/pipes/filter/index.js +2 -2
  154. package/esm2015/pipes/filter/module.js +11 -11
  155. package/esm2015/pipes/filter/yelon-util-pipes-filter.js +4 -4
  156. package/esm2015/pipes/format/index.js +2 -2
  157. package/esm2015/pipes/format/mask.pipe.js +29 -29
  158. package/esm2015/pipes/format/module.js +11 -11
  159. package/esm2015/pipes/format/yelon-util-pipes-format.js +4 -4
  160. package/esm2015/pipes/index.js +3 -3
  161. package/esm2015/pipes/yelon-util-pipes.js +4 -4
  162. package/esm2015/token/index.js +2 -2
  163. package/esm2015/token/page-visibility.js +15 -15
  164. package/esm2015/token/window.js +16 -16
  165. package/esm2015/token/yelon-util-token.js +4 -4
  166. package/esm2015/yelon-util.js +4 -4
  167. package/fesm2015/browser.js +257 -257
  168. package/fesm2015/yelon-util-array.js +245 -245
  169. package/fesm2015/yelon-util-config.js +36 -36
  170. package/fesm2015/yelon-util-date-time.js +196 -196
  171. package/fesm2015/yelon-util-decorator.js +107 -107
  172. package/fesm2015/yelon-util-form.js +108 -108
  173. package/fesm2015/yelon-util-format.js +390 -390
  174. package/fesm2015/yelon-util-math.js +75 -75
  175. package/fesm2015/yelon-util-other.js +280 -280
  176. package/fesm2015/yelon-util-pipes-currency.js +72 -72
  177. package/fesm2015/yelon-util-pipes-filter.js +22 -22
  178. package/fesm2015/yelon-util-pipes-format.js +36 -36
  179. package/fesm2015/yelon-util-pipes.js +2 -2
  180. package/fesm2015/yelon-util-token.js +25 -25
  181. package/fesm2015/yelon-util.js +2 -2
  182. package/form/index.d.ts +2 -2
  183. package/form/match-control.d.ts +15 -15
  184. package/form/validators.d.ts +62 -62
  185. package/form/yelon-util-form.d.ts +4 -4
  186. package/format/currency.service.d.ts +34 -34
  187. package/format/currency.types.d.ts +77 -77
  188. package/format/index.d.ts +4 -4
  189. package/format/string.d.ts +44 -44
  190. package/format/validate.d.ts +72 -72
  191. package/format/yelon-util-format.d.ts +4 -4
  192. package/index.d.ts +11 -11
  193. package/math/in-range.d.ts +14 -14
  194. package/math/index.d.ts +2 -2
  195. package/math/round.d.ts +33 -33
  196. package/math/yelon-util-math.d.ts +4 -4
  197. package/other/assert.d.ts +36 -36
  198. package/other/deep.d.ts +33 -33
  199. package/other/index.d.ts +4 -4
  200. package/other/lazy.service.d.ts +22 -22
  201. package/other/logger.d.ts +5 -5
  202. package/other/yelon-util-other.d.ts +4 -4
  203. package/package.json +1 -1
  204. package/pipes/currency/cny.pipe.d.ts +12 -12
  205. package/pipes/currency/index.d.ts +3 -3
  206. package/pipes/currency/mega.pipe.d.ts +13 -13
  207. package/pipes/currency/module.d.ts +2 -2
  208. package/pipes/currency/price.pipe.d.ts +16 -16
  209. package/pipes/currency/yelon-util-pipes-currency.d.ts +5 -5
  210. package/pipes/filter/filter.pipe.d.ts +10 -10
  211. package/pipes/filter/index.d.ts +2 -2
  212. package/pipes/filter/module.d.ts +2 -2
  213. package/pipes/filter/yelon-util-pipes-filter.d.ts +4 -4
  214. package/pipes/format/index.d.ts +2 -2
  215. package/pipes/format/mask.pipe.d.ts +24 -24
  216. package/pipes/format/module.d.ts +2 -2
  217. package/pipes/format/yelon-util-pipes-format.d.ts +4 -4
  218. package/pipes/index.d.ts +3 -3
  219. package/pipes/yelon-util-pipes.d.ts +4 -4
  220. package/token/index.d.ts +2 -2
  221. package/token/page-visibility.d.ts +8 -8
  222. package/token/window.d.ts +7 -7
  223. package/token/yelon-util-token.d.ts +4 -4
  224. package/yelon-util.d.ts +4 -4
@@ -1,205 +1,205 @@
1
1
  import { parse, addDays, startOfYear, subYears, endOfYear, startOfMonth, subMonths, endOfMonth, startOfWeek, subWeeks, endOfWeek, startOfDay, endOfDay, parseISO, format, differenceInCalendarDays, addSeconds } from 'date-fns';
2
2
 
3
- /**
4
- * Get the time range, return `[ Date, Date]` for the start and end dates
5
- *
6
- * 获取时间范围
7
- *
8
- * @param type 类型,带 `-` 表示过去一个时间,若指定 `number` 表示天数
9
- * @param time 开始时间
10
- */
11
- function getTimeDistance(type, time) {
12
- time = time
13
- ? typeof time === 'string'
14
- ? parse(time, 'yyyy-MM-dd HH:mm:ss', new Date())
15
- : new Date(time)
16
- : new Date();
17
- const options = { weekStartsOn: 1 };
18
- let res;
19
- switch (type) {
20
- case 'today':
21
- res = [time, time];
22
- break;
23
- case '-today':
24
- res = [addDays(time, -1), time];
25
- break;
26
- case 'yesterday':
27
- res = [addDays(time, -1), addDays(time, -1)];
28
- break;
29
- case 'week':
30
- res = [startOfWeek(time, options), endOfWeek(time, options)];
31
- break;
32
- case '-week':
33
- res = [startOfWeek(subWeeks(time, 1), options), endOfWeek(subWeeks(time, 1), options)];
34
- break;
35
- case 'month':
36
- res = [startOfMonth(time), endOfMonth(time)];
37
- break;
38
- case '-month':
39
- res = [startOfMonth(subMonths(time, 1)), endOfMonth(subMonths(time, 1))];
40
- break;
41
- case 'year':
42
- res = [startOfYear(time), endOfYear(time)];
43
- break;
44
- case '-year':
45
- res = [startOfYear(subYears(time, 1)), endOfYear(subYears(time, 1))];
46
- break;
47
- default:
48
- res = type > 0 ? [time, addDays(time, type)] : [addDays(time, type), time];
49
- break;
50
- }
51
- return fixEndTimeOfRange(res);
52
- }
53
- /**
54
- * fix time is the most, big value
55
- */
56
- function fixEndTimeOfRange(dates) {
57
- return [startOfDay(dates[0]), endOfDay(dates[1])];
58
- }
59
- /**
60
- * Return the date parsed from string using the given format string
61
- * - If the argument is a number, it is treated as a timestamp.
62
- *
63
- * @param formatString If parsing fails try to parse the date by pressing `formatString`
64
- * @param defaultValue If parsing fails returned default value, default: `new Date(NaN)`
65
- */
66
- function toDate(value, options) {
67
- if (typeof options === 'string')
68
- options = { formatString: options };
69
- const { formatString, defaultValue } = Object.assign({ formatString: 'yyyy-MM-dd HH:mm:ss', defaultValue: new Date(NaN) }, options);
70
- if (value == null) {
71
- return defaultValue;
72
- }
73
- if (value instanceof Date) {
74
- return value;
75
- }
76
- if (typeof value === 'number' || (typeof value === 'string' && /[0-9]{10,13}/.test(value))) {
77
- return new Date(+value);
78
- }
79
- let tryDate = parseISO(value);
80
- if (isNaN(tryDate)) {
81
- tryDate = parse(value, formatString, new Date());
82
- }
83
- return isNaN(tryDate) ? defaultValue : tryDate;
3
+ /**
4
+ * Get the time range, return `[ Date, Date]` for the start and end dates
5
+ *
6
+ * 获取时间范围
7
+ *
8
+ * @param type 类型,带 `-` 表示过去一个时间,若指定 `number` 表示天数
9
+ * @param time 开始时间
10
+ */
11
+ function getTimeDistance(type, time) {
12
+ time = time
13
+ ? typeof time === 'string'
14
+ ? parse(time, 'yyyy-MM-dd HH:mm:ss', new Date())
15
+ : new Date(time)
16
+ : new Date();
17
+ const options = { weekStartsOn: 1 };
18
+ let res;
19
+ switch (type) {
20
+ case 'today':
21
+ res = [time, time];
22
+ break;
23
+ case '-today':
24
+ res = [addDays(time, -1), time];
25
+ break;
26
+ case 'yesterday':
27
+ res = [addDays(time, -1), addDays(time, -1)];
28
+ break;
29
+ case 'week':
30
+ res = [startOfWeek(time, options), endOfWeek(time, options)];
31
+ break;
32
+ case '-week':
33
+ res = [startOfWeek(subWeeks(time, 1), options), endOfWeek(subWeeks(time, 1), options)];
34
+ break;
35
+ case 'month':
36
+ res = [startOfMonth(time), endOfMonth(time)];
37
+ break;
38
+ case '-month':
39
+ res = [startOfMonth(subMonths(time, 1)), endOfMonth(subMonths(time, 1))];
40
+ break;
41
+ case 'year':
42
+ res = [startOfYear(time), endOfYear(time)];
43
+ break;
44
+ case '-year':
45
+ res = [startOfYear(subYears(time, 1)), endOfYear(subYears(time, 1))];
46
+ break;
47
+ default:
48
+ res = type > 0 ? [time, addDays(time, type)] : [addDays(time, type), time];
49
+ break;
50
+ }
51
+ return fixEndTimeOfRange(res);
52
+ }
53
+ /**
54
+ * fix time is the most, big value
55
+ */
56
+ function fixEndTimeOfRange(dates) {
57
+ return [startOfDay(dates[0]), endOfDay(dates[1])];
58
+ }
59
+ /**
60
+ * Return the date parsed from string using the given format string
61
+ * - If the argument is a number, it is treated as a timestamp.
62
+ *
63
+ * @param formatString If parsing fails try to parse the date by pressing `formatString`
64
+ * @param defaultValue If parsing fails returned default value, default: `new Date(NaN)`
65
+ */
66
+ function toDate(value, options) {
67
+ if (typeof options === 'string')
68
+ options = { formatString: options };
69
+ const { formatString, defaultValue } = Object.assign({ formatString: 'yyyy-MM-dd HH:mm:ss', defaultValue: new Date(NaN) }, options);
70
+ if (value == null) {
71
+ return defaultValue;
72
+ }
73
+ if (value instanceof Date) {
74
+ return value;
75
+ }
76
+ if (typeof value === 'number' || (typeof value === 'string' && /[0-9]{10,13}/.test(value))) {
77
+ return new Date(+value);
78
+ }
79
+ let tryDate = parseISO(value);
80
+ if (isNaN(tryDate)) {
81
+ tryDate = parse(value, formatString, new Date());
82
+ }
83
+ return isNaN(tryDate) ? defaultValue : tryDate;
84
84
  }
85
85
 
86
- // TODO: timezone process
87
- class DateTimePickerUtil {
88
- /**
89
- * Current local time
90
- *
91
- * 当前本地时间
92
- */
93
- get now() {
94
- return new Date();
95
- }
96
- /**
97
- * Current local date (not including time part)
98
- *
99
- * 当前本地日期(不包含时间部分)
100
- */
101
- get date() {
102
- return this.removeTime(this.now);
103
- }
104
- /**
105
- * Remove the time part of the date
106
- *
107
- * 移除日期的时间部分
108
- */
109
- removeTime(d) {
110
- return new Date(d.toDateString());
111
- }
112
- /**
113
- * Format date-time
114
- *
115
- * 格式化日期
116
- */
117
- format(d, formatString = 'yyyy-MM-dd HH:mm:ss') {
118
- return format(d, formatString);
119
- }
120
- genTick(count) {
121
- return new Array(count).fill(0).map((_, idx) => idx);
122
- }
123
- /**
124
- * Calculate the number of days between two dates, `0` means the same day
125
- *
126
- * 计算两个日期相差天数,`0` 表示同一天
127
- */
128
- getDiffDays(dateLeft, dateRight) {
129
- return differenceInCalendarDays(dateLeft, typeof dateRight === 'number' ? addDays(this.date, dateRight) : dateRight || this.date);
130
- }
131
- /**
132
- * Disabled Before date (Default: today), Generally serves `nzDisabledDate`
133
- *
134
- * 禁用之前日期(默认:今天),一般服务于 `nzDisabledDate`
135
- */
136
- disabledBeforeDate(options) {
137
- return (d) => this.getDiffDays(d, options === null || options === void 0 ? void 0 : options.offsetDays) < 0;
138
- }
139
- /**
140
- * Disabled After date (Default: today), Generally serves `nzDisabledDate`
141
- *
142
- * 禁用之后日期(默认:今天),一般服务于 `nzDisabledDate`
143
- */
144
- disabledAfterDate(options) {
145
- return (d) => this.getDiffDays(d, options === null || options === void 0 ? void 0 : options.offsetDays) > 0;
146
- }
147
- baseDisabledTime(type, offsetSeconds) {
148
- const tick24 = this.genTick(24);
149
- const tick60 = this.genTick(60);
150
- return (current) => {
151
- const cur = current;
152
- if (cur == null) {
153
- return {};
154
- }
155
- const now = addSeconds(this.now, offsetSeconds || 0);
156
- const nowHours = now.getHours();
157
- const nowMinutes = now.getMinutes();
158
- const curHours = cur.getHours();
159
- const isToday = this.getDiffDays(this.removeTime(cur)) === 0;
160
- return {
161
- nzDisabledHours: () => {
162
- if (!isToday)
163
- return [];
164
- return type === 'before' ? tick24.slice(0, nowHours) : tick24.slice(nowHours + 1);
165
- },
166
- nzDisabledMinutes: () => {
167
- if (isToday && curHours === nowHours) {
168
- return type === 'before' ? tick60.slice(0, nowMinutes) : tick60.slice(nowMinutes + 1);
169
- }
170
- return [];
171
- },
172
- nzDisabledSeconds: () => {
173
- if (isToday && curHours === nowHours && cur.getMinutes() === nowMinutes) {
174
- const nowSeconds = now.getSeconds();
175
- return type === 'before' ? tick60.slice(0, nowSeconds) : tick60.slice(nowSeconds + 1);
176
- }
177
- return [];
178
- }
179
- };
180
- };
181
- }
182
- /**
183
- * Disabled Before time (Default: now), Generally serves `nzDisabledTime`
184
- *
185
- * 禁用之前时间(默认:现在),一般服务于 `nzDisabledTime`
186
- */
187
- disabledBeforeTime(options) {
188
- return this.baseDisabledTime('before', options === null || options === void 0 ? void 0 : options.offsetSeconds);
189
- }
190
- /**
191
- * Disabled After time (Default: now), Generally serves `nzDisabledTime`
192
- *
193
- * 禁用之后时间(默认:现在),一般服务于 `nzDisabledTime`
194
- */
195
- disabledAfterTime(options) {
196
- return this.baseDisabledTime('after', options === null || options === void 0 ? void 0 : options.offsetSeconds);
197
- }
198
- }
86
+ // TODO: timezone process
87
+ class DateTimePickerUtil {
88
+ /**
89
+ * Current local time
90
+ *
91
+ * 当前本地时间
92
+ */
93
+ get now() {
94
+ return new Date();
95
+ }
96
+ /**
97
+ * Current local date (not including time part)
98
+ *
99
+ * 当前本地日期(不包含时间部分)
100
+ */
101
+ get date() {
102
+ return this.removeTime(this.now);
103
+ }
104
+ /**
105
+ * Remove the time part of the date
106
+ *
107
+ * 移除日期的时间部分
108
+ */
109
+ removeTime(d) {
110
+ return new Date(d.toDateString());
111
+ }
112
+ /**
113
+ * Format date-time
114
+ *
115
+ * 格式化日期
116
+ */
117
+ format(d, formatString = 'yyyy-MM-dd HH:mm:ss') {
118
+ return format(d, formatString);
119
+ }
120
+ genTick(count) {
121
+ return new Array(count).fill(0).map((_, idx) => idx);
122
+ }
123
+ /**
124
+ * Calculate the number of days between two dates, `0` means the same day
125
+ *
126
+ * 计算两个日期相差天数,`0` 表示同一天
127
+ */
128
+ getDiffDays(dateLeft, dateRight) {
129
+ return differenceInCalendarDays(dateLeft, typeof dateRight === 'number' ? addDays(this.date, dateRight) : dateRight || this.date);
130
+ }
131
+ /**
132
+ * Disabled Before date (Default: today), Generally serves `nzDisabledDate`
133
+ *
134
+ * 禁用之前日期(默认:今天),一般服务于 `nzDisabledDate`
135
+ */
136
+ disabledBeforeDate(options) {
137
+ return (d) => this.getDiffDays(d, options === null || options === void 0 ? void 0 : options.offsetDays) < 0;
138
+ }
139
+ /**
140
+ * Disabled After date (Default: today), Generally serves `nzDisabledDate`
141
+ *
142
+ * 禁用之后日期(默认:今天),一般服务于 `nzDisabledDate`
143
+ */
144
+ disabledAfterDate(options) {
145
+ return (d) => this.getDiffDays(d, options === null || options === void 0 ? void 0 : options.offsetDays) > 0;
146
+ }
147
+ baseDisabledTime(type, offsetSeconds) {
148
+ const tick24 = this.genTick(24);
149
+ const tick60 = this.genTick(60);
150
+ return (current) => {
151
+ const cur = current;
152
+ if (cur == null) {
153
+ return {};
154
+ }
155
+ const now = addSeconds(this.now, offsetSeconds || 0);
156
+ const nowHours = now.getHours();
157
+ const nowMinutes = now.getMinutes();
158
+ const curHours = cur.getHours();
159
+ const isToday = this.getDiffDays(this.removeTime(cur)) === 0;
160
+ return {
161
+ nzDisabledHours: () => {
162
+ if (!isToday)
163
+ return [];
164
+ return type === 'before' ? tick24.slice(0, nowHours) : tick24.slice(nowHours + 1);
165
+ },
166
+ nzDisabledMinutes: () => {
167
+ if (isToday && curHours === nowHours) {
168
+ return type === 'before' ? tick60.slice(0, nowMinutes) : tick60.slice(nowMinutes + 1);
169
+ }
170
+ return [];
171
+ },
172
+ nzDisabledSeconds: () => {
173
+ if (isToday && curHours === nowHours && cur.getMinutes() === nowMinutes) {
174
+ const nowSeconds = now.getSeconds();
175
+ return type === 'before' ? tick60.slice(0, nowSeconds) : tick60.slice(nowSeconds + 1);
176
+ }
177
+ return [];
178
+ }
179
+ };
180
+ };
181
+ }
182
+ /**
183
+ * Disabled Before time (Default: now), Generally serves `nzDisabledTime`
184
+ *
185
+ * 禁用之前时间(默认:现在),一般服务于 `nzDisabledTime`
186
+ */
187
+ disabledBeforeTime(options) {
188
+ return this.baseDisabledTime('before', options === null || options === void 0 ? void 0 : options.offsetSeconds);
189
+ }
190
+ /**
191
+ * Disabled After time (Default: now), Generally serves `nzDisabledTime`
192
+ *
193
+ * 禁用之后时间(默认:现在),一般服务于 `nzDisabledTime`
194
+ */
195
+ disabledAfterTime(options) {
196
+ return this.baseDisabledTime('after', options === null || options === void 0 ? void 0 : options.offsetSeconds);
197
+ }
198
+ }
199
199
  const dateTimePickerUtil = new DateTimePickerUtil();
200
200
 
201
- /**
202
- * Generated bundle index. Do not edit.
201
+ /**
202
+ * Generated bundle index. Do not edit.
203
203
  */
204
204
 
205
205
  export { DateTimePickerUtil, dateTimePickerUtil, fixEndTimeOfRange, getTimeDistance, toDate };
@@ -1,116 +1,116 @@
1
1
  import { warn } from '@yelon/util/other';
2
2
 
3
- function propDecoratorFactory(name, fallback, defaultValue) {
4
- function propDecorator(target, propName, originalDescriptor) {
5
- const privatePropName = `$$__${propName}`;
6
- if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
7
- warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
8
- }
9
- Object.defineProperty(target, privatePropName, {
10
- configurable: true,
11
- writable: true
12
- });
13
- return {
14
- get() {
15
- return originalDescriptor && originalDescriptor.get
16
- ? originalDescriptor.get.bind(this)()
17
- : this[privatePropName];
18
- },
19
- set(value) {
20
- if (originalDescriptor && originalDescriptor.set) {
21
- originalDescriptor.set.bind(this)(fallback(value, defaultValue));
22
- }
23
- this[privatePropName] = fallback(value, defaultValue);
24
- }
25
- };
26
- }
27
- return propDecorator;
28
- }
29
- function toBoolean(value, defaultValue = false) {
30
- return value == null ? defaultValue : `${value}` !== 'false';
31
- }
32
- /**
33
- * Input decorator that handle a prop to do get/set automatically with toBoolean
34
- *
35
- * ```ts
36
- * {AT}Input() {AT}InputBoolean() visible: boolean = false;
37
- * {AT}Input() {AT}InputBoolean(null) visible: boolean = false;
38
- * ```
39
- */
40
- function InputBoolean(defaultValue = false) {
41
- return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);
42
- }
43
- function toNumber(value, fallbackValue = 0) {
44
- return !isNaN(parseFloat(value)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;
45
- }
46
- /**
47
- * Input decorator that handle a prop to do get/set automatically with toNumber
48
- *
49
- * ```ts
50
- * {AT}Input() {AT}InputNumber() visible: number = 1;
51
- * {AT}Input() {AT}InputNumber(null) visible: number = 2;
52
- * ```
53
- */
54
- function InputNumber(defaultValue = 0) {
55
- return propDecoratorFactory('InputNumber', toNumber, defaultValue);
3
+ function propDecoratorFactory(name, fallback, defaultValue) {
4
+ function propDecorator(target, propName, originalDescriptor) {
5
+ const privatePropName = `$$__${propName}`;
6
+ if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
7
+ warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
8
+ }
9
+ Object.defineProperty(target, privatePropName, {
10
+ configurable: true,
11
+ writable: true
12
+ });
13
+ return {
14
+ get() {
15
+ return originalDescriptor && originalDescriptor.get
16
+ ? originalDescriptor.get.bind(this)()
17
+ : this[privatePropName];
18
+ },
19
+ set(value) {
20
+ if (originalDescriptor && originalDescriptor.set) {
21
+ originalDescriptor.set.bind(this)(fallback(value, defaultValue));
22
+ }
23
+ this[privatePropName] = fallback(value, defaultValue);
24
+ }
25
+ };
26
+ }
27
+ return propDecorator;
28
+ }
29
+ function toBoolean(value, defaultValue = false) {
30
+ return value == null ? defaultValue : `${value}` !== 'false';
31
+ }
32
+ /**
33
+ * Input decorator that handle a prop to do get/set automatically with toBoolean
34
+ *
35
+ * ```ts
36
+ * {AT}Input() {AT}InputBoolean() visible: boolean = false;
37
+ * {AT}Input() {AT}InputBoolean(null) visible: boolean = false;
38
+ * ```
39
+ */
40
+ function InputBoolean(defaultValue = false) {
41
+ return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);
42
+ }
43
+ function toNumber(value, fallbackValue = 0) {
44
+ return !isNaN(parseFloat(value)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;
45
+ }
46
+ /**
47
+ * Input decorator that handle a prop to do get/set automatically with toNumber
48
+ *
49
+ * ```ts
50
+ * {AT}Input() {AT}InputNumber() visible: number = 1;
51
+ * {AT}Input() {AT}InputNumber(null) visible: number = 2;
52
+ * ```
53
+ */
54
+ function InputNumber(defaultValue = 0) {
55
+ return propDecoratorFactory('InputNumber', toNumber, defaultValue);
56
56
  }
57
57
 
58
- function makeFn(type, options) {
59
- return (_, __, descriptor) => {
60
- const source = descriptor.value;
61
- descriptor.value = function (...data) {
62
- const that = this;
63
- const ngZone = that[(options === null || options === void 0 ? void 0 : options.ngZoneName) || 'ngZone'];
64
- if (!ngZone) {
65
- warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);
66
- return source.call(this, ...data);
67
- }
68
- let res;
69
- ngZone[type](() => {
70
- res = source.call(this, ...data);
71
- });
72
- return res;
73
- };
74
- return descriptor;
75
- };
76
- }
77
- /**
78
- * The decoration method runs in `runOutsideAngular`
79
- *
80
- * 装饰方法运行在 `runOutsideAngular` 内
81
- *
82
- * ```ts
83
- * class MockClass {
84
- * constructor(public ngZone: NgZone) {}
85
- *
86
- * {AT}ZoneOutside()
87
- * runOutsideAngular(): void {}
88
- * }
89
- * ```
90
- */
91
- function ZoneOutside(options) {
92
- return makeFn('runOutsideAngular', options);
93
- }
94
- /**
95
- * The decoration method runs in `run`
96
- *
97
- * 装饰方法运行在 `run` 内
98
- *
99
- * ```ts
100
- * class MockClass {
101
- * constructor(public ngZone: NgZone) {}
102
- *
103
- * {AT}ZoneRun()
104
- * run(): void {}
105
- * }
106
- * ```
107
- */
108
- function ZoneRun(options) {
109
- return makeFn('run', options);
58
+ function makeFn(type, options) {
59
+ return (_, __, descriptor) => {
60
+ const source = descriptor.value;
61
+ descriptor.value = function (...data) {
62
+ const that = this;
63
+ const ngZone = that[(options === null || options === void 0 ? void 0 : options.ngZoneName) || 'ngZone'];
64
+ if (!ngZone) {
65
+ warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);
66
+ return source.call(this, ...data);
67
+ }
68
+ let res;
69
+ ngZone[type](() => {
70
+ res = source.call(this, ...data);
71
+ });
72
+ return res;
73
+ };
74
+ return descriptor;
75
+ };
76
+ }
77
+ /**
78
+ * The decoration method runs in `runOutsideAngular`
79
+ *
80
+ * 装饰方法运行在 `runOutsideAngular` 内
81
+ *
82
+ * ```ts
83
+ * class MockClass {
84
+ * constructor(public ngZone: NgZone) {}
85
+ *
86
+ * {AT}ZoneOutside()
87
+ * runOutsideAngular(): void {}
88
+ * }
89
+ * ```
90
+ */
91
+ function ZoneOutside(options) {
92
+ return makeFn('runOutsideAngular', options);
93
+ }
94
+ /**
95
+ * The decoration method runs in `run`
96
+ *
97
+ * 装饰方法运行在 `run` 内
98
+ *
99
+ * ```ts
100
+ * class MockClass {
101
+ * constructor(public ngZone: NgZone) {}
102
+ *
103
+ * {AT}ZoneRun()
104
+ * run(): void {}
105
+ * }
106
+ * ```
107
+ */
108
+ function ZoneRun(options) {
109
+ return makeFn('run', options);
110
110
  }
111
111
 
112
- /**
113
- * Generated bundle index. Do not edit.
112
+ /**
113
+ * Generated bundle index. Do not edit.
114
114
  */
115
115
 
116
116
  export { InputBoolean, InputNumber, ZoneOutside, ZoneRun, toBoolean, toNumber };