@yelon/util 12.0.17 → 13.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (375) hide show
  1. package/LICENSE +21 -21
  2. package/array/array-type.service.d.ts +68 -68
  3. package/{date-time/yelon-util-date-time.d.ts → array/array.d.ts} +5 -4
  4. package/array/array.service.d.ts +78 -75
  5. package/array/index.d.ts +2 -2
  6. package/array/package.json +6 -7
  7. package/browser/browser.d.ts +5 -4
  8. package/browser/cookie.service.d.ts +67 -64
  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/package.json +5 -6
  13. package/browser/scroll.service.d.ts +37 -34
  14. package/browser/style.d.ts +21 -21
  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/image.type.d.ts +15 -15
  18. package/config/abc/index.d.ts +16 -16
  19. package/config/abc/loading.type.d.ts +31 -31
  20. package/config/abc/lodop.type.d.ts +33 -33
  21. package/config/abc/media.type.d.ts +11 -11
  22. package/config/abc/onboarding.type.d.ts +4 -4
  23. package/config/abc/page-header.type.d.ts +39 -39
  24. package/config/abc/pdf.type.d.ts +35 -35
  25. package/config/abc/qr.type.d.ts +25 -25
  26. package/config/abc/se.type.d.ts +32 -32
  27. package/config/abc/sg.type.d.ts +10 -10
  28. package/config/abc/st.type.d.ts +427 -427
  29. package/config/abc/sv.type.d.ts +14 -14
  30. package/config/abc/xlsx.type.d.ts +12 -12
  31. package/config/abc/zip.type.d.ts +10 -10
  32. package/config/acl/acl.type.d.ts +32 -32
  33. package/config/auth/auth.type.d.ts +55 -55
  34. package/config/bis/bis.type.d.ts +7 -7
  35. package/config/cache/cache.type.d.ts +40 -40
  36. package/config/chart/chart.type.d.ts +33 -33
  37. package/config/config.d.ts +5 -0
  38. package/config/config.service.d.ts +13 -10
  39. package/config/config.types.d.ts +49 -49
  40. package/config/index.d.ts +14 -14
  41. package/config/mock/mock.type.d.ts +18 -18
  42. package/config/package.json +6 -7
  43. package/config/sf/sf.type.d.ts +127 -127
  44. package/config/stomp/stomp.type.d.ts +2 -2
  45. package/config/theme/http.type.d.ts +14 -14
  46. package/config/theme/i18n.type.d.ts +8 -8
  47. package/config/theme/index.d.ts +3 -3
  48. package/config/theme/responsive.type.d.ts +12 -12
  49. package/config/util/array.type.d.ts +22 -22
  50. package/config/util/currency.type.d.ts +39 -39
  51. package/date-time/date-time.d.ts +5 -0
  52. package/date-time/index.d.ts +2 -2
  53. package/date-time/package.json +6 -7
  54. package/date-time/picker.d.ts +68 -68
  55. package/date-time/time.d.ts +26 -26
  56. package/decorator/convert.d.ts +24 -24
  57. package/decorator/decorator.d.ts +5 -0
  58. package/decorator/index.d.ts +2 -2
  59. package/decorator/package.json +6 -7
  60. package/decorator/zone-outside.d.ts +35 -35
  61. package/{esm2015/array/array-type.service.js → esm2020/array/array-type.service.mjs} +1 -1
  62. package/esm2020/array/array.mjs +5 -0
  63. package/esm2020/array/array.service.mjs +278 -0
  64. package/{esm2015/array/index.js → esm2020/array/index.mjs} +2 -2
  65. package/{esm2015/browser/browser.js → esm2020/browser/browser.mjs} +4 -4
  66. package/esm2020/browser/cookie.service.mjs +103 -0
  67. package/esm2020/browser/copy.mjs +9 -0
  68. package/{esm2015/browser/index.js → esm2020/browser/index.mjs} +5 -5
  69. package/{esm2015/browser/is-empty.js → esm2020/browser/is-empty.mjs} +18 -18
  70. package/esm2020/browser/scroll.service.mjs +88 -0
  71. package/{esm2015/browser/style.js → esm2020/browser/style.mjs} +38 -38
  72. package/{esm2015/config/abc/date-picker.type.js → esm2020/config/abc/date-picker.type.mjs} +1 -1
  73. package/{esm2015/config/abc/error-collect.type.js → esm2020/config/abc/error-collect.type.mjs} +1 -1
  74. package/{esm2015/config/abc/image.type.js → esm2020/config/abc/image.type.mjs} +1 -1
  75. package/{esm2015/config/abc/index.js → esm2020/config/abc/index.mjs} +16 -16
  76. package/{esm2015/config/abc/loading.type.js → esm2020/config/abc/loading.type.mjs} +1 -1
  77. package/{esm2015/config/abc/lodop.type.js → esm2020/config/abc/lodop.type.mjs} +1 -1
  78. package/{esm2015/config/abc/media.type.js → esm2020/config/abc/media.type.mjs} +1 -1
  79. package/{esm2015/config/abc/onboarding.type.js → esm2020/config/abc/onboarding.type.mjs} +1 -1
  80. package/{esm2015/config/abc/page-header.type.js → esm2020/config/abc/page-header.type.mjs} +1 -1
  81. package/esm2020/config/abc/pdf.type.mjs +2 -0
  82. package/esm2020/config/abc/qr.type.mjs +2 -0
  83. package/{esm2015/config/abc/se.type.js → esm2020/config/abc/se.type.mjs} +1 -1
  84. package/{esm2015/config/abc/sg.type.js → esm2020/config/abc/sg.type.mjs} +1 -1
  85. package/{esm2015/config/abc/st.type.js → esm2020/config/abc/st.type.mjs} +1 -1
  86. package/{esm2015/config/abc/sv.type.js → esm2020/config/abc/sv.type.mjs} +2 -2
  87. package/{esm2015/config/abc/xlsx.type.js → esm2020/config/abc/xlsx.type.mjs} +1 -1
  88. package/{esm2015/config/abc/zip.type.js → esm2020/config/abc/zip.type.mjs} +1 -1
  89. package/{esm2015/config/acl/acl.type.js → esm2020/config/acl/acl.type.mjs} +1 -1
  90. package/{esm2015/config/auth/auth.type.js → esm2020/config/auth/auth.type.mjs} +1 -1
  91. package/{esm2015/config/bis/bis.type.js → esm2020/config/bis/bis.type.mjs} +1 -1
  92. package/{esm2015/config/cache/cache.type.js → esm2020/config/cache/cache.type.mjs} +1 -1
  93. package/{esm2015/config/chart/chart.type.js → esm2020/config/chart/chart.type.mjs} +1 -1
  94. package/esm2020/config/config.mjs +5 -0
  95. package/esm2020/config/config.service.mjs +37 -0
  96. package/{esm2015/config/config.types.js → esm2020/config/config.types.mjs} +8 -8
  97. package/{esm2015/config/index.js → esm2020/config/index.mjs} +14 -14
  98. package/{esm2015/config/mock/mock.type.js → esm2020/config/mock/mock.type.mjs} +1 -1
  99. package/{esm2015/config/sf/sf.type.js → esm2020/config/sf/sf.type.mjs} +1 -1
  100. package/{esm2015/config/stomp/stomp.type.js → esm2020/config/stomp/stomp.type.mjs} +1 -1
  101. package/{esm2015/config/theme/http.type.js → esm2020/config/theme/http.type.mjs} +1 -1
  102. package/{esm2015/config/theme/i18n.type.js → esm2020/config/theme/i18n.type.mjs} +1 -1
  103. package/{esm2015/config/theme/index.js → esm2020/config/theme/index.mjs} +3 -3
  104. package/{esm2015/config/theme/responsive.type.js → esm2020/config/theme/responsive.type.mjs} +1 -1
  105. package/{esm2015/config/util/array.type.js → esm2020/config/util/array.type.mjs} +1 -1
  106. package/{esm2015/config/util/currency.type.js → esm2020/config/util/currency.type.mjs} +1 -1
  107. package/esm2020/date-time/date-time.mjs +5 -0
  108. package/{esm2015/date-time/index.js → esm2020/date-time/index.mjs} +2 -2
  109. package/esm2020/date-time/picker.mjs +116 -0
  110. package/{esm2015/date-time/time.js → esm2020/date-time/time.mjs} +88 -84
  111. package/esm2020/decorator/convert.mjs +58 -0
  112. package/esm2020/decorator/decorator.mjs +5 -0
  113. package/{esm2015/decorator/index.js → esm2020/decorator/index.mjs} +2 -2
  114. package/esm2020/decorator/zone-outside.mjs +57 -0
  115. package/esm2020/form/form.mjs +5 -0
  116. package/{esm2015/form/index.js → esm2020/form/index.mjs} +2 -2
  117. package/{esm2015/form/match-control.js → esm2020/form/match-control.mjs} +29 -29
  118. package/{esm2015/form/validators.js → esm2020/form/validators.mjs} +80 -80
  119. package/esm2020/format/currency.service.mjs +238 -0
  120. package/{esm2015/format/currency.types.js → esm2020/format/currency.types.mjs} +7 -7
  121. package/esm2020/format/format.mjs +5 -0
  122. package/{esm2015/format/index.js → esm2020/format/index.mjs} +4 -4
  123. package/esm2020/format/string.mjs +85 -0
  124. package/{esm2015/format/validate.js → esm2020/format/validate.mjs} +93 -93
  125. package/{esm2015/index.js → esm2020/index.mjs} +11 -11
  126. package/{esm2015/math/in-range.js → esm2020/math/in-range.mjs} +24 -24
  127. package/{esm2015/math/index.js → esm2020/math/index.mjs} +2 -2
  128. package/esm2020/math/math.mjs +5 -0
  129. package/{esm2015/math/round.js → esm2020/math/round.mjs} +52 -52
  130. package/{esm2015/other/assert.js → esm2020/other/assert.mjs} +66 -66
  131. package/{esm2015/other/deep.js → esm2020/other/deep.mjs} +75 -75
  132. package/{esm2015/other/index.js → esm2020/other/index.mjs} +7 -5
  133. package/esm2020/other/lazy.service.mjs +119 -0
  134. package/{esm2015/other/logger.js → esm2020/other/logger.mjs} +32 -32
  135. package/esm2020/other/other.mjs +5 -0
  136. package/esm2020/other/resize.mjs +4 -0
  137. package/esm2020/other/url.mjs +13 -0
  138. package/esm2020/pipes/currency/cny.pipe.mjs +23 -0
  139. package/{esm2015/pipes/currency/index.js → esm2020/pipes/currency/index.mjs} +5 -4
  140. package/esm2020/pipes/currency/mega.pipe.mjs +29 -0
  141. package/esm2020/pipes/currency/module.mjs +19 -0
  142. package/esm2020/pipes/currency/pipe-currency.mjs +5 -0
  143. package/esm2020/pipes/currency/price.pipe.mjs +27 -0
  144. package/esm2020/pipes/filter/filter.pipe.mjs +19 -0
  145. package/{esm2015/pipes/filter/index.js → esm2020/pipes/filter/index.mjs} +2 -2
  146. package/esm2020/pipes/filter/module.mjs +17 -0
  147. package/{esm2015/other/yelon-util-other.js → esm2020/pipes/filter/pipe-filter.mjs} +5 -5
  148. package/{esm2015/pipes/format/index.js → esm2020/pipes/format/index.mjs} +2 -2
  149. package/esm2020/pipes/format/mask.pipe.mjs +34 -0
  150. package/esm2020/pipes/format/module.mjs +17 -0
  151. package/{esm2015/array/yelon-util-array.js → esm2020/pipes/format/pipe-format.mjs} +5 -5
  152. package/{esm2015/pipes/index.js → esm2020/pipes/index.mjs} +3 -3
  153. package/esm2020/pipes/pipes.mjs +5 -0
  154. package/{esm2015/token/index.js → esm2020/token/index.mjs} +2 -2
  155. package/{esm2015/token/page-visibility.js → esm2020/token/page-visibility.mjs} +15 -15
  156. package/esm2020/token/token.mjs +5 -0
  157. package/{esm2015/token/window.js → esm2020/token/window.mjs} +16 -16
  158. package/{esm2015/yelon-util.js → esm2020/yelon-util.mjs} +4 -4
  159. package/fesm2015/{yelon-util-array.js → array.mjs} +247 -249
  160. package/fesm2015/array.mjs.map +1 -0
  161. package/fesm2015/{browser.js → browser.mjs} +249 -263
  162. package/fesm2015/browser.mjs.map +1 -0
  163. package/fesm2015/{yelon-util-config.js → config.mjs} +44 -38
  164. package/fesm2015/config.mjs.map +1 -0
  165. package/fesm2015/{yelon-util-date-time.js → date-time.mjs} +197 -197
  166. package/fesm2015/date-time.mjs.map +1 -0
  167. package/fesm2015/{yelon-util-decorator.js → decorator.mjs} +112 -108
  168. package/fesm2015/decorator.mjs.map +1 -0
  169. package/fesm2015/{yelon-util-form.js → form.mjs} +109 -109
  170. package/fesm2015/form.mjs.map +1 -0
  171. package/fesm2015/{yelon-util-format.js → format.mjs} +398 -394
  172. package/fesm2015/format.mjs.map +1 -0
  173. package/fesm2015/{yelon-util-math.js → math.mjs} +76 -76
  174. package/fesm2015/math.mjs.map +1 -0
  175. package/fesm2015/{yelon-util-other.js → other.mjs} +304 -284
  176. package/fesm2015/other.mjs.map +1 -0
  177. package/fesm2015/pipe-currency.mjs +96 -0
  178. package/fesm2015/pipe-currency.mjs.map +1 -0
  179. package/fesm2015/pipe-filter.mjs +40 -0
  180. package/fesm2015/pipe-filter.mjs.map +1 -0
  181. package/fesm2015/pipe-format.mjs +55 -0
  182. package/fesm2015/pipe-format.mjs.map +1 -0
  183. package/fesm2015/{yelon-util-pipes.js → pipes.mjs} +3 -3
  184. package/fesm2015/pipes.mjs.map +1 -0
  185. package/fesm2015/{yelon-util-token.js → token.mjs} +26 -26
  186. package/fesm2015/token.mjs.map +1 -0
  187. package/fesm2015/{yelon-util.js → yelon-util.mjs} +3 -3
  188. package/fesm2015/yelon-util.mjs.map +1 -0
  189. package/fesm2020/array.mjs +285 -0
  190. package/fesm2020/array.mjs.map +1 -0
  191. package/fesm2020/browser.mjs +260 -0
  192. package/fesm2020/browser.mjs.map +1 -0
  193. package/fesm2020/config.mjs +54 -0
  194. package/fesm2020/config.mjs.map +1 -0
  195. package/fesm2020/date-time.mjs +210 -0
  196. package/fesm2020/date-time.mjs.map +1 -0
  197. package/fesm2020/decorator.mjs +121 -0
  198. package/fesm2020/decorator.mjs.map +1 -0
  199. package/fesm2020/form.mjs +118 -0
  200. package/fesm2020/form.mjs.map +1 -0
  201. package/fesm2020/format.mjs +431 -0
  202. package/fesm2020/format.mjs.map +1 -0
  203. package/fesm2020/math.mjs +85 -0
  204. package/fesm2020/math.mjs.map +1 -0
  205. package/fesm2020/other.mjs +318 -0
  206. package/{fesm2015/yelon-util-other.js.map → fesm2020/other.mjs.map} +1 -1
  207. package/fesm2020/pipe-currency.mjs +94 -0
  208. package/fesm2020/pipe-currency.mjs.map +1 -0
  209. package/fesm2020/pipe-filter.mjs +40 -0
  210. package/fesm2020/pipe-filter.mjs.map +1 -0
  211. package/fesm2020/pipe-format.mjs +55 -0
  212. package/fesm2020/pipe-format.mjs.map +1 -0
  213. package/fesm2020/pipes.mjs +8 -0
  214. package/fesm2020/pipes.mjs.map +1 -0
  215. package/fesm2020/token.mjs +38 -0
  216. package/fesm2020/token.mjs.map +1 -0
  217. package/fesm2020/yelon-util.mjs +16 -0
  218. package/fesm2020/yelon-util.mjs.map +1 -0
  219. package/{array/yelon-util-array.d.ts → form/form.d.ts} +5 -4
  220. package/form/index.d.ts +2 -2
  221. package/form/match-control.d.ts +15 -15
  222. package/form/package.json +6 -7
  223. package/form/validators.d.ts +62 -62
  224. package/format/currency.service.d.ts +37 -34
  225. package/format/currency.types.d.ts +77 -77
  226. package/format/format.d.ts +5 -0
  227. package/format/index.d.ts +4 -4
  228. package/format/package.json +6 -7
  229. package/format/string.d.ts +44 -44
  230. package/format/validate.d.ts +72 -72
  231. package/index.d.ts +11 -11
  232. package/math/in-range.d.ts +14 -14
  233. package/math/index.d.ts +2 -2
  234. package/{config/yelon-util-config.d.ts → math/math.d.ts} +5 -4
  235. package/math/package.json +6 -7
  236. package/math/round.d.ts +33 -33
  237. package/other/assert.d.ts +36 -36
  238. package/other/deep.d.ts +33 -33
  239. package/other/index.d.ts +6 -4
  240. package/other/lazy.service.d.ts +25 -22
  241. package/other/logger.d.ts +5 -5
  242. package/{decorator/yelon-util-decorator.d.ts → other/other.d.ts} +5 -4
  243. package/other/package.json +6 -7
  244. package/other/resize.d.ts +1 -0
  245. package/other/url.d.ts +2 -0
  246. package/package.json +132 -8
  247. package/pipes/currency/cny.pipe.d.ts +15 -12
  248. package/pipes/currency/index.d.ts +4 -3
  249. package/pipes/currency/mega.pipe.d.ts +16 -13
  250. package/pipes/currency/module.d.ts +9 -2
  251. package/pipes/currency/package.json +6 -7
  252. package/pipes/currency/pipe-currency.d.ts +5 -0
  253. package/pipes/currency/price.pipe.d.ts +19 -16
  254. package/pipes/filter/filter.pipe.d.ts +13 -10
  255. package/pipes/filter/index.d.ts +2 -2
  256. package/pipes/filter/module.d.ts +7 -2
  257. package/pipes/filter/package.json +6 -7
  258. package/pipes/filter/pipe-filter.d.ts +5 -0
  259. package/pipes/format/index.d.ts +2 -2
  260. package/pipes/format/mask.pipe.d.ts +27 -24
  261. package/pipes/format/module.d.ts +7 -2
  262. package/pipes/format/package.json +6 -7
  263. package/pipes/format/pipe-format.d.ts +5 -0
  264. package/pipes/index.d.ts +3 -3
  265. package/pipes/package.json +6 -7
  266. package/pipes/pipes.d.ts +5 -0
  267. package/token/index.d.ts +2 -2
  268. package/token/package.json +6 -7
  269. package/token/page-visibility.d.ts +8 -8
  270. package/token/token.d.ts +5 -0
  271. package/token/window.d.ts +7 -7
  272. package/yelon-util.d.ts +5 -4
  273. package/array/yelon-util-array.metadata.json +0 -1
  274. package/browser/browser.metadata.json +0 -1
  275. package/bundles/browser.umd.js +0 -325
  276. package/bundles/browser.umd.js.map +0 -1
  277. package/bundles/yelon-util-array.umd.js +0 -641
  278. package/bundles/yelon-util-array.umd.js.map +0 -1
  279. package/bundles/yelon-util-config.umd.js +0 -411
  280. package/bundles/yelon-util-config.umd.js.map +0 -1
  281. package/bundles/yelon-util-date-time.umd.js +0 -238
  282. package/bundles/yelon-util-date-time.umd.js.map +0 -1
  283. package/bundles/yelon-util-decorator.umd.js +0 -462
  284. package/bundles/yelon-util-decorator.umd.js.map +0 -1
  285. package/bundles/yelon-util-form.umd.js +0 -135
  286. package/bundles/yelon-util-form.umd.js.map +0 -1
  287. package/bundles/yelon-util-format.umd.js +0 -785
  288. package/bundles/yelon-util-format.umd.js.map +0 -1
  289. package/bundles/yelon-util-math.umd.js +0 -104
  290. package/bundles/yelon-util-math.umd.js.map +0 -1
  291. package/bundles/yelon-util-other.umd.js +0 -714
  292. package/bundles/yelon-util-other.umd.js.map +0 -1
  293. package/bundles/yelon-util-pipes-currency.umd.js +0 -108
  294. package/bundles/yelon-util-pipes-currency.umd.js.map +0 -1
  295. package/bundles/yelon-util-pipes-filter.umd.js +0 -374
  296. package/bundles/yelon-util-pipes-filter.umd.js.map +0 -1
  297. package/bundles/yelon-util-pipes-format.umd.js +0 -66
  298. package/bundles/yelon-util-pipes-format.umd.js.map +0 -1
  299. package/bundles/yelon-util-pipes.umd.js +0 -38
  300. package/bundles/yelon-util-pipes.umd.js.map +0 -1
  301. package/bundles/yelon-util-token.umd.js +0 -49
  302. package/bundles/yelon-util-token.umd.js.map +0 -1
  303. package/bundles/yelon-util.umd.js +0 -86
  304. package/bundles/yelon-util.umd.js.map +0 -1
  305. package/config/yelon-util-config.metadata.json +0 -1
  306. package/date-time/yelon-util-date-time.metadata.json +0 -1
  307. package/decorator/yelon-util-decorator.metadata.json +0 -1
  308. package/esm2015/array/array.service.js +0 -250
  309. package/esm2015/browser/cookie.service.js +0 -104
  310. package/esm2015/browser/copy.js +0 -27
  311. package/esm2015/browser/scroll.service.js +0 -89
  312. package/esm2015/config/abc/pdf.type.js +0 -2
  313. package/esm2015/config/abc/qr.type.js +0 -2
  314. package/esm2015/config/config.service.js +0 -34
  315. package/esm2015/config/yelon-util-config.js +0 -5
  316. package/esm2015/date-time/picker.js +0 -116
  317. package/esm2015/date-time/yelon-util-date-time.js +0 -5
  318. package/esm2015/decorator/convert.js +0 -56
  319. package/esm2015/decorator/yelon-util-decorator.js +0 -5
  320. package/esm2015/decorator/zone-outside.js +0 -55
  321. package/esm2015/form/yelon-util-form.js +0 -5
  322. package/esm2015/format/currency.service.js +0 -225
  323. package/esm2015/format/string.js +0 -76
  324. package/esm2015/format/yelon-util-format.js +0 -5
  325. package/esm2015/math/yelon-util-math.js +0 -5
  326. package/esm2015/other/lazy.service.js +0 -118
  327. package/esm2015/pipes/currency/cny.pipe.js +0 -22
  328. package/esm2015/pipes/currency/mega.pipe.js +0 -26
  329. package/esm2015/pipes/currency/module.js +0 -14
  330. package/esm2015/pipes/currency/price.pipe.js +0 -26
  331. package/esm2015/pipes/currency/yelon-util-pipes-currency.js +0 -6
  332. package/esm2015/pipes/filter/filter.pipe.js +0 -15
  333. package/esm2015/pipes/filter/module.js +0 -12
  334. package/esm2015/pipes/filter/yelon-util-pipes-filter.js +0 -5
  335. package/esm2015/pipes/format/mask.pipe.js +0 -30
  336. package/esm2015/pipes/format/module.js +0 -12
  337. package/esm2015/pipes/format/yelon-util-pipes-format.js +0 -5
  338. package/esm2015/pipes/yelon-util-pipes.js +0 -5
  339. package/esm2015/token/yelon-util-token.js +0 -5
  340. package/fesm2015/browser.js.map +0 -1
  341. package/fesm2015/yelon-util-array.js.map +0 -1
  342. package/fesm2015/yelon-util-config.js.map +0 -1
  343. package/fesm2015/yelon-util-date-time.js.map +0 -1
  344. package/fesm2015/yelon-util-decorator.js.map +0 -1
  345. package/fesm2015/yelon-util-form.js.map +0 -1
  346. package/fesm2015/yelon-util-format.js.map +0 -1
  347. package/fesm2015/yelon-util-math.js.map +0 -1
  348. package/fesm2015/yelon-util-pipes-currency.js +0 -87
  349. package/fesm2015/yelon-util-pipes-currency.js.map +0 -1
  350. package/fesm2015/yelon-util-pipes-filter.js +0 -32
  351. package/fesm2015/yelon-util-pipes-filter.js.map +0 -1
  352. package/fesm2015/yelon-util-pipes-format.js +0 -47
  353. package/fesm2015/yelon-util-pipes-format.js.map +0 -1
  354. package/fesm2015/yelon-util-pipes.js.map +0 -1
  355. package/fesm2015/yelon-util-token.js.map +0 -1
  356. package/fesm2015/yelon-util.js.map +0 -1
  357. package/form/yelon-util-form.d.ts +0 -4
  358. package/form/yelon-util-form.metadata.json +0 -1
  359. package/format/yelon-util-format.d.ts +0 -4
  360. package/format/yelon-util-format.metadata.json +0 -1
  361. package/math/yelon-util-math.d.ts +0 -4
  362. package/math/yelon-util-math.metadata.json +0 -1
  363. package/other/yelon-util-other.d.ts +0 -4
  364. package/other/yelon-util-other.metadata.json +0 -1
  365. package/pipes/currency/yelon-util-pipes-currency.d.ts +0 -5
  366. package/pipes/currency/yelon-util-pipes-currency.metadata.json +0 -1
  367. package/pipes/filter/yelon-util-pipes-filter.d.ts +0 -4
  368. package/pipes/filter/yelon-util-pipes-filter.metadata.json +0 -1
  369. package/pipes/format/yelon-util-pipes-format.d.ts +0 -4
  370. package/pipes/format/yelon-util-pipes-format.metadata.json +0 -1
  371. package/pipes/yelon-util-pipes.d.ts +0 -4
  372. package/pipes/yelon-util-pipes.metadata.json +0 -1
  373. package/token/yelon-util-token.d.ts +0 -4
  374. package/token/yelon-util-token.metadata.json +0 -1
  375. package/yelon-util.metadata.json +0 -1
