@yelon/util 12.0.18 → 13.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (313) hide show
  1. package/{date-time/yelon-util-date-time.d.ts → array/array.d.ts} +1 -0
  2. package/array/array.service.d.ts +3 -0
  3. package/array/package.json +6 -7
  4. package/browser/browser.d.ts +1 -0
  5. package/browser/cookie.service.d.ts +3 -0
  6. package/browser/copy.d.ts +1 -1
  7. package/browser/package.json +5 -6
  8. package/browser/scroll.service.d.ts +3 -0
  9. package/config/abc/pdf.type.d.ts +1 -1
  10. package/config/abc/qr.type.d.ts +1 -1
  11. package/config/config.d.ts +5 -0
  12. package/config/config.service.d.ts +3 -0
  13. package/config/package.json +6 -7
  14. package/date-time/date-time.d.ts +5 -0
  15. package/date-time/package.json +6 -7
  16. package/decorator/decorator.d.ts +5 -0
  17. package/decorator/package.json +6 -7
  18. package/{esm2015/array/array-type.service.js → esm2020/array/array-type.service.mjs} +0 -0
  19. package/esm2020/array/array.mjs +5 -0
  20. package/esm2020/array/array.service.mjs +278 -0
  21. package/{esm2015/array/index.js → esm2020/array/index.mjs} +0 -0
  22. package/{esm2015/browser/browser.js → esm2020/browser/browser.mjs} +0 -0
  23. package/esm2020/browser/cookie.service.mjs +103 -0
  24. package/esm2020/browser/copy.mjs +9 -0
  25. package/{esm2015/browser/index.js → esm2020/browser/index.mjs} +0 -0
  26. package/{esm2015/browser/is-empty.js → esm2020/browser/is-empty.mjs} +0 -0
  27. package/esm2020/browser/scroll.service.mjs +88 -0
  28. package/{esm2015/browser/style.js → esm2020/browser/style.mjs} +2 -2
  29. package/{esm2015/config/abc/date-picker.type.js → esm2020/config/abc/date-picker.type.mjs} +0 -0
  30. package/{esm2015/config/abc/error-collect.type.js → esm2020/config/abc/error-collect.type.mjs} +0 -0
  31. package/{esm2015/config/abc/image.type.js → esm2020/config/abc/image.type.mjs} +0 -0
  32. package/{esm2015/config/abc/index.js → esm2020/config/abc/index.mjs} +0 -0
  33. package/{esm2015/config/abc/loading.type.js → esm2020/config/abc/loading.type.mjs} +0 -0
  34. package/{esm2015/config/abc/lodop.type.js → esm2020/config/abc/lodop.type.mjs} +0 -0
  35. package/{esm2015/config/abc/media.type.js → esm2020/config/abc/media.type.mjs} +0 -0
  36. package/{esm2015/config/abc/onboarding.type.js → esm2020/config/abc/onboarding.type.mjs} +0 -0
  37. package/{esm2015/config/abc/page-header.type.js → esm2020/config/abc/page-header.type.mjs} +0 -0
  38. package/esm2020/config/abc/pdf.type.mjs +2 -0
  39. package/esm2020/config/abc/qr.type.mjs +2 -0
  40. package/{esm2015/config/abc/se.type.js → esm2020/config/abc/se.type.mjs} +0 -0
  41. package/{esm2015/config/abc/sg.type.js → esm2020/config/abc/sg.type.mjs} +0 -0
  42. package/{esm2015/config/abc/st.type.js → esm2020/config/abc/st.type.mjs} +0 -0
  43. package/{esm2015/config/abc/sv.type.js → esm2020/config/abc/sv.type.mjs} +0 -0
  44. package/{esm2015/config/abc/xlsx.type.js → esm2020/config/abc/xlsx.type.mjs} +0 -0
  45. package/{esm2015/config/abc/zip.type.js → esm2020/config/abc/zip.type.mjs} +0 -0
  46. package/{esm2015/config/acl/acl.type.js → esm2020/config/acl/acl.type.mjs} +0 -0
  47. package/{esm2015/config/auth/auth.type.js → esm2020/config/auth/auth.type.mjs} +0 -0
  48. package/{esm2015/config/bis/bis.type.js → esm2020/config/bis/bis.type.mjs} +0 -0
  49. package/{esm2015/config/cache/cache.type.js → esm2020/config/cache/cache.type.mjs} +0 -0
  50. package/{esm2015/config/chart/chart.type.js → esm2020/config/chart/chart.type.mjs} +0 -0
  51. package/esm2020/config/config.mjs +5 -0
  52. package/esm2020/config/config.service.mjs +37 -0
  53. package/{esm2015/config/config.types.js → esm2020/config/config.types.mjs} +0 -0
  54. package/{esm2015/config/index.js → esm2020/config/index.mjs} +0 -0
  55. package/{esm2015/config/mock/mock.type.js → esm2020/config/mock/mock.type.mjs} +0 -0
  56. package/{esm2015/config/sf/sf.type.js → esm2020/config/sf/sf.type.mjs} +0 -0
  57. package/{esm2015/config/stomp/stomp.type.js → esm2020/config/stomp/stomp.type.mjs} +0 -0
  58. package/{esm2015/config/theme/http.type.js → esm2020/config/theme/http.type.mjs} +0 -0
  59. package/{esm2015/config/theme/i18n.type.js → esm2020/config/theme/i18n.type.mjs} +0 -0
  60. package/{esm2015/config/theme/index.js → esm2020/config/theme/index.mjs} +0 -0
  61. package/{esm2015/config/theme/responsive.type.js → esm2020/config/theme/responsive.type.mjs} +0 -0
  62. package/{esm2015/config/util/array.type.js → esm2020/config/util/array.type.mjs} +0 -0
  63. package/{esm2015/config/util/currency.type.js → esm2020/config/util/currency.type.mjs} +0 -0
  64. package/esm2020/date-time/date-time.mjs +5 -0
  65. package/{esm2015/date-time/index.js → esm2020/date-time/index.mjs} +0 -0
  66. package/esm2020/date-time/picker.mjs +116 -0
  67. package/{esm2015/date-time/time.js → esm2020/date-time/time.mjs} +6 -2
  68. package/esm2020/decorator/convert.mjs +58 -0
  69. package/esm2020/decorator/decorator.mjs +5 -0
  70. package/{esm2015/decorator/index.js → esm2020/decorator/index.mjs} +0 -0
  71. package/esm2020/decorator/zone-outside.mjs +57 -0
  72. package/esm2020/form/form.mjs +5 -0
  73. package/{esm2015/form/index.js → esm2020/form/index.mjs} +0 -0
  74. package/{esm2015/form/match-control.js → esm2020/form/match-control.mjs} +0 -0
  75. package/{esm2015/form/validators.js → esm2020/form/validators.mjs} +0 -0
  76. package/esm2020/format/currency.service.mjs +238 -0
  77. package/{esm2015/format/currency.types.js → esm2020/format/currency.types.mjs} +0 -0
  78. package/esm2020/format/format.mjs +5 -0
  79. package/{esm2015/format/index.js → esm2020/format/index.mjs} +0 -0
  80. package/esm2020/format/string.mjs +85 -0
  81. package/{esm2015/format/validate.js → esm2020/format/validate.mjs} +0 -0
  82. package/{esm2015/index.js → esm2020/index.mjs} +0 -0
  83. package/{esm2015/math/in-range.js → esm2020/math/in-range.mjs} +0 -0
  84. package/{esm2015/math/index.js → esm2020/math/index.mjs} +0 -0
  85. package/esm2020/math/math.mjs +5 -0
  86. package/{esm2015/math/round.js → esm2020/math/round.mjs} +0 -0
  87. package/{esm2015/other/assert.js → esm2020/other/assert.mjs} +0 -0
  88. package/{esm2015/other/deep.js → esm2020/other/deep.mjs} +0 -0
  89. package/{esm2015/other/index.js → esm2020/other/index.mjs} +3 -1
  90. package/esm2020/other/lazy.service.mjs +104 -0
  91. package/{esm2015/other/logger.js → esm2020/other/logger.mjs} +0 -0
  92. package/esm2020/other/other.mjs +5 -0
  93. package/esm2020/other/resize.mjs +4 -0
  94. package/esm2020/other/url.mjs +13 -0
  95. package/esm2020/pipes/currency/cny.pipe.mjs +23 -0
  96. package/{esm2015/pipes/currency/index.js → esm2020/pipes/currency/index.mjs} +2 -1
  97. package/esm2020/pipes/currency/mega.pipe.mjs +29 -0
  98. package/esm2020/pipes/currency/module.mjs +19 -0
  99. package/esm2020/pipes/currency/pipe-currency.mjs +5 -0
  100. package/esm2020/pipes/currency/price.pipe.mjs +27 -0
  101. package/esm2020/pipes/filter/filter.pipe.mjs +19 -0
  102. package/{esm2015/pipes/filter/index.js → esm2020/pipes/filter/index.mjs} +0 -0
  103. package/esm2020/pipes/filter/module.mjs +17 -0
  104. package/{esm2015/other/yelon-util-other.js → esm2020/pipes/filter/pipe-filter.mjs} +1 -1
  105. package/{esm2015/pipes/format/index.js → esm2020/pipes/format/index.mjs} +0 -0
  106. package/esm2020/pipes/format/mask.pipe.mjs +34 -0
  107. package/esm2020/pipes/format/module.mjs +17 -0
  108. package/{esm2015/array/yelon-util-array.js → esm2020/pipes/format/pipe-format.mjs} +1 -1
  109. package/{esm2015/pipes/index.js → esm2020/pipes/index.mjs} +0 -0
  110. package/esm2020/pipes/pipes.mjs +5 -0
  111. package/{esm2015/token/index.js → esm2020/token/index.mjs} +0 -0
  112. package/{esm2015/token/page-visibility.js → esm2020/token/page-visibility.mjs} +0 -0
  113. package/esm2020/token/token.mjs +5 -0
  114. package/{esm2015/token/window.js → esm2020/token/window.mjs} +0 -0
  115. package/{esm2015/yelon-util.js → esm2020/yelon-util.mjs} +0 -0
  116. package/fesm2015/{yelon-util-array.js → array.mjs} +8 -10
  117. package/fesm2015/array.mjs.map +1 -0
  118. package/fesm2015/{browser.js → browser.mjs} +28 -42
  119. package/fesm2015/browser.mjs.map +1 -0
  120. package/fesm2015/{yelon-util-config.js → config.mjs} +14 -8
  121. package/fesm2015/config.mjs.map +1 -0
  122. package/fesm2015/{yelon-util-date-time.js → date-time.mjs} +1 -1
  123. package/fesm2015/date-time.mjs.map +1 -0
  124. package/fesm2015/{yelon-util-decorator.js → decorator.mjs} +8 -4
  125. package/fesm2015/decorator.mjs.map +1 -0
  126. package/fesm2015/{yelon-util-form.js → form.mjs} +1 -1
  127. package/fesm2015/form.mjs.map +1 -0
  128. package/fesm2015/{yelon-util-format.js → format.mjs} +18 -14
  129. package/fesm2015/format.mjs.map +1 -0
  130. package/fesm2015/{yelon-util-math.js → math.mjs} +1 -1
  131. package/fesm2015/math.mjs.map +1 -0
  132. package/fesm2015/{yelon-util-other.js → other.mjs} +35 -30
  133. package/fesm2015/other.mjs.map +1 -0
  134. package/fesm2015/pipe-currency.mjs +96 -0
  135. package/fesm2015/pipe-currency.mjs.map +1 -0
  136. package/fesm2015/pipe-filter.mjs +40 -0
  137. package/fesm2015/pipe-filter.mjs.map +1 -0
  138. package/fesm2015/pipe-format.mjs +55 -0
  139. package/fesm2015/pipe-format.mjs.map +1 -0
  140. package/fesm2015/{yelon-util-pipes.js → pipes.mjs} +1 -1
  141. package/fesm2015/pipes.mjs.map +1 -0
  142. package/fesm2015/{yelon-util-token.js → token.mjs} +1 -1
  143. package/fesm2015/token.mjs.map +1 -0
  144. package/fesm2015/{yelon-util.js → yelon-util.mjs} +1 -1
  145. package/fesm2015/yelon-util.mjs.map +1 -0
  146. package/fesm2020/array.mjs +285 -0
  147. package/fesm2020/array.mjs.map +1 -0
  148. package/fesm2020/browser.mjs +260 -0
  149. package/fesm2020/browser.mjs.map +1 -0
  150. package/fesm2020/config.mjs +54 -0
  151. package/fesm2020/config.mjs.map +1 -0
  152. package/fesm2020/date-time.mjs +210 -0
  153. package/fesm2020/date-time.mjs.map +1 -0
  154. package/fesm2020/decorator.mjs +121 -0
  155. package/fesm2020/decorator.mjs.map +1 -0
  156. package/fesm2020/form.mjs +118 -0
  157. package/fesm2020/form.mjs.map +1 -0
  158. package/fesm2020/format.mjs +431 -0
  159. package/fesm2020/format.mjs.map +1 -0
  160. package/fesm2020/math.mjs +85 -0
  161. package/fesm2020/math.mjs.map +1 -0
  162. package/fesm2020/other.mjs +303 -0
  163. package/fesm2020/other.mjs.map +1 -0
  164. package/fesm2020/pipe-currency.mjs +94 -0
  165. package/fesm2020/pipe-currency.mjs.map +1 -0
  166. package/fesm2020/pipe-filter.mjs +40 -0
  167. package/fesm2020/pipe-filter.mjs.map +1 -0
  168. package/fesm2020/pipe-format.mjs +55 -0
  169. package/fesm2020/pipe-format.mjs.map +1 -0
  170. package/fesm2020/pipes.mjs +8 -0
  171. package/fesm2020/pipes.mjs.map +1 -0
  172. package/fesm2020/token.mjs +38 -0
  173. package/fesm2020/token.mjs.map +1 -0
  174. package/fesm2020/yelon-util.mjs +16 -0
  175. package/fesm2020/yelon-util.mjs.map +1 -0
  176. package/{array/yelon-util-array.d.ts → form/form.d.ts} +1 -0
  177. package/form/package.json +6 -7
  178. package/format/currency.service.d.ts +3 -0
  179. package/format/format.d.ts +5 -0
  180. package/format/package.json +6 -7
  181. package/{config/yelon-util-config.d.ts → math/math.d.ts} +1 -0
  182. package/math/package.json +6 -7
  183. package/other/index.d.ts +2 -0
  184. package/other/lazy.service.d.ts +3 -0
  185. package/{decorator/yelon-util-decorator.d.ts → other/other.d.ts} +1 -0
  186. package/other/package.json +6 -7
  187. package/other/resize.d.ts +1 -0
  188. package/other/url.d.ts +2 -0
  189. package/package.json +132 -8
  190. package/pipes/currency/cny.pipe.d.ts +3 -0
  191. package/pipes/currency/index.d.ts +1 -0
  192. package/pipes/currency/mega.pipe.d.ts +3 -0
  193. package/pipes/currency/module.d.ts +7 -0
  194. package/pipes/currency/package.json +6 -7
  195. package/pipes/currency/pipe-currency.d.ts +5 -0
  196. package/pipes/currency/price.pipe.d.ts +3 -0
  197. package/pipes/filter/filter.pipe.d.ts +3 -0
  198. package/pipes/filter/module.d.ts +5 -0
  199. package/pipes/filter/package.json +6 -7
  200. package/pipes/filter/pipe-filter.d.ts +5 -0
  201. package/pipes/format/mask.pipe.d.ts +3 -0
  202. package/pipes/format/module.d.ts +5 -0
  203. package/pipes/format/package.json +6 -7
  204. package/pipes/format/pipe-format.d.ts +5 -0
  205. package/pipes/package.json +6 -7
  206. package/pipes/pipes.d.ts +5 -0
  207. package/token/package.json +6 -7
  208. package/token/token.d.ts +5 -0
  209. package/yelon-util.d.ts +1 -0
  210. package/array/yelon-util-array.metadata.json +0 -1
  211. package/browser/browser.metadata.json +0 -1
  212. package/bundles/browser.umd.js +0 -325
  213. package/bundles/browser.umd.js.map +0 -1
  214. package/bundles/yelon-util-array.umd.js +0 -641
  215. package/bundles/yelon-util-array.umd.js.map +0 -1
  216. package/bundles/yelon-util-config.umd.js +0 -411
  217. package/bundles/yelon-util-config.umd.js.map +0 -1
  218. package/bundles/yelon-util-date-time.umd.js +0 -238
  219. package/bundles/yelon-util-date-time.umd.js.map +0 -1
  220. package/bundles/yelon-util-decorator.umd.js +0 -462
  221. package/bundles/yelon-util-decorator.umd.js.map +0 -1
  222. package/bundles/yelon-util-form.umd.js +0 -135
  223. package/bundles/yelon-util-form.umd.js.map +0 -1
  224. package/bundles/yelon-util-format.umd.js +0 -785
  225. package/bundles/yelon-util-format.umd.js.map +0 -1
  226. package/bundles/yelon-util-math.umd.js +0 -104
  227. package/bundles/yelon-util-math.umd.js.map +0 -1
  228. package/bundles/yelon-util-other.umd.js +0 -714
  229. package/bundles/yelon-util-other.umd.js.map +0 -1
  230. package/bundles/yelon-util-pipes-currency.umd.js +0 -108
  231. package/bundles/yelon-util-pipes-currency.umd.js.map +0 -1
  232. package/bundles/yelon-util-pipes-filter.umd.js +0 -374
  233. package/bundles/yelon-util-pipes-filter.umd.js.map +0 -1
  234. package/bundles/yelon-util-pipes-format.umd.js +0 -66
  235. package/bundles/yelon-util-pipes-format.umd.js.map +0 -1
  236. package/bundles/yelon-util-pipes.umd.js +0 -38
  237. package/bundles/yelon-util-pipes.umd.js.map +0 -1
  238. package/bundles/yelon-util-token.umd.js +0 -49
  239. package/bundles/yelon-util-token.umd.js.map +0 -1
  240. package/bundles/yelon-util.umd.js +0 -86
  241. package/bundles/yelon-util.umd.js.map +0 -1
  242. package/config/yelon-util-config.metadata.json +0 -1
  243. package/date-time/yelon-util-date-time.metadata.json +0 -1
  244. package/decorator/yelon-util-decorator.metadata.json +0 -1
  245. package/esm2015/array/array.service.js +0 -250
  246. package/esm2015/browser/cookie.service.js +0 -104
  247. package/esm2015/browser/copy.js +0 -27
  248. package/esm2015/browser/scroll.service.js +0 -89
  249. package/esm2015/config/abc/pdf.type.js +0 -2
  250. package/esm2015/config/abc/qr.type.js +0 -2
  251. package/esm2015/config/config.service.js +0 -34
  252. package/esm2015/config/yelon-util-config.js +0 -5
  253. package/esm2015/date-time/picker.js +0 -116
  254. package/esm2015/date-time/yelon-util-date-time.js +0 -5
  255. package/esm2015/decorator/convert.js +0 -56
  256. package/esm2015/decorator/yelon-util-decorator.js +0 -5
  257. package/esm2015/decorator/zone-outside.js +0 -55
  258. package/esm2015/form/yelon-util-form.js +0 -5
  259. package/esm2015/format/currency.service.js +0 -225
  260. package/esm2015/format/string.js +0 -76
  261. package/esm2015/format/yelon-util-format.js +0 -5
  262. package/esm2015/math/yelon-util-math.js +0 -5
  263. package/esm2015/other/lazy.service.js +0 -118
  264. package/esm2015/pipes/currency/cny.pipe.js +0 -22
  265. package/esm2015/pipes/currency/mega.pipe.js +0 -26
  266. package/esm2015/pipes/currency/module.js +0 -14
  267. package/esm2015/pipes/currency/price.pipe.js +0 -26
  268. package/esm2015/pipes/currency/yelon-util-pipes-currency.js +0 -6
  269. package/esm2015/pipes/filter/filter.pipe.js +0 -15
  270. package/esm2015/pipes/filter/module.js +0 -12
  271. package/esm2015/pipes/filter/yelon-util-pipes-filter.js +0 -5
  272. package/esm2015/pipes/format/mask.pipe.js +0 -30
  273. package/esm2015/pipes/format/module.js +0 -12
  274. package/esm2015/pipes/format/yelon-util-pipes-format.js +0 -5
  275. package/esm2015/pipes/yelon-util-pipes.js +0 -5
  276. package/esm2015/token/yelon-util-token.js +0 -5
  277. package/fesm2015/browser.js.map +0 -1
  278. package/fesm2015/yelon-util-array.js.map +0 -1
  279. package/fesm2015/yelon-util-config.js.map +0 -1
  280. package/fesm2015/yelon-util-date-time.js.map +0 -1
  281. package/fesm2015/yelon-util-decorator.js.map +0 -1
  282. package/fesm2015/yelon-util-form.js.map +0 -1
  283. package/fesm2015/yelon-util-format.js.map +0 -1
  284. package/fesm2015/yelon-util-math.js.map +0 -1
  285. package/fesm2015/yelon-util-other.js.map +0 -1
  286. package/fesm2015/yelon-util-pipes-currency.js +0 -87
  287. package/fesm2015/yelon-util-pipes-currency.js.map +0 -1
  288. package/fesm2015/yelon-util-pipes-filter.js +0 -32
  289. package/fesm2015/yelon-util-pipes-filter.js.map +0 -1
  290. package/fesm2015/yelon-util-pipes-format.js +0 -47
  291. package/fesm2015/yelon-util-pipes-format.js.map +0 -1
  292. package/fesm2015/yelon-util-pipes.js.map +0 -1
  293. package/fesm2015/yelon-util-token.js.map +0 -1
  294. package/fesm2015/yelon-util.js.map +0 -1
  295. package/form/yelon-util-form.d.ts +0 -4
  296. package/form/yelon-util-form.metadata.json +0 -1
  297. package/format/yelon-util-format.d.ts +0 -4
  298. package/format/yelon-util-format.metadata.json +0 -1
  299. package/math/yelon-util-math.d.ts +0 -4
  300. package/math/yelon-util-math.metadata.json +0 -1
  301. package/other/yelon-util-other.d.ts +0 -4
  302. package/other/yelon-util-other.metadata.json +0 -1
  303. package/pipes/currency/yelon-util-pipes-currency.d.ts +0 -5
  304. package/pipes/currency/yelon-util-pipes-currency.metadata.json +0 -1
  305. package/pipes/filter/yelon-util-pipes-filter.d.ts +0 -4
  306. package/pipes/filter/yelon-util-pipes-filter.metadata.json +0 -1
  307. package/pipes/format/yelon-util-pipes-format.d.ts +0 -4
  308. package/pipes/format/yelon-util-pipes-format.metadata.json +0 -1
  309. package/pipes/yelon-util-pipes.d.ts +0 -4
  310. package/pipes/yelon-util-pipes.metadata.json +0 -1
  311. package/token/yelon-util-token.d.ts +0 -4
  312. package/token/yelon-util-token.metadata.json +0 -1
  313. package/yelon-util.metadata.json +0 -1
