@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 @@
1
+ {"version":3,"file":"format.mjs","sources":["../../../../packages/util/format/string.ts","../../../../packages/util/format/validate.ts","../../../../packages/util/format/currency.types.ts","../../../../packages/util/format/currency.service.ts","../../../../packages/util/format/format.ts"],"sourcesContent":["import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport { deepGet } from '@yelon/util/other';\n\n/**\n * String formatting\n *\n * 字符串格式化\n * ```\n * format('this is ${name}', { name: 'asdf' })\n * // output: this is asdf\n * format('this is ${user.name}', { user: { name: 'asdf' } }, true)\n * // output: this is asdf\n * ```\n */\nexport function format(\n str: string | null | undefined,\n obj: NzSafeAny | null | undefined,\n needDeepGet: boolean = false\n): string {\n return (str || '').replace(/\\${([^}]+)}/g, (_work: string, key: string) =>\n needDeepGet ? deepGet(obj, key.split('.'), '') : (obj || {})[key] || ''\n );\n}\n\nexport interface FormatMaskOption {\n mask: string;\n tokens?: { [key: string]: FormatMaskToken };\n}\n\nexport interface FormatMaskToken {\n pattern: RegExp;\n default?: NzSafeAny;\n transform?: (char: string) => string;\n}\n\n/**\n * Format mask\n *\n * 格式化掩码\n *\n * | 字符 | 描述 |\n * | --- | --- |\n * | `0` | 任意数字,若该位置字符不符合,则默认为 `0` 填充 |\n * | `9` | 任意数字 |\n * | `#` | 任意字符 |\n * | `U` | 转换大写 |\n * | `L` | 转换小写 |\n * | `*` | 转换为 `*` 字符 |\n *\n * ```ts\n * formatMask('123', '(###)') => (123)\n * formatMask('15900000000', '999****9999') => 159****0000\n * ```\n */\nexport function formatMask(value: string, option: string | FormatMaskOption): string {\n if (!value) {\n return '';\n }\n const opt: FormatMaskOption = {\n ...(typeof option === 'string' ? { mask: option } : option)\n };\n const tokens: { [key: string]: FormatMaskToken } = {\n '0': { pattern: /\\d/, default: '0' },\n '9': { pattern: /\\d/ },\n '#': { pattern: /[a-zA-Z0-9]/ },\n U: {\n pattern: /[a-zA-Z]/,\n transform: char => char.toLocaleUpperCase()\n },\n L: {\n pattern: /[a-zA-Z]/,\n transform: char => char.toLocaleLowerCase()\n },\n '*': {\n pattern: /.*/,\n transform: _ => `*`\n },\n ...opt.tokens\n };\n\n const splitValue = value.split('');\n return opt.mask\n .split('')\n .reduce((res, cur) => {\n const token = tokens[cur];\n if (!token) {\n res.push(cur);\n return res;\n }\n\n const value = splitValue.shift() ?? '';\n if (!token.pattern.test(value)) {\n if (token.default) res.push(token.default);\n return res;\n }\n\n if (typeof token.transform === 'function') {\n res.push(token.transform(value));\n } else {\n res.push(value);\n }\n return res;\n }, [] as string[])\n .join('');\n}\n","export const REGEX_STR = {\n num: `((-?\\\\d+\\\\.\\\\d+)|(-?\\\\d+)|(-?\\\\.\\\\d+))`,\n idCard: `(^\\\\d{15}$)|(^\\\\d{17}(?:[0-9]|X)$)`,\n mobile: `^(0|\\\\+?86|17951)?1[0-9]{10}$`,\n url: `(((^https?:(?:\\/\\/)?)(?:[-;:&=\\\\+\\\\$,\\\\w]+@)?[A-Za-z0-9.-]+(?::\\\\d+)?|(?:www.|[-;:&=\\\\+\\\\$,\\\\w]+@)[A-Za-z0-9.-]+)((?:\\/[\\\\+~%\\\\/.\\\\w-_]*)?\\\\??(?:[-\\\\+=&;%@.\\\\w_]*)#?(?:[\\\\w]*))?)`,\n ip: `(?:^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$)|(?:^(?:(?:[a-fA-F\\\\d]{1,4}:){7}(?:[a-fA-F\\\\d]{1,4}|:)|(?:[a-fA-F\\\\d]{1,4}:){6}(?:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|:[a-fA-F\\\\d]{1,4}|:)|(?:[a-fA-F\\\\d]{1,4}:){5}(?::(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,2}|:)|(?:[a-fA-F\\\\d]{1,4}:){4}(?:(?::[a-fA-F\\\\d]{1,4}){0,1}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,3}|:)|(?:[a-fA-F\\\\d]{1,4}:){3}(?:(?::[a-fA-F\\\\d]{1,4}){0,2}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,4}|:)|(?:[a-fA-F\\\\d]{1,4}:){2}(?:(?::[a-fA-F\\\\d]{1,4}){0,3}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,5}|:)|(?:[a-fA-F\\\\d]{1,4}:){1}(?:(?::[a-fA-F\\\\d]{1,4}){0,4}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,6}|:)|(?::(?:(?::[a-fA-F\\\\d]{1,4}){0,5}:(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}|(?::[a-fA-F\\\\d]{1,4}){1,7}|:)))(?:%[0-9a-zA-Z]{1,})?$)`,\n color: `(?:#|0x)(?:[a-f0-9]{3}|[a-f0-9]{6})\\\\b|(?:rgb|hsl)a?\\\\([^\\\\)]*\\\\)`,\n chinese: `[\\u4e00-\\u9fa5]+`\n};\n\nfunction genRegex(str: string, flags?: string): RegExp {\n return new RegExp(`^${str}$`, flags);\n}\n\nexport const REGEX = {\n num: genRegex(REGEX_STR.num),\n idCard: genRegex(REGEX_STR.idCard, 'i'),\n mobile: genRegex(REGEX_STR.mobile),\n url: genRegex(REGEX_STR.url),\n ip: genRegex(REGEX_STR.ip),\n color: genRegex(REGEX_STR.color),\n chinese: genRegex(REGEX_STR.chinese)\n};\n\n/**\n * Wheter is number\n *\n * 是否为数字\n */\nexport function isNum(value: string | number): boolean {\n return REGEX.num.test(value.toString());\n}\n\n/**\n * Wheter is integer\n *\n * 是否为整数\n */\nexport function isInt(value: string | number): boolean {\n return isNum(value) && parseInt(value.toString(), 10).toString() === value.toString();\n}\n\n/**\n * Wheter is decimal\n *\n * 是否为小数点数值\n */\nexport function isDecimal(value: string | number): boolean {\n return isNum(value) && !isInt(value);\n}\n\n/**\n * Wheter is People's Republic of China identity card\n *\n * 是否为中华人民共和国居民身份证\n */\nexport function isIdCard(value: string): boolean {\n return REGEX.idCard.test(value);\n}\n\n/**\n * Wheter is china mobile (China)\n *\n * 是否为手机号(中国)\n */\nexport function isMobile(value: string): boolean {\n return REGEX.mobile.test(value);\n}\n\n/**\n * Wheter is url address\n *\n * 是否URL地址\n */\nexport function isUrl(url: string): boolean {\n return REGEX.url.test(url);\n}\n\n/**\n * Wheter is IPv4 address (Support v4, v6)\n *\n * 是否IP4地址(支持v4、v6)\n */\nexport function isIp(ip: string): boolean {\n return REGEX.ip.test(ip);\n}\n\n/**\n * Wheter is color\n *\n * 是否颜色代码值\n */\nexport function isColor(color: string): boolean {\n return REGEX.color.test(color);\n}\n\n/**\n * Wheter is chinese\n *\n * 是否中文\n */\nexport function isChinese(value: string): boolean {\n return REGEX.chinese.test(value);\n}\n","export type CurrencyStartingUnit = 'yuan' | 'cent';\n\nexport interface CurrencyStartingUnitOptions {\n /**\n * The starting unit of the value, `yuan` means 元, `cent` means 分, default: `yuan`\n *\n * 值的起始单位,`yuan` 元,`cent` 分,默认:`yuan`\n */\n startingUnit?: CurrencyStartingUnit;\n}\n\nexport interface CurrencyFormatOptions extends CurrencyStartingUnitOptions {\n /**\n * Using `DEFAULT_CURRENCY_CODE` when value is `true\n *\n * 是否使用 `CurrencyPipe` 来替代\n */\n useAngular?: boolean;\n /**\n * 精度,默认:`2`\n */\n precision?: number;\n /**\n * 是否忽略精度 `.0` 或 `.00` 结尾的字符,默认:`true`\n */\n ignoreZeroPrecision?: boolean;\n\n /**\n * Use anguar `currency` pipe parse when is set, pls refer to [document](https://angular.io/api/common/CurrencyPipe)\n *\n * 若指定则表示使用 Angular 自带的 `currency` 管道来解析,见[文档](https://angular.cn/api/common/CurrencyPipe)\n */\n ngCurrency?: {\n display: 'code' | 'symbol' | 'symbol-narrow';\n currencyCode?: string;\n digitsInfo?: string;\n locale?: string;\n };\n}\n\nexport interface CurrencyMegaOptions extends CurrencyStartingUnitOptions {\n /**\n * 精度,默认:`2`\n */\n precision?: number;\n\n /**\n * 单位国际化,默认:`{Q: '京', T: '兆', B: '亿', M: '万', K: '千',}`\n */\n unitI18n?: CurrencyMegaUnitI18n;\n}\n\nexport interface CurrencyMegaResult {\n raw: number | string;\n value: string;\n unit: string;\n unitI18n: string;\n}\n\nexport const CurrencyMega_Powers = [\n { unit: 'Q', value: Math.pow(10, 15) },\n { unit: 'T', value: Math.pow(10, 12) },\n { unit: 'B', value: Math.pow(10, 9) },\n { unit: 'M', value: Math.pow(10, 6) },\n { unit: 'K', value: 1000 }\n];\n\nexport interface CurrencyMegaUnitI18n {\n Q: string;\n T: string;\n B: string;\n M: string;\n K: string;\n}\n\nexport interface CurrencyCNYOptions extends CurrencyStartingUnitOptions {\n /**\n * Whether to return to uppercase notation, default: `true`\n *\n * 是否返回大写表示法,默认:`true`\n */\n inWords?: boolean;\n /**\n * Specify negative sign, default: `negative`\n *\n * 指定负数符号,默认:`负`\n */\n minusSymbol?: string;\n}\n","import { CurrencyPipe, formatNumber } from '@angular/common';\nimport { DEFAULT_CURRENCY_CODE, Inject, Injectable, LOCALE_ID } from '@angular/core';\n\nimport { YunzaiConfigService, YunzaiUtilCurrencyConfig } from '@yelon/util/config';\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nimport {\n CurrencyCNYOptions,\n CurrencyFormatOptions,\n CurrencyMegaOptions,\n CurrencyMegaResult,\n CurrencyMega_Powers\n} from './currency.types';\n\n@Injectable({ providedIn: 'root' })\nexport class CurrencyService {\n private c: YunzaiUtilCurrencyConfig;\n private readonly currencyPipe: CurrencyPipe;\n\n constructor(\n cog: YunzaiConfigService,\n @Inject(LOCALE_ID) private locale: string,\n @Inject(DEFAULT_CURRENCY_CODE) _defaultCurrencyCode: string = 'USD'\n ) {\n this.currencyPipe = new CurrencyPipe(locale, _defaultCurrencyCode);\n this.c = cog.merge('utilCurrency', {\n startingUnit: 'yuan',\n megaUnit: { Q: '京', T: '兆', B: '亿', M: '万', K: '千' },\n precision: 2,\n ignoreZeroPrecision: true\n })!;\n }\n\n /**\n * Format a number with commas as thousands separators\n *\n * 格式化货币,用逗号将数字格式化为千位分隔符\n * ```ts\n * 10000 => `10,000`\n * 10000.567 => `10,000.57`\n * ```\n */\n format(value: number | string, options?: CurrencyFormatOptions): string {\n options = {\n startingUnit: this.c.startingUnit,\n precision: this.c.precision,\n ignoreZeroPrecision: this.c.ignoreZeroPrecision,\n ngCurrency: this.c.ngCurrency,\n ...options\n };\n let truthValue = Number(value);\n if (value == null || isNaN(truthValue)) {\n return '';\n }\n if (options.startingUnit === 'cent') {\n truthValue = truthValue / 100;\n }\n if (options.ngCurrency != null) {\n const cur = options.ngCurrency!;\n return this.currencyPipe.transform(\n truthValue,\n cur.currencyCode,\n cur.display,\n cur.digitsInfo,\n cur.locale || this.locale\n )!;\n }\n const res = formatNumber(\n truthValue,\n this.locale,\n `.${options.ignoreZeroPrecision ? 1 : options.precision}-${options.precision}`\n );\n return options.ignoreZeroPrecision ? res.replace(/(?:\\.[0]+)$/g, '') : res;\n }\n\n /**\n * Large number format filter\n *\n * 大数据格式化\n * ```ts\n * 1000 => { value: '1', unit: 'K', unitI18n: '千' }\n * 12456 => { value: '12.46', unit: 'K', unitI18n: '千' }\n * ```\n */\n mega(value: number | string, options?: CurrencyMegaOptions): CurrencyMegaResult {\n options = { precision: this.c.precision, unitI18n: this.c.megaUnit, startingUnit: this.c.startingUnit, ...options };\n let num = Number(value);\n const res: CurrencyMegaResult = { raw: value, value: '', unit: '', unitI18n: '' };\n if (isNaN(num) || num === 0) {\n res.value = value.toString();\n return res;\n }\n if (options.startingUnit === 'cent') {\n num = num / 100;\n }\n let abs = Math.abs(+num);\n const rounder = Math.pow(10, options.precision!);\n const isNegative = num < 0;\n for (const p of CurrencyMega_Powers) {\n let reduced = abs / p.value;\n\n reduced = Math.round(reduced * rounder) / rounder;\n\n if (reduced >= 1) {\n abs = reduced;\n res.unit = p.unit;\n break;\n }\n }\n\n res.value = (isNegative ? '-' : '') + abs;\n res.unitI18n = (options.unitI18n as { [key: string]: NzSafeAny })[res.unit];\n return res;\n }\n\n /**\n * Converted into RMB notation.\n *\n * 转化成人民币表示法\n */\n cny(value: number | string, options?: CurrencyCNYOptions): string {\n options = {\n inWords: true,\n minusSymbol: '负',\n startingUnit: this.c.startingUnit,\n ...options\n };\n\n value = Number(value);\n if (isNaN(value)) {\n return '';\n }\n if (options.startingUnit === 'cent') {\n value = value / 100;\n }\n value = value.toString();\n let integer: number | string;\n let decimal: number | string | null;\n [integer, decimal] = value.split('.');\n let symbol = '';\n if (integer.startsWith('-')) {\n symbol = options.minusSymbol!;\n integer = integer.substring(1);\n }\n if (/^-?\\d+$/.test(value)) {\n decimal = null;\n }\n integer = (+integer).toString();\n const inWords = options.inWords;\n const unit: { [key: string]: string[] } = {\n num: inWords\n ? ['', '壹', '贰', '叁', '肆', '伍', '陆', '柒', '捌', '玖', '点']\n : ['', '一', '二', '三', '四', '五', '六', '七', '八', '九', '点'],\n radice: inWords\n ? [\n '',\n '拾',\n '佰',\n '仟',\n '万',\n '拾',\n '佰',\n '仟',\n '亿',\n '拾',\n '佰',\n '仟',\n '万亿',\n '拾',\n '佰',\n '仟',\n '兆',\n '拾',\n '佰',\n '仟'\n ]\n : [\n '',\n '十',\n '百',\n '千',\n '万',\n '十',\n '百',\n '千',\n '亿',\n '十',\n '百',\n '千',\n '万亿',\n '十',\n '百',\n '千',\n '兆',\n '十',\n '百',\n '千'\n ],\n dec: ['角', '分', '厘', '毫']\n };\n if (inWords) {\n value = (+value).toFixed(5).toString();\n }\n let integerRes = '';\n const integerCount = integer.length;\n if (integer === '0' || integerCount === 0) {\n integerRes = '零';\n } else {\n let cnDesc = '';\n for (let i = 0; i < integerCount; i++) {\n const n = +integer[i];\n const j = integerCount - i - 1;\n const isZero = i > 1 && n !== 0 && integer[i - 1] === '0';\n const cnZero = isZero ? '零' : '';\n const isEmpptyUnit = (n === 0 && j % 4 !== 0) || integer.substring(i - 3, i - 3 + 4) === '0000';\n const descMark = cnDesc;\n let cnNum = unit.num[n];\n\n cnDesc = isEmpptyUnit ? '' : unit.radice[j];\n // 第一位是一十\n if (i === 0 && cnNum === '一' && cnDesc === '十') cnNum = '';\n const isChangeEr =\n n > 1 &&\n cnNum === '二' && // 去除首位\n ['', '十', '百'].indexOf(cnDesc) === -1 && // 不读两\\两十\\两百\n descMark !== '十'; // 不读十两\n if (isChangeEr) cnNum = '两';\n integerRes += cnZero + cnNum + cnDesc;\n }\n }\n\n // 小数部分拼接\n let decimalRes = '';\n const decimalCount = decimal ? decimal.toString().length : 0;\n if (decimal === null) {\n decimalRes = inWords ? '整' : '';\n } else if (decimal === '0') {\n decimalRes = '零';\n } else {\n for (let i = 0; i < decimalCount; i++) {\n if (inWords && i > unit.dec.length - 1) break;\n const n = decimal[i];\n const cnZero = n === '0' ? '零' : '';\n const cnNum = unit.num[+n];\n const cnDesc = inWords ? unit.dec[i] : '';\n decimalRes += cnZero + cnNum + cnDesc;\n }\n }\n const ret =\n symbol +\n (inWords\n ? integerRes + (decimalRes === '零' ? '元整' : `元${decimalRes}`)\n : integerRes + (decimalRes === '' ? '' : `点${decimalRes}`));\n return ret;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,85 +1,85 @@
1
1
  import { assertNumber } from '@yelon/util/other';
2
2
 
3
- /**
4
- * Checks if `value` is between `start` and `end` to, but not including `end`. If `end` is not specified, it's set to start with `start` then set to `0`. If `start` is greater than `end` the params are swapped to support negative ranges.
5
- *
6
- * 检查 `value` 是否在 `start` 与 `end` 之间,但不包括 `end`。 如果 `end` 没有指定,那么 `start` 设置为 `0`。 如果 `start` 大于 `end`,那么参数会交换以便支持负范围。
7
- * ```ts
8
- * inRange(3, 2, 4); // true
9
- * inRange(4, 8); // true
10
- * inRange(4, 2); // false
11
- * inRange(2, 2); // false
12
- * inRange(1.2, 2); // true
13
- * inRange(-3, -2, -6); // true
14
- * ```
15
- */
16
- function inRange(value, start, end) {
17
- if (end === undefined) {
18
- end = start;
19
- start = 0;
20
- }
21
- assertNumber(value);
22
- assertNumber(start);
23
- assertNumber(end);
24
- return value >= Math.min(start, end) && value < Math.max(start, end);
3
+ /**
4
+ * Checks if `value` is between `start` and `end` to, but not including `end`. If `end` is not specified, it's set to start with `start` then set to `0`. If `start` is greater than `end` the params are swapped to support negative ranges.
5
+ *
6
+ * 检查 `value` 是否在 `start` 与 `end` 之间,但不包括 `end`。 如果 `end` 没有指定,那么 `start` 设置为 `0`。 如果 `start` 大于 `end`,那么参数会交换以便支持负范围。
7
+ * ```ts
8
+ * inRange(3, 2, 4); // true
9
+ * inRange(4, 8); // true
10
+ * inRange(4, 2); // false
11
+ * inRange(2, 2); // false
12
+ * inRange(1.2, 2); // true
13
+ * inRange(-3, -2, -6); // true
14
+ * ```
15
+ */
16
+ function inRange(value, start, end) {
17
+ if (end === undefined) {
18
+ end = start;
19
+ start = 0;
20
+ }
21
+ assertNumber(value);
22
+ assertNumber(start);
23
+ assertNumber(end);
24
+ return value >= Math.min(start, end) && value < Math.max(start, end);
25
25
  }
26
26
 
27
- /**
28
- * Computes `number` rounded up to `precision`.
29
- *
30
- * 根据 `precision`(精度) 向上舍入 `number`。
31
- * ```ts
32
- * ceil(4.006); // 5
33
- * ceil(6.004, 2); // 6.01
34
- * ceil(6040, -2); // 6100
35
- * ```
36
- */
37
- function ceil(number, precision = 0) {
38
- return createRound(number, precision, 'ceil');
39
- }
40
- /**
41
- * Computes `number` rounded down to `precision`.
42
- *
43
- * 根据 `precision`(精度) 向下舍入 `number`。
44
- * ```ts
45
- * floor(4.006); // 4
46
- * floor(0.046, 2); // 0.04
47
- * floor(4060, -2); // 4000
48
- * ```
49
- */
50
- function floor(number, precision = 0) {
51
- return createRound(number, precision, 'floor');
52
- }
53
- /**
54
- * Computes `number` rounded to `precision`.
55
- *
56
- * 根据 `precision`(精度) 四舍五入 `number`。
57
- * ```ts
58
- * round(4.006); // 4
59
- * round(4.006, 2); // 4.01
60
- * round(4060, -2); // 4100
61
- * ```
62
- */
63
- function round(number, precision = 0) {
64
- return createRound(number, precision, 'round');
65
- }
66
- function createRound(number, precision, methodName) {
67
- const func = Math[methodName];
68
- precision = precision == null ? 0 : Math.min(precision, 292);
69
- if (!precision) {
70
- return func(number);
71
- }
72
- // Shift with exponential notation to avoid floating-point issues.
73
- // See [MDN](https://mdn.io/round#Examples) for more details.
74
- let pair = `${number}e`.split('e');
75
- const value = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));
76
- pair = `${value}e`.split('e');
77
- return Number(`${pair[0]}e${Number(pair[1]) - precision}`);
27
+ /**
28
+ * Computes `number` rounded up to `precision`.
29
+ *
30
+ * 根据 `precision`(精度) 向上舍入 `number`。
31
+ * ```ts
32
+ * ceil(4.006); // 5
33
+ * ceil(6.004, 2); // 6.01
34
+ * ceil(6040, -2); // 6100
35
+ * ```
36
+ */
37
+ function ceil(number, precision = 0) {
38
+ return createRound(number, precision, 'ceil');
39
+ }
40
+ /**
41
+ * Computes `number` rounded down to `precision`.
42
+ *
43
+ * 根据 `precision`(精度) 向下舍入 `number`。
44
+ * ```ts
45
+ * floor(4.006); // 4
46
+ * floor(0.046, 2); // 0.04
47
+ * floor(4060, -2); // 4000
48
+ * ```
49
+ */
50
+ function floor(number, precision = 0) {
51
+ return createRound(number, precision, 'floor');
52
+ }
53
+ /**
54
+ * Computes `number` rounded to `precision`.
55
+ *
56
+ * 根据 `precision`(精度) 四舍五入 `number`。
57
+ * ```ts
58
+ * round(4.006); // 4
59
+ * round(4.006, 2); // 4.01
60
+ * round(4060, -2); // 4100
61
+ * ```
62
+ */
63
+ function round(number, precision = 0) {
64
+ return createRound(number, precision, 'round');
65
+ }
66
+ function createRound(number, precision, methodName) {
67
+ const func = Math[methodName];
68
+ precision = precision == null ? 0 : Math.min(precision, 292);
69
+ if (!precision) {
70
+ return func(number);
71
+ }
72
+ // Shift with exponential notation to avoid floating-point issues.
73
+ // See [MDN](https://mdn.io/round#Examples) for more details.
74
+ let pair = `${number}e`.split('e');
75
+ const value = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));
76
+ pair = `${value}e`.split('e');
77
+ return Number(`${pair[0]}e${Number(pair[1]) - precision}`);
78
78
  }
