@yelon/util 16.2.3 → 16.2.5-68d194e

Sign up to get free protection for your applications and to get access to all the features.
Files changed (243) hide show
  1. package/LICENSE +21 -21
  2. package/README.md +22 -22
  3. package/analysis/global-event.subject.d.ts +7 -7
  4. package/analysis/index.d.ts +1 -1
  5. package/array/array-type.service.d.ts +68 -68
  6. package/array/array.service.d.ts +78 -78
  7. package/array/index.d.ts +2 -2
  8. package/browser/cookie.service.d.ts +67 -67
  9. package/browser/copy.d.ts +6 -6
  10. package/browser/index.d.ts +5 -5
  11. package/browser/is-empty.d.ts +6 -6
  12. package/browser/scroll.service.d.ts +37 -37
  13. package/browser/style.d.ts +21 -21
  14. package/config/abc/cell.type.d.ts +118 -0
  15. package/config/abc/date-picker.type.d.ts +52 -52
  16. package/config/abc/error-collect.type.d.ts +10 -10
  17. package/config/abc/exception.type.d.ts +9 -9
  18. package/config/abc/image.type.d.ts +15 -15
  19. package/config/abc/index.d.ts +18 -17
  20. package/config/abc/loading.type.d.ts +31 -31
  21. package/config/abc/lodop.type.d.ts +33 -33
  22. package/config/abc/media.type.d.ts +11 -11
  23. package/config/abc/onboarding.type.d.ts +4 -4
  24. package/config/abc/page-header.type.d.ts +39 -39
  25. package/config/abc/pdf.type.d.ts +35 -35
  26. package/config/abc/qr.type.d.ts +25 -25
  27. package/config/abc/se.type.d.ts +32 -32
  28. package/config/abc/sg.type.d.ts +10 -10
  29. package/config/abc/st.type.d.ts +465 -465
  30. package/config/abc/sv.type.d.ts +14 -14
  31. package/config/abc/xlsx.type.d.ts +12 -12
  32. package/config/abc/zip.type.d.ts +10 -10
  33. package/config/acl/acl.type.d.ts +32 -32
  34. package/config/auth/auth.type.d.ts +55 -55
  35. package/config/bis/bis.type.d.ts +11 -11
  36. package/config/cache/cache.type.d.ts +40 -40
  37. package/config/chart/chart.type.d.ts +33 -33
  38. package/config/config.service.d.ts +13 -13
  39. package/config/config.types.d.ts +49 -48
  40. package/config/index.d.ts +14 -14
  41. package/config/mock/mock.type.d.ts +18 -18
  42. package/config/sf/sf.type.d.ts +133 -133
  43. package/config/socket/socket.type.d.ts +4 -4
  44. package/config/theme/http.type.d.ts +14 -14
  45. package/config/theme/i18n.type.d.ts +14 -14
  46. package/config/theme/index.d.ts +3 -3
  47. package/config/theme/responsive.type.d.ts +12 -12
  48. package/config/util/array.type.d.ts +22 -22
  49. package/config/util/currency.type.d.ts +39 -39
  50. package/date-time/index.d.ts +2 -2
  51. package/date-time/picker.d.ts +68 -68
  52. package/date-time/time.d.ts +31 -29
  53. package/decorator/convert.d.ts +24 -24
  54. package/decorator/index.d.ts +2 -2
  55. package/decorator/zone-outside.d.ts +35 -35
  56. package/esm2022/analysis/analysis.mjs +4 -4
  57. package/esm2022/analysis/global-event.subject.mjs +16 -16
  58. package/esm2022/analysis/index.mjs +1 -1
  59. package/esm2022/array/array-type.service.mjs +1 -1
  60. package/esm2022/array/array.mjs +4 -4
  61. package/esm2022/array/array.service.mjs +276 -276
  62. package/esm2022/array/index.mjs +2 -2
  63. package/esm2022/browser/browser.mjs +4 -4
  64. package/esm2022/browser/cookie.service.mjs +102 -102
  65. package/esm2022/browser/copy.mjs +27 -27
  66. package/esm2022/browser/index.mjs +5 -5
  67. package/esm2022/browser/is-empty.mjs +18 -18
  68. package/esm2022/browser/scroll.service.mjs +87 -87
  69. package/esm2022/browser/style.mjs +37 -37
  70. package/esm2022/config/abc/cell.type.mjs +2 -0
  71. package/esm2022/config/abc/date-picker.type.mjs +1 -1
  72. package/esm2022/config/abc/error-collect.type.mjs +1 -1
  73. package/esm2022/config/abc/exception.type.mjs +1 -1
  74. package/esm2022/config/abc/image.type.mjs +1 -1
  75. package/esm2022/config/abc/index.mjs +19 -18
  76. package/esm2022/config/abc/loading.type.mjs +1 -1
  77. package/esm2022/config/abc/lodop.type.mjs +1 -1
  78. package/esm2022/config/abc/media.type.mjs +1 -1
  79. package/esm2022/config/abc/onboarding.type.mjs +1 -1
  80. package/esm2022/config/abc/page-header.type.mjs +1 -1
  81. package/esm2022/config/abc/pdf.type.mjs +1 -1
  82. package/esm2022/config/abc/qr.type.mjs +1 -1
  83. package/esm2022/config/abc/se.type.mjs +1 -1
  84. package/esm2022/config/abc/sg.type.mjs +1 -1
  85. package/esm2022/config/abc/st.type.mjs +1 -1
  86. package/esm2022/config/abc/sv.type.mjs +2 -2
  87. package/esm2022/config/abc/xlsx.type.mjs +1 -1
  88. package/esm2022/config/abc/zip.type.mjs +1 -1
  89. package/esm2022/config/acl/acl.type.mjs +1 -1
  90. package/esm2022/config/auth/auth.type.mjs +1 -1
  91. package/esm2022/config/bis/bis.type.mjs +1 -1
  92. package/esm2022/config/cache/cache.type.mjs +1 -1
  93. package/esm2022/config/chart/chart.type.mjs +1 -1
  94. package/esm2022/config/config.mjs +4 -4
  95. package/esm2022/config/config.service.mjs +36 -36
  96. package/esm2022/config/config.types.mjs +9 -9
  97. package/esm2022/config/index.mjs +14 -14
  98. package/esm2022/config/mock/mock.type.mjs +1 -1
  99. package/esm2022/config/sf/sf.type.mjs +1 -1
  100. package/esm2022/config/socket/socket.type.mjs +1 -1
  101. package/esm2022/config/theme/http.type.mjs +1 -1
  102. package/esm2022/config/theme/i18n.type.mjs +1 -1
  103. package/esm2022/config/theme/index.mjs +3 -3
  104. package/esm2022/config/theme/responsive.type.mjs +1 -1
  105. package/esm2022/config/util/array.type.mjs +1 -1
  106. package/esm2022/config/util/currency.type.mjs +1 -1
  107. package/esm2022/date-time/date-time.mjs +4 -4
  108. package/esm2022/date-time/index.mjs +2 -2
  109. package/esm2022/date-time/picker.mjs +115 -115
  110. package/esm2022/date-time/time.mjs +96 -89
  111. package/esm2022/decorator/convert.mjs +57 -57
  112. package/esm2022/decorator/decorator.mjs +4 -4
  113. package/esm2022/decorator/index.mjs +2 -2
  114. package/esm2022/decorator/zone-outside.mjs +56 -56
  115. package/esm2022/form/form.mjs +4 -4
  116. package/esm2022/form/index.mjs +2 -2
  117. package/esm2022/form/match-control.mjs +29 -29
  118. package/esm2022/form/validators.mjs +80 -80
  119. package/esm2022/format/currency.service.mjs +237 -237
  120. package/esm2022/format/currency.types.mjs +8 -8
  121. package/esm2022/format/format.mjs +4 -4
  122. package/esm2022/format/index.mjs +4 -4
  123. package/esm2022/format/string.mjs +84 -84
  124. package/esm2022/format/validate.mjs +93 -93
  125. package/esm2022/index.mjs +14 -14
  126. package/esm2022/math/in-range.mjs +24 -24
  127. package/esm2022/math/index.mjs +2 -2
  128. package/esm2022/math/math.mjs +4 -4
  129. package/esm2022/math/round.mjs +52 -52
  130. package/esm2022/mcache/index.mjs +1 -1
  131. package/esm2022/mcache/localStorageUtils.mjs +59 -69
  132. package/esm2022/mcache/mcache.mjs +4 -4
  133. package/esm2022/mtypes/authority.type.mjs +1 -1
  134. package/esm2022/mtypes/header-menu.type.mjs +1 -1
  135. package/esm2022/mtypes/index.mjs +9 -9
  136. package/esm2022/mtypes/menu.type.mjs +1 -1
  137. package/esm2022/mtypes/mtypes.mjs +4 -4
  138. package/esm2022/mtypes/nav.types.mjs +6 -6
  139. package/esm2022/mtypes/page.mjs +41 -41
  140. package/esm2022/mtypes/project-info.types.mjs +1 -1
  141. package/esm2022/mtypes/response.mjs +1 -1
  142. package/esm2022/mtypes/role.type.mjs +1 -1
  143. package/esm2022/mtypes/user.types.mjs +1 -1
  144. package/esm2022/other/assert.mjs +66 -66
  145. package/esm2022/other/deep.mjs +77 -77
  146. package/esm2022/other/favicon.mjs +28 -28
  147. package/esm2022/other/index.mjs +7 -7
  148. package/esm2022/other/lazy.service.mjs +131 -131
  149. package/esm2022/other/logger.mjs +32 -32
  150. package/esm2022/other/other.mjs +4 -4
  151. package/esm2022/other/path-to-regexp.service.mjs +238 -238
  152. package/esm2022/other/resize.mjs +3 -3
  153. package/esm2022/pipes/currency/cny.pipe.mjs +22 -22
  154. package/esm2022/pipes/currency/index.mjs +4 -4
  155. package/esm2022/pipes/currency/mega.pipe.mjs +28 -28
  156. package/esm2022/pipes/currency/module.mjs +18 -18
  157. package/esm2022/pipes/currency/pipe-currency.mjs +4 -4
  158. package/esm2022/pipes/currency/price.pipe.mjs +26 -26
  159. package/esm2022/pipes/filter/filter.pipe.mjs +18 -18
  160. package/esm2022/pipes/filter/index.mjs +2 -2
  161. package/esm2022/pipes/filter/module.mjs +16 -16
  162. package/esm2022/pipes/filter/pipe-filter.mjs +4 -4
  163. package/esm2022/pipes/format/index.mjs +2 -2
  164. package/esm2022/pipes/format/mask.pipe.mjs +33 -33
  165. package/esm2022/pipes/format/module.mjs +16 -16
  166. package/esm2022/pipes/format/pipe-format.mjs +4 -4
  167. package/esm2022/pipes/index.mjs +3 -3
  168. package/esm2022/pipes/pipes.mjs +4 -4
  169. package/esm2022/token/index.mjs +2 -2
  170. package/esm2022/token/page-visibility.mjs +14 -14
  171. package/esm2022/token/token.mjs +4 -4
  172. package/esm2022/token/window.mjs +16 -16
  173. package/esm2022/yelon-util.mjs +4 -4
  174. package/fesm2022/analysis.mjs +24 -24
  175. package/fesm2022/array.mjs +284 -284
  176. package/fesm2022/browser.mjs +279 -279
  177. package/fesm2022/config.mjs +54 -54
  178. package/fesm2022/config.mjs.map +1 -1
  179. package/fesm2022/date-time.mjs +218 -211
  180. package/fesm2022/date-time.mjs.map +1 -1
  181. package/fesm2022/decorator.mjs +121 -121
  182. package/fesm2022/form.mjs +118 -118
  183. package/fesm2022/format.mjs +431 -431
  184. package/fesm2022/format.mjs.map +1 -1
  185. package/fesm2022/math.mjs +85 -85
  186. package/fesm2022/mcache.mjs +65 -75
  187. package/fesm2022/mcache.mjs.map +1 -1
  188. package/fesm2022/mtypes.mjs +55 -55
  189. package/fesm2022/other.mjs +586 -586
  190. package/fesm2022/pipe-currency.mjs +94 -94
  191. package/fesm2022/pipe-filter.mjs +40 -40
  192. package/fesm2022/pipe-format.mjs +55 -55
  193. package/fesm2022/pipes.mjs +8 -8
  194. package/fesm2022/token.mjs +37 -37
  195. package/fesm2022/yelon-util.mjs +19 -19
  196. package/form/index.d.ts +2 -2
  197. package/form/match-control.d.ts +15 -15
  198. package/form/validators.d.ts +62 -62
  199. package/format/currency.service.d.ts +37 -37
  200. package/format/currency.types.d.ts +82 -77
  201. package/format/index.d.ts +4 -4
  202. package/format/string.d.ts +44 -44
  203. package/format/validate.d.ts +72 -72
  204. package/index.d.ts +14 -14
  205. package/math/in-range.d.ts +14 -14
  206. package/math/index.d.ts +2 -2
  207. package/math/round.d.ts +33 -33
  208. package/mcache/index.d.ts +1 -1
  209. package/mcache/localStorageUtils.d.ts +18 -31
  210. package/mtypes/authority.type.d.ts +3 -3
  211. package/mtypes/header-menu.type.d.ts +12 -12
  212. package/mtypes/index.d.ts +9 -9
  213. package/mtypes/menu.type.d.ts +40 -40
  214. package/mtypes/nav.types.d.ts +27 -27
  215. package/mtypes/page.d.ts +46 -46
  216. package/mtypes/project-info.types.d.ts +21 -21
  217. package/mtypes/response.d.ts +7 -7
  218. package/mtypes/role.type.d.ts +10 -10
  219. package/mtypes/user.types.d.ts +22 -22
  220. package/other/assert.d.ts +36 -36
  221. package/other/deep.d.ts +35 -35
  222. package/other/favicon.d.ts +2 -2
  223. package/other/index.d.ts +7 -7
  224. package/other/lazy.service.d.ts +48 -48
  225. package/other/logger.d.ts +5 -5
  226. package/other/path-to-regexp.service.d.ts +26 -26
  227. package/other/resize.d.ts +1 -1
  228. package/package.json +141 -141
  229. package/pipes/currency/cny.pipe.d.ts +15 -15
  230. package/pipes/currency/index.d.ts +4 -4
  231. package/pipes/currency/mega.pipe.d.ts +16 -16
  232. package/pipes/currency/module.d.ts +9 -9
  233. package/pipes/currency/price.pipe.d.ts +19 -19
  234. package/pipes/filter/filter.pipe.d.ts +13 -13
  235. package/pipes/filter/index.d.ts +2 -2
  236. package/pipes/filter/module.d.ts +7 -7
  237. package/pipes/format/index.d.ts +2 -2
  238. package/pipes/format/mask.pipe.d.ts +27 -27
  239. package/pipes/format/module.d.ts +7 -7
  240. package/pipes/index.d.ts +3 -3
  241. package/token/index.d.ts +2 -2
  242. package/token/page-visibility.d.ts +8 -8
  243. package/token/window.d.ts +7 -7