@@ -0,0 +1,303 @@
1
+ import extend from 'extend';
2
+ import { DOCUMENT } from '@angular/common';
3
+ import * as i0 from '@angular/core';
4
+ import { Injectable, Inject } from '@angular/core';
5
+ import { BehaviorSubject, isObservable } from 'rxjs';
6
+ import { share, filter } from 'rxjs/operators';
7
+
8
+ /**
9
+ * Gets the value at `path` of `object`, like `_.get` in lodash.
10
+ *
11
+ * 类似 `_.get`,根据 `path` 获取安全值
12
+ */
13
+ function deepGet(obj, path, defaultValue) {
14
+ if (!obj || path == null || path.length === 0)
15
+ return defaultValue;
16
+ if (!Array.isArray(path)) {
17
+ path = ~path.indexOf('.') ? path.split('.') : [path];
18
+ }
19
+ if (path.length === 1) {
20
+ const checkObj = obj[path[0]];
21
+ return typeof checkObj === 'undefined' ? defaultValue : checkObj;
22
+ }
23
+ const res = path.reduce((o, k) => (o || {})[k], obj);
24
+ return typeof res === 'undefined' ? defaultValue : res;
25
+ }
26
+ /**
27
+ * Base on [extend](https://github.com/justmoon/node-extend) deep copy.
28
+ *
29
+ * 基于 [extend](https://github.com/justmoon/node-extend) 的深度拷贝
30
+ */
31
+ function deepCopy(obj) {
32
+ const result = extend(true, {}, { _: obj });
33
+ return result._;
34
+ }
35
+ /**
36
+ * Deep merge object.
37
+ *
38
+ * 深度合并对象
39
+ *
40
+ * @param original 原始对象
41
+ * @param arrayProcessMethod 数组处理方式
42
+ * - `true` 表示替换新值,不管新值为哪种类型
43
+ * - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组)
44
+ * @param objects 要合并的对象
45
+ */
46
+ function deepMergeKey(original, arrayProcessMethod, ...objects) {
47
+ if (Array.isArray(original) || typeof original !== 'object')
48
+ return original;
49
+ const isObject = (v) => typeof v === 'object';
50
+ const merge = (target, obj) => {
51
+ Object.keys(obj)
52
+ .filter(key => key !== '__proto__' && Object.prototype.hasOwnProperty.call(obj, key))
53
+ .forEach(key => {
54
+ const fromValue = obj[key];
55
+ const toValue = target[key];
56
+ if (Array.isArray(toValue)) {
57
+ target[key] = arrayProcessMethod ? fromValue : [...toValue, ...fromValue];
58
+ }
59
+ else if (typeof fromValue === 'function') {
60
+ target[key] = fromValue;
61
+ }
62
+ else if (fromValue != null && isObject(fromValue) && toValue != null && isObject(toValue)) {
63
+ target[key] = merge(toValue, fromValue);
64
+ }
65
+ else {
66
+ target[key] = deepCopy(fromValue);
67
+ }
68
+ });
69
+ return target;
70
+ };
71
+ objects.filter(v => v != null && isObject(v)).forEach(v => merge(original, v));
72
+ return original;
73
+ }
74
+ /**
75
+ * Deep merge object.
76
+ *
77
+ * 深度合并对象
78
+ */
79
+ function deepMerge(original, ...objects) {
80
+ return deepMergeKey(original, false, ...objects);
81
+ }
82
+
83
+ const record = {};
84
+ const PREFIX = '[@YELON]:';
85
+ function notRecorded(...args) {
86
+ const asRecord = args.reduce((acc, c) => acc + c.toString(), '');
87
+ if (record[asRecord]) {
88
+ return false;
89
+ }
90
+ else {
91
+ record[asRecord] = true;
92
+ return true;
93
+ }
94
+ }
95
+ function consoleCommonBehavior(consoleFunc, ...args) {
96
+ if ((typeof ngDevMode === 'undefined' || ngDevMode) && notRecorded(...args)) {
97
+ consoleFunc(...args);
98
+ }
99
+ }
100
+ // Warning should only be printed in dev mode and only once.
101
+ const warn = (...args) => consoleCommonBehavior((...arg) => console.warn(PREFIX, ...arg), ...args);
102
+ const warnDeprecation = (...args) => {
103
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
104
+ return () => { };
105
+ }
106
+ const stack = new Error().stack;
107
+ return consoleCommonBehavior((...arg) => console.warn(PREFIX, 'deprecated:', ...arg, stack), ...args);
108
+ };
109
+ // Log should only be printed in dev mode.
110
+ const log = (...args) => {
111
+ if (typeof ngDevMode === 'undefined' || ngDevMode) {
112
+ console.log(PREFIX, ...args);
113
+ }
114
+ };
115
+
116
+ /**
117
+ * 延迟加载资源(js 或 css)服务
118
+ */
119
+ class LazyService {
120
+ constructor(doc) {
121
+ this.doc = doc;
122
+ this.list = {};
123
+ this.cached = {};
124
+ this._notify = new BehaviorSubject([]);
125
+ }
126
+ get change() {
127
+ return this._notify.asObservable().pipe(share(), filter(ls => ls.length !== 0));
128
+ }
129
+ clear() {
130
+ this.list = {};
131
+ this.cached = {};
132
+ }
133
+ load(paths) {
134
+ if (!Array.isArray(paths)) {
135
+ paths = [paths];
136
+ }
137
+ const promises = [];
138
+ paths.forEach(path => {
139
+ if (path.endsWith('.js')) {
140
+ promises.push(this.loadScript(path));
141
+ }
142
+ else {
143
+ promises.push(this.loadStyle(path));
144
+ }
145
+ });
146
+ return Promise.all(promises).then(res => {
147
+ this._notify.next(res);
148
+ return Promise.resolve(res);
149
+ });
150
+ }
151
+ loadScript(path, innerContent) {
152
+ return new Promise(resolve => {
153
+ if (this.list[path] === true) {
154
+ resolve({ ...this.cached[path], status: 'loading' });
155
+ return;
156
+ }
157
+ this.list[path] = true;
158
+ const onSuccess = (item) => {
159
+ this.cached[path] = item;
160
+ resolve(item);
161
+ this._notify.next([item]);
162
+ };
163
+ const node = this.doc.createElement('script');
164
+ node.type = 'text/javascript';
165
+ node.src = path;
166
+ if (innerContent) {
167
+ node.innerHTML = innerContent;
168
+ }
169
+ node.onload = () => onSuccess({
170
+ path,
171
+ status: 'ok'
172
+ });
173
+ node.onerror = error => onSuccess({
174
+ path,
175
+ status: 'error',
176
+ error
177
+ });
178
+ this.doc.getElementsByTagName('head')[0].appendChild(node);
179
+ });
180
+ }
181
+ loadStyle(path, rel = 'stylesheet', innerContent) {
182
+ return new Promise(resolve => {
183
+ if (this.list[path] === true) {
184
+ resolve(this.cached[path]);
185
+ return;
186
+ }
187
+ this.list[path] = true;
188
+ const node = this.doc.createElement('link');
189
+ node.rel = rel;
190
+ node.type = 'text/css';
191
+ node.href = path;
192
+ if (innerContent) {
193
+ node.innerHTML = innerContent;
194
+ }
195
+ this.doc.getElementsByTagName('head')[0].appendChild(node);
196
+ const item = {
197
+ path,
198
+ status: 'ok'
199
+ };
200
+ this.cached[path] = item;
201
+ resolve(item);
202
+ });
203
+ }
204
+ }
205
+ LazyService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LazyService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
206
+ LazyService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LazyService, providedIn: 'root' });
207
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: LazyService, decorators: [{
208
+ type: Injectable,
209
+ args: [{ providedIn: 'root' }]
210
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
211
+ type: Inject,
212
+ args: [DOCUMENT]
213
+ }] }]; } });
214
+
215
+ function throwError(msg, actual, expected, comparison) {
216
+ if (ngDevMode) {
217
+ throw new Error(`ASSERTION ERROR: ${msg}${comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`}`);
218
+ }
219
+ }
220
+ /**
221
+ * Assert whether the expression and throw an error into console in dev mode
222
+ *
223
+ * 断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误
224
+ */
225
+ function assert(expression, msg) {
226
+ if (!expression) {
227
+ throwError(msg);
228
+ }
229
+ }
230
+ /**
231
+ * Assert whether empty (`null` or `undefined`)
232
+ *
233
+ * 断言是否空值(`null` 或 `undefined`)
234
+ */
235
+ function assertEmpty(actual, msg) {
236
+ if (actual == null) {
237
+ throwError(msg, typeof actual, 'NULL', '==');
238
+ }
239
+ }
240
+ /**
241
+ * Assert whether `number` type
242
+ *
243
+ * 断言是否 `number` 类型
244
+ */
245
+ function assertNumber(actual, msg) {
246
+ if (!(typeof actual === 'number')) {
247
+ throwError(msg, typeof actual, 'number', '===');
248
+ }
249
+ }
250
+ /**
251
+ * Assert whether `string` type
252
+ *
253
+ * 断言是否 `string` 类型
254
+ */
255
+ function assertString(actual, msg) {
256
+ if (!(typeof actual === 'string')) {
257
+ throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');
258
+ }
259
+ }
260
+ /**
261
+ * Assert whether `array` type
262
+ *
263
+ * 断言是否 `array` 类型
264
+ */
265
+ function assertArray(actual, msg) {
266
+ if (!Array.isArray(actual)) {
267
+ throwError(msg, actual === null ? 'null' : typeof actual, 'array', '===');
268
+ }
269
+ }
270
+ /**
271
+ * Assert whether `Observable` type
272
+ *
273
+ * 断言是否 `Observable` 类型
274
+ */
275
+ function assertObservable(obj, msg) {
276
+ if (!isObservable(obj)) {
277
+ throwError(msg, obj === null ? 'null' : typeof obj, 'Observable', '===');
278
+ }
279
+ }
280
+
281
+ function getUrlParam(url, name) {
282
+ try {
283
+ var reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`);
284
+ var r = url.split('?')[1].match(reg);
285
+ if (r != null)
286
+ return unescape(r[2]);
287
+ }
288
+ catch (e) {
289
+ return null;
290
+ }
291
+ return null;
292
+ }
293
+
294
+ const resizeWindow = () => {
295
+ window.dispatchEvent(new Event('resize'));
296
+ };
297
+
298
+ /**
299
+ * Generated bundle index. Do not edit.
300
+ */
301
+
302
+ export { LazyService, PREFIX, assert, assertArray, assertEmpty, assertNumber, assertObservable, assertString, deepCopy, deepGet, deepMerge, deepMergeKey, getUrlParam, log, resizeWindow, warn, warnDeprecation };
303
+ //# sourceMappingURL=other.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"other.mjs","sources":["../../../../packages/util/other/deep.ts","../../../../packages/util/other/logger.ts","../../../../packages/util/other/lazy.service.ts","../../../../packages/util/other/assert.ts","../../../../packages/util/other/url.ts","../../../../packages/util/other/resize.ts","../../../../packages/util/other/other.ts"],"sourcesContent":["import extend from 'extend';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n/**\n * Gets the value at `path` of `object`, like `_.get` in lodash.\n *\n * 类似 `_.get`,根据 `path` 获取安全值\n */\nexport function deepGet(obj: NzSafeAny, path: string | string[] | null | undefined, defaultValue?: unknown): NzSafeAny {\n if (!obj || path == null || path.length === 0) return defaultValue;\n if (!Array.isArray(path)) {\n path = ~path.indexOf('.') ? path.split('.') : [path];\n }\n if (path.length === 1) {\n const checkObj = obj[path[0]];\n return typeof checkObj === 'undefined' ? defaultValue : checkObj;\n }\n const res = path.reduce((o, k) => (o || {})[k], obj);\n return typeof res === 'undefined' ? defaultValue : res;\n}\n\n/**\n * Base on [extend](https://github.com/justmoon/node-extend) deep copy.\n *\n * 基于 [extend](https://github.com/justmoon/node-extend) 的深度拷贝\n */\nexport function deepCopy<T extends { [key: string]: NzSafeAny } = NzSafeAny>(obj: T | null | undefined): T {\n const result = extend(true, {}, { _: obj });\n return result._ as T;\n}\n\n/**\n * Deep merge object.\n *\n * 深度合并对象\n *\n * @param original 原始对象\n * @param arrayProcessMethod 数组处理方式\n * - `true` 表示替换新值,不管新值为哪种类型\n * - `false` 表示会合并整个数组(将旧数据与新数据合并成新数组)\n * @param objects 要合并的对象\n */\nexport function deepMergeKey(original: unknown, arrayProcessMethod: boolean, ...objects: NzSafeAny[]): NzSafeAny {\n if (Array.isArray(original) || typeof original !== 'object') return original;\n\n const isObject = (v: unknown): boolean => typeof v === 'object';\n\n const merge = (target: NzSafeAny, obj: NzSafeAny): NzSafeAny => {\n Object.keys(obj)\n .filter(key => key !== '__proto__' && Object.prototype.hasOwnProperty.call(obj, key))\n .forEach(key => {\n const fromValue = obj[key];\n const toValue = target[key];\n if (Array.isArray(toValue)) {\n target[key] = arrayProcessMethod ? fromValue : [...toValue, ...fromValue];\n } else if (typeof fromValue === 'function') {\n target[key] = fromValue;\n } else if (fromValue != null && isObject(fromValue) && toValue != null && isObject(toValue)) {\n target[key] = merge(toValue, fromValue);\n } else {\n target[key] = deepCopy(fromValue);\n }\n });\n return target;\n };\n\n objects.filter(v => v != null && isObject(v)).forEach(v => merge(original, v));\n\n return original;\n}\n\n/**\n * Deep merge object.\n *\n * 深度合并对象\n */\nexport function deepMerge(original: unknown, ...objects: unknown[]): NzSafeAny {\n return deepMergeKey(original, false, ...objects);\n}\n","import type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\ndeclare const ngDevMode: boolean;\n\nconst record: Record<string, boolean> = {};\n\nexport const PREFIX = '[@YELON]:';\n\nfunction notRecorded(...args: NzSafeAny[]): boolean {\n const asRecord = args.reduce((acc, c) => acc + c.toString(), '');\n\n if (record[asRecord]) {\n return false;\n } else {\n record[asRecord] = true;\n return true;\n }\n}\n\nfunction consoleCommonBehavior(consoleFunc: (...args: NzSafeAny) => void, ...args: NzSafeAny[]): void {\n if ((typeof ngDevMode === 'undefined' || ngDevMode) && notRecorded(...args)) {\n consoleFunc(...args);\n }\n}\n\n// Warning should only be printed in dev mode and only once.\nexport const warn = (...args: NzSafeAny[]): void =>\n consoleCommonBehavior((...arg: NzSafeAny[]) => console.warn(PREFIX, ...arg), ...args);\n\nexport const warnDeprecation = (...args: NzSafeAny[]): NzSafeAny => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n return () => {};\n }\n const stack = new Error().stack;\n return consoleCommonBehavior((...arg: NzSafeAny[]) => console.warn(PREFIX, 'deprecated:', ...arg, stack), ...args);\n};\n\n// Log should only be printed in dev mode.\nexport const log = (...args: NzSafeAny[]): void => {\n if (typeof ngDevMode === 'undefined' || ngDevMode) {\n console.log(PREFIX, ...args);\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Inject, Injectable } from '@angular/core';\nimport { BehaviorSubject, Observable } from 'rxjs';\nimport { filter, share } from 'rxjs/operators';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport interface LazyResult {\n path: string;\n status: 'ok' | 'error' | 'loading';\n error?: NzSafeAny;\n}\n\n/**\n * 延迟加载资源(js 或 css)服务\n */\n@Injectable({ providedIn: 'root' })\nexport class LazyService {\n private list: { [key: string]: boolean } = {};\n private cached: { [key: string]: LazyResult } = {};\n private _notify: BehaviorSubject<LazyResult[]> = new BehaviorSubject<LazyResult[]>([]);\n\n constructor(@Inject(DOCUMENT) private doc: NzSafeAny) {}\n\n get change(): Observable<LazyResult[]> {\n return this._notify.asObservable().pipe(\n share(),\n filter(ls => ls.length !== 0)\n );\n }\n\n clear(): void {\n this.list = {};\n this.cached = {};\n }\n\n load(paths: string | string[]): Promise<LazyResult[]> {\n if (!Array.isArray(paths)) {\n paths = [paths];\n }\n\n const promises: Array<Promise<LazyResult>> = [];\n paths.forEach(path => {\n if (path.endsWith('.js')) {\n promises.push(this.loadScript(path));\n } else {\n promises.push(this.loadStyle(path));\n }\n });\n\n return Promise.all(promises).then(res => {\n this._notify.next(res);\n return Promise.resolve(res);\n });\n }\n\n loadScript(path: string, innerContent?: string): Promise<LazyResult> {\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve({ ...this.cached[path], status: 'loading' });\n return;\n }\n\n this.list[path] = true;\n const onSuccess = (item: LazyResult): void => {\n this.cached[path] = item;\n resolve(item);\n this._notify.next([item]);\n };\n\n const node = this.doc.createElement('script') as HTMLScriptElement;\n node.type = 'text/javascript';\n node.src = path;\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n node.onload = () =>\n onSuccess({\n path,\n status: 'ok'\n });\n node.onerror = error =>\n onSuccess({\n path,\n status: 'error',\n error\n });\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n });\n }\n\n loadStyle(path: string, rel: string = 'stylesheet', innerContent?: string): Promise<LazyResult> {\n return new Promise(resolve => {\n if (this.list[path] === true) {\n resolve(this.cached[path]);\n return;\n }\n\n this.list[path] = true;\n\n const node = this.doc.createElement('link') as HTMLLinkElement;\n node.rel = rel;\n node.type = 'text/css';\n node.href = path;\n if (innerContent) {\n node.innerHTML = innerContent;\n }\n this.doc.getElementsByTagName('head')[0].appendChild(node);\n const item: LazyResult = {\n path,\n status: 'ok'\n };\n this.cached[path] = item;\n resolve(item);\n });\n }\n}\n","import { isObservable } from 'rxjs';\n\ndeclare const ngDevMode: boolean;\n\nfunction throwError(msg: string | null | undefined): void;\nfunction throwError(msg: string | null | undefined, actual: unknown, expected: unknown, comparison: string): void;\nfunction throwError(msg: string | null | undefined, actual?: unknown, expected?: unknown, comparison?: string): void {\n if (ngDevMode) {\n throw new Error(\n `ASSERTION ERROR: ${msg}${comparison == null ? '' : ` [Expected=> ${expected} ${comparison} ${actual} <=Actual]`}`\n );\n }\n}\n\n/**\n * Assert whether the expression and throw an error into console in dev mode\n *\n * 断言表达式是否符合预期,并在开发模式下会在控制台抛出一个错误\n */\nexport function assert(expression: boolean, msg?: string): void {\n if (!expression) {\n throwError(msg);\n }\n}\n\n/**\n * Assert whether empty (`null` or `undefined`)\n *\n * 断言是否空值(`null` 或 `undefined`)\n */\nexport function assertEmpty(actual: unknown, msg?: string): void {\n if (actual == null) {\n throwError(msg, typeof actual, 'NULL', '==');\n }\n}\n\n/**\n * Assert whether `number` type\n *\n * 断言是否 `number` 类型\n */\nexport function assertNumber(actual: unknown, msg?: string): void {\n if (!(typeof actual === 'number')) {\n throwError(msg, typeof actual, 'number', '===');\n }\n}\n\n/**\n * Assert whether `string` type\n *\n * 断言是否 `string` 类型\n */\nexport function assertString(actual: unknown, msg?: string): void {\n if (!(typeof actual === 'string')) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'string', '===');\n }\n}\n\n/**\n * Assert whether `array` type\n *\n * 断言是否 `array` 类型\n */\nexport function assertArray(actual: unknown, msg?: string): void {\n if (!Array.isArray(actual)) {\n throwError(msg, actual === null ? 'null' : typeof actual, 'array', '===');\n }\n}\n\n/**\n * Assert whether `Observable` type\n *\n * 断言是否 `Observable` 类型\n */\nexport function assertObservable(obj: unknown, msg?: string): void {\n if (!isObservable(obj)) {\n throwError(msg, obj === null ? 'null' : typeof obj, 'Observable', '===');\n }\n}\n","import { NzSafeAny } from 'ng-zorro-antd/core/types';\n\nexport function getUrlParam(url: NzSafeAny, name: string): string | null {\n try {\n var reg = new RegExp(`(^|&)${name}=([^&]*)(&|$)`);\n var r = url.split('?')[1].match(reg);\n if (r != null) return unescape(r[2]);\n } catch (e) {\n return null;\n }\n return null;\n}\n","export const resizeWindow = (): void => {\n window.dispatchEvent(new Event('resize'));\n};\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,94 @@
1
+ import * as i0 from '@angular/core';
2
+ import { LOCALE_ID, Pipe, Inject, NgModule } from '@angular/core';
3
+ import * as i1 from '@yelon/util/format';
4
+
5
+ class CurrencyMegaPipe {
6
+ constructor(srv, locale) {
7
+ this.srv = srv;
8
+ this.isCN = false;
9
+ this.isCN = locale.startsWith('zh');
10
+ }
11
+ /**
12
+ * Large number format filter
13
+ *
14
+ * 大数据格式化
15
+ */
16
+ transform(value, options) {
17
+ const res = this.srv.mega(value, options);
18
+ return res.value + (this.isCN ? res.unitI18n : res.unit);
19
+ }
20
+ }
21
+ CurrencyMegaPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyMegaPipe, deps: [{ token: i1.CurrencyService }, { token: LOCALE_ID }], target: i0.ɵɵFactoryTarget.Pipe });
22
+ CurrencyMegaPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyMegaPipe, name: "mega" });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyMegaPipe, decorators: [{
24
+ type: Pipe,
25
+ args: [{ name: 'mega' }]
26
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }, { type: undefined, decorators: [{
27
+ type: Inject,
28
+ args: [LOCALE_ID]
29
+ }] }]; } });
30
+
31
+ class CurrencyPricePipe {
32
+ constructor(srv) {
33
+ this.srv = srv;
34
+ }
35
+ /**
36
+ * Format a number with commas as thousands separators
37
+ *
38
+ * 格式化货币,用逗号将数字格式化为千位分隔符
39
+ * ```ts
40
+ * 10000 => `10,000`
41
+ * 10000.567 => `10,000.57`
42
+ * ```
43
+ */
44
+ transform(value, options) {
45
+ return this.srv.format(value, options);
46
+ }
47
+ }
48
+ CurrencyPricePipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPricePipe, deps: [{ token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Pipe });
49
+ CurrencyPricePipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPricePipe, name: "price" });
50
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPricePipe, decorators: [{
51
+ type: Pipe,
52
+ args: [{ name: 'price' }]
53
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }]; } });
54
+
55
+ class CurrencyCNYPipe {
56
+ constructor(srv) {
57
+ this.srv = srv;
58
+ }
59
+ /**
60
+ * Converted into RMB notation.
61
+ *
62
+ * 转化成人民币表示法
63
+ */
64
+ transform(value, options) {
65
+ return this.srv.cny(value, options);
66
+ }
67
+ }
68
+ CurrencyCNYPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyCNYPipe, deps: [{ token: i1.CurrencyService }], target: i0.ɵɵFactoryTarget.Pipe });
69
+ CurrencyCNYPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyCNYPipe, name: "cny" });
70
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyCNYPipe, decorators: [{
71
+ type: Pipe,
72
+ args: [{ name: 'cny' }]
73
+ }], ctorParameters: function () { return [{ type: i1.CurrencyService }]; } });
74
+
75
+ const PIPES = [CurrencyMegaPipe, CurrencyPricePipe, CurrencyCNYPipe];
76
+ class CurrencyPipeModule {
77
+ }
78
+ CurrencyPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
79
+ CurrencyPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPipeModule, declarations: [CurrencyMegaPipe, CurrencyPricePipe, CurrencyCNYPipe], exports: [CurrencyMegaPipe, CurrencyPricePipe, CurrencyCNYPipe] });
80
+ CurrencyPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPipeModule });
81
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: CurrencyPipeModule, decorators: [{
82
+ type: NgModule,
83
+ args: [{
84
+ declarations: PIPES,
85
+ exports: PIPES
86
+ }]
87
+ }] });
88
+
89
+ /**
90
+ * Generated bundle index. Do not edit.
91
+ */
92
+
93
+ export { CurrencyCNYPipe, CurrencyMegaPipe, CurrencyPipeModule, CurrencyPricePipe };
94
+ //# sourceMappingURL=pipe-currency.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-currency.mjs","sources":["../../../../packages/util/pipes/currency/mega.pipe.ts","../../../../packages/util/pipes/currency/price.pipe.ts","../../../../packages/util/pipes/currency/cny.pipe.ts","../../../../packages/util/pipes/currency/module.ts","../../../../packages/util/pipes/currency/pipe-currency.ts"],"sourcesContent":["import { Inject, LOCALE_ID, Pipe, PipeTransform } from '@angular/core';\n\nimport { CurrencyMegaOptions, CurrencyService } from '@yelon/util/format';\n\n@Pipe({ name: 'mega' })\nexport class CurrencyMegaPipe implements PipeTransform {\n private isCN = false;\n constructor(private srv: CurrencyService, @Inject(LOCALE_ID) locale: string) {\n this.isCN = locale.startsWith('zh');\n }\n\n /**\n * Large number format filter\n *\n * 大数据格式化\n */\n transform(value: number | string, options?: CurrencyMegaOptions): string {\n const res = this.srv.mega(value, options);\n return res.value + (this.isCN ? res.unitI18n : res.unit);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { CurrencyFormatOptions, CurrencyService } from '@yelon/util/format';\n\n@Pipe({ name: 'price' })\nexport class CurrencyPricePipe implements PipeTransform {\n constructor(private srv: CurrencyService) {}\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 transform(value: number | string, options?: CurrencyFormatOptions): string {\n return this.srv.format(value, options);\n }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\n\nimport { CurrencyCNYOptions, CurrencyService } from '@yelon/util/format';\n\n@Pipe({ name: 'cny' })\nexport class CurrencyCNYPipe implements PipeTransform {\n constructor(private srv: CurrencyService) {}\n\n /**\n * Converted into RMB notation.\n *\n * 转化成人民币表示法\n */\n transform(value: number | string, options?: CurrencyCNYOptions): string {\n return this.srv.cny(value, options);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { CurrencyCNYPipe } from './cny.pipe';\nimport { CurrencyMegaPipe } from './mega.pipe';\nimport { CurrencyPricePipe } from './price.pipe';\n\nconst PIPES = [CurrencyMegaPipe, CurrencyPricePipe, CurrencyCNYPipe];\n\n@NgModule({\n declarations: PIPES,\n exports: PIPES\n})\nexport class CurrencyPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAKa,gBAAgB;IAE3B,YAAoB,GAAoB,EAAqB,MAAc;QAAvD,QAAG,GAAH,GAAG,CAAiB;QADhC,SAAI,GAAG,KAAK,CAAC;QAEnB,IAAI,CAAC,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;KACrC;;;;;;IAOD,SAAS,CAAC,KAAsB,EAAE,OAA6B;QAC7D,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QAC1C,OAAO,GAAG,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC;KAC1D;;6GAdU,gBAAgB,iDAEuB,SAAS;2GAFhD,gBAAgB;2FAAhB,gBAAgB;kBAD5B,IAAI;mBAAC,EAAE,IAAI,EAAE,MAAM,EAAE;;0BAGuB,MAAM;2BAAC,SAAS;;;MCFhD,iBAAiB;IAC5B,YAAoB,GAAoB;QAApB,QAAG,GAAH,GAAG,CAAiB;KAAI;;;;;;;;;;IAU5C,SAAS,CAAC,KAAsB,EAAE,OAA+B;QAC/D,OAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACxC;;8GAbU,iBAAiB;4GAAjB,iBAAiB;2FAAjB,iBAAiB;kBAD7B,IAAI;mBAAC,EAAE,IAAI,EAAE,OAAO,EAAE;;;MCCV,eAAe;IAC1B,YAAoB,GAAoB;QAApB,QAAG,GAAH,GAAG,CAAiB;KAAI;;;;;;IAO5C,SAAS,CAAC,KAAsB,EAAE,OAA4B;QAC5D,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;KACrC;;4GAVU,eAAe;0GAAf,eAAe;2FAAf,eAAe;kBAD3B,IAAI;mBAAC,EAAE,IAAI,EAAE,KAAK,EAAE;;;ACErB,MAAM,KAAK,GAAG,CAAC,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,CAAC,CAAC;MAMxD,kBAAkB;;+GAAlB,kBAAkB;gHAAlB,kBAAkB,iBANhB,gBAAgB,EAAE,iBAAiB,EAAE,eAAe,aAApD,gBAAgB,EAAE,iBAAiB,EAAE,eAAe;gHAMtD,kBAAkB;2FAAlB,kBAAkB;kBAJ9B,QAAQ;mBAAC;oBACR,YAAY,EAAE,KAAK;oBACnB,OAAO,EAAE,KAAK;iBACf;;;ACXD;;;;;;"}
@@ -0,0 +1,40 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe, NgModule } from '@angular/core';
3
+
4
+ class FilterPipe {
5
+ /**
6
+ * Filter array
7
+ *
8
+ * 过滤数组
9
+ */
10
+ transform(array, matcher, ...args) {
11
+ return array.filter(i => matcher(i, ...args));
12
+ }
13
+ }
14
+ FilterPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
15
+ FilterPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipe, name: "filter" });
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipe, decorators: [{
17
+ type: Pipe,
18
+ args: [{ name: 'filter' }]
19
+ }] });
20
+
21
+ const PIPES = [FilterPipe];
22
+ class FilterPipeModule {
23
+ }
24
+ FilterPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ FilterPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipeModule, declarations: [FilterPipe], exports: [FilterPipe] });
26
+ FilterPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipeModule });
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FilterPipeModule, decorators: [{
28
+ type: NgModule,
29
+ args: [{
30
+ declarations: PIPES,
31
+ exports: PIPES
32
+ }]
33
+ }] });
34
+
35
+ /**
36
+ * Generated bundle index. Do not edit.
37
+ */
38
+
39
+ export { FilterPipe, FilterPipeModule };
40
+ //# sourceMappingURL=pipe-filter.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-filter.mjs","sources":["../../../../packages/util/pipes/filter/filter.pipe.ts","../../../../packages/util/pipes/filter/module.ts","../../../../packages/util/pipes/filter/pipe-filter.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\nimport type { NzSafeAny } from 'ng-zorro-antd/core/types';\n\n@Pipe({ name: 'filter' })\nexport class FilterPipe implements PipeTransform {\n /**\n * Filter array\n *\n * 过滤数组\n */\n transform<T>(array: readonly T[], matcher: (item: T, ...args: NzSafeAny[]) => boolean, ...args: NzSafeAny[]): T[] {\n return array.filter(i => matcher(i, ...args));\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { FilterPipe } from './filter.pipe';\n\nconst PIPES = [FilterPipe];\n\n@NgModule({\n declarations: PIPES,\n exports: PIPES\n})\nexport class FilterPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;MAKa,UAAU;;;;;;IAMrB,SAAS,CAAI,KAAmB,EAAE,OAAmD,EAAE,GAAG,IAAiB;QACzG,OAAO,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;KAC/C;;uGARU,UAAU;qGAAV,UAAU;2FAAV,UAAU;kBADtB,IAAI;mBAAC,EAAE,IAAI,EAAE,QAAQ,EAAE;;;ACAxB,MAAM,KAAK,GAAG,CAAC,UAAU,CAAC,CAAC;MAMd,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBANd,UAAU,aAAV,UAAU;8GAMZ,gBAAgB;2FAAhB,gBAAgB;kBAJ5B,QAAQ;mBAAC;oBACR,YAAY,EAAE,KAAK;oBACnB,OAAO,EAAE,KAAK;iBACf;;;ACTD;;;;;;"}
@@ -0,0 +1,55 @@
1
+ import * as i0 from '@angular/core';
2
+ import { Pipe, NgModule } from '@angular/core';
3
+ import { formatMask } from '@yelon/util/format';
4
+
5
+ class FormatMaskPipe {
6
+ /**
7
+ * Format mask
8
+ *
9
+ * 格式化掩码
10
+ *
11
+ * | 字符 | 描述 |
12
+ * | --- | --- |
13
+ * | `0` | 任意数字,若该位置字符不符合,则默认为 `0` 填充 |
14
+ * | `9` | 任意数字 |
15
+ * | `#` | 任意字符 |
16
+ * | `U` | 转换大写 |
17
+ * | `L` | 转换小写 |
18
+ * | `*` | 转换为 `*` 字符 |
19
+ *
20
+ * ```ts
21
+ * formatMask('123', '(###)') => (123)
22
+ * formatMask('15900000000', '999****9999') => 159****0000
23
+ * ```
24
+ */
25
+ transform(value, mask) {
26
+ return formatMask(value, mask);
27
+ }
28
+ }
29
+ FormatMaskPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatMaskPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
30
+ FormatMaskPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatMaskPipe, name: "mask" });
31
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatMaskPipe, decorators: [{
32
+ type: Pipe,
33
+ args: [{ name: 'mask' }]
34
+ }] });
35
+
36
+ const PIPES = [FormatMaskPipe];
37
+ class FormatPipeModule {
38
+ }
39
+ FormatPipeModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatPipeModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
40
+ FormatPipeModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatPipeModule, declarations: [FormatMaskPipe], exports: [FormatMaskPipe] });
41
+ FormatPipeModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatPipeModule });
42
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.3", ngImport: i0, type: FormatPipeModule, decorators: [{
43
+ type: NgModule,
44
+ args: [{
45
+ declarations: PIPES,
46
+ exports: PIPES
47
+ }]
48
+ }] });
49
+
50
+ /**
51
+ * Generated bundle index. Do not edit.
52
+ */
53
+
54
+ export { FormatMaskPipe, FormatPipeModule };
55
+ //# sourceMappingURL=pipe-format.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipe-format.mjs","sources":["../../../../packages/util/pipes/format/mask.pipe.ts","../../../../packages/util/pipes/format/module.ts","../../../../packages/util/pipes/format/pipe-format.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\n\nimport { formatMask, FormatMaskOption } from '@yelon/util/format';\n\n@Pipe({ name: 'mask' })\nexport class FormatMaskPipe implements PipeTransform {\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 */\n transform(value: string, mask: string | FormatMaskOption): string {\n return formatMask(value, mask);\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { FormatMaskPipe } from './mask.pipe';\n\nconst PIPES = [FormatMaskPipe];\n\n@NgModule({\n declarations: PIPES,\n exports: PIPES\n})\nexport class FormatPipeModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MAKa,cAAc;;;;;;;;;;;;;;;;;;;;IAoBzB,SAAS,CAAC,KAAa,EAAE,IAA+B;QACtD,OAAO,UAAU,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;KAChC;;2GAtBU,cAAc;yGAAd,cAAc;2FAAd,cAAc;kBAD1B,IAAI;mBAAC,EAAE,IAAI,EAAE,MAAM,EAAE;;;ACAtB,MAAM,KAAK,GAAG,CAAC,cAAc,CAAC,CAAC;MAMlB,gBAAgB;;6GAAhB,gBAAgB;8GAAhB,gBAAgB,iBANd,cAAc,aAAd,cAAc;8GAMhB,gBAAgB;2FAAhB,gBAAgB;kBAJ5B,QAAQ;mBAAC;oBACR,YAAY,EAAE,KAAK;oBACnB,OAAO,EAAE,KAAK;iBACf;;;ACTD;;;;;;"}
@@ -0,0 +1,8 @@
1
+ export * from '@yelon/util/pipes/currency';
2
+ export * from '@yelon/util/pipes/format';
3
+ export * from '@yelon/util/pipes/filter';
4
+
5
+ /**
6
+ * Generated bundle index. Do not edit.
7
+ */
8
+ //# sourceMappingURL=pipes.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pipes.mjs","sources":["../../../../packages/util/pipes/pipes.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;"}
@@ -0,0 +1,38 @@
1
+ import { DOCUMENT } from '@angular/common';
2
+ import { InjectionToken, inject } from '@angular/core';
3
+ import { fromEvent } from 'rxjs';
4
+ import { startWith, map, distinctUntilChanged, share } from 'rxjs/operators';
5
+
6
+ /**
7
+ * Access to global `window` object
8
+ *
9
+ * 访问全局 `window` 对象
10
+ */
11
+ const WINDOW = new InjectionToken('WINDOW', {
12
+ factory: () => {
13
+ const { defaultView } = inject(DOCUMENT);
14
+ if (!defaultView) {
15
+ throw new Error('Window is not available');
16
+ }
17
+ return defaultView;
18
+ }
19
+ });
20
+
21
+ /**
22
+ * Use the `visibilitychange` event to monitor whether the browser tab is visible, which is generally used when the user leaves the browser tab to temp interrupt the backend to continue sending requests
23
+ *
24
+ * 通过 `visibilitychange` 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时
25
+ */
26
+ const PAGE_VISIBILITY = new InjectionToken('PAGE_VISIBILITY`', {
27
+ factory: () => {
28
+ const doc = inject(DOCUMENT);
29
+ return fromEvent(doc, 'visibilitychange').pipe(startWith(0), map(() => !doc.hidden), distinctUntilChanged(), share());
30
+ }
31
+ });
32
+
33
+ /**
34
+ * Generated bundle index. Do not edit.
35
+ */
36
+
37
+ export { PAGE_VISIBILITY, WINDOW };
38
+ //# sourceMappingURL=token.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"token.mjs","sources":["../../../../packages/util/token/window.ts","../../../../packages/util/token/page-visibility.ts","../../../../packages/util/token/token.ts"],"sourcesContent":["import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\n\n/**\n * Access to global `window` object\n *\n * 访问全局 `window` 对象\n */\nexport const WINDOW = new InjectionToken<Window>('WINDOW', {\n factory: () => {\n const { defaultView } = inject(DOCUMENT);\n if (!defaultView) {\n throw new Error('Window is not available');\n }\n return defaultView;\n }\n});\n","import { DOCUMENT } from '@angular/common';\nimport { inject, InjectionToken } from '@angular/core';\nimport { fromEvent, Observable } from 'rxjs';\nimport { distinctUntilChanged, map, share, startWith } from 'rxjs/operators';\n\n/**\n * Use the `visibilitychange` event to monitor whether the browser tab is visible, which is generally used when the user leaves the browser tab to temp interrupt the backend to continue sending requests\n *\n * 通过 `visibilitychange` 事件来监听浏览器选项卡是否可见,一般用于当用户离开应用时暂时中断后端持续发送请求时\n */\nexport const PAGE_VISIBILITY = new InjectionToken<Observable<boolean>>('PAGE_VISIBILITY`', {\n factory: () => {\n const doc = inject(DOCUMENT);\n return fromEvent(doc, 'visibilitychange').pipe(\n startWith(0),\n map(() => !doc.hidden),\n distinctUntilChanged(),\n share()\n );\n }\n});\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAGA;;;;;MAKa,MAAM,GAAG,IAAI,cAAc,CAAS,QAAQ,EAAE;IACzD,OAAO,EAAE;QACP,MAAM,EAAE,WAAW,EAAE,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,CAAC,WAAW,EAAE;YAChB,MAAM,IAAI,KAAK,CAAC,yBAAyB,CAAC,CAAC;SAC5C;QACD,OAAO,WAAW,CAAC;KACpB;CACF;;ACXD;;;;;MAKa,eAAe,GAAG,IAAI,cAAc,CAAsB,kBAAkB,EAAE;IACzF,OAAO,EAAE;QACP,MAAM,GAAG,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC7B,OAAO,SAAS,CAAC,GAAG,EAAE,kBAAkB,CAAC,CAAC,IAAI,CAC5C,SAAS,CAAC,CAAC,CAAC,EACZ,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,EACtB,oBAAoB,EAAE,EACtB,KAAK,EAAE,CACR,CAAC;KACH;CACF;;ACpBD;;;;;;"}
@@ -0,0 +1,16 @@
1
+ export * from '@yelon/util/array';
2
+ export * from '@yelon/util/browser';
3
+ export * from '@yelon/util/config';
4
+ export * from '@yelon/util/date-time';
5
+ export * from '@yelon/util/form';
6
+ export * from '@yelon/util/format';
7
+ export * from '@yelon/util/math';
8
+ export * from '@yelon/util/decorator';
9
+ export * from '@yelon/util/other';
10
+ export * from '@yelon/util/pipes';
11
+ export * from '@yelon/util/token';
12
+
13
+ /**
14
+ * Generated bundle index. Do not edit.
15
+ */
16
+ //# sourceMappingURL=yelon-util.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"yelon-util.mjs","sources":["../../../../packages/util/yelon-util.ts"],"sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;;AAAA;;"}
@@ -1,4 +1,5 @@
1
1
  /**
2
2
  * Generated bundle index. Do not edit.
3
3
  */
4
+ /// <amd-module name="@yelon/util/form" />
4
5
  export * from './index';