@delon/util 12.4.1 → 13.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (306) hide show
  1. package/{date-time/delon-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/delon-util.d.ts +1 -0
  19. package/{esm2015/array/array-type.service.js → esm2020/array/array-type.service.mjs} +0 -0
  20. package/esm2020/array/array.mjs +5 -0
  21. package/esm2020/array/array.service.mjs +278 -0
  22. package/{esm2015/array/index.js → esm2020/array/index.mjs} +0 -0
  23. package/{esm2015/browser/browser.js → esm2020/browser/browser.mjs} +0 -0
  24. package/esm2020/browser/cookie.service.mjs +103 -0
  25. package/esm2020/browser/copy.mjs +9 -0
  26. package/{esm2015/browser/index.js → esm2020/browser/index.mjs} +0 -0
  27. package/{esm2015/browser/is-empty.js → esm2020/browser/is-empty.mjs} +0 -0
  28. package/esm2020/browser/scroll.service.mjs +88 -0
  29. package/{esm2015/browser/style.js → esm2020/browser/style.mjs} +2 -2
  30. package/{esm2015/config/abc/date-picker.type.js → esm2020/config/abc/date-picker.type.mjs} +0 -0
  31. package/{esm2015/config/abc/error-collect.type.js → esm2020/config/abc/error-collect.type.mjs} +0 -0
  32. package/{esm2015/config/abc/image.type.js → esm2020/config/abc/image.type.mjs} +0 -0
  33. package/{esm2015/config/abc/index.js → esm2020/config/abc/index.mjs} +0 -0
  34. package/{esm2015/config/abc/loading.type.js → esm2020/config/abc/loading.type.mjs} +0 -0
  35. package/{esm2015/config/abc/lodop.type.js → esm2020/config/abc/lodop.type.mjs} +0 -0
  36. package/{esm2015/config/abc/media.type.js → esm2020/config/abc/media.type.mjs} +0 -0
  37. package/{esm2015/config/abc/onboarding.type.js → esm2020/config/abc/onboarding.type.mjs} +0 -0
  38. package/{esm2015/config/abc/page-header.type.js → esm2020/config/abc/page-header.type.mjs} +0 -0
  39. package/esm2020/config/abc/pdf.type.mjs +2 -0
  40. package/esm2020/config/abc/qr.type.mjs +2 -0
  41. package/{esm2015/config/abc/se.type.js → esm2020/config/abc/se.type.mjs} +0 -0
  42. package/{esm2015/config/abc/sg.type.js → esm2020/config/abc/sg.type.mjs} +0 -0
  43. package/{esm2015/config/abc/st.type.js → esm2020/config/abc/st.type.mjs} +0 -0
  44. package/{esm2015/config/abc/sv.type.js → esm2020/config/abc/sv.type.mjs} +0 -0
  45. package/{esm2015/config/abc/xlsx.type.js → esm2020/config/abc/xlsx.type.mjs} +0 -0
  46. package/{esm2015/config/abc/zip.type.js → esm2020/config/abc/zip.type.mjs} +0 -0
  47. package/{esm2015/config/acl/acl.type.js → esm2020/config/acl/acl.type.mjs} +0 -0
  48. package/{esm2015/config/auth/auth.type.js → esm2020/config/auth/auth.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/theme/http.type.js → esm2020/config/theme/http.type.mjs} +0 -0
  58. package/{esm2015/config/theme/i18n.type.js → esm2020/config/theme/i18n.type.mjs} +0 -0
  59. package/{esm2015/config/theme/index.js → esm2020/config/theme/index.mjs} +0 -0
  60. package/{esm2015/config/theme/responsive.type.js → esm2020/config/theme/responsive.type.mjs} +0 -0
  61. package/{esm2015/config/util/array.type.js → esm2020/config/util/array.type.mjs} +0 -0
  62. package/{esm2015/config/util/currency.type.js → esm2020/config/util/currency.type.mjs} +0 -0
  63. package/esm2020/date-time/date-time.mjs +5 -0
  64. package/{esm2015/date-time/index.js → esm2020/date-time/index.mjs} +0 -0
  65. package/esm2020/date-time/picker.mjs +116 -0
  66. package/{esm2015/date-time/time.js → esm2020/date-time/time.mjs} +6 -2
  67. package/esm2020/decorator/convert.mjs +58 -0
  68. package/esm2020/decorator/decorator.mjs +5 -0
  69. package/{esm2015/decorator/index.js → esm2020/decorator/index.mjs} +0 -0
  70. package/esm2020/decorator/zone-outside.mjs +57 -0
  71. package/{esm2015/delon-util.js → esm2020/delon-util.mjs} +0 -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} +0 -0
  90. package/esm2020/other/lazy.service.mjs +119 -0
  91. package/{esm2015/other/logger.js → esm2020/other/logger.mjs} +0 -0
  92. package/esm2020/other/other.mjs +5 -0
  93. package/esm2020/pipes/currency/cny.pipe.mjs +23 -0
  94. package/{esm2015/pipes/currency/index.js → esm2020/pipes/currency/index.mjs} +2 -1
  95. package/esm2020/pipes/currency/mega.pipe.mjs +29 -0
  96. package/esm2020/pipes/currency/module.mjs +19 -0
  97. package/esm2020/pipes/currency/pipe-currency.mjs +5 -0
  98. package/esm2020/pipes/currency/price.pipe.mjs +27 -0
  99. package/esm2020/pipes/filter/filter.pipe.mjs +19 -0
  100. package/{esm2015/pipes/filter/index.js → esm2020/pipes/filter/index.mjs} +0 -0
  101. package/esm2020/pipes/filter/module.mjs +17 -0
  102. package/{esm2015/array/delon-util-array.js → esm2020/pipes/filter/pipe-filter.mjs} +1 -1
  103. package/{esm2015/pipes/format/index.js → esm2020/pipes/format/index.mjs} +0 -0
  104. package/esm2020/pipes/format/mask.pipe.mjs +34 -0
  105. package/esm2020/pipes/format/module.mjs +17 -0
  106. package/{esm2015/other/delon-util-other.js → esm2020/pipes/format/pipe-format.mjs} +1 -1
  107. package/{esm2015/pipes/index.js → esm2020/pipes/index.mjs} +0 -0
  108. package/esm2020/pipes/pipes.mjs +5 -0
  109. package/{esm2015/token/index.js → esm2020/token/index.mjs} +0 -0
  110. package/{esm2015/token/page-visibility.js → esm2020/token/page-visibility.mjs} +0 -0
  111. package/esm2020/token/token.mjs +5 -0
  112. package/{esm2015/token/window.js → esm2020/token/window.mjs} +0 -0
  113. package/fesm2015/{delon-util-array.js → array.mjs} +8 -10
  114. package/fesm2015/array.mjs.map +1 -0
  115. package/fesm2015/{browser.js → browser.mjs} +28 -42
  116. package/fesm2015/browser.mjs.map +1 -0
  117. package/fesm2015/{delon-util-config.js → config.mjs} +14 -8
  118. package/fesm2015/config.mjs.map +1 -0
  119. package/fesm2015/{delon-util-date-time.js → date-time.mjs} +1 -1
  120. package/fesm2015/date-time.mjs.map +1 -0
  121. package/fesm2015/{delon-util-decorator.js → decorator.mjs} +8 -4
  122. package/fesm2015/decorator.mjs.map +1 -0
  123. package/fesm2015/{delon-util.js → delon-util.mjs} +1 -1
  124. package/fesm2015/delon-util.mjs.map +1 -0
  125. package/fesm2015/{delon-util-form.js → form.mjs} +1 -1
  126. package/fesm2015/form.mjs.map +1 -0
  127. package/fesm2015/{delon-util-format.js → format.mjs} +18 -14
  128. package/fesm2015/format.mjs.map +1 -0
  129. package/fesm2015/{delon-util-math.js → math.mjs} +1 -1
  130. package/fesm2015/math.mjs.map +1 -0
  131. package/fesm2015/{delon-util-other.js → other.mjs} +12 -9
  132. package/fesm2015/other.mjs.map +1 -0
  133. package/fesm2015/pipe-currency.mjs +96 -0
  134. package/fesm2015/pipe-currency.mjs.map +1 -0
  135. package/fesm2015/pipe-filter.mjs +40 -0
  136. package/fesm2015/pipe-filter.mjs.map +1 -0
  137. package/fesm2015/pipe-format.mjs +55 -0
  138. package/fesm2015/pipe-format.mjs.map +1 -0
  139. package/fesm2015/{delon-util-pipes.js → pipes.mjs} +1 -1
  140. package/fesm2015/pipes.mjs.map +1 -0
  141. package/fesm2015/{delon-util-token.js → token.mjs} +1 -1
  142. package/fesm2015/token.mjs.map +1 -0
  143. package/fesm2020/array.mjs +285 -0
  144. package/fesm2020/array.mjs.map +1 -0
  145. package/fesm2020/browser.mjs +260 -0
  146. package/fesm2020/browser.mjs.map +1 -0
  147. package/fesm2020/config.mjs +54 -0
  148. package/fesm2020/config.mjs.map +1 -0
  149. package/fesm2020/date-time.mjs +210 -0
  150. package/fesm2020/date-time.mjs.map +1 -0
  151. package/fesm2020/decorator.mjs +121 -0
  152. package/fesm2020/decorator.mjs.map +1 -0
  153. package/fesm2020/delon-util.mjs +16 -0
  154. package/fesm2020/delon-util.mjs.map +1 -0
  155. package/fesm2020/form.mjs +118 -0
  156. package/fesm2020/form.mjs.map +1 -0
  157. package/fesm2020/format.mjs +431 -0
  158. package/fesm2020/format.mjs.map +1 -0
  159. package/fesm2020/math.mjs +85 -0
  160. package/fesm2020/math.mjs.map +1 -0
  161. package/fesm2020/other.mjs +301 -0
  162. package/fesm2020/other.mjs.map +1 -0
  163. package/fesm2020/pipe-currency.mjs +94 -0
  164. package/fesm2020/pipe-currency.mjs.map +1 -0
  165. package/fesm2020/pipe-filter.mjs +40 -0
  166. package/fesm2020/pipe-filter.mjs.map +1 -0
  167. package/fesm2020/pipe-format.mjs +55 -0
  168. package/fesm2020/pipe-format.mjs.map +1 -0
  169. package/fesm2020/pipes.mjs +8 -0
  170. package/fesm2020/pipes.mjs.map +1 -0
  171. package/fesm2020/token.mjs +38 -0
  172. package/fesm2020/token.mjs.map +1 -0
  173. package/{array/delon-util-array.d.ts → form/form.d.ts} +1 -0
  174. package/form/package.json +6 -7
  175. package/format/currency.service.d.ts +3 -0
  176. package/format/format.d.ts +5 -0
  177. package/format/package.json +6 -7
  178. package/{config/delon-util-config.d.ts → math/math.d.ts} +1 -0
  179. package/math/package.json +6 -7
  180. package/other/lazy.service.d.ts +3 -0
  181. package/{decorator/delon-util-decorator.d.ts → other/other.d.ts} +1 -0
  182. package/other/package.json +6 -7
  183. package/package.json +132 -8
  184. package/pipes/currency/cny.pipe.d.ts +3 -0
  185. package/pipes/currency/index.d.ts +1 -0
  186. package/pipes/currency/mega.pipe.d.ts +3 -0
  187. package/pipes/currency/module.d.ts +7 -0
  188. package/pipes/currency/package.json +6 -7
  189. package/pipes/currency/pipe-currency.d.ts +5 -0
  190. package/pipes/currency/price.pipe.d.ts +3 -0
  191. package/pipes/filter/filter.pipe.d.ts +3 -0
  192. package/pipes/filter/module.d.ts +5 -0
  193. package/pipes/filter/package.json +6 -7
  194. package/pipes/filter/pipe-filter.d.ts +5 -0
  195. package/pipes/format/mask.pipe.d.ts +3 -0
  196. package/pipes/format/module.d.ts +5 -0
  197. package/pipes/format/package.json +6 -7
  198. package/pipes/format/pipe-format.d.ts +5 -0
  199. package/pipes/package.json +6 -7
  200. package/pipes/pipes.d.ts +5 -0
  201. package/token/package.json +6 -7
  202. package/token/token.d.ts +5 -0
  203. package/array/delon-util-array.metadata.json +0 -1
  204. package/browser/browser.metadata.json +0 -1
  205. package/bundles/browser.umd.js +0 -325
  206. package/bundles/browser.umd.js.map +0 -1
  207. package/bundles/delon-util-array.umd.js +0 -641
  208. package/bundles/delon-util-array.umd.js.map +0 -1
  209. package/bundles/delon-util-config.umd.js +0 -411
  210. package/bundles/delon-util-config.umd.js.map +0 -1
  211. package/bundles/delon-util-date-time.umd.js +0 -238
  212. package/bundles/delon-util-date-time.umd.js.map +0 -1
  213. package/bundles/delon-util-decorator.umd.js +0 -462
  214. package/bundles/delon-util-decorator.umd.js.map +0 -1
  215. package/bundles/delon-util-form.umd.js +0 -135
  216. package/bundles/delon-util-form.umd.js.map +0 -1
  217. package/bundles/delon-util-format.umd.js +0 -785
  218. package/bundles/delon-util-format.umd.js.map +0 -1
  219. package/bundles/delon-util-math.umd.js +0 -104
  220. package/bundles/delon-util-math.umd.js.map +0 -1
  221. package/bundles/delon-util-other.umd.js +0 -714
  222. package/bundles/delon-util-other.umd.js.map +0 -1
  223. package/bundles/delon-util-pipes-currency.umd.js +0 -108
  224. package/bundles/delon-util-pipes-currency.umd.js.map +0 -1
  225. package/bundles/delon-util-pipes-filter.umd.js +0 -374
  226. package/bundles/delon-util-pipes-filter.umd.js.map +0 -1
  227. package/bundles/delon-util-pipes-format.umd.js +0 -66
  228. package/bundles/delon-util-pipes-format.umd.js.map +0 -1
  229. package/bundles/delon-util-pipes.umd.js +0 -38
  230. package/bundles/delon-util-pipes.umd.js.map +0 -1
  231. package/bundles/delon-util-token.umd.js +0 -49
  232. package/bundles/delon-util-token.umd.js.map +0 -1
  233. package/bundles/delon-util.umd.js +0 -86
  234. package/bundles/delon-util.umd.js.map +0 -1
  235. package/config/delon-util-config.metadata.json +0 -1
  236. package/date-time/delon-util-date-time.metadata.json +0 -1
  237. package/decorator/delon-util-decorator.metadata.json +0 -1
  238. package/delon-util.metadata.json +0 -1
  239. package/esm2015/array/array.service.js +0 -250
  240. package/esm2015/browser/cookie.service.js +0 -104
  241. package/esm2015/browser/copy.js +0 -27
  242. package/esm2015/browser/scroll.service.js +0 -89
  243. package/esm2015/config/abc/pdf.type.js +0 -2
  244. package/esm2015/config/abc/qr.type.js +0 -2
  245. package/esm2015/config/config.service.js +0 -34
  246. package/esm2015/config/delon-util-config.js +0 -5
  247. package/esm2015/date-time/delon-util-date-time.js +0 -5
  248. package/esm2015/date-time/picker.js +0 -116
  249. package/esm2015/decorator/convert.js +0 -56
  250. package/esm2015/decorator/delon-util-decorator.js +0 -5
  251. package/esm2015/decorator/zone-outside.js +0 -55
  252. package/esm2015/form/delon-util-form.js +0 -5
  253. package/esm2015/format/currency.service.js +0 -225
  254. package/esm2015/format/delon-util-format.js +0 -5
  255. package/esm2015/format/string.js +0 -76
  256. package/esm2015/math/delon-util-math.js +0 -5
  257. package/esm2015/other/lazy.service.js +0 -118
  258. package/esm2015/pipes/currency/cny.pipe.js +0 -22
  259. package/esm2015/pipes/currency/delon-util-pipes-currency.js +0 -6
  260. package/esm2015/pipes/currency/mega.pipe.js +0 -26
  261. package/esm2015/pipes/currency/module.js +0 -14
  262. package/esm2015/pipes/currency/price.pipe.js +0 -26
  263. package/esm2015/pipes/delon-util-pipes.js +0 -5
  264. package/esm2015/pipes/filter/delon-util-pipes-filter.js +0 -5
  265. package/esm2015/pipes/filter/filter.pipe.js +0 -15
  266. package/esm2015/pipes/filter/module.js +0 -12
  267. package/esm2015/pipes/format/delon-util-pipes-format.js +0 -5
  268. package/esm2015/pipes/format/mask.pipe.js +0 -30
  269. package/esm2015/pipes/format/module.js +0 -12
  270. package/esm2015/token/delon-util-token.js +0 -5
  271. package/fesm2015/browser.js.map +0 -1
  272. package/fesm2015/delon-util-array.js.map +0 -1
  273. package/fesm2015/delon-util-config.js.map +0 -1
  274. package/fesm2015/delon-util-date-time.js.map +0 -1
  275. package/fesm2015/delon-util-decorator.js.map +0 -1
  276. package/fesm2015/delon-util-form.js.map +0 -1
  277. package/fesm2015/delon-util-format.js.map +0 -1
  278. package/fesm2015/delon-util-math.js.map +0 -1
  279. package/fesm2015/delon-util-other.js.map +0 -1
  280. package/fesm2015/delon-util-pipes-currency.js +0 -87
  281. package/fesm2015/delon-util-pipes-currency.js.map +0 -1
  282. package/fesm2015/delon-util-pipes-filter.js +0 -32
  283. package/fesm2015/delon-util-pipes-filter.js.map +0 -1
  284. package/fesm2015/delon-util-pipes-format.js +0 -47
  285. package/fesm2015/delon-util-pipes-format.js.map +0 -1
  286. package/fesm2015/delon-util-pipes.js.map +0 -1
  287. package/fesm2015/delon-util-token.js.map +0 -1
  288. package/fesm2015/delon-util.js.map +0 -1
  289. package/form/delon-util-form.d.ts +0 -4
  290. package/form/delon-util-form.metadata.json +0 -1
  291. package/format/delon-util-format.d.ts +0 -4
  292. package/format/delon-util-format.metadata.json +0 -1
  293. package/math/delon-util-math.d.ts +0 -4
  294. package/math/delon-util-math.metadata.json +0 -1
  295. package/other/delon-util-other.d.ts +0 -4
  296. package/other/delon-util-other.metadata.json +0 -1
  297. package/pipes/currency/delon-util-pipes-currency.d.ts +0 -5
  298. package/pipes/currency/delon-util-pipes-currency.metadata.json +0 -1
  299. package/pipes/delon-util-pipes.d.ts +0 -4
  300. package/pipes/delon-util-pipes.metadata.json +0 -1
  301. package/pipes/filter/delon-util-pipes-filter.d.ts +0 -4
  302. package/pipes/filter/delon-util-pipes-filter.metadata.json +0 -1
  303. package/pipes/format/delon-util-pipes-format.d.ts +0 -4
  304. package/pipes/format/delon-util-pipes-format.metadata.json +0 -1
  305. package/token/delon-util-token.d.ts +0 -4
  306. package/token/delon-util-token.metadata.json +0 -1