@@ -1,121 +1,121 @@
1
- import { warn } from '@yelon/util/other';
2
-
3
- function propDecoratorFactory(name, fallback, defaultValue) {
4
- function propDecorator(target, propName, originalDescriptor) {
5
- const privatePropName = `$$__${propName}`;
6
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
7
- if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
8
- warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
9
- }
10
- }
11
- Object.defineProperty(target, privatePropName, {
12
- configurable: true,
13
- writable: true
14
- });
15
- return {
16
- get() {
17
- return originalDescriptor && originalDescriptor.get
18
- ? originalDescriptor.get.bind(this)()
19
- : this[privatePropName];
20
- },
21
- set(value) {
22
- if (originalDescriptor && originalDescriptor.set) {
23
- originalDescriptor.set.bind(this)(fallback(value, defaultValue));
24
- }
25
- this[privatePropName] = fallback(value, defaultValue);
26
- }
27
- };
28
- }
29
- return propDecorator;
30
- }
31
- function toBoolean(value, defaultValue = false) {
32
- return value == null ? defaultValue : `${value}` !== 'false';
33
- }
34
- /**
35
- * Input decorator that handle a prop to do get/set automatically with toBoolean
36
- *
37
- * ```ts
38
- * {AT}Input() {AT}InputBoolean() visible: boolean = false;
39
- * {AT}Input() {AT}InputBoolean(null) visible: boolean = false;
40
- * ```
41
- */
42
- function InputBoolean(defaultValue = false) {
43
- return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);
44
- }
45
- function toNumber(value, fallbackValue = 0) {
46
- return !isNaN(parseFloat(value)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;
47
- }
48
- /**
49
- * Input decorator that handle a prop to do get/set automatically with toNumber
50
- *
51
- * ```ts
52
- * {AT}Input() {AT}InputNumber() visible: number = 1;
53
- * {AT}Input() {AT}InputNumber(null) visible: number = 2;
54
- * ```
55
- */
56
- function InputNumber(defaultValue = 0) {
57
- return propDecoratorFactory('InputNumber', toNumber, defaultValue);
58
- }
59
-
60
- function makeFn(type, options) {
61
- return (_, __, descriptor) => {
62
- const source = descriptor.value;
63
- descriptor.value = function (...data) {
64
- const that = this;
65
- const ngZone = that[options?.ngZoneName || 'ngZone'];
66
- if (!ngZone) {
67
- if (typeof ngDevMode === 'undefined' || ngDevMode) {
68
- warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);
69
- }
70
- return source.call(this, ...data);
71
- }
72
- let res;
73
- ngZone[type](() => {
74
- res = source.call(this, ...data);
75
- });
76
- return res;
77
- };
78
- return descriptor;
79
- };
80
- }
81
- /**
82
- * The decoration method runs in `runOutsideAngular`
83
- *
84
- * 装饰方法运行在 `runOutsideAngular` 内
85
- *
86
- * ```ts
87
- * class MockClass {
88
- * constructor(public ngZone: NgZone) {}
89
- *
90
- * {AT}ZoneOutside()
91
- * runOutsideAngular(): void {}
92
- * }
93
- * ```
94
- */
95
- function ZoneOutside(options) {
96
- return makeFn('runOutsideAngular', options);
97
- }
98
- /**
99
- * The decoration method runs in `run`
100
- *
101
- * 装饰方法运行在 `run` 内
102
- *
103
- * ```ts
104
- * class MockClass {
105
- * constructor(public ngZone: NgZone) {}
106
- *
107
- * {AT}ZoneRun()
108
- * run(): void {}
109
- * }
110
- * ```
111
- */
112
- function ZoneRun(options) {
113
- return makeFn('run', options);
114
- }
115
-
116
- /**
117
- * Generated bundle index. Do not edit.
118
- */
119
-
120
- export { InputBoolean, InputNumber, ZoneOutside, ZoneRun, toBoolean, toNumber };
121
- //# sourceMappingURL=decorator.mjs.map
1
+ import { warn } from '@yelon/util/other';
2
+
3
+ function propDecoratorFactory(name, fallback, defaultValue) {
4
+ function propDecorator(target, propName, originalDescriptor) {
5
+ const privatePropName = `$$__${propName}`;
6
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
7
+ if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {
8
+ warn(`The prop "${privatePropName}" is already exist, it will be overrided by ${name} decorator.`);
9
+ }
10
+ }
11
+ Object.defineProperty(target, privatePropName, {
12
+ configurable: true,
13
+ writable: true
14
+ });
15
+ return {
16
+ get() {
17
+ return originalDescriptor && originalDescriptor.get
18
+ ? originalDescriptor.get.bind(this)()
19
+ : this[privatePropName];
20
+ },
21
+ set(value) {
22
+ if (originalDescriptor && originalDescriptor.set) {
23
+ originalDescriptor.set.bind(this)(fallback(value, defaultValue));
24
+ }
25
+ this[privatePropName] = fallback(value, defaultValue);
26
+ }
27
+ };
28
+ }
29
+ return propDecorator;
30
+ }
31
+ function toBoolean(value, defaultValue = false) {
32
+ return value == null ? defaultValue : `${value}` !== 'false';
33
+ }
34
+ /**
35
+ * Input decorator that handle a prop to do get/set automatically with toBoolean
36
+ *
37
+ * ```ts
38
+ * {AT}Input() {AT}InputBoolean() visible: boolean = false;
39
+ * {AT}Input() {AT}InputBoolean(null) visible: boolean = false;
40
+ * ```
41
+ */
42
+ function InputBoolean(defaultValue = false) {
43
+ return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);
44
+ }
45
+ function toNumber(value, fallbackValue = 0) {
46
+ return !isNaN(parseFloat(value)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;
47
+ }
48
+ /**
49
+ * Input decorator that handle a prop to do get/set automatically with toNumber
50
+ *
51
+ * ```ts
52
+ * {AT}Input() {AT}InputNumber() visible: number = 1;
53
+ * {AT}Input() {AT}InputNumber(null) visible: number = 2;
54
+ * ```
55
+ */
56
+ function InputNumber(defaultValue = 0) {
57
+ return propDecoratorFactory('InputNumber', toNumber, defaultValue);
58
+ }
59
+
60
+ function makeFn(type, options) {
61
+ return (_, __, descriptor) => {
62
+ const source = descriptor.value;
63
+ descriptor.value = function (...data) {
64
+ const that = this;
65
+ const ngZone = that[options?.ngZoneName || 'ngZone'];
66
+ if (!ngZone) {
67
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
68
+ warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);
69
+ }
70
+ return source.call(this, ...data);
71
+ }
72
+ let res;
73
+ ngZone[type](() => {
74
+ res = source.call(this, ...data);
75
+ });
76
+ return res;
77
+ };
78
+ return descriptor;
79
+ };
80
+ }
81
+ /**
82
+ * The decoration method runs in `runOutsideAngular`
83
+ *
84
+ * 装饰方法运行在 `runOutsideAngular` 内
85
+ *
86
+ * ```ts
87
+ * class MockClass {
88
+ * constructor(public ngZone: NgZone) {}
89
+ *
90
+ * {AT}ZoneOutside()
91
+ * runOutsideAngular(): void {}
92
+ * }
93
+ * ```
94
+ */
95
+ function ZoneOutside(options) {
96
+ return makeFn('runOutsideAngular', options);
97
+ }
98
+ /**
99
+ * The decoration method runs in `run`
100
+ *
101
+ * 装饰方法运行在 `run` 内
102
+ *
103
+ * ```ts
104
+ * class MockClass {
105
+ * constructor(public ngZone: NgZone) {}
106
+ *
107
+ * {AT}ZoneRun()
108
+ * run(): void {}
109
+ * }
110
+ * ```
111
+ */
112
+ function ZoneRun(options) {
113
+ return makeFn('run', options);
114
+ }
115
+
116
+ /**
117
+ * Generated bundle index. Do not edit.
118
+ */
119
+
120
+ export { InputBoolean, InputNumber, ZoneOutside, ZoneRun, toBoolean, toNumber };
121
+ //# sourceMappingURL=decorator.mjs.map
package/fesm2022/form.mjs CHANGED
@@ -1,118 +1,118 @@
1
- import { isNum, isInt, isDecimal, isIdCard, isMobile, isUrl, isIp, isColor, isChinese } from '@yelon/util/format';
2
-
3
- /**
4
- * A set of validators for reactive forms
5
- *
6
- * 一套用于响应式表单的验证器
7
- */
8
- class _Validators {
9
- /**
10
- * Wheter is number
11
- *
12
- * 是否为数字
13
- */
14
- static num(control) {
15
- return isNum(control.value) ? null : { num: true };
16
- }
17
- /**
18
- * Wheter is integer
19
- *
20
- * 是否为整数
21
- */
22
- static int(control) {
23
- return isInt(control.value) ? null : { int: true };
24
- }
25
- /**
26
- * Wheter is decimal
27
- *
28
- * 是否为小数点数值
29
- */
30
- static decimal(control) {
31
- return isDecimal(control.value) ? null : { decimal: true };
32
- }
33
- /**
34
- * Wheter is People's Republic of China identity card
35
- *
36
- * 是否为中华人民共和国居民身份证
37
- */
38
- static idCard(control) {
39
- return isIdCard(control.value) ? null : { idCard: true };
40
- }
41
- /**
42
- * Wheter is china mobile (China)
43
- *
44
- * 是否为手机号(中国)
45
- */
46
- static mobile(control) {
47
- return isMobile(control.value) ? null : { mobile: true };
48
- }
49
- /**
50
- * Wheter is url address
51
- *
52
- * 是否URL地址
53
- */
54
- static url(control) {
55
- return isUrl(control.value) ? null : { url: true };
56
- }
57
- /**
58
- * Wheter is IPv4 address (Support v4, v6)
59
- *
60
- * 是否IP4地址(支持v4、v6)
61
- */
62
- static ip(control) {
63
- return isIp(control.value) ? null : { ip: true };
64
- }
65
- /**
66
- * Wheter is color
67
- *
68
- * 是否颜色代码值
69
- */
70
- static color(control) {
71
- return isColor(control.value) ? null : { color: true };
72
- }
73
- /**
74
- * Wheter is chinese
75
- *
76
- * 是否中文
77
- */
78
- static chinese(control) {
79
- return isChinese(control.value) ? null : { chinese: true };
80
- }
81
- }
82
-
83
- /**
84
- * Match two control values
85
- *
86
- * 匹配两个控件值
87
- * ```ts
88
- * this.form = new FormGroup({
89
- * pwd: new FormControl(''),
90
- * repwd: new FormControl(''),
91
- * }, {
92
- * validators: MatchControl('pwd', 'repwd'),
93
- * });
94
- * ```
95
- */
96
- function MatchControl(controlName, matchingControlName) {
97
- return (formGroup) => {
98
- const control = formGroup.get(controlName);
99
- const matchingControl = formGroup.get(matchingControlName);
100
- if (matchingControl.errors && !matchingControl.errors.matchControl) {
101
- return null;
102
- }
103
- if (control.value !== matchingControl.value) {
104
- matchingControl.setErrors({ matchControl: true });
105
- }
106
- else {
107
- matchingControl.setErrors(null);
108
- }
109
- return null;
110
- };
111
- }
112
-
113
- /**
114
- * Generated bundle index. Do not edit.
115
- */
116
-
117
- export { MatchControl, _Validators };
118
- //# sourceMappingURL=form.mjs.map
1
+ import { isNum, isInt, isDecimal, isIdCard, isMobile, isUrl, isIp, isColor, isChinese } from '@yelon/util/format';
2
+
3
+ /**
4
+ * A set of validators for reactive forms
5
+ *
6
+ * 一套用于响应式表单的验证器
7
+ */
8
+ class _Validators {
9
+ /**
10
+ * Wheter is number
11
+ *
12
+ * 是否为数字
13
+ */
14
+ static num(control) {
15
+ return isNum(control.value) ? null : { num: true };
16
+ }
17
+ /**
18
+ * Wheter is integer
19
+ *
20
+ * 是否为整数
21
+ */
22
+ static int(control) {
23
+ return isInt(control.value) ? null : { int: true };
24
+ }
25
+ /**
26
+ * Wheter is decimal
27
+ *
28
+ * 是否为小数点数值
29
+ */
30
+ static decimal(control) {
31
+ return isDecimal(control.value) ? null : { decimal: true };
32
+ }
33
+ /**
34
+ * Wheter is People's Republic of China identity card
35
+ *
36
+ * 是否为中华人民共和国居民身份证
37
+ */
38
+ static idCard(control) {
39
+ return isIdCard(control.value) ? null : { idCard: true };
40
+ }
41
+ /**
42
+ * Wheter is china mobile (China)
43
+ *
44
+ * 是否为手机号(中国)
45
+ */
46
+ static mobile(control) {
47
+ return isMobile(control.value) ? null : { mobile: true };
48
+ }
49
+ /**
50
+ * Wheter is url address
51
+ *
52
+ * 是否URL地址
53
+ */
54
+ static url(control) {
55
+ return isUrl(control.value) ? null : { url: true };
56
+ }
57
+ /**
58
+ * Wheter is IPv4 address (Support v4, v6)
59
+ *
60
+ * 是否IP4地址(支持v4、v6)
61
+ */
62
+ static ip(control) {
63
+ return isIp(control.value) ? null : { ip: true };
64
+ }
65
+ /**
66
+ * Wheter is color
67
+ *
68
+ * 是否颜色代码值
69
+ */
70
+ static color(control) {
71
+ return isColor(control.value) ? null : { color: true };
72
+ }
73
+ /**
74
+ * Wheter is chinese
75
+ *
76
+ * 是否中文
77
+ */
78
+ static chinese(control) {
79
+ return isChinese(control.value) ? null : { chinese: true };
80
+ }
81
+ }
82
+
83
+ /**
84
+ * Match two control values
85
+ *
86
+ * 匹配两个控件值
87
+ * ```ts
88
+ * this.form = new FormGroup({
89
+ * pwd: new FormControl(''),
90
+ * repwd: new FormControl(''),
91
+ * }, {
92
+ * validators: MatchControl('pwd', 'repwd'),
93
+ * });
94
+ * ```
95
+ */
96
+ function MatchControl(controlName, matchingControlName) {
97
+ return (formGroup) => {
98
+ const control = formGroup.get(controlName);
99
+ const matchingControl = formGroup.get(matchingControlName);
100
+ if (matchingControl.errors && !matchingControl.errors.matchControl) {
101
+ return null;
102
+ }
103
+ if (control.value !== matchingControl.value) {
104
+ matchingControl.setErrors({ matchControl: true });
105
+ }
106
+ else {
107
+ matchingControl.setErrors(null);
108
+ }
109
+ return null;
110
+ };
111
+ }
112
+
113
+ /**
114
+ * Generated bundle index. Do not edit.
115
+ */
116
+
117
+ export { MatchControl, _Validators };
118
+ //# sourceMappingURL=form.mjs.map