79
79
 
80
- /**
81
- * Generated bundle index. Do not edit.
80
+ /**
81
+ * Generated bundle index. Do not edit.
82
82
  */
83
83
 
84
84
  export { ceil, floor, inRange, round };
85
- //# sourceMappingURL=yelon-util-math.js.map
85
+ //# sourceMappingURL=math.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"math.mjs","sources":["../../../../packages/util/math/in-range.ts","../../../../packages/util/math/round.ts","../../../../packages/util/math/math.ts"],"sourcesContent":["import { assertNumber } from '@yelon/util/other';\n\n/**\n * Checks if `value` is between `start` and `end` to, but not including `end`. If `end` is not specified, it's set to start with `start` then set to `0`. If `start` is greater than `end` the params are swapped to support negative ranges.\n *\n * 检查 `value` 是否在 `start` 与 `end` 之间,但不包括 `end`。 如果 `end` 没有指定,那么 `start` 设置为 `0`。 如果 `start` 大于 `end`,那么参数会交换以便支持负范围。\n * ```ts\n * inRange(3, 2, 4); // true\n * inRange(4, 8); // true\n * inRange(4, 2); // false\n * inRange(2, 2); // false\n * inRange(1.2, 2); // true\n * inRange(-3, -2, -6); // true\n * ```\n */\nexport function inRange(value: number, start: number, end?: number): boolean {\n if (end === undefined) {\n end = start;\n start = 0;\n }\n assertNumber(value);\n assertNumber(start);\n assertNumber(end);\n return value >= Math.min(start, end) && value < Math.max(start, end);\n}\n","/**\n * Computes `number` rounded up to `precision`.\n *\n * 根据 `precision`(精度) 向上舍入 `number`。\n * ```ts\n * ceil(4.006); // 5\n * ceil(6.004, 2); // 6.01\n * ceil(6040, -2); // 6100\n * ```\n */\nexport function ceil(number: number, precision: number = 0): number {\n return createRound(number, precision, 'ceil');\n}\n\n/**\n * Computes `number` rounded down to `precision`.\n *\n * 根据 `precision`(精度) 向下舍入 `number`。\n * ```ts\n * floor(4.006); // 4\n * floor(0.046, 2); // 0.04\n * floor(4060, -2); // 4000\n * ```\n */\nexport function floor(number: number, precision: number = 0): number {\n return createRound(number, precision, 'floor');\n}\n\n/**\n * Computes `number` rounded to `precision`.\n *\n * 根据 `precision`(精度) 四舍五入 `number`。\n * ```ts\n * round(4.006); // 4\n * round(4.006, 2); // 4.01\n * round(4060, -2); // 4100\n * ```\n */\nexport function round(number: number, precision: number = 0): number {\n return createRound(number, precision, 'round');\n}\n\nfunction createRound(number: number, precision: number, methodName: keyof Math): number {\n const func = Math[methodName] as (x: number) => number;\n\n precision = precision == null ? 0 : Math.min(precision, 292);\n if (!precision) {\n return func(number);\n }\n // Shift with exponential notation to avoid floating-point issues.\n // See [MDN](https://mdn.io/round#Examples) for more details.\n let pair = `${number}e`.split('e');\n const value = func(Number(`${pair[0]}e${Number(pair[1]) + precision}`));\n pair = `${value}e`.split('e');\n return Number(`${pair[0]}e${Number(pair[1]) - precision}`);\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAEA;;;;;;;;;;;;;SAagB,OAAO,CAAC,KAAa,EAAE,KAAa,EAAE,GAAY;IAChE,IAAI,GAAG,KAAK,SAAS,EAAE;QACrB,GAAG,GAAG,KAAK,CAAC;QACZ,KAAK,GAAG,CAAC,CAAC;KACX;IACD,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,YAAY,CAAC,KAAK,CAAC,CAAC;IACpB,YAAY,CAAC,GAAG,CAAC,CAAC;IAClB,OAAO,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,IAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;AACvE;;ACxBA;;;;;;;;;;SAUgB,IAAI,CAAC,MAAc,EAAE,YAAoB,CAAC;IACxD,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;AAChD,CAAC;AAED;;;;;;;;;;SAUgB,KAAK,CAAC,MAAc,EAAE,YAAoB,CAAC;IACzD,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED;;;;;;;;;;SAUgB,KAAK,CAAC,MAAc,EAAE,YAAoB,CAAC;IACzD,OAAO,WAAW,CAAC,MAAM,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;AACjD,CAAC;AAED,SAAS,WAAW,CAAC,MAAc,EAAE,SAAiB,EAAE,UAAsB;IAC5E,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAA0B,CAAC;IAEvD,SAAS,GAAG,SAAS,IAAI,IAAI,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC;IAC7D,IAAI,CAAC,SAAS,EAAE;QACd,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC;KACrB;;;IAGD,IAAI,IAAI,GAAG,GAAG,MAAM,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC,CAAC;IACxE,IAAI,GAAG,GAAG,KAAK,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC9B,OAAO,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC,CAAC;AAC7D;;ACvDA;;;;;;"}