@yelon/util 12.0.17 → 12.0.18

Sign up to get free protection for your applications and to get access to all the features.
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 };