@@ -1,250 +0,0 @@
1
- /* eslint-disable @typescript-eslint/no-explicit-any */
2
- import { Injectable } from '@angular/core';
3
- import { AlainConfigService } from '@delon/util/config';
4
- import { NzTreeNode } from 'ng-zorro-antd/core/tree';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@delon/util/config";
7
- export class ArrayService {
8
- constructor(cog) {
9
- this.c = cog.merge('utilArray', {
10
- deepMapName: 'deep',
11
- parentMapName: 'parent',
12
- idMapName: 'id',
13
- parentIdMapName: 'parent_id',
14
- childrenMapName: 'children',
15
- titleMapName: 'title',
16
- checkedMapname: 'checked',
17
- selectedMapname: 'selected',
18
- expandedMapname: 'expanded',
19
- disabledMapname: 'disabled'
20
- });
21
- }
22
- /**
23
- * Convert tree structure to array structure
24
- *
25
- * 将树结构转换成数组结构
26
- */
27
- treeToArr(tree, options) {
28
- const opt = Object.assign({ deepMapName: this.c.deepMapName, parentMapName: this.c.parentMapName, childrenMapName: this.c.childrenMapName, clearChildren: true, cb: null }, options);
29
- const result = [];
30
- const inFn = (list, parent, deep = 0) => {
31
- for (const i of list) {
32
- i[opt.deepMapName] = deep;
33
- i[opt.parentMapName] = parent;
34
- if (opt.cb) {
35
- opt.cb(i, parent, deep);
36
- }
37
- result.push(i);
38
- const children = i[opt.childrenMapName];
39
- if (children != null && Array.isArray(children) && children.length > 0) {
40
- inFn(children, i, deep + 1);
41
- }
42
- if (opt.clearChildren) {
43
- delete i[opt.childrenMapName];
44
- }
45
- }
46
- };
47
- inFn(tree, null);
48
- return result;
49
- }
50
- /**
51
- * Convert array structure to tree structure
52
- *
53
- * 数组转换成树数据
54
- */
55
- arrToTree(arr, options) {
56
- if (!Array.isArray(arr) || arr.length === 0) {
57
- return [];
58
- }
59
- const opt = Object.assign({ idMapName: this.c.idMapName, parentIdMapName: this.c.parentIdMapName, childrenMapName: this.c.childrenMapName, cb: null }, options);
60
- const tree = [];
61
- const childrenOf = {};
62
- let rootPid = opt.rootParentIdValue;
63
- const arrType = arr;
64
- if (!rootPid) {
65
- const pids = arrType.map(i => i[opt.parentIdMapName]);
66
- const emptyPid = pids.findIndex(w => w == null);
67
- rootPid = emptyPid !== -1 ? pids[emptyPid] : pids.sort()[0];
68
- }
69
- for (const item of arrType) {
70
- const id = item[opt.idMapName];
71
- const pid = item[opt.parentIdMapName];
72
- childrenOf[id] = childrenOf[id] || [];
73
- item[opt.childrenMapName] = childrenOf[id];
74
- if (opt.cb) {
75
- opt.cb(item);
76
- }
77
- if (pid !== rootPid) {
78
- childrenOf[pid] = childrenOf[pid] || [];
79
- childrenOf[pid].push(item);
80
- }
81
- else {
82
- tree.push(item);
83
- }
84
- }
85
- return tree;
86
- }
87
- /**
88
- * 数组转换成 `nz-tree` 数据源,通过 `options` 转化项名,也可以使用 `options.cb` 更高级决定数据项
89
- */
90
- arrToTreeNode(arr, options) {
91
- const opt = Object.assign({ idMapName: this.c.idMapName, parentIdMapName: this.c.parentIdMapName, titleMapName: this.c.titleMapName, isLeafMapName: 'isLeaf', checkedMapname: this.c.checkedMapname, selectedMapname: this.c.selectedMapname, expandedMapname: this.c.expandedMapname, disabledMapname: this.c.disabledMapname, cb: null }, options);
92
- const tree = this.arrToTree(arr, {
93
- idMapName: opt.idMapName,
94
- parentIdMapName: opt.parentIdMapName,
95
- childrenMapName: 'children'
96
- });
97
- this.visitTree(tree, (item, parent, deep) => {
98
- item.key = item[opt.idMapName];
99
- item.title = item[opt.titleMapName];
100
- item.checked = item[opt.checkedMapname];
101
- item.selected = item[opt.selectedMapname];
102
- item.expanded = item[opt.expandedMapname];
103
- item.disabled = item[opt.disabledMapname];
104
- if (item[opt.isLeafMapName] == null) {
105
- item.isLeaf = item.children.length === 0;
106
- }
107
- else {
108
- item.isLeaf = item[opt.isLeafMapName];
109
- }
110
- if (opt.cb) {
111
- opt.cb(item, parent, deep);
112
- }
113
- });
114
- return tree.map(node => new NzTreeNode(node));
115
- }
116
- /**
117
- * 递归访问整个树
118
- */
119
- visitTree(tree, cb, options) {
120
- options = Object.assign({ childrenMapName: this.c.childrenMapName }, options);
121
- const inFn = (data, parent, deep) => {
122
- for (const item of data) {
123
- cb(item, parent, deep);
124
- const childrenVal = item[options.childrenMapName];
125
- if (Array.isArray(childrenVal) && childrenVal.length > 0) {
126
- inFn(childrenVal, item, deep + 1);
127
- }
128
- }
129
- };
130
- inFn(tree, null, 1);
131
- }
132
- /**
133
- * Return the value of the first tree value in the tree where predicate is true, and `undefined` otherwise
134
- *
135
- * 根据条件返回树的第一个值,否则返回 `undefined`
136
- */
137
- findTree(tree, predicate, options) {
138
- let res;
139
- this.visitTree(tree, item => {
140
- if (res === undefined && predicate(item)) {
141
- res = item;
142
- }
143
- }, options);
144
- return res;
145
- }
146
- /**
147
- * 获取所有已经选中的 `key` 值
148
- */
149
- getKeysByTreeNode(tree, options) {
150
- const opt = Object.assign({ includeHalfChecked: true }, options);
151
- const keys = [];
152
- this.visitTree(tree, (item, parent, deep) => {
153
- if (item.isChecked || (opt.includeHalfChecked && item.isHalfChecked)) {
154
- keys.push(opt.cb ? opt.cb(item, parent, deep) : opt.keyMapName ? item.origin[opt.keyMapName] : item.key);
155
- }
156
- });
157
- return keys;
158
- }
159
- baseFlat(array, depth, result = []) {
160
- let index = -1;
161
- while (++index < array.length) {
162
- const value = array[index];
163
- if (depth > 0 && Array.isArray(value)) {
164
- if (depth > 1) {
165
- this.baseFlat(value, depth - 1, result);
166
- }
167
- else {
168
- let pushIndex = -1;
169
- const offset = result.length;
170
- while (++pushIndex < value.length) {
171
- result[offset + pushIndex] = value[pushIndex];
172
- }
173
- }
174
- }
175
- else {
176
- result[result.length] = value;
177
- }
178
- }
179
- return result;
180
- }
181
- /**
182
- * Recursively flattens array
183
- *
184
- * 递归扁平数组
185
- * ```ts
186
- * srv.flat([1, [2, 3, [4, 5, [6]]]]) => [1,2,3,4,5,6]
187
- * srv.flat([1, [2, 3, [4, 5, [6]]]], 1) => [1,2,3,[4, 5, [6]]]
188
- * ```
189
- */
190
- flat(array, depth = 1 / 0) {
191
- return Array.isArray(array) ? this.baseFlat(array, depth) : array;
192
- }
193
- /**
194
- * Group the array
195
- *
196
- * 对数组进行分组
197
- * ```ts
198
- * srv.groupBy([6.1, 4.2, 6.3], Math.floor) => {"4":[4.2],"6":[6.1,6.3]}
199
- * srv.groupBy(['one', 'two', 'three'], v => v.length) => {"3":["one","two"],"5":["three"]}
200
- * ```
201
- */
202
- groupBy(array, iteratee) {
203
- if (!Array.isArray(array)) {
204
- return {};
205
- }
206
- return array.reduce((result, value) => {
207
- const key = iteratee(value);
208
- if (Object.prototype.hasOwnProperty.call(result, key)) {
209
- result[key].push(value);
210
- }
211
- else {
212
- result[key] = [value];
213
- }
214
- return result;
215
- }, {});
216
- }
217
- /**
218
- * Creates a duplicate-free version of an array
219
- *
220
- * 创建去重后的数组
221
- * ```ts
222
- * uniq([1, 2, 2, 3, 1]) => [1,2,3]
223
- * uniq([{ a: 1 }, { a: 1 }, { a: 2 }], 'a') => [{"a":1},{"a":2}]
224
- * uniq([{ a: 1 }, { a: 1 }, { a: 2 }], i => (i.a === 1 ? 'a' : 'b')) => [{"a":1},{"a":2}]
225
- * ```
226
- */
227
- uniq(array, predicate) {
228
- return Array.from(array
229
- .reduce((map, value) => {
230
- const key = predicate
231
- ? typeof predicate === 'string'
232
- ? value[predicate]
233
- : predicate(value)
234
- : value;
235
- if (!map.has(key)) {
236
- map.set(key, value);
237
- }
238
- return map;
239
- }, new Map())
240
- .values());
241
- }
242
- }
243
- ArrayService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ArrayService_Factory() { return new ArrayService(i0.ɵɵinject(i1.AlainConfigService)); }, token: ArrayService, providedIn: "root" });
244
- ArrayService.decorators = [
245
- { type: Injectable, args: [{ providedIn: 'root' },] }
246
- ];
247
- ArrayService.ctorParameters = () => [
248
- { type: AlainConfigService }
249
- ];
250
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJyYXkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvYXJyYXkvYXJyYXkuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSx1REFBdUQ7QUFDdkQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQXdCLE1BQU0sb0JBQW9CLENBQUM7QUFDOUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7QUFXckQsTUFBTSxPQUFPLFlBQVk7SUFHdkIsWUFBWSxHQUF1QjtRQUNqQyxJQUFJLENBQUMsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFO1lBQzlCLFdBQVcsRUFBRSxNQUFNO1lBQ25CLGFBQWEsRUFBRSxRQUFRO1lBQ3ZCLFNBQVMsRUFBRSxJQUFJO1lBQ2YsZUFBZSxFQUFFLFdBQVc7WUFDNUIsZUFBZSxFQUFFLFVBQVU7WUFDM0IsWUFBWSxFQUFFLE9BQU87WUFDckIsY0FBYyxFQUFFLFNBQVM7WUFDekIsZUFBZSxFQUFFLFVBQVU7WUFDM0IsZUFBZSxFQUFFLFVBQVU7WUFDM0IsZUFBZSxFQUFFLFVBQVU7U0FDNUIsQ0FBRSxDQUFDO0lBQ04sQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxTQUFTLENBQXlCLElBQWtCLEVBQUUsT0FBeUM7UUFDN0YsTUFBTSxHQUFHLEdBQUcsZ0JBQ1YsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsV0FBVyxFQUMvQixhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLEVBQ25DLGVBQWUsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsRUFDdkMsYUFBYSxFQUFFLElBQUksRUFDbkIsRUFBRSxFQUFFLElBQUksSUFDTCxPQUFPLENBQ3FCLENBQUM7UUFDbEMsTUFBTSxNQUFNLEdBQWtDLEVBQUUsQ0FB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LENBQUMsS0FBSyxDQUFDLENBQUM7YUFDdkI7WUFDRCxPQUFPLE1BQU0sQ0FBQztRQUNoQixDQUFDLEVBQUUsRUFBK0IsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFDRDs7Ozs7Ozs7O09BU0c7SUFDSCxJQUFJLENBQUksS0FBbUIsRUFBRSxTQUE4RDtRQUN6RixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQ2YsS0FBSzthQUNGLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsRUFBRTtZQUNyQixNQUFNLEdBQUcsR0FBRyxTQUFTO2dCQUNuQixDQUFDLENBQUMsT0FBTyxTQUFTLEtBQUssUUFBUTtvQkFDN0IsQ0FBQyxDQUFFLEtBQWEsQ0FBQyxTQUFTLENBQUM7b0JBQzNCLENBQUMsQ0FBQyxTQUFVLENBQUMsS0FBSyxDQUFDO2dCQUNyQixDQUFDLENBQUMsS0FBSyxDQUFDO1lBQ1YsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUU7Z0JBQ2pCLEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFDO2FBQ3JCO1lBQ0QsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsSUFBSSxHQUFHLEVBQWdDLENBQUM7YUFDMUMsTUFBTSxFQUFFLENBQ1osQ0FBQztJQUNKLENBQUM7Ozs7WUFsU0YsVUFBVSxTQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7O1lBWHpCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnkgKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQWxhaW5Db25maWdTZXJ2aWNlLCBBbGFpblV0aWxBcnJheUNvbmZpZyB9IGZyb20gJ0BkZWxvbi91dGlsL2NvbmZpZyc7XG5pbXBvcnQgeyBOelRyZWVOb2RlIH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3RyZWUnO1xuXG5pbXBvcnQge1xuICBBcnJheVNlcnZpY2VBcnJUb1RyZWVOb2RlT3B0aW9ucyxcbiAgQXJyYXlTZXJ2aWNlQXJyVG9UcmVlT3B0aW9ucyxcbiAgQXJyYXlTZXJ2aWNlR2V0S2V5c0J5VHJlZU5vZGVPcHRpb25zLFxuICBBcnJheVNlcnZpY2VHcm91cEJ5UmVzdWx0LFxuICBBcnJheVNlcnZpY2VUcmVlVG9BcnJPcHRpb25zXG59IGZyb20gJy4vYXJyYXktdHlwZS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBcnJheVNlcnZpY2Uge1xuICBwcml2YXRlIGM6IEFsYWluVXRpbEFycmF5Q29uZmlnO1xuXG4gIGNvbnN0cnVjdG9yKGNvZzogQWxhaW5Db25maWdTZXJ2aWNlKSB7XG4gICAgdGhpcy5jID0gY29nLm1lcmdlKCd1dGlsQXJyYXknLCB7XG4gICAgICBkZWVwTWFwTmFtZTogJ2RlZXAnLFxuICAgICAgcGFyZW50TWFwTmFtZTogJ3BhcmVudCcsXG4gICAgICBpZE1hcE5hbWU6ICdpZCcsXG4gICAgICBwYXJlbnRJZE1hcE5hbWU6ICdwYXJlbnRfaWQnLFxuICAgICAgY2hpbGRyZW5NYXBOYW1lOiAnY2hpbGRyZW4nLFxuICAgICAgdGl0bGVNYXBOYW1lOiAndGl0bGUnLFxuICAgICAgY2hlY2tlZE1hcG5hbWU6ICdjaGVja2VkJyxcbiAgICAgIHNlbGVjdGVkTWFwbmFtZTogJ3NlbGVjdGVkJyxcbiAgICAgIGV4cGFuZGVkTWFwbmFtZTogJ2V4cGFuZGVkJyxcbiAgICAgIGRpc2FibGVkTWFwbmFtZTogJ2Rpc2FibGVkJ1xuICAgIH0pITtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IHRyZWUgc3RydWN0dXJlIHRvIGFycmF5IHN0cnVjdHVyZVxuICAgKlxuICAgKiDlsIbmoJHnu5PmnoTovazmjaLmiJDmlbDnu4Tnu5PmnoRcbiAgICovXG4gIHRyZWVUb0FycjxUIGV4dGVuZHMgb2JqZWN0ID0gYW55Pih0cmVlOiByZWFkb25seSBUW10sIG9wdGlvbnM/OiBBcnJheVNlcnZpY2VUcmVlVG9BcnJPcHRpb25zPFQ+KTogVFtdIHtcbiAgICBjb25zdCBvcHQgPSB7XG4gICAgICBkZWVwTWFwTmFtZTogdGhpcy5jLmRlZXBNYXBOYW1lLFxuICAgICAgcGFyZW50TWFwTmFtZTogdGhpcy5jLnBhcmVudE1hcE5hbWUsXG4gICAgICBjaGlsZHJlbk1hcE5hbWU6IHRoaXMuYy5jaGlsZHJlbk1hcE5hbWUsXG4gICAgICBjbGVhckNoaWxkcmVuOiB0cnVlLFxuICAgICAgY2I6IG51bGwsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSBhcyBBcnJheVNlcnZpY2VUcmVlVG9BcnJPcHRpb25zO1xuICAgIGNvbnN0IHJlc3VsdDogQXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4gPSBbXTtcbiAgICBjb25zdCBpbkZuID0gKGxpc3Q6IFJlYWRvbmx5QXJyYXk8eyBba2V5OiBzdHJpbmddOiBhbnkgfT4sIHBhcmVudDogVCB8IG51bGwsIGRlZXA6IG51bWJlciA9IDApOiB2b2lkID0+IHtcbiAgICAgIGZvciAoY29uc3QgaSBvZiBsaXN0KSB7XG4gICAgICAgIGlbb3B0LmRlZXBNYXBOYW1lIV0gPSBkZWVwO1xuICAgICAgICBpW29wdC5wYXJlbnRNYXBOYW1lIV0gPSBwYXJlbnQ7XG4gICAgICAgIGlmIChvcHQuY2IpIHtcbiAgICAgICAgICBvcHQuY2IoaSwgcGFyZW50LCBkZWVwKTtcbiAgICAgICAgfVxuICAgICAgICByZXN1bHQucHVzaChpKTtcbiAgICAgICAgY29uc3QgY2hpbGRyZW4gPSBpW29wdC5jaGlsZHJlbk1hcE5hbWUhXTtcbiAgICAgICAgaWYgKGNoaWxkcmVuICE9IG51bGwgJiYgQXJyYXkuaXNBcnJheShjaGlsZHJlbikgJiYgY2hpbGRyZW4ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGluRm4oY2hpbGRyZW4sIGkgYXMgVCwgZGVlcCArIDEpO1xuICAgICAgICB9XG4gICAgICAgIGlmIChvcHQuY2xlYXJDaGlsZHJlbikge1xuICAgICAgICAgIGRlbGV0ZSBpW29wdC5jaGlsZHJlbk1hcE5hbWUhXTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH07XG4gICAgaW5Gbih0cmVlLCBudWxsKTtcbiAgICByZXR1cm4gcmVzdWx0IGFzIFRbXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDb252ZXJ0IGFycmF5IHN0cnVjdHVyZSB0byB0cmVlIHN0cnVjdHVyZVxuICAgKlxuICAgKiDmlbDnu4TovazmjaLmiJDmoJHmlbDmja5cbiAgICovXG4gIGFyclRvVHJlZTxUIGV4dGVuZHMgb2JqZWN0ID0gYW55PihhcnI6IHJlYWRvbmx5IFRbXSwgb3B0aW9ucz86IEFycmF5U2VydmljZUFyclRvVHJlZU9wdGlvbnM8VD4pOiBUW10ge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnIpIHx8IGFyci5sZW5ndGggPT09IDApIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9XG5cbiAgICBjb25zdCBvcHQgPSB7XG4gICAgICBpZE1hcE5hbWU6IHRoaXMuYy5pZE1hcE5hbWUsXG4gICAgICBwYXJlbnRJZE1hcE5hbWU6IHRoaXMuYy5wYXJlbnRJZE1hcE5hbWUsXG4gICAgICBjaGlsZHJlbk1hcE5hbWU6IHRoaXMuYy5jaGlsZHJlbk1hcE5hbWUsXG4gICAgICBjYjogbnVsbCxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9IGFzIEFycmF5U2VydmljZUFyclRvVHJlZU9wdGlvbnM8VD47XG4gICAgY29uc3QgdHJlZTogVFtdID0gW107XG4gICAgY29uc3QgY2hpbGRyZW5PZjogeyBba2V5OiBzdHJpbmddOiBUW10gfSA9IHt9O1xuICAgIGxldCByb290UGlkID0gb3B0LnJvb3RQYXJlbnRJZFZhbHVlO1xuICAgIGNvbnN0IGFyclR5cGUgPSBhcnIgYXMgUmVhZG9ubHlBcnJheTx7IFtrZXk6IHN0cmluZ106IGFueSB9PjtcbiAgICBpZiAoIXJvb3RQaWQpIHtcbiAgICAgIGNvbnN0IHBpZHMgPSBhcnJUeXBlLm1hcChpID0+IGlbb3B0LnBhcmVudElkTWFwTmFtZSFdKTtcbiAgICAgIGNvbnN0IGVtcHR5UGlkID0gcGlkcy5maW5kSW5kZXgodyA9PiB3ID09IG51bGwpO1xuICAgICAgcm9vdFBpZCA9IGVtcHR5UGlkICE9PSAtMSA/IHBpZHNbZW1wdHlQaWRdIDogcGlkcy5zb3J0KClbMF07XG4gICAgfVxuICAgIGZvciAoY29uc3QgaXRlbSBvZiBhcnJUeXBlKSB7XG4gICAgICBjb25zdCBpZCA9IGl0ZW1bb3B0LmlkTWFwTmFtZSFdO1xuICAgICAgY29uc3QgcGlkID0gaXRlbVtvcHQucGFyZW50SWRNYXBOYW1lIV07XG4gICAgICBjaGlsZHJlbk9mW2lkXSA9IGNoaWxkcmVuT2ZbaWRdIHx8IFtdO1xuICAgICAgaXRlbVtvcHQuY2hpbGRyZW5NYXBOYW1lIV0gPSBjaGlsZHJlbk9mW2lkXTtcbiAgICAgIGlmIChvcHQuY2IpIHtcbiAgICAgICAgb3B0LmNiKGl0ZW0gYXMgVCk7XG4gICAgICB9XG4gICAgICBpZiAocGlkICE9PSByb290UGlkKSB7XG4gICAgICAgIGNoaWxkcmVuT2ZbcGlkXSA9IGNoaWxkcmVuT2ZbcGlkXSB8fCBbXTtcbiAgICAgICAgY2hpbGRyZW5PZltwaWRdLnB1c2goaXRlbSBhcyBUKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRyZWUucHVzaChpdGVtIGFzIFQpO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gdHJlZTtcbiAgfVxuXG4gIC8qKlxuICAgKiDmlbDnu4TovazmjaLmiJAgYG56LXRyZWVgIOaVsOaNrua6kO+8jOmAmui/hyBgb3B0aW9uc2Ag6L2s5YyW6aG55ZCN77yM5Lmf5Y+v5Lul5L2/55SoIGBvcHRpb25zLmNiYCDmm7Tpq5jnuqflhrPlrprmlbDmja7poblcbiAgICovXG4gIGFyclRvVHJlZU5vZGU8VCBleHRlbmRzIG9iamVjdCA9IGFueT4oYXJyOiByZWFkb25seSBUW10sIG9wdGlvbnM/OiBBcnJheVNlcnZpY2VBcnJUb1RyZWVOb2RlT3B0aW9ucyk6IE56VHJlZU5vZGVbXSB7XG4gICAgY29uc3Qgb3B0ID0ge1xuICAgICAgaWRNYXBOYW1lOiB0aGlzLmMuaWRNYXBOYW1lLFxuICAgICAgcGFyZW50SWRNYXBOYW1lOiB0aGlzLmMucGFyZW50SWRNYXBOYW1lLFxuICAgICAgdGl0bGVNYXBOYW1lOiB0aGlzLmMudGl0bGVNYXBOYW1lLFxuICAgICAgaXNMZWFmTWFwTmFtZTogJ2lzTGVhZicsXG4gICAgICBjaGVja2VkTWFwbmFtZTogdGhpcy5jLmNoZWNrZWRNYXBuYW1lLFxuICAgICAgc2VsZWN0ZWRNYXBuYW1lOiB0aGlzLmMuc2VsZWN0ZWRNYXBuYW1lLFxuICAgICAgZXhwYW5kZWRNYXBuYW1lOiB0aGlzLmMuZXhwYW5kZWRNYXBuYW1lLFxuICAgICAgZGlzYWJsZWRNYXBuYW1lOiB0aGlzLmMuZGlzYWJsZWRNYXBuYW1lLFxuICAgICAgY2I6IG51bGwsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSBhcyBBcnJheVNlcnZpY2VBcnJUb1RyZWVOb2RlT3B0aW9uczxUPjtcbiAgICBjb25zdCB0cmVlID0gdGhpcy5hcnJUb1RyZWU8VD4oYXJyLCB7XG4gICAgICBpZE1hcE5hbWU6IG9wdC5pZE1hcE5hbWUsXG4gICAgICBwYXJlbnRJZE1hcE5hbWU6IG9wdC5wYXJlbnRJZE1hcE5hbWUsXG4gICAgICBjaGlsZHJlbk1hcE5hbWU6ICdjaGlsZHJlbidcbiAgICB9KTtcbiAgICB0aGlzLnZpc2l0VHJlZTxUPih0cmVlLCAoaXRlbTogeyBba2V5OiBzdHJpbmddOiBhbnkgfSwgcGFyZW50LCBkZWVwKSA9PiB7XG4gICAgICBpdGVtLmtleSA9IGl0ZW1bb3B0LmlkTWFwTmFtZSFdO1xuICAgICAgaXRlbS50aXRsZSA9IGl0ZW1bb3B0LnRpdGxlTWFwTmFtZSFdO1xuICAgICAgaXRlbS5jaGVja2VkID0gaXRlbVtvcHQuY2hlY2tlZE1hcG5hbWUhXTtcbiAgICAgIGl0ZW0uc2VsZWN0ZWQgPSBpdGVtW29wdC5zZWxlY3RlZE1hcG5hbWUhXTtcbiAgICAgIGl0ZW0uZXhwYW5kZWQgPSBpdGVtW29wdC5leHBhbmRlZE1hcG5hbWUhXTtcbiAgICAgIGl0ZW0uZGlzYWJsZWQgPSBpdGVtW29wdC5kaXNhYmxlZE1hcG5hbWUhXTtcbiAgICAgIGlmIChpdGVtW29wdC5pc0xlYWZNYXBOYW1lIV0gPT0gbnVsbCkge1xuICAgICAgICBpdGVtLmlzTGVhZiA9IGl0ZW0uY2hpbGRyZW4ubGVuZ3RoID09PSAwO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgaXRlbS5pc0xlYWYgPSBpdGVtW29wdC5pc0xlYWZNYXBOYW1lIV07XG4gICAgICB9XG4gICAgICBpZiAob3B0LmNiKSB7XG4gICAgICAgIG9wdC5jYihpdGVtIGFzIGFueSwgcGFyZW50LCBkZWVwKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4gdHJlZS5tYXAobm9kZSA9PiBuZXcgTnpUcmVlTm9kZShub2RlIGFzIGFueSkpO1xuICB9XG5cbiAgLyoqXG4gICAqIOmAkuW9kuiuv+mXruaVtOS4quagkVxuICAgKi9cbiAgdmlzaXRUcmVlPFQgZXh0ZW5kcyBvYmplY3QgPSBhbnk+KFxuICAgIHRyZWU6IHJlYWRvbmx5IFRbXSxcbiAgICBjYjogKGl0ZW06IFQsIHBhcmVudDogVCB8IG51bGwsIGRlZXA6IG51bWJlcikgPT4gdm9pZCxcbiAgICBvcHRpb25zPzoge1xuICAgICAgLyoqIOWtkOmhueWQje+8jOm7mOiupO+8mmAnY2hpbGRyZW4nYCAqL1xuICAgICAgY2hpbGRyZW5NYXBOYW1lPzogc3RyaW5nO1xuICAgIH1cbiAgKTogdm9pZCB7XG4gICAgb3B0aW9ucyA9IHtcbiAgICAgIGNoaWxkcmVuTWFwTmFtZTogdGhpcy5jLmNoaWxkcmVuTWFwTmFtZSxcbiAgICAgIC4uLm9wdGlvbnNcbiAgICB9O1xuICAgIGNvbnN0IGluRm4gPSAoZGF0YTogcmVhZG9ubHkgVFtdLCBwYXJlbnQ6IFQgfCBudWxsLCBkZWVwOiBudW1iZXIpOiB2b2lkID0+IHtcbiAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBkYXRhKSB7XG4gICAgICAgIGNiKGl0ZW0sIHBhcmVudCwgZGVlcCk7XG4gICAgICAgIGNvbnN0IGNoaWxkcmVuVmFsID0gKGl0ZW0gYXMgeyBba2V5OiBzdHJpbmddOiBhbnkgfSlbb3B0aW9ucyEuY2hpbGRyZW5NYXBOYW1lIV07XG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KGNoaWxkcmVuVmFsKSAmJiBjaGlsZHJlblZhbC5sZW5ndGggPiAwKSB7XG4gICAgICAgICAgaW5GbihjaGlsZHJlblZhbCwgaXRlbSwgZGVlcCArIDEpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfTtcbiAgICBpbkZuKHRyZWUsIG51bGwsIDEpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgdmFsdWUgb2YgdGhlIGZpcnN0IHRyZWUgdmFsdWUgaW4gdGhlIHRyZWUgd2hlcmUgcHJlZGljYXRlIGlzIHRydWUsIGFuZCBgdW5kZWZpbmVkYCBvdGhlcndpc2VcbiAgICpcbiAgICog5qC55o2u5p2h5Lu26L+U5Zue5qCR55qE56ys5LiA5Liq5YC877yM5ZCm5YiZ6L+U5ZueIGB1bmRlZmluZWRgXG4gICAqL1xuICBmaW5kVHJlZTxUIGV4dGVuZHMgb2JqZWN0ID0gYW55PihcbiAgICB0cmVlOiByZWFkb25seSBUW10sXG4gICAgcHJlZGljYXRlOiAoaXRlbTogVCkgPT4gYm9vbGVhbixcbiAgICBvcHRpb25zPzoge1xuICAgICAgLyoqIOWtkOmhueWQje+8jOm7mOiupO+8mmAnY2hpbGRyZW4nYCAqL1xuICAgICAgY2hpbGRyZW5NYXBOYW1lPzogc3RyaW5nO1xuICAgIH1cbiAgKTogVCB8IHVuZGVmaW5lZCB7XG4gICAgbGV0IHJlczogVCB8IHVuZGVmaW5lZDtcbiAgICB0aGlzLnZpc2l0VHJlZTxUPihcbiAgICAgIHRyZWUsXG4gICAgICBpdGVtID0+IHtcbiAgICAgICAgaWYgKHJlcyA9PT0gdW5kZWZpbmVkICYmIHByZWRpY2F0ZShpdGVtKSkge1xuICAgICAgICAgIHJlcyA9IGl0ZW07XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgICBvcHRpb25zXG4gICAgKTtcbiAgICByZXR1cm4gcmVzO1xuICB9XG5cbiAgLyoqXG4gICAqIOiOt+WPluaJgOacieW3sue7j+mAieS4reeahCBga2V5YCDlgLxcbiAgICovXG4gIGdldEtleXNCeVRyZWVOb2RlKHRyZWU6IE56VHJlZU5vZGVbXSwgb3B0aW9ucz86IEFycmF5U2VydmljZUdldEtleXNCeVRyZWVOb2RlT3B0aW9ucyk6IGFueVtdIHtcbiAgICBjb25zdCBvcHQgPSB7XG4gICAgICBpbmNsdWRlSGFsZkNoZWNrZWQ6IHRydWUsXG4gICAgICAuLi5vcHRpb25zXG4gICAgfSBhcyBBcnJheVNlcnZpY2VHZXRLZXlzQnlUcmVlTm9kZU9wdGlvbnM7XG4gICAgY29uc3Qga2V5czogYW55W10gPSBbXTtcbiAgICB0aGlzLnZpc2l0VHJlZTxOelRyZWVOb2RlPih0cmVlLCAoaXRlbSwgcGFyZW50LCBkZWVwKSA9PiB7XG4gICAgICBpZiAoaXRlbS5pc0NoZWNrZWQgfHwgKG9wdC5pbmNsdWRlSGFsZkNoZWNrZWQgJiYgaXRlbS5pc0hhbGZDaGVja2VkKSkge1xuICAgICAgICBrZXlzLnB1c2gob3B0LmNiID8gb3B0LmNiKGl0ZW0sIHBhcmVudCwgZGVlcCkgOiBvcHQua2V5TWFwTmFtZSA/IGl0ZW0ub3JpZ2luW29wdC5rZXlNYXBOYW1lXSA6IGl0ZW0ua2V5KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICByZXR1cm4ga2V5cztcbiAgfVxuICBwcml2YXRlIGJhc2VGbGF0KGFycmF5OiBhbnlbXSwgZGVwdGg6IG51bWJlciwgcmVzdWx0OiBhbnlbXSA9IFtdKTogYW55W10ge1xuICAgIGxldCBpbmRleCA9IC0xO1xuICAgIHdoaWxlICgrK2luZGV4IDwgYXJyYXkubGVuZ3RoKSB7XG4gICAgICBjb25zdCB2YWx1ZSA9IGFycmF5W2luZGV4XTtcbiAgICAgIGlmIChkZXB0aCA+IDAgJiYgQXJyYXkuaXNBcnJheSh2YWx1ZSkpIHtcbiAgICAgICAgaWYgKGRlcHRoID4gMSkge1xuICAgICAgICAgIHRoaXMuYmFzZUZsYXQodmFsdWUsIGRlcHRoIC0gMSwgcmVzdWx0KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBsZXQgcHVzaEluZGV4ID0gLTE7XG4gICAgICAgICAgY29uc3Qgb2Zmc2V0ID0gcmVzdWx0Lmxlbmd0aDtcblxuICAgICAgICAgIHdoaWxlICgrK3B1c2hJbmRleCA8IHZhbHVlLmxlbmd0aCkge1xuICAgICAgICAgICAgcmVzdWx0W29mZnNldCArIHB1c2hJbmRleF0gPSB2YWx1ZVtwdXNoSW5kZXhdO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSBlbHNlIHtcbiAgICAgICAgcmVzdWx0W3Jlc3VsdC5sZW5ndGhdID0gdmFsdWU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cbiAgLyoqXG4gICAqIFJlY3Vyc2l2ZWx5IGZsYXR0ZW5zIGFycmF5XG4gICAqXG4gICAqIOmAkuW9kuaJgeW5s+aVsOe7hFxuICAgKiBgYGB0c1xuICAgKiBzcnYuZmxhdChbMSwgWzIsIDMsIFs0LCA1LCBbNl1dXV0pID0+IFsxLDIsMyw0LDUsNl1cbiAgICogc3J2LmZsYXQoWzEsIFsyLCAzLCBbNCwgNSwgWzZdXV1dLCAxKSA9PiBbMSwyLDMsWzQsIDUsIFs2XV1dXG4gICAqIGBgYFxuICAgKi9cbiAgZmxhdDxUPihhcnJheTogcmVhZG9ubHkgVFtdLCBkZXB0aDogbnVtYmVyID0gMSAvIDApOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KGFycmF5KSA/IHRoaXMuYmFzZUZsYXQoYXJyYXkgYXMgYW55W10sIGRlcHRoKSA6IChhcnJheSBhcyBUW10pO1xuICB9XG4gIC8qKlxuICAgKiBHcm91cCB0aGUgYXJyYXlcbiAgICpcbiAgICog5a+55pWw57uE6L+b6KGM5YiG57uEXG4gICAqIGBgYHRzXG4gICAqIHNydi5ncm91cEJ5KFs2LjEsIDQuMiwgNi4zXSwgTWF0aC5mbG9vcikgPT4ge1wiNFwiOls0LjJdLFwiNlwiOls2LjEsNi4zXX1cbiAgICogc3J2Lmdyb3VwQnkoWydvbmUnLCAndHdvJywgJ3RocmVlJ10sIHYgPT4gdi5sZW5ndGgpID0+IHtcIjNcIjpbXCJvbmVcIixcInR3b1wiXSxcIjVcIjpbXCJ0aHJlZVwiXX1cbiAgICogYGBgXG4gICAqL1xuICBncm91cEJ5PFQ+KGFycmF5OiByZWFkb25seSBUW10sIGl0ZXJhdGVlOiAodmFsdWU6IFQpID0+IHN0cmluZyB8IG51bWJlcik6IEFycmF5U2VydmljZUdyb3VwQnlSZXN1bHQge1xuICAgIGlmICghQXJyYXkuaXNBcnJheShhcnJheSkpIHtcbiAgICAgIHJldHVybiB7fTtcbiAgICB9XG4gICAgcmV0dXJuIGFycmF5LnJlZHVjZSgocmVzdWx0LCB2YWx1ZSkgPT4ge1xuICAgICAgY29uc3Qga2V5ID0gaXRlcmF0ZWUodmFsdWUpO1xuICAgICAgaWYgKE9iamVjdC5wcm90b3R5cGUuaGFzT3duUHJvcGVydHkuY2FsbChyZXN1bHQsIGtleSkpIHtcbiAgICAgICAgcmVzdWx0W2tleV0ucHVzaCh2YWx1ZSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXN1bHRba2V5XSA9IFt2YWx1ZV07XG4gICAgICB9XG4gICAgICByZXR1cm4gcmVzdWx0O1xuICAgIH0sIHt9IGFzIEFycmF5U2VydmljZUdyb3VwQnlSZXN1bHQpO1xuICB9XG4gIC8qKlxuICAgKiBDcmVhdGVzIGEgZHVwbGljYXRlLWZyZWUgdmVyc2lvbiBvZiBhbiBhcnJheVxuICAgKlxuICAgKiDliJvlu7rljrvph43lkI7nmoTmlbDnu4RcbiAgICogYGBgdHNcbiAgICogdW5pcShbMSwgMiwgMiwgMywgMV0pID0+IFsxLDIsM11cbiAgICogdW5pcShbeyBhOiAxIH0sIHsgYTogMSB9LCB7IGE6IDIgfV0sICdhJykgPT4gW3tcImFcIjoxfSx7XCJhXCI6Mn1dXG4gICAqIHVuaXEoW3sgYTogMSB9LCB7IGE6IDEgfSwgeyBhOiAyIH1dLCBpID0+IChpLmEgPT09IDEgPyAnYScgOiAnYicpKSA9PiBbe1wiYVwiOjF9LHtcImFcIjoyfV1cbiAgICogYGBgXG4gICAqL1xuICB1bmlxPFQ+KGFycmF5OiByZWFkb25seSBUW10sIHByZWRpY2F0ZT86IHN0cmluZyB8ICgodmFsdWU6IFQpID0+IHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4pKTogVFtdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbShcbiAgICAgIGFycmF5XG4gICAgICAgIC5yZWR1Y2UoKG1hcCwgdmFsdWUpID0+IHtcbiAgICAgICAgICBjb25zdCBrZXkgPSBwcmVkaWNhdGVcbiAgICAgICAgICAgID8gdHlwZW9mIHByZWRpY2F0ZSA9PT0gJ3N0cmluZydcbiAgICAgICAgICAgICAgPyAodmFsdWUgYXMgYW55KVtwcmVkaWNhdGVdXG4gICAgICAgICAgICAgIDogcHJlZGljYXRlISh2YWx1ZSlcbiAgICAgICAgICAgIDogdmFsdWU7XG4gICAgICAgICAgaWYgKCFtYXAuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIG1hcC5zZXQoa2V5LCB2YWx1ZSk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBtYXA7XG4gICAgICAgIH0sIG5ldyBNYXA8c3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbiwgVD4oKSlcbiAgICAgICAgLnZhbHVlcygpXG4gICAgKTtcbiAgfVxufVxuIl19
@@ -1,104 +0,0 @@
1
- import { Platform } from '@angular/cdk/platform';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Inject, Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/cdk/platform";
7
- /**
8
- * A set of simple Cookie manipulation classes.
9
- *
10
- * 一组简单的 Cookie 操作类。
11
- */
12
- export class CookieService {
13
- constructor(_doc, platform) {
14
- this._doc = _doc;
15
- this.platform = platform;
16
- }
17
- get doc() {
18
- return this._doc || document;
19
- }
20
- /**
21
- * Original cookie value
22
- *
23
- * 原始Cookie值
24
- */
25
- get cookie() {
26
- return this.platform.isBrowser ? this.doc.cookie : '';
27
- }
28
- /**
29
- * Get all cookie key-value pairs
30
- *
31
- * 获取所有Cookie键值对
32
- */
33
- getAll() {
34
- const ret = {};
35
- const arr = this.cookie.split('; ');
36
- for (let i = 0; i < arr.length; i++) {
37
- const cookie = arr[i];
38
- const index = cookie.indexOf('=');
39
- if (index > 0) {
40
- const name = decodeURIComponent(cookie.substring(0, index));
41
- if (ret[name] == null) {
42
- ret[name] = decodeURIComponent(cookie.substring(index + 1));
43
- }
44
- }
45
- }
46
- return ret;
47
- }
48
- /**
49
- * Get the value of given cookie `key`
50
- *
51
- * 获取指定 `key` 的值
52
- */
53
- get(key) {
54
- return this.getAll()[key];
55
- }
56
- /**
57
- * Sets a value for given cookie key
58
- *
59
- * 设置指定 Cookie 键的值
60
- */
61
- put(key, value, options) {
62
- if (!this.platform.isBrowser) {
63
- return;
64
- }
65
- const opt = Object.assign({ path: '/' }, options);
66
- if (typeof opt.expires === 'number') {
67
- opt.expires = new Date(+new Date() + opt.expires * 1e3);
68
- }
69
- if (typeof opt.expires !== 'string') {
70
- opt.expires = opt.expires ? opt.expires.toUTCString() : '';
71
- }
72
- const optStr = opt;
73
- const attributes = Object.keys(optStr)
74
- .filter(k => optStr[k] && optStr[k] !== true)
75
- .map(k => `${k}=${optStr[k].split(';')[0]}`)
76
- .join(';');
77
- this.doc.cookie = `${encodeURIComponent(String(key))}=${encodeURIComponent(String(value))}${attributes ? `; ${attributes}` : ''}`;
78
- }
79
- /**
80
- * Remove given cookie
81
- *
82
- * 移除指定 Cookie
83
- */
84
- remove(key, options) {
85
- this.put(key, undefined, options);
86
- }
87
- /**
88
- * Remove all cookies
89
- *
90
- * 移除所有 Cookies
91
- */
92
- removeAll() {
93
- this.doc.cookie = '';
94
- }
95
- }
96
- CookieService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CookieService_Factory() { return new CookieService(i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.Platform)); }, token: CookieService, providedIn: "root" });
97
- CookieService.decorators = [
98
- { type: Injectable, args: [{ providedIn: 'root' },] }
99
- ];
100
- CookieService.ctorParameters = () => [
101
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
102
- { type: Platform }
103
- ];
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29va2llLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2Jyb3dzZXIvY29va2llLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQWtCbkQ7Ozs7R0FJRztBQUVILE1BQU0sT0FBTyxhQUFhO0lBY3hCLFlBQXNDLElBQWUsRUFBVSxRQUFrQjtRQUEzQyxTQUFJLEdBQUosSUFBSSxDQUFXO1FBQVUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtJQUFHLENBQUM7SUFickYsSUFBWSxHQUFHO1FBQ2IsT0FBTyxJQUFJLENBQUMsSUFBSSxJQUFJLFFBQVEsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILElBQUksTUFBTTtRQUNSLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDeEQsQ0FBQztJQUlEOzs7O09BSUc7SUFDSCxNQUFNO1FBQ0osTUFBTSxHQUFHLEdBQThCLEVBQUUsQ0FBQztRQUMxQyxNQUFNLEdBQUcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUNuQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxJQUFJLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQ2IsTUFBTSxJQUFJLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztnQkFDNUQsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFO29CQUNyQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDN0Q7YUFDRjtTQUNGO1FBQ0QsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILEdBQUcsQ0FBQyxHQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDNUIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxHQUFHLENBQUMsR0FBVyxFQUFFLEtBQXlCLEVBQUUsT0FBdUI7UUFDakUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFO1lBQzVCLE9BQU87U0FDUjtRQUNELE1BQU0sR0FBRyxtQkFBSyxJQUFJLEVBQUUsR0FBRyxJQUFLLE9BQU8sQ0FBRSxDQUFDO1FBQ3RDLElBQUksT0FBTyxHQUFHLENBQUMsT0FBTyxLQUFLLFFBQVEsRUFBRTtZQUNuQyxHQUFHLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLEVBQUUsR0FBRyxHQUFHLENBQUMsT0FBTyxHQUFHLEdBQUcsQ0FBQyxDQUFDO1NBQ3pEO1FBQ0QsSUFBSSxPQUFPLEdBQUcsQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFO1lBQ25DLEdBQUcsQ0FBQyxPQUFPLEdBQUcsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1NBQzVEO1FBQ0QsTUFBTSxNQUFNLEdBQXdDLEdBQWdCLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUM7YUFDbkMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxJQUFJLENBQUM7YUFDNUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUssTUFBTSxDQUFDLENBQUMsQ0FBWSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO2FBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUNiLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxHQUFHLEdBQUcsa0JBQWtCLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksa0JBQWtCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLEdBQ3ZGLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFDbkMsRUFBRSxDQUFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxNQUFNLENBQUMsR0FBVyxFQUFFLE9BQXVCO1FBQ3pDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFNBQVM7UUFDUCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQzs7OztZQXpGRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7NENBZW5CLE1BQU0sU0FBQyxRQUFRO1lBeENyQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuZXhwb3J0IGludGVyZmFjZSBDb29raWVPcHRpb25zIHtcbiAgcGF0aD86IHN0cmluZztcbiAgZG9tYWluPzogc3RyaW5nO1xuICAvKipcbiAgICogRXhwaXJhdGlvbiB0aW1lLCBgbnVtYmVyYCBpcyBzZWNvbmRzXG4gICAqXG4gICAqIOi/h+acn+aXtumXtO+8jGBudW1iZXJgIOexu+Wei+ihqOekuuenkuaVsFxuICAgKi9cbiAgZXhwaXJlcz86IG51bWJlciB8IERhdGUgfCBzdHJpbmc7XG4gIHNlY3VyZT86IGJvb2xlYW47XG4gIEh0dHBPbmx5PzogYm9vbGVhbjtcbiAgU2FtZVNpdGU/OiBib29sZWFuIHwgJ2xheCcgfCAnc3RyaWN0JyB8ICdub25lJztcbn1cblxuLyoqXG4gKiBBIHNldCBvZiBzaW1wbGUgQ29va2llIG1hbmlwdWxhdGlvbiBjbGFzc2VzLlxuICpcbiAqIOS4gOe7hOeugOWNleeahCBDb29raWUg5pON5L2c57G744CCXG4gKi9cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgQ29va2llU2VydmljZSB7XG4gIHByaXZhdGUgZ2V0IGRvYygpOiBEb2N1bWVudCB7XG4gICAgcmV0dXJuIHRoaXMuX2RvYyB8fCBkb2N1bWVudDtcbiAgfVxuXG4gIC8qKlxuICAgKiBPcmlnaW5hbCBjb29raWUgdmFsdWVcbiAgICpcbiAgICog5Y6f5aeLQ29va2ll5YC8XG4gICAqL1xuICBnZXQgY29va2llKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMucGxhdGZvcm0uaXNCcm93c2VyID8gdGhpcy5kb2MuY29va2llIDogJyc7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IE56U2FmZUFueSwgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0pIHt9XG5cbiAgLyoqXG4gICAqIEdldCBhbGwgY29va2llIGtleS12YWx1ZSBwYWlyc1xuICAgKlxuICAgKiDojrflj5bmiYDmnIlDb29raWXplK7lgLzlr7lcbiAgICovXG4gIGdldEFsbCgpOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9IHtcbiAgICBjb25zdCByZXQ6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBhcnIgPSB0aGlzLmNvb2tpZS5zcGxpdCgnOyAnKTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGFyci5sZW5ndGg7IGkrKykge1xuICAgICAgY29uc3QgY29va2llID0gYXJyW2ldO1xuICAgICAgY29uc3QgaW5kZXggPSBjb29raWUuaW5kZXhPZignPScpO1xuICAgICAgaWYgKGluZGV4ID4gMCkge1xuICAgICAgICBjb25zdCBuYW1lID0gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZS5zdWJzdHJpbmcoMCwgaW5kZXgpKTtcbiAgICAgICAgaWYgKHJldFtuYW1lXSA9PSBudWxsKSB7XG4gICAgICAgICAgcmV0W25hbWVdID0gZGVjb2RlVVJJQ29tcG9uZW50KGNvb2tpZS5zdWJzdHJpbmcoaW5kZXggKyAxKSk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHJldDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHZhbHVlIG9mIGdpdmVuIGNvb2tpZSBga2V5YFxuICAgKlxuICAgKiDojrflj5bmjIflrpogYGtleWAg55qE5YC8XG4gICAqL1xuICBnZXQoa2V5OiBzdHJpbmcpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmdldEFsbCgpW2tleV07XG4gIH1cblxuICAvKipcbiAgICogU2V0cyBhIHZhbHVlIGZvciBnaXZlbiBjb29raWUga2V5XG4gICAqXG4gICAqIOiuvue9ruaMh+WumiBDb29raWUg6ZSu55qE5YC8XG4gICAqL1xuICBwdXQoa2V5OiBzdHJpbmcsIHZhbHVlOiBzdHJpbmcgfCB1bmRlZmluZWQsIG9wdGlvbnM/OiBDb29raWVPcHRpb25zKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBjb25zdCBvcHQgPSB7IHBhdGg6ICcvJywgLi4ub3B0aW9ucyB9O1xuICAgIGlmICh0eXBlb2Ygb3B0LmV4cGlyZXMgPT09ICdudW1iZXInKSB7XG4gICAgICBvcHQuZXhwaXJlcyA9IG5ldyBEYXRlKCtuZXcgRGF0ZSgpICsgb3B0LmV4cGlyZXMgKiAxZTMpO1xuICAgIH1cbiAgICBpZiAodHlwZW9mIG9wdC5leHBpcmVzICE9PSAnc3RyaW5nJykge1xuICAgICAgb3B0LmV4cGlyZXMgPSBvcHQuZXhwaXJlcyA/IG9wdC5leHBpcmVzLnRvVVRDU3RyaW5nKCkgOiAnJztcbiAgICB9XG4gICAgY29uc3Qgb3B0U3RyOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IGJvb2xlYW4gfSA9IG9wdCBhcyBOelNhZmVBbnk7XG4gICAgY29uc3QgYXR0cmlidXRlcyA9IE9iamVjdC5rZXlzKG9wdFN0cilcbiAgICAgIC5maWx0ZXIoayA9PiBvcHRTdHJba10gJiYgb3B0U3RyW2tdICE9PSB0cnVlKVxuICAgICAgLm1hcChrID0+IGAke2t9PSR7KG9wdFN0cltrXSBhcyBzdHJpbmcpLnNwbGl0KCc7JylbMF19YClcbiAgICAgIC5qb2luKCc7Jyk7XG4gICAgdGhpcy5kb2MuY29va2llID0gYCR7ZW5jb2RlVVJJQ29tcG9uZW50KFN0cmluZyhrZXkpKX09JHtlbmNvZGVVUklDb21wb25lbnQoU3RyaW5nKHZhbHVlKSl9JHtcbiAgICAgIGF0dHJpYnV0ZXMgPyBgOyAke2F0dHJpYnV0ZXN9YCA6ICcnXG4gICAgfWA7XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGdpdmVuIGNvb2tpZVxuICAgKlxuICAgKiDnp7vpmaTmjIflrpogQ29va2llXG4gICAqL1xuICByZW1vdmUoa2V5OiBzdHJpbmcsIG9wdGlvbnM/OiBDb29raWVPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5wdXQoa2V5LCB1bmRlZmluZWQsIG9wdGlvbnMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbW92ZSBhbGwgY29va2llc1xuICAgKlxuICAgKiDnp7vpmaTmiYDmnIkgQ29va2llc1xuICAgKi9cbiAgcmVtb3ZlQWxsKCk6IHZvaWQge1xuICAgIHRoaXMuZG9jLmNvb2tpZSA9ICcnO1xuICB9XG59XG4iXX0=
@@ -1,27 +0,0 @@
1
- /**
2
- * Copy text to clipboard
3
- *
4
- * 复制字符串文档至剪贴板
5
- */
6
- export function copy(value) {
7
- return new Promise((resolve) => {
8
- let copyTextArea = null;
9
- try {
10
- copyTextArea = document.createElement('textarea');
11
- copyTextArea.style.height = '0px';
12
- copyTextArea.style.opacity = '0';
13
- copyTextArea.style.width = '0px';
14
- document.body.appendChild(copyTextArea);
15
- copyTextArea.value = value;
16
- copyTextArea.select();
17
- document.execCommand('copy');
18
- resolve(value);
19
- }
20
- finally {
21
- if (copyTextArea && copyTextArea.parentNode) {
22
- copyTextArea.parentNode.removeChild(copyTextArea);
23
- }
24
- }
25
- });
26
- }
27
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29weS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvYnJvd3Nlci9jb3B5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsSUFBSSxDQUFDLEtBQWE7SUFDaEMsT0FBTyxJQUFJLE9BQU8sQ0FBUyxDQUFDLE9BQU8sRUFBUSxFQUFFO1FBQzNDLElBQUksWUFBWSxHQUErQixJQUFJLENBQUM7UUFDcEQsSUFBSTtZQUNGLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1lBQ2xELFlBQVksQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztZQUNsQyxZQUFZLENBQUMsS0FBSyxDQUFDLE9BQU8sR0FBRyxHQUFHLENBQUM7WUFDakMsWUFBWSxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQ2pDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1lBQzNCLFlBQVksQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUN0QixRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzdCLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoQjtnQkFBUztZQUNSLElBQUksWUFBWSxJQUFJLFlBQVksQ0FBQyxVQUFVLEVBQUU7Z0JBQzNDLFlBQVksQ0FBQyxVQUFVLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxDQUFDO2FBQ25EO1NBQ0Y7SUFDSCxDQUFDLENBQUMsQ0FBQztBQUNMLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHkgdGV4dCB0byBjbGlwYm9hcmRcbiAqXG4gKiDlpI3liLblrZfnrKbkuLLmlofmoaPoh7PliarotLTmnb9cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNvcHkodmFsdWU6IHN0cmluZyk6IFByb21pc2U8c3RyaW5nPiB7XG4gIHJldHVybiBuZXcgUHJvbWlzZTxzdHJpbmc+KChyZXNvbHZlKTogdm9pZCA9PiB7XG4gICAgbGV0IGNvcHlUZXh0QXJlYTogSFRNTFRleHRBcmVhRWxlbWVudCB8IG51bGwgPSBudWxsO1xuICAgIHRyeSB7XG4gICAgICBjb3B5VGV4dEFyZWEgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCd0ZXh0YXJlYScpO1xuICAgICAgY29weVRleHRBcmVhLnN0eWxlLmhlaWdodCA9ICcwcHgnO1xuICAgICAgY29weVRleHRBcmVhLnN0eWxlLm9wYWNpdHkgPSAnMCc7XG4gICAgICBjb3B5VGV4dEFyZWEuc3R5bGUud2lkdGggPSAnMHB4JztcbiAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoY29weVRleHRBcmVhKTtcbiAgICAgIGNvcHlUZXh0QXJlYS52YWx1ZSA9IHZhbHVlO1xuICAgICAgY29weVRleHRBcmVhLnNlbGVjdCgpO1xuICAgICAgZG9jdW1lbnQuZXhlY0NvbW1hbmQoJ2NvcHknKTtcbiAgICAgIHJlc29sdmUodmFsdWUpO1xuICAgIH0gZmluYWxseSB7XG4gICAgICBpZiAoY29weVRleHRBcmVhICYmIGNvcHlUZXh0QXJlYS5wYXJlbnROb2RlKSB7XG4gICAgICAgIGNvcHlUZXh0QXJlYS5wYXJlbnROb2RlLnJlbW92ZUNoaWxkKGNvcHlUZXh0QXJlYSk7XG4gICAgICB9XG4gICAgfVxuICB9KTtcbn1cbiJdfQ==
@@ -1,89 +0,0 @@
1
- import { Platform } from '@angular/cdk/platform';
2
- import { DOCUMENT } from '@angular/common';
3
- import { Inject, Injectable } from '@angular/core';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "@angular/common";
6
- import * as i2 from "@angular/cdk/platform";
7
- export class ScrollService {
8
- constructor(_doc, platform) {
9
- this._doc = _doc;
10
- this.platform = platform;
11
- }
12
- _getDoc() {
13
- return this._doc || document;
14
- }
15
- _getWin() {
16
- const doc = this._getDoc();
17
- return doc.defaultView || window;
18
- }
19
- /**
20
- * 获取滚动条位置
21
- *
22
- * @param element 指定元素,默认 `window`
23
- */
24
- getScrollPosition(element) {
25
- if (!this.platform.isBrowser) {
26
- return [0, 0];
27
- }
28
- const win = this._getWin();
29
- if (element && element !== win) {
30
- return [element.scrollLeft, element.scrollTop];
31
- }
32
- else {
33
- return [win.pageXOffset, win.pageYOffset];
34
- }
35
- }
36
- /**
37
- * 设置滚动条位置
38
- *
39
- * @param element 指定元素
40
- */
41
- scrollToPosition(element, position) {
42
- if (!this.platform.isBrowser) {
43
- return;
44
- }
45
- (element || this._getWin()).scrollTo(position[0], position[1]);
46
- }
47
- /**
48
- * 设置滚动条至指定元素
49
- *
50
- * @param element 指定元素,默认 `document.body`
51
- * @param topOffset 偏移值,默认 `0`
52
- */
53
- scrollToElement(element, topOffset = 0) {
54
- if (!this.platform.isBrowser) {
55
- return;
56
- }
57
- if (!element) {
58
- element = this._getDoc().body;
59
- }
60
- element.scrollIntoView();
61
- const win = this._getWin();
62
- if (win && win.scrollBy) {
63
- win.scrollBy(0, element.getBoundingClientRect().top - topOffset);
64
- if (win.pageYOffset < 20) {
65
- win.scrollBy(0, -win.pageYOffset);
66
- }
67
- }
68
- }
69
- /**
70
- * 滚动至顶部
71
- *
72
- * @param topOffset 偏移值,默认 `0`
73
- */
74
- scrollToTop(topOffset = 0) {
75
- if (!this.platform.isBrowser) {
76
- return;
77
- }
78
- this.scrollToElement(this._getDoc().body, topOffset);
79
- }
80
- }
81
- ScrollService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ScrollService_Factory() { return new ScrollService(i0.ɵɵinject(i1.DOCUMENT), i0.ɵɵinject(i2.Platform)); }, token: ScrollService, providedIn: "root" });
82
- ScrollService.decorators = [
83
- { type: Injectable, args: [{ providedIn: 'root' },] }
84
- ];
85
- ScrollService.ctorParameters = () => [
86
- { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
87
- { type: Platform }
88
- ];
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2Nyb2xsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2Jyb3dzZXIvc2Nyb2xsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7OztBQUtuRCxNQUFNLE9BQU8sYUFBYTtJQVV4QixZQUFzQyxJQUFlLEVBQVUsUUFBa0I7UUFBM0MsU0FBSSxHQUFKLElBQUksQ0FBVztRQUFVLGFBQVEsR0FBUixRQUFRLENBQVU7SUFBRyxDQUFDO0lBVDdFLE9BQU87UUFDYixPQUFPLElBQUksQ0FBQyxJQUFJLElBQUksUUFBUSxDQUFDO0lBQy9CLENBQUM7SUFFTyxPQUFPO1FBQ2IsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLE9BQU8sR0FBRyxDQUFDLFdBQVcsSUFBSSxNQUFNLENBQUM7SUFDbkMsQ0FBQztJQUlEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxPQUEwQjtRQUMxQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDNUIsT0FBTyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNmO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxHQUFHLEVBQUU7WUFDOUIsT0FBTyxDQUFFLE9BQW1CLENBQUMsVUFBVSxFQUFHLE9BQW1CLENBQUMsU0FBUyxDQUFDLENBQUM7U0FDMUU7YUFBTTtZQUNMLE9BQU8sQ0FBQyxHQUFHLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsT0FBNEMsRUFBRSxRQUEwQjtRQUN2RixJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7WUFDNUIsT0FBTztTQUNSO1FBQ0QsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSCxlQUFlLENBQUMsT0FBd0IsRUFBRSxZQUFvQixDQUFDO1FBQzdELElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ1osT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDL0I7UUFFRCxPQUFPLENBQUMsY0FBYyxFQUFFLENBQUM7UUFFekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQzNCLElBQUksR0FBRyxJQUFJLEdBQUcsQ0FBQyxRQUFRLEVBQUU7WUFDdkIsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDLEVBQUUsT0FBUSxDQUFDLHFCQUFxQixFQUFFLENBQUMsR0FBRyxHQUFHLFNBQVMsQ0FBQyxDQUFDO1lBRWxFLElBQUksR0FBRyxDQUFDLFdBQVcsR0FBRyxFQUFFLEVBQUU7Z0JBQ3hCLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFDO2FBQ25DO1NBQ0Y7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFdBQVcsQ0FBQyxZQUFvQixDQUFDO1FBQy9CLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRTtZQUM1QixPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxJQUFJLEVBQUUsU0FBUyxDQUFDLENBQUM7SUFDdkQsQ0FBQzs7OztZQS9FRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7NENBV25CLE1BQU0sU0FBQyxRQUFRO1lBakJyQixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm0gfSBmcm9tICdAYW5ndWxhci9jZGsvcGxhdGZvcm0nO1xuaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgTnpTYWZlQW55IH0gZnJvbSAnbmctem9ycm8tYW50ZC9jb3JlL3R5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBTY3JvbGxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBfZ2V0RG9jKCk6IERvY3VtZW50IHtcbiAgICByZXR1cm4gdGhpcy5fZG9jIHx8IGRvY3VtZW50O1xuICB9XG5cbiAgcHJpdmF0ZSBfZ2V0V2luKCk6IFdpbmRvdyB7XG4gICAgY29uc3QgZG9jID0gdGhpcy5fZ2V0RG9jKCk7XG4gICAgcmV0dXJuIGRvYy5kZWZhdWx0VmlldyB8fCB3aW5kb3c7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIF9kb2M6IE56U2FmZUFueSwgcHJpdmF0ZSBwbGF0Zm9ybTogUGxhdGZvcm0pIHt9XG5cbiAgLyoqXG4gICAqIOiOt+WPlua7muWKqOadoeS9jee9rlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCDmjIflrprlhYPntKDvvIzpu5jorqQgYHdpbmRvd2BcbiAgICovXG4gIGdldFNjcm9sbFBvc2l0aW9uKGVsZW1lbnQ/OiBFbGVtZW50IHwgV2luZG93KTogW251bWJlciwgbnVtYmVyXSB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuIFswLCAwXTtcbiAgICB9XG5cbiAgICBjb25zdCB3aW4gPSB0aGlzLl9nZXRXaW4oKTtcbiAgICBpZiAoZWxlbWVudCAmJiBlbGVtZW50ICE9PSB3aW4pIHtcbiAgICAgIHJldHVybiBbKGVsZW1lbnQgYXMgRWxlbWVudCkuc2Nyb2xsTGVmdCwgKGVsZW1lbnQgYXMgRWxlbWVudCkuc2Nyb2xsVG9wXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFt3aW4ucGFnZVhPZmZzZXQsIHdpbi5wYWdlWU9mZnNldF07XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOiuvue9rua7muWKqOadoeS9jee9rlxuICAgKlxuICAgKiBAcGFyYW0gZWxlbWVudCDmjIflrprlhYPntKBcbiAgICovXG4gIHNjcm9sbFRvUG9zaXRpb24oZWxlbWVudDogRWxlbWVudCB8IFdpbmRvdyB8IG51bGwgfCB1bmRlZmluZWQsIHBvc2l0aW9uOiBbbnVtYmVyLCBudW1iZXJdKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBsYXRmb3JtLmlzQnJvd3Nlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAoZWxlbWVudCB8fCB0aGlzLl9nZXRXaW4oKSkuc2Nyb2xsVG8ocG9zaXRpb25bMF0sIHBvc2l0aW9uWzFdKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDorr7nva7mu5rliqjmnaHoh7PmjIflrprlhYPntKBcbiAgICpcbiAgICogQHBhcmFtIGVsZW1lbnQg5oyH5a6a5YWD57Sg77yM6buY6K6kIGBkb2N1bWVudC5ib2R5YFxuICAgKiBAcGFyYW0gdG9wT2Zmc2V0IOWBj+enu+WAvO+8jOm7mOiupCBgMGBcbiAgICovXG4gIHNjcm9sbFRvRWxlbWVudChlbGVtZW50PzogRWxlbWVudCB8IG51bGwsIHRvcE9mZnNldDogbnVtYmVyID0gMCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgaWYgKCFlbGVtZW50KSB7XG4gICAgICBlbGVtZW50ID0gdGhpcy5fZ2V0RG9jKCkuYm9keTtcbiAgICB9XG5cbiAgICBlbGVtZW50LnNjcm9sbEludG9WaWV3KCk7XG5cbiAgICBjb25zdCB3aW4gPSB0aGlzLl9nZXRXaW4oKTtcbiAgICBpZiAod2luICYmIHdpbi5zY3JvbGxCeSkge1xuICAgICAgd2luLnNjcm9sbEJ5KDAsIGVsZW1lbnQhLmdldEJvdW5kaW5nQ2xpZW50UmVjdCgpLnRvcCAtIHRvcE9mZnNldCk7XG5cbiAgICAgIGlmICh3aW4ucGFnZVlPZmZzZXQgPCAyMCkge1xuICAgICAgICB3aW4uc2Nyb2xsQnkoMCwgLXdpbi5wYWdlWU9mZnNldCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIOa7muWKqOiHs+mhtumDqFxuICAgKlxuICAgKiBAcGFyYW0gdG9wT2Zmc2V0IOWBj+enu+WAvO+8jOm7mOiupCBgMGBcbiAgICovXG4gIHNjcm9sbFRvVG9wKHRvcE9mZnNldDogbnVtYmVyID0gMCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5wbGF0Zm9ybS5pc0Jyb3dzZXIpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zY3JvbGxUb0VsZW1lbnQodGhpcy5fZ2V0RG9jKCkuYm9keSwgdG9wT2Zmc2V0KTtcbiAgfVxufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGRmLnR5cGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2NvbmZpZy9hYmMvcGRmLnR5cGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgQWxhaW5QZGZDb25maWcge1xuICAvKipcbiAgICogW3BkZi5qc10oaHR0cHM6Ly9naXRodWIuY29tL21vemlsbGEvcGRmLmpzKSBsaWJyYXJ5IHJvb3QgdXJsLCBEZWZhdWx0OiBgaHR0cHM6Ly9jZG4uanNkZWxpdnIubmV0L25wbS9wZGZqcy1kaXN0QDIuNS4yMDcvYFxuICAgKlxuICAgKiAqKk5vdGUqKiBUaGF0IG9ubHkgdGhlIHJvb3QgcGF0aCwgbXVzZSBiZSBlbmRpbmcgd2l0aCBgL2BcbiAgICovXG4gIGxpYj86IHN0cmluZztcbiAgLyoqXG4gICAqIFNob3cgc2luZ2xlIG9yIGFsbCBwYWdlcyBhbHRvZ2V0aGVyLCBEZWZhdWx0OiBgdHJ1ZWBcbiAgICovXG4gIHNob3dBbGw/OiBib29sZWFuO1xuICAvKipcbiAgICogRW5hYmxlIHRleHQgcmVuZGVyaW5nLCBhbGxvd3MgdG8gc2VsZWN0IHRleHQsIERlZmF1bHQ6IGB0cnVlYFxuICAgKi9cbiAgcmVuZGVyVGV4dD86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBTaG93IHBhZ2UgYm9yZGVycywgRGVmYXVsdDogYGZhbHNlYFxuICAgKi9cbiAgc2hvd0JvcmRlcnM/OiBib29sZWFuO1xuICAvKipcbiAgICogRGVmYXVsdDogYHRydWVgXG4gICAqIC0gaWYgc2V0IHRvIGB0cnVlYCAtIHNpemUgd2lsbCBiZSBhcyBzYW1lIGFzIG9yaWdpbmFsIGRvY3VtZW50XG4gICAqIC0gaWYgc2V0IHRvIGBmYWxzZWAgLSBzaXplIHdpbGwgYmUgYXMgc2FtZSBhcyBjb250YWluZXIgYmxvY2tcbiAgICovXG4gIG9yaWdpbmFsU2l6ZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBZb3UgY2FuIHNob3cgeW91ciBkb2N1bWVudCBpbiBvcmlnaW5hbCBzaXplLCBhbmQgbWFrZSBzdXJlIHRoYXQgaXQncyBub3QgYmlnZ2VyIHRoZW4gY29udGFpbmVyIGJsb2NrLiBEZWZhdWx0OiBgZmFsc2VgXG4gICAqL1xuICBmaXRUb1BhZ2U/OiBib29sZWFuO1xuICAvKipcbiAgICogVHVybiBvbiBvciBvZmYgYXV0byByZXNpemUsIERlZmF1bHQ6IGB0cnVlYFxuICAgKiAqKkltcG9ydGFudCoqIFRvIG1ha2Ugd29yayAtIG1ha2Ugc3VyZSB0aGF0IGBbb3JpZ2luYWxTaXplXT1cImZhbHNlXCJgIGFuZCBwZGYtdmlld2VyIHRhZyBoYXMgYG1heC13aWR0aGAgb3IgYGRpc3BsYXlgIGFyZSBzZXQuXG4gICAqL1xuICBhdXRvUmVTaXplPzogYm9vbGVhbjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicXIudHlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3V0aWwvY29uZmlnL2FiYy9xci50eXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIEFsYWluUVJDb25maWcge1xuICAvKipcbiAgICogW3FyaW91c10oaHR0cHM6Ly9naXRodWIuY29tL25lb2NvdGljL3FyaW91cykg5aSW572R5Zyw5Z2A77yM6buY6K6k77yaYGh0dHBzOi8vY2RuLmJvb3RjZG4ubmV0L2FqYXgvbGlicy9xcmlvdXMvNC4wLjIvcXJpb3VzLm1pbi5qc2BcbiAgICpcbiAgICog6Iul5ZyoIGBhbmd1bGFyLmpzb25gIOmFjee9riBgXCJzY3JpcHRzXCI6IFsgXCJub2RlX21vZHVsZXMvcXJpb3VzL2Rpc3QvcXJpb3VzLm1pbi5qc1wiIF1gIOWImeS8mOWFiOS9v+eUqFxuICAgKi9cbiAgbGliPzogc3RyaW5nO1xuICAvKiog6IOM5pmv77yM6buY6K6k77yaYHdoaXRlYCAqL1xuICBiYWNrZ3JvdW5kPzogc3RyaW5nO1xuICAvKiog6IOM5pmv6YCP5piO57qn5Yir77yM6IyD5Zu077yaYDAtMWAg5LmL6Ze077yM6buY6K6k77yaYDFgICovXG4gIGJhY2tncm91bmRBbHBoYT86IG51bWJlcjtcbiAgLyoqIOWJjeaZr++8jOm7mOiupO+8mmBibGFja2AgKi9cbiAgZm9yZWdyb3VuZD86IHN0cmluZztcbiAgLyoqIOWJjeaZr+mAj+aYjue6p+WIq++8jOiMg+WbtO+8mmAwLTFgIOS5i+mXtO+8jOm7mOiupO+8mmAxYCAqL1xuICBmb3JlZ3JvdW5kQWxwaGE/OiBudW1iZXI7XG4gIC8qKiDor6/lt67moKHmraPnuqfliKvvvIzpu5jorqTvvJpgTGAgKi9cbiAgbGV2ZWw/OiAnTCcgfCAnTScgfCAnUScgfCAnSCc7XG4gIC8qKiDkuoznu7TnoIHovpPlh7rlm77niYdNSU1F57G75Z6L77yM6buY6K6k77yaYGltYWdlL3BuZ2AgKi9cbiAgbWltZT86IHN0cmluZztcbiAgLyoqIOWGhei+uei3ne+8iOWNleS9je+8mnB477yJ77yM6buY6K6k77yaYDEwYCAqL1xuICBwYWRkaW5nPzogbnVtYmVyO1xuICAvKiog5aSn5bCP77yI5Y2V5L2N77yacHjvvInvvIzpu5jorqTvvJpgMjIwYCAqL1xuICBzaXplPzogbnVtYmVyO1xuICBkZWxheT86IG51bWJlcjtcbn1cbiJdfQ==
@@ -1,34 +0,0 @@
1
- import { Inject, Injectable, Optional } from '@angular/core';
2
- import { deepMergeKey } from '@delon/util/other';
3
- import { ALAIN_CONFIG } from './config.types';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./config.types";
6
- export class AlainConfigService {
7
- constructor(defaultConfig) {
8
- this.config = Object.assign({}, defaultConfig);
9
- }
10
- get(componentName, key) {
11
- const res = (this.config[componentName] || {});
12
- return key ? { [key]: res[key] } : res;
13
- }
14
- merge(componentName, ...defaultValues) {
15
- return deepMergeKey({}, true, ...defaultValues, this.get(componentName));
16
- }
17
- attach(componentThis, componentName, defaultValues) {
18
- Object.assign(componentThis, this.merge(componentName, defaultValues));
19
- }
20
- attachKey(componentThis, componentName, key) {
21
- Object.assign(componentThis, this.get(componentName, key));
22
- }
23
- set(componentName, value) {
24
- this.config[componentName] = Object.assign(Object.assign({}, this.config[componentName]), value);
25
- }
26
- }
27
- AlainConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AlainConfigService_Factory() { return new AlainConfigService(i0.ɵɵinject(i1.ALAIN_CONFIG, 8)); }, token: AlainConfigService, providedIn: "root" });
28
- AlainConfigService.decorators = [
29
- { type: Injectable, args: [{ providedIn: 'root' },] }
30
- ];
31
- AlainConfigService.ctorParameters = () => [
32
- { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [ALAIN_CONFIG,] }] }
33
- ];
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2NvbmZpZy9jb25maWcuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFN0QsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBR2pELE9BQU8sRUFBK0IsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQUczRSxNQUFNLE9BQU8sa0JBQWtCO0lBRzdCLFlBQThDLGFBQTJCO1FBQ3ZFLElBQUksQ0FBQyxNQUFNLHFCQUFRLGFBQWEsQ0FBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxHQUFHLENBQTJCLGFBQWdCLEVBQUUsR0FBWTtRQUMxRCxNQUFNLEdBQUcsR0FBRyxDQUFFLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFnQyxJQUFJLEVBQUUsQ0FBYyxDQUFDO1FBQzVGLE9BQU8sR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUEyQixhQUFnQixFQUFFLEdBQUcsYUFBb0M7UUFDdkYsT0FBTyxZQUFZLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxHQUFHLGFBQWEsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDM0UsQ0FBQztJQUVELE1BQU0sQ0FBMkIsYUFBc0IsRUFBRSxhQUFnQixFQUFFLGFBQTZCO1FBQ3RHLE1BQU0sQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVELFNBQVMsQ0FBMkIsYUFBc0IsRUFBRSxhQUFnQixFQUFFLEdBQVc7UUFDdkYsTUFBTSxDQUFDLE1BQU0sQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsR0FBRyxDQUEyQixhQUFnQixFQUFFLEtBQXFCO1FBQ25FLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLG1DQUFRLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUssS0FBSyxDQUFFLENBQUM7SUFDM0UsQ0FBQzs7OztZQTNCRixVQUFVLFNBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzs7NENBSW5CLFFBQVEsWUFBSSxNQUFNLFNBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgZGVlcE1lcmdlS2V5IH0gZnJvbSAnQGRlbG9uL3V0aWwvb3RoZXInO1xuaW1wb3J0IHR5cGUgeyBOelNhZmVBbnkgfSBmcm9tICduZy16b3Jyby1hbnRkL2NvcmUvdHlwZXMnO1xuXG5pbXBvcnQgeyBBbGFpbkNvbmZpZywgQWxhaW5Db25maWdLZXksIEFMQUlOX0NPTkZJRyB9IGZyb20gJy4vY29uZmlnLnR5cGVzJztcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBBbGFpbkNvbmZpZ1NlcnZpY2Uge1xuICBwcml2YXRlIGNvbmZpZzogQWxhaW5Db25maWc7XG5cbiAgY29uc3RydWN0b3IoQE9wdGlvbmFsKCkgQEluamVjdChBTEFJTl9DT05GSUcpIGRlZmF1bHRDb25maWc/OiBBbGFpbkNvbmZpZykge1xuICAgIHRoaXMuY29uZmlnID0geyAuLi5kZWZhdWx0Q29uZmlnIH07XG4gIH1cblxuICBnZXQ8VCBleHRlbmRzIEFsYWluQ29uZmlnS2V5Pihjb21wb25lbnROYW1lOiBULCBrZXk/OiBzdHJpbmcpOiBBbGFpbkNvbmZpZ1tUXSB7XG4gICAgY29uc3QgcmVzID0gKCh0aGlzLmNvbmZpZ1tjb21wb25lbnROYW1lXSBhcyB7IFtrZXk6IHN0cmluZ106IHVua25vd24gfSkgfHwge30pIGFzIE56U2FmZUFueTtcbiAgICByZXR1cm4ga2V5ID8geyBba2V5XTogcmVzW2tleV0gfSA6IHJlcztcbiAgfVxuXG4gIG1lcmdlPFQgZXh0ZW5kcyBBbGFpbkNvbmZpZ0tleT4oY29tcG9uZW50TmFtZTogVCwgLi4uZGVmYXVsdFZhbHVlczogQXJyYXk8QWxhaW5Db25maWdbVF0+KTogQWxhaW5Db25maWdbVF0ge1xuICAgIHJldHVybiBkZWVwTWVyZ2VLZXkoe30sIHRydWUsIC4uLmRlZmF1bHRWYWx1ZXMsIHRoaXMuZ2V0KGNvbXBvbmVudE5hbWUpKTtcbiAgfVxuXG4gIGF0dGFjaDxUIGV4dGVuZHMgQWxhaW5Db25maWdLZXk+KGNvbXBvbmVudFRoaXM6IHVua25vd24sIGNvbXBvbmVudE5hbWU6IFQsIGRlZmF1bHRWYWx1ZXM6IEFsYWluQ29uZmlnW1RdKTogdm9pZCB7XG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRUaGlzLCB0aGlzLm1lcmdlKGNvbXBvbmVudE5hbWUsIGRlZmF1bHRWYWx1ZXMpKTtcbiAgfVxuXG4gIGF0dGFjaEtleTxUIGV4dGVuZHMgQWxhaW5Db25maWdLZXk+KGNvbXBvbmVudFRoaXM6IHVua25vd24sIGNvbXBvbmVudE5hbWU6IFQsIGtleTogc3RyaW5nKTogdm9pZCB7XG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRUaGlzLCB0aGlzLmdldChjb21wb25lbnROYW1lLCBrZXkpKTtcbiAgfVxuXG4gIHNldDxUIGV4dGVuZHMgQWxhaW5Db25maWdLZXk+KGNvbXBvbmVudE5hbWU6IFQsIHZhbHVlOiBBbGFpbkNvbmZpZ1tUXSk6IHZvaWQge1xuICAgIHRoaXMuY29uZmlnW2NvbXBvbmVudE5hbWVdID0geyAuLi50aGlzLmNvbmZpZ1tjb21wb25lbnROYW1lXSwgLi4udmFsdWUgfTtcbiAgfVxufVxuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsb24tdXRpbC1jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2NvbmZpZy9kZWxvbi11dGlsLWNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVsb24tdXRpbC1kYXRlLXRpbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy91dGlsL2RhdGUtdGltZS9kZWxvbi11dGlsLWRhdGUtdGltZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==