@@ -0,0 +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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"decorator.mjs","sources":["../../../../packages/util/decorator/convert.ts","../../../../packages/util/decorator/zone-outside.ts","../../../../packages/util/decorator/decorator.ts"],"sourcesContent":["import { warn } from '@yelon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport type BooleanInput = boolean | string | undefined | null;\nexport type NumberInput = number | string | undefined | null;\n\nfunction propDecoratorFactory<T, D>(\n name: string,\n fallback: (v: T, defaultValue: D) => D,\n defaultValue: NzSafeAny\n): (target: NzSafeAny, propName: string) => void {\n function propDecorator(\n target: NzSafeAny,\n propName: string,\n originalDescriptor?: TypedPropertyDescriptor<NzSafeAny>\n ): NzSafeAny {\n const privatePropName = `$$__${propName}`;\n\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n if (Object.prototype.hasOwnProperty.call(target, privatePropName)) {\n warn(`The prop \"${privatePropName}\" is already exist, it will be overrided by ${name} decorator.`);\n }\n }\n\n Object.defineProperty(target, privatePropName, {\n configurable: true,\n writable: true\n });\n\n return {\n get(): string {\n return originalDescriptor && originalDescriptor.get\n ? originalDescriptor.get.bind(this)()\n : this[privatePropName];\n },\n set(value: T): void {\n if (originalDescriptor && originalDescriptor.set) {\n originalDescriptor.set.bind(this)(fallback(value, defaultValue));\n }\n this[privatePropName] = fallback(value, defaultValue);\n }\n };\n }\n\n return propDecorator;\n}\n\nexport function toBoolean(\n value: unknown,\n defaultValue: boolean | null | undefined = false\n): boolean | null | undefined {\n return value == null ? defaultValue : `${value}` !== 'false';\n}\n\n/**\n * Input decorator that handle a prop to do get/set automatically with toBoolean\n *\n * ```ts\n * {AT}Input() {AT}InputBoolean() visible: boolean = false;\n * {AT}Input() {AT}InputBoolean(null) visible: boolean = false;\n * ```\n */\nexport function InputBoolean(defaultValue: boolean | null = false): NzSafeAny {\n return propDecoratorFactory('InputBoolean', toBoolean, defaultValue);\n}\n\nexport function toNumber(value: unknown): number;\nexport function toNumber<D>(value: unknown, fallback: D): number | D;\nexport function toNumber(value: unknown, fallbackValue: number = 0): number {\n return !isNaN(parseFloat(value as NzSafeAny)) && !isNaN(Number(value)) ? Number(value) : fallbackValue;\n}\n\n/**\n * Input decorator that handle a prop to do get/set automatically with toNumber\n *\n * ```ts\n * {AT}Input() {AT}InputNumber() visible: number = 1;\n * {AT}Input() {AT}InputNumber(null) visible: number = 2;\n * ```\n */\nexport function InputNumber(defaultValue: number | null = 0): NzSafeAny {\n return propDecoratorFactory('InputNumber', toNumber, defaultValue);\n}\n","import { warn } from '@yelon/util/other';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface ZoneOptions {\n ngZoneName?: string;\n}\n\ntype DecoratorType = (target: unknown, fn: string, descriptor: PropertyDescriptor) => PropertyDescriptor;\n\nfunction makeFn(type: 'runOutsideAngular' | 'run', options?: ZoneOptions): DecoratorType {\n return (_, __, descriptor) => {\n const source = descriptor.value;\n descriptor.value = function (...data: NzSafeAny[]): () => void {\n const that = this as NzSafeAny;\n const ngZone = that[options?.ngZoneName || 'ngZone'];\n if (!ngZone) {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n warn(`ZoneOutside: Decorator should have 'ngZone' property with 'NgZone' class.`);\n }\n return source.call(this, ...data);\n }\n let res: NzSafeAny;\n ngZone[type](() => {\n res = source.call(this, ...data);\n });\n return res;\n };\n\n return descriptor;\n };\n}\n\n/**\n * The decoration method runs in `runOutsideAngular`\n *\n * 装饰方法运行在 `runOutsideAngular` 内\n *\n * ```ts\n * class MockClass {\n * constructor(public ngZone: NgZone) {}\n *\n * {AT}ZoneOutside()\n * runOutsideAngular(): void {}\n * }\n * ```\n */\nexport function ZoneOutside(options?: ZoneOptions): DecoratorType {\n return makeFn('runOutsideAngular', options);\n}\n\n/**\n * The decoration method runs in `run`\n *\n * 装饰方法运行在 `run` 内\n *\n * ```ts\n * class MockClass {\n * constructor(public ngZone: NgZone) {}\n *\n * {AT}ZoneRun()\n * run(): void {}\n * }\n * ```\n */\nexport function ZoneRun(options?: ZoneOptions): DecoratorType {\n return makeFn('run', options);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"form.mjs","sources":["../../../../packages/util/form/validators.ts","../../../../packages/util/form/match-control.ts","../../../../packages/util/form/form.ts"],"sourcesContent":["import { AbstractControl, ValidationErrors } from '@angular/forms';\n\nimport { isChinese, isColor, isDecimal, isIdCard, isInt, isIp, isMobile, isNum, isUrl } from '@yelon/util/format';\n\n/**\n * A set of validators for reactive forms\n *\n * 一套用于响应式表单的验证器\n */\nexport class _Validators {\n /**\n * Wheter is number\n *\n * 是否为数字\n */\n static num(control: AbstractControl): ValidationErrors | null {\n return isNum(control.value) ? null : { num: true };\n }\n\n /**\n * Wheter is integer\n *\n * 是否为整数\n */\n static int(control: AbstractControl): ValidationErrors | null {\n return isInt(control.value) ? null : { int: true };\n }\n\n /**\n * Wheter is decimal\n *\n * 是否为小数点数值\n */\n static decimal(control: AbstractControl): ValidationErrors | null {\n return isDecimal(control.value) ? null : { decimal: true };\n }\n\n /**\n * Wheter is People's Republic of China identity card\n *\n * 是否为中华人民共和国居民身份证\n */\n static idCard(control: AbstractControl): ValidationErrors | null {\n return isIdCard(control.value) ? null : { idCard: true };\n }\n\n /**\n * Wheter is china mobile (China)\n *\n * 是否为手机号(中国)\n */\n static mobile(control: AbstractControl): ValidationErrors | null {\n return isMobile(control.value) ? null : { mobile: true };\n }\n\n /**\n * Wheter is url address\n *\n * 是否URL地址\n */\n static url(control: AbstractControl): ValidationErrors | null {\n return isUrl(control.value) ? null : { url: true };\n }\n\n /**\n * Wheter is IPv4 address (Support v4, v6)\n *\n * 是否IP4地址(支持v4、v6)\n */\n static ip(control: AbstractControl): ValidationErrors | null {\n return isIp(control.value) ? null : { ip: true };\n }\n\n /**\n * Wheter is color\n *\n * 是否颜色代码值\n */\n static color(control: AbstractControl): ValidationErrors | null {\n return isColor(control.value) ? null : { color: true };\n }\n\n /**\n * Wheter is chinese\n *\n * 是否中文\n */\n static chinese(control: AbstractControl): ValidationErrors | null {\n return isChinese(control.value) ? null : { chinese: true };\n }\n}\n","import { AbstractControl, ValidatorFn } from '@angular/forms';\n\n/**\n * Match two control values\n *\n * 匹配两个控件值\n * ```ts\n * this.form = new FormGroup({\n * pwd: new FormControl(''),\n * repwd: new FormControl(''),\n * }, {\n * validators: MatchControl('pwd', 'repwd'),\n * });\n * ```\n */\nexport function MatchControl(controlName: string, matchingControlName: string): ValidatorFn {\n return (formGroup: AbstractControl) => {\n const control = formGroup.get(controlName)!;\n const matchingControl = formGroup.get(matchingControlName)!;\n if (matchingControl.errors && !matchingControl.errors.matchControl) {\n return null;\n }\n if (control.value !== matchingControl.value) {\n matchingControl.setErrors({ matchControl: true });\n } else {\n matchingControl.setErrors(null);\n }\n return null;\n };\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAIA;;;;;MAKa,WAAW;;;;;;IAMtB,OAAO,GAAG,CAAC,OAAwB;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACpD;;;;;;IAOD,OAAO,GAAG,CAAC,OAAwB;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACpD;;;;;;IAOD,OAAO,OAAO,CAAC,OAAwB;QACrC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC5D;;;;;;IAOD,OAAO,MAAM,CAAC,OAAwB;QACpC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC1D;;;;;;IAOD,OAAO,MAAM,CAAC,OAAwB;QACpC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;KAC1D;;;;;;IAOD,OAAO,GAAG,CAAC,OAAwB;QACjC,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC;KACpD;;;;;;IAOD,OAAO,EAAE,CAAC,OAAwB;QAChC,OAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;KAClD;;;;;;IAOD,OAAO,KAAK,CAAC,OAAwB;QACnC,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;KACxD;;;;;;IAOD,OAAO,OAAO,CAAC,OAAwB;QACrC,OAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;KAC5D;;;ACvFH;;;;;;;;;;;;;SAagB,YAAY,CAAC,WAAmB,EAAE,mBAA2B;IAC3E,OAAO,CAAC,SAA0B;QAChC,MAAM,OAAO,GAAG,SAAS,CAAC,GAAG,CAAC,WAAW,CAAE,CAAC;QAC5C,MAAM,eAAe,GAAG,SAAS,CAAC,GAAG,CAAC,mBAAmB,CAAE,CAAC;QAC5D,IAAI,eAAe,CAAC,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,YAAY,EAAE;YAClE,OAAO,IAAI,CAAC;SACb;QACD,IAAI,OAAO,CAAC,KAAK,KAAK,eAAe,CAAC,KAAK,EAAE;YAC3C,eAAe,CAAC,SAAS,CAAC,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;SACnD;aAAM;YACL,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACjC;QACD,OAAO,IAAI,CAAC;KACb,CAAC;AACJ;;AC7BA;;;;;;"}