@ng-nest/ui 17.0.0 → 17.0.2

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 (661) hide show
  1. package/affix/affix.component.d.ts +1 -2
  2. package/affix/affix.module.d.ts +1 -3
  3. package/alert/alert.component.d.ts +4 -5
  4. package/alert/alert.module.d.ts +1 -8
  5. package/anchor/anchor-inner.component.d.ts +1 -1
  6. package/anchor/anchor.component.d.ts +6 -7
  7. package/anchor/anchor.module.d.ts +2 -6
  8. package/api/api.component.d.ts +4 -4
  9. package/api/api.module.d.ts +1 -2
  10. package/auto-complete/auto-complete-portal.component.d.ts +3 -5
  11. package/auto-complete/auto-complete.component.d.ts +12 -13
  12. package/auto-complete/auto-complete.module.d.ts +1 -9
  13. package/avatar/avatar-group.component.d.ts +1 -2
  14. package/avatar/avatar.component.d.ts +6 -7
  15. package/avatar/avatar.module.d.ts +2 -6
  16. package/back-top/back-top.component.d.ts +7 -12
  17. package/back-top/back-top.module.d.ts +1 -5
  18. package/badge/badge.component.d.ts +3 -8
  19. package/badge/badge.module.d.ts +1 -3
  20. package/base-form/base-form.component.d.ts +1 -1
  21. package/base-form/base-form.module.d.ts +1 -2
  22. package/border/border.component.d.ts +4 -4
  23. package/border/border.module.d.ts +1 -1
  24. package/button/button.component.d.ts +8 -10
  25. package/button/button.module.d.ts +1 -5
  26. package/button/buttons.component.d.ts +4 -5
  27. package/calendar/calendar.component.d.ts +9 -13
  28. package/calendar/calendar.module.d.ts +1 -10
  29. package/card/card.component.d.ts +2 -6
  30. package/card/card.module.d.ts +1 -5
  31. package/carousel/carousel-panel.component.d.ts +10 -13
  32. package/carousel/carousel.component.d.ts +4 -7
  33. package/carousel/carousel.module.d.ts +1 -5
  34. package/cascade/cascade-portal.component.d.ts +4 -5
  35. package/cascade/cascade.component.d.ts +14 -13
  36. package/cascade/cascade.module.d.ts +1 -9
  37. package/checkbox/checkbox.component.d.ts +6 -8
  38. package/checkbox/checkbox.module.d.ts +1 -8
  39. package/collapse/collapse-panel.component.d.ts +5 -8
  40. package/collapse/collapse.component.d.ts +3 -7
  41. package/collapse/collapse.module.d.ts +1 -5
  42. package/color/color.component.d.ts +4 -5
  43. package/color/color.module.d.ts +1 -3
  44. package/color-picker/color-picker-portal.component.d.ts +7 -11
  45. package/color-picker/color-picker.component.d.ts +11 -12
  46. package/color-picker/color-picker.module.d.ts +1 -11
  47. package/comment/comment-reply.component.d.ts +4 -9
  48. package/comment/comment.component.d.ts +5 -9
  49. package/comment/comment.module.d.ts +1 -11
  50. package/container/aside.component.d.ts +5 -5
  51. package/container/container.component.d.ts +2 -3
  52. package/container/container.module.d.ts +1 -3
  53. package/container/footer.component.d.ts +5 -7
  54. package/container/header.component.d.ts +5 -7
  55. package/container/main.component.d.ts +4 -4
  56. package/crumb/crumb.component.d.ts +4 -5
  57. package/crumb/crumb.module.d.ts +1 -5
  58. package/date-picker/date-picker-portal.component.d.ts +5 -9
  59. package/date-picker/date-picker.component.d.ts +14 -16
  60. package/date-picker/date-picker.module.d.ts +2 -21
  61. package/date-picker/date-quarter.pipe.d.ts +1 -1
  62. package/date-picker/date-range-portal.component.d.ts +1 -1
  63. package/date-picker/date-range.component.d.ts +16 -18
  64. package/date-picker/picker-date.component.d.ts +8 -11
  65. package/date-picker/picker-month.component.d.ts +8 -11
  66. package/date-picker/picker-quarter.component.d.ts +9 -14
  67. package/date-picker/picker-year.component.d.ts +5 -8
  68. package/description/description-item.component.d.ts +1 -2
  69. package/description/description.component.d.ts +4 -5
  70. package/description/description.module.d.ts +2 -5
  71. package/dialog/dialog-container.component.d.ts +1 -2
  72. package/dialog/dialog-portal.component.d.ts +1 -1
  73. package/dialog/dialog-portal.directives.d.ts +13 -17
  74. package/dialog/dialog.component.d.ts +15 -17
  75. package/dialog/dialog.module.d.ts +1 -14
  76. package/dialog/dialog.service.d.ts +8 -10
  77. package/doc/doc.component.d.ts +6 -6
  78. package/doc/doc.module.d.ts +1 -2
  79. package/drag/drag.directive.d.ts +5 -6
  80. package/drag/drag.module.d.ts +1 -2
  81. package/drawer/drawer-container.component.d.ts +1 -2
  82. package/drawer/drawer-portal.component.d.ts +1 -2
  83. package/drawer/drawer-portal.directives.d.ts +5 -6
  84. package/drawer/drawer.component.d.ts +10 -15
  85. package/drawer/drawer.module.d.ts +2 -8
  86. package/drawer/drawer.service.d.ts +5 -7
  87. package/dropdown/dropdown-portal.component.d.ts +1 -1
  88. package/dropdown/dropdown.component.d.ts +10 -13
  89. package/dropdown/dropdown.module.d.ts +1 -7
  90. package/empty/empty.component.d.ts +4 -7
  91. package/empty/empty.module.d.ts +1 -6
  92. package/esm2022/affix/affix.component.mjs +10 -10
  93. package/esm2022/affix/affix.module.mjs +4 -7
  94. package/esm2022/alert/alert.component.mjs +26 -18
  95. package/esm2022/alert/alert.module.mjs +4 -12
  96. package/esm2022/alert/alert.property.mjs +1 -1
  97. package/esm2022/anchor/anchor-inner.component.mjs +3 -2
  98. package/esm2022/anchor/anchor.component.mjs +21 -21
  99. package/esm2022/anchor/anchor.module.mjs +4 -9
  100. package/esm2022/anchor/anchor.property.mjs +1 -1
  101. package/esm2022/api/api.component.mjs +13 -11
  102. package/esm2022/api/api.module.mjs +4 -6
  103. package/esm2022/auto-complete/auto-complete-portal.component.mjs +14 -15
  104. package/esm2022/auto-complete/auto-complete.component.mjs +43 -30
  105. package/esm2022/auto-complete/auto-complete.module.mjs +5 -14
  106. package/esm2022/avatar/avatar-group.component.mjs +6 -6
  107. package/esm2022/avatar/avatar.component.mjs +17 -18
  108. package/esm2022/avatar/avatar.module.mjs +4 -9
  109. package/esm2022/avatar/avatar.property.mjs +1 -1
  110. package/esm2022/back-top/back-top.component.mjs +25 -29
  111. package/esm2022/back-top/back-top.module.mjs +4 -9
  112. package/esm2022/badge/badge.component.mjs +18 -22
  113. package/esm2022/badge/badge.module.mjs +4 -7
  114. package/esm2022/base-form/base-form.component.mjs +9 -4
  115. package/esm2022/base-form/base-form.module.mjs +4 -5
  116. package/esm2022/base-form/base-form.property.mjs +1 -1
  117. package/esm2022/border/border.component.mjs +13 -11
  118. package/esm2022/border/border.module.mjs +3 -3
  119. package/esm2022/button/button.component.mjs +19 -23
  120. package/esm2022/button/button.module.mjs +4 -9
  121. package/esm2022/button/button.property.mjs +1 -1
  122. package/esm2022/button/buttons.component.mjs +15 -14
  123. package/esm2022/calendar/calendar.component.mjs +35 -25
  124. package/esm2022/calendar/calendar.module.mjs +4 -14
  125. package/esm2022/card/card.component.mjs +14 -16
  126. package/esm2022/card/card.module.mjs +4 -9
  127. package/esm2022/carousel/carousel-panel.component.mjs +37 -33
  128. package/esm2022/carousel/carousel.component.mjs +19 -22
  129. package/esm2022/carousel/carousel.module.mjs +5 -10
  130. package/esm2022/carousel/carousel.property.mjs +1 -1
  131. package/esm2022/cascade/cascade-portal.component.mjs +19 -17
  132. package/esm2022/cascade/cascade.component.mjs +37 -30
  133. package/esm2022/cascade/cascade.module.mjs +5 -14
  134. package/esm2022/checkbox/checkbox.component.mjs +31 -23
  135. package/esm2022/checkbox/checkbox.module.mjs +4 -12
  136. package/esm2022/collapse/collapse-panel.component.mjs +19 -20
  137. package/esm2022/collapse/collapse.component.mjs +11 -14
  138. package/esm2022/collapse/collapse.module.mjs +4 -9
  139. package/esm2022/color/color.component.mjs +15 -16
  140. package/esm2022/color/color.module.mjs +4 -7
  141. package/esm2022/color-picker/color-picker-portal.component.mjs +53 -35
  142. package/esm2022/color-picker/color-picker.component.mjs +36 -35
  143. package/esm2022/color-picker/color-picker.module.mjs +5 -42
  144. package/esm2022/comment/comment-reply.component.mjs +18 -18
  145. package/esm2022/comment/comment.component.mjs +32 -24
  146. package/esm2022/comment/comment.module.mjs +4 -41
  147. package/esm2022/comment/comment.property.mjs +1 -1
  148. package/esm2022/container/aside.component.mjs +15 -12
  149. package/esm2022/container/container.component.mjs +14 -13
  150. package/esm2022/container/container.module.mjs +5 -35
  151. package/esm2022/container/footer.component.mjs +17 -20
  152. package/esm2022/container/header.component.mjs +17 -20
  153. package/esm2022/container/main.component.mjs +14 -11
  154. package/esm2022/core/config/config.service.mjs +8 -3
  155. package/esm2022/core/services/preloading-strategy.service.mjs +4 -3
  156. package/esm2022/crumb/crumb.component.mjs +15 -15
  157. package/esm2022/crumb/crumb.module.mjs +4 -9
  158. package/esm2022/date-picker/date-picker-portal.component.mjs +36 -27
  159. package/esm2022/date-picker/date-picker.component.mjs +51 -46
  160. package/esm2022/date-picker/date-picker.module.mjs +5 -106
  161. package/esm2022/date-picker/date-quarter.pipe.mjs +3 -3
  162. package/esm2022/date-picker/date-range-portal.component.mjs +22 -11
  163. package/esm2022/date-picker/date-range.component.mjs +53 -51
  164. package/esm2022/date-picker/picker-date.component.mjs +44 -38
  165. package/esm2022/date-picker/picker-month.component.mjs +30 -28
  166. package/esm2022/date-picker/picker-quarter.component.mjs +30 -30
  167. package/esm2022/date-picker/picker-year.component.mjs +25 -23
  168. package/esm2022/description/description-item.component.mjs +7 -9
  169. package/esm2022/description/description.component.mjs +13 -13
  170. package/esm2022/description/description.module.mjs +4 -8
  171. package/esm2022/dialog/dialog-container.component.mjs +8 -7
  172. package/esm2022/dialog/dialog-portal.component.mjs +27 -11
  173. package/esm2022/dialog/dialog-portal.directives.mjs +39 -39
  174. package/esm2022/dialog/dialog-ref.mjs +1 -1
  175. package/esm2022/dialog/dialog.component.mjs +40 -47
  176. package/esm2022/dialog/dialog.module.mjs +11 -69
  177. package/esm2022/dialog/dialog.service.mjs +15 -16
  178. package/esm2022/doc/doc.component.mjs +12 -9
  179. package/esm2022/doc/doc.module.mjs +4 -6
  180. package/esm2022/drag/drag.directive.mjs +10 -10
  181. package/esm2022/drag/drag.module.mjs +4 -6
  182. package/esm2022/drawer/drawer-container.component.mjs +8 -7
  183. package/esm2022/drawer/drawer-portal.component.mjs +12 -11
  184. package/esm2022/drawer/drawer-portal.directives.mjs +17 -16
  185. package/esm2022/drawer/drawer.component.mjs +23 -32
  186. package/esm2022/drawer/drawer.module.mjs +9 -25
  187. package/esm2022/drawer/drawer.service.mjs +14 -14
  188. package/esm2022/dropdown/dropdown-portal.component.mjs +7 -5
  189. package/esm2022/dropdown/dropdown.component.mjs +31 -24
  190. package/esm2022/dropdown/dropdown.module.mjs +5 -12
  191. package/esm2022/empty/empty.component.mjs +21 -17
  192. package/esm2022/empty/empty.module.mjs +4 -10
  193. package/esm2022/examples/examples.component.mjs +12 -9
  194. package/esm2022/examples/examples.module.mjs +4 -6
  195. package/esm2022/find/find.component.mjs +48 -29
  196. package/esm2022/find/find.module.mjs +4 -52
  197. package/esm2022/form/control.component.mjs +69 -39
  198. package/esm2022/form/form.component.mjs +27 -18
  199. package/esm2022/form/form.module.mjs +4 -69
  200. package/esm2022/highlight/highlight.component.mjs +26 -23
  201. package/esm2022/highlight/highlight.module.mjs +4 -8
  202. package/esm2022/i18n/i18n.directive.mjs +13 -10
  203. package/esm2022/i18n/i18n.module.mjs +3 -3
  204. package/esm2022/i18n/i18n.pipe.mjs +4 -3
  205. package/esm2022/i18n/i18n.service.mjs +7 -11
  206. package/esm2022/icon/icon.component.mjs +20 -21
  207. package/esm2022/icon/icon.module.mjs +4 -9
  208. package/esm2022/icon/icon.property.mjs +1 -1
  209. package/esm2022/icon/icon.service.mjs +35 -34
  210. package/esm2022/image/image-group.component.mjs +4 -3
  211. package/esm2022/image/image-preview.component.mjs +26 -31
  212. package/esm2022/image/image.component.mjs +30 -29
  213. package/esm2022/image/image.module.mjs +4 -13
  214. package/esm2022/inner/inner.component.mjs +14 -13
  215. package/esm2022/inner/inner.module.mjs +4 -7
  216. package/esm2022/input/input-group.component.mjs +12 -13
  217. package/esm2022/input/input.component.mjs +33 -34
  218. package/esm2022/input/input.module.mjs +4 -11
  219. package/esm2022/input-number/input-number.component.mjs +23 -26
  220. package/esm2022/input-number/input-number.module.mjs +4 -11
  221. package/esm2022/keyword/keyword.directive.mjs +13 -13
  222. package/esm2022/keyword/keyword.module.mjs +4 -7
  223. package/esm2022/keyword/keyword.property.mjs +3 -3
  224. package/esm2022/layout/col.component.mjs +14 -18
  225. package/esm2022/layout/layout.module.mjs +4 -7
  226. package/esm2022/layout/layout.property.mjs +1 -1
  227. package/esm2022/layout/row.component.mjs +12 -12
  228. package/esm2022/link/link.component.mjs +17 -18
  229. package/esm2022/link/link.module.mjs +4 -10
  230. package/esm2022/list/list-drop-group.directive.mjs +3 -2
  231. package/esm2022/list/list-option.component.mjs +16 -16
  232. package/esm2022/list/list.component.mjs +38 -32
  233. package/esm2022/list/list.module.mjs +4 -52
  234. package/esm2022/loading/loading.component.mjs +19 -21
  235. package/esm2022/loading/loading.module.mjs +4 -10
  236. package/esm2022/menu/menu-node.component.mjs +17 -17
  237. package/esm2022/menu/menu.component.mjs +21 -23
  238. package/esm2022/menu/menu.module.mjs +4 -11
  239. package/esm2022/message/message.component.mjs +10 -11
  240. package/esm2022/message/message.module.mjs +5 -12
  241. package/esm2022/message/message.service.mjs +12 -12
  242. package/esm2022/message-box/message-box.component.mjs +20 -8
  243. package/esm2022/message-box/message-box.module.mjs +5 -47
  244. package/esm2022/message-box/message-box.service.mjs +12 -11
  245. package/esm2022/notification/notification.component.mjs +10 -11
  246. package/esm2022/notification/notification.module.mjs +5 -12
  247. package/esm2022/notification/notification.service.mjs +14 -10
  248. package/esm2022/outlet/outlet.directive.mjs +9 -9
  249. package/esm2022/outlet/outlet.module.mjs +4 -6
  250. package/esm2022/page-header/page-header.component.mjs +19 -18
  251. package/esm2022/page-header/page-header.module.mjs +4 -8
  252. package/esm2022/pagination/pagination.component.mjs +39 -29
  253. package/esm2022/pagination/pagination.module.mjs +4 -13
  254. package/esm2022/pattern/pattern.component.mjs +12 -9
  255. package/esm2022/pattern/pattern.module.mjs +4 -6
  256. package/esm2022/popconfirm/popconfirm.component.mjs +24 -25
  257. package/esm2022/popconfirm/popconfirm.module.mjs +4 -11
  258. package/esm2022/popover/popover-portal.component.mjs +15 -14
  259. package/esm2022/popover/popover.directive.mjs +16 -18
  260. package/esm2022/popover/popover.module.mjs +5 -11
  261. package/esm2022/portal/portal.module.mjs +6 -9
  262. package/esm2022/portal/portal.service.mjs +12 -11
  263. package/esm2022/progress/progress.component.mjs +16 -18
  264. package/esm2022/progress/progress.module.mjs +4 -9
  265. package/esm2022/radio/radio.component.mjs +21 -21
  266. package/esm2022/radio/radio.module.mjs +4 -12
  267. package/esm2022/rate/rate.component.mjs +22 -21
  268. package/esm2022/rate/rate.module.mjs +4 -11
  269. package/esm2022/resizable/resizable.directive.mjs +56 -45
  270. package/esm2022/resizable/resizable.module.mjs +5 -7
  271. package/esm2022/resizable/resizable.property.mjs +3 -3
  272. package/esm2022/result/result.component.mjs +15 -18
  273. package/esm2022/result/result.module.mjs +4 -9
  274. package/esm2022/ripple/ripple.directive.mjs +11 -10
  275. package/esm2022/ripple/ripple.module.mjs +5 -8
  276. package/esm2022/select/select-portal.component.mjs +6 -4
  277. package/esm2022/select/select.component.mjs +52 -50
  278. package/esm2022/select/select.module.mjs +5 -46
  279. package/esm2022/skeleton/skeleton.component.mjs +14 -16
  280. package/esm2022/skeleton/skeleton.module.mjs +4 -8
  281. package/esm2022/slider/slider.component.mjs +38 -35
  282. package/esm2022/slider/slider.module.mjs +5 -11
  283. package/esm2022/slider-select/slider-select.component.mjs +45 -37
  284. package/esm2022/slider-select/slider-select.module.mjs +4 -36
  285. package/esm2022/statistic/countdown.component.mjs +14 -15
  286. package/esm2022/statistic/statistic.component.mjs +13 -13
  287. package/esm2022/statistic/statistic.module.mjs +4 -9
  288. package/esm2022/steps/steps.component.mjs +17 -18
  289. package/esm2022/steps/steps.module.mjs +4 -9
  290. package/esm2022/switch/switch.component.mjs +18 -17
  291. package/esm2022/switch/switch.module.mjs +4 -11
  292. package/esm2022/table/table-body.component.mjs +19 -9
  293. package/esm2022/table/table-foot.component.mjs +12 -15
  294. package/esm2022/table/table-head.component.mjs +33 -27
  295. package/esm2022/table/table.component.mjs +20 -10
  296. package/esm2022/table/table.module.mjs +4 -69
  297. package/esm2022/tabs/tab-content.component.mjs +12 -9
  298. package/esm2022/tabs/tab-link.directive.mjs +7 -5
  299. package/esm2022/tabs/tab.component.mjs +11 -10
  300. package/esm2022/tabs/tabs.component.mjs +28 -26
  301. package/esm2022/tabs/tabs.module.mjs +5 -26
  302. package/esm2022/tag/tag.component.mjs +16 -19
  303. package/esm2022/tag/tag.module.mjs +4 -9
  304. package/esm2022/text-retract/text-retract.component.mjs +17 -18
  305. package/esm2022/text-retract/text-retract.module.mjs +4 -10
  306. package/esm2022/textarea/textarea.component.mjs +24 -24
  307. package/esm2022/textarea/textarea.module.mjs +4 -10
  308. package/esm2022/theme/theme.component.mjs +44 -30
  309. package/esm2022/theme/theme.module.mjs +4 -40
  310. package/esm2022/time-ago/time-ago.module.mjs +4 -6
  311. package/esm2022/time-ago/time-ago.pipe.mjs +20 -20
  312. package/esm2022/time-picker/time-picker-frame.component.mjs +31 -29
  313. package/esm2022/time-picker/time-picker-portal.component.mjs +19 -19
  314. package/esm2022/time-picker/time-picker.component.mjs +39 -40
  315. package/esm2022/time-picker/time-picker.module.mjs +5 -46
  316. package/esm2022/time-range/time-range.module.mjs +4 -4
  317. package/esm2022/time-range/time-range.pipe.mjs +3 -3
  318. package/esm2022/timeline/timeline.component.mjs +17 -19
  319. package/esm2022/timeline/timeline.module.mjs +4 -11
  320. package/esm2022/tooltip/tooltip-portal.component.mjs +15 -14
  321. package/esm2022/tooltip/tooltip.directive.mjs +15 -18
  322. package/esm2022/tooltip/tooltip.module.mjs +5 -11
  323. package/esm2022/transfer/transfer.component.mjs +68 -54
  324. package/esm2022/transfer/transfer.module.mjs +4 -57
  325. package/esm2022/tree/tree-node.component.mjs +36 -29
  326. package/esm2022/tree/tree.component.mjs +10 -12
  327. package/esm2022/tree/tree.module.mjs +4 -41
  328. package/esm2022/tree/tree.service.mjs +4 -3
  329. package/esm2022/tree-file/tree-file.component.mjs +34 -30
  330. package/esm2022/tree-file/tree-file.module.mjs +4 -13
  331. package/esm2022/tree-select/tree-select-portal.component.mjs +25 -25
  332. package/esm2022/tree-select/tree-select.component.mjs +53 -51
  333. package/esm2022/tree-select/tree-select.module.mjs +6 -54
  334. package/esm2022/typography/typography.component.mjs +11 -11
  335. package/esm2022/typography/typography.module.mjs +4 -7
  336. package/esm2022/upload/upload-portal.component.mjs +11 -12
  337. package/esm2022/upload/upload.component.mjs +42 -39
  338. package/esm2022/upload/upload.module.mjs +4 -53
  339. package/examples/examples.component.d.ts +6 -6
  340. package/examples/examples.module.d.ts +1 -2
  341. package/fesm2022/ng-nest-ui-affix.mjs +12 -15
  342. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  343. package/fesm2022/ng-nest-ui-alert.mjs +26 -25
  344. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  345. package/fesm2022/ng-nest-ui-anchor.mjs +24 -26
  346. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  347. package/fesm2022/ng-nest-ui-api.mjs +15 -15
  348. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  349. package/fesm2022/ng-nest-ui-auto-complete.mjs +58 -50
  350. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  351. package/fesm2022/ng-nest-ui-avatar.mjs +23 -27
  352. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  353. package/fesm2022/ng-nest-ui-back-top.mjs +26 -33
  354. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  355. package/fesm2022/ng-nest-ui-badge.mjs +20 -26
  356. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  357. package/fesm2022/ng-nest-ui-base-form.mjs +11 -6
  358. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  359. package/fesm2022/ng-nest-ui-border.mjs +14 -12
  360. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  361. package/fesm2022/ng-nest-ui-button.mjs +30 -38
  362. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  363. package/fesm2022/ng-nest-ui-calendar.mjs +35 -33
  364. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  365. package/fesm2022/ng-nest-ui-card.mjs +15 -21
  366. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  367. package/fesm2022/ng-nest-ui-carousel.mjs +52 -54
  368. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  369. package/fesm2022/ng-nest-ui-cascade.mjs +54 -51
  370. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  371. package/fesm2022/ng-nest-ui-checkbox.mjs +32 -30
  372. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  373. package/fesm2022/ng-nest-ui-collapse.mjs +27 -36
  374. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  375. package/fesm2022/ng-nest-ui-color-picker.mjs +84 -98
  376. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  377. package/fesm2022/ng-nest-ui-color.mjs +16 -18
  378. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  379. package/fesm2022/ng-nest-ui-comment.mjs +43 -72
  380. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  381. package/fesm2022/ng-nest-ui-container.mjs +61 -94
  382. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  383. package/fesm2022/ng-nest-ui-core.mjs +10 -4
  384. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  385. package/fesm2022/ng-nest-ui-crumb.mjs +16 -20
  386. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  387. package/fesm2022/ng-nest-ui-date-picker.mjs +247 -293
  388. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  389. package/fesm2022/ng-nest-ui-description.mjs +19 -25
  390. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  391. package/fesm2022/ng-nest-ui-dialog.mjs +180 -223
  392. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  393. package/fesm2022/ng-nest-ui-doc.mjs +13 -12
  394. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  395. package/fesm2022/ng-nest-ui-drag.mjs +13 -14
  396. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  397. package/fesm2022/ng-nest-ui-drawer.mjs +114 -133
  398. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  399. package/fesm2022/ng-nest-ui-dropdown.mjs +39 -33
  400. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  401. package/fesm2022/ng-nest-ui-empty.mjs +21 -24
  402. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  403. package/fesm2022/ng-nest-ui-examples.mjs +13 -12
  404. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  405. package/fesm2022/ng-nest-ui-find.mjs +49 -76
  406. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  407. package/fesm2022/ng-nest-ui-form.mjs +88 -112
  408. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  409. package/fesm2022/ng-nest-ui-highlight.mjs +28 -27
  410. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  411. package/fesm2022/ng-nest-ui-i18n.mjs +21 -21
  412. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  413. package/fesm2022/ng-nest-ui-icon.mjs +55 -57
  414. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  415. package/fesm2022/ng-nest-ui-image.mjs +50 -61
  416. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  417. package/fesm2022/ng-nest-ui-inner.mjs +15 -17
  418. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  419. package/fesm2022/ng-nest-ui-input-number.mjs +25 -31
  420. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  421. package/fesm2022/ng-nest-ui-input.mjs +41 -49
  422. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  423. package/fesm2022/ng-nest-ui-keyword.mjs +17 -19
  424. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  425. package/fesm2022/ng-nest-ui-layout.mjs +25 -31
  426. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  427. package/fesm2022/ng-nest-ui-link.mjs +18 -24
  428. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  429. package/fesm2022/ng-nest-ui-list.mjs +51 -86
  430. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  431. package/fesm2022/ng-nest-ui-loading.mjs +20 -27
  432. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  433. package/fesm2022/ng-nest-ui-menu.mjs +33 -41
  434. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  435. package/fesm2022/ng-nest-ui-message-box.mjs +33 -58
  436. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  437. package/fesm2022/ng-nest-ui-message.mjs +22 -28
  438. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  439. package/fesm2022/ng-nest-ui-notification.mjs +24 -26
  440. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  441. package/fesm2022/ng-nest-ui-outlet.mjs +11 -13
  442. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  443. package/fesm2022/ng-nest-ui-page-header.mjs +20 -23
  444. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  445. package/fesm2022/ng-nest-ui-pagination.mjs +39 -37
  446. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  447. package/fesm2022/ng-nest-ui-pattern.mjs +13 -12
  448. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  449. package/fesm2022/ng-nest-ui-popconfirm.mjs +25 -33
  450. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  451. package/fesm2022/ng-nest-ui-popover.mjs +31 -35
  452. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  453. package/fesm2022/ng-nest-ui-portal.mjs +25 -25
  454. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  455. package/fesm2022/ng-nest-ui-progress.mjs +16 -22
  456. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  457. package/fesm2022/ng-nest-ui-radio.mjs +22 -28
  458. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  459. package/fesm2022/ng-nest-ui-rate.mjs +23 -27
  460. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  461. package/fesm2022/ng-nest-ui-resizable.mjs +62 -52
  462. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  463. package/fesm2022/ng-nest-ui-result.mjs +16 -23
  464. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  465. package/fesm2022/ng-nest-ui-ripple.mjs +14 -15
  466. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  467. package/fesm2022/ng-nest-ui-select.mjs +59 -92
  468. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  469. package/fesm2022/ng-nest-ui-skeleton.mjs +15 -20
  470. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  471. package/fesm2022/ng-nest-ui-slider-select.mjs +46 -66
  472. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  473. package/fesm2022/ng-nest-ui-slider.mjs +40 -42
  474. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  475. package/fesm2022/ng-nest-ui-statistic.mjs +25 -30
  476. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  477. package/fesm2022/ng-nest-ui-steps.mjs +18 -23
  478. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  479. package/fesm2022/ng-nest-ui-switch.mjs +19 -23
  480. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  481. package/fesm2022/ng-nest-ui-table.mjs +86 -128
  482. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  483. package/fesm2022/ng-nest-ui-tabs.mjs +52 -63
  484. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  485. package/fesm2022/ng-nest-ui-tag.mjs +17 -24
  486. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  487. package/fesm2022/ng-nest-ui-text-retract.mjs +17 -23
  488. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  489. package/fesm2022/ng-nest-ui-textarea.mjs +25 -29
  490. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  491. package/fesm2022/ng-nest-ui-theme.mjs +45 -64
  492. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  493. package/fesm2022/ng-nest-ui-time-ago.mjs +21 -23
  494. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  495. package/fesm2022/ng-nest-ui-time-picker.mjs +82 -119
  496. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  497. package/fesm2022/ng-nest-ui-time-range.mjs +5 -5
  498. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  499. package/fesm2022/ng-nest-ui-timeline.mjs +18 -26
  500. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  501. package/fesm2022/ng-nest-ui-tooltip.mjs +30 -35
  502. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  503. package/fesm2022/ng-nest-ui-transfer.mjs +68 -104
  504. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  505. package/fesm2022/ng-nest-ui-tree-file.mjs +35 -39
  506. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  507. package/fesm2022/ng-nest-ui-tree-select.mjs +77 -119
  508. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  509. package/fesm2022/ng-nest-ui-tree.mjs +48 -76
  510. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  511. package/fesm2022/ng-nest-ui-typography.mjs +13 -15
  512. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  513. package/fesm2022/ng-nest-ui-upload.mjs +51 -95
  514. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  515. package/find/find.component.d.ts +6 -7
  516. package/find/find.module.d.ts +1 -13
  517. package/form/control.component.d.ts +6 -7
  518. package/form/form.component.d.ts +4 -6
  519. package/form/form.module.d.ts +1 -24
  520. package/highlight/highlight.component.d.ts +12 -10
  521. package/highlight/highlight.module.d.ts +1 -4
  522. package/i18n/i18n.directive.d.ts +6 -7
  523. package/i18n/i18n.module.d.ts +1 -1
  524. package/i18n/i18n.pipe.d.ts +1 -1
  525. package/i18n/i18n.service.d.ts +3 -2
  526. package/icon/icon.component.d.ts +7 -9
  527. package/icon/icon.module.d.ts +1 -3
  528. package/icon/icon.property.d.ts +1 -1
  529. package/icon/icon.service.d.ts +6 -7
  530. package/image/image-group.component.d.ts +1 -1
  531. package/image/image-preview.component.d.ts +5 -10
  532. package/image/image.component.d.ts +9 -14
  533. package/image/image.module.d.ts +3 -11
  534. package/inner/inner.component.d.ts +2 -3
  535. package/inner/inner.module.d.ts +1 -3
  536. package/input/input-group.component.d.ts +3 -6
  537. package/input/input.component.d.ts +8 -10
  538. package/input/input.module.d.ts +2 -8
  539. package/input-number/input-number.component.d.ts +5 -6
  540. package/input-number/input-number.module.d.ts +1 -7
  541. package/keyword/keyword.directive.d.ts +3 -4
  542. package/keyword/keyword.module.d.ts +1 -3
  543. package/keyword/keyword.property.d.ts +1 -1
  544. package/layout/col.component.d.ts +5 -7
  545. package/layout/layout.module.d.ts +1 -3
  546. package/layout/row.component.d.ts +3 -4
  547. package/link/link.component.d.ts +5 -7
  548. package/link/link.module.d.ts +1 -6
  549. package/list/list-drop-group.directive.d.ts +1 -1
  550. package/list/list-option.component.d.ts +6 -7
  551. package/list/list.component.d.ts +9 -12
  552. package/list/list.module.d.ts +1 -13
  553. package/loading/loading.component.d.ts +7 -10
  554. package/loading/loading.module.d.ts +1 -6
  555. package/menu/menu-node.component.d.ts +6 -7
  556. package/menu/menu.component.d.ts +4 -7
  557. package/menu/menu.module.d.ts +1 -7
  558. package/message/message.component.d.ts +3 -6
  559. package/message/message.module.d.ts +1 -5
  560. package/message/message.service.d.ts +4 -5
  561. package/message-box/message-box.component.d.ts +1 -1
  562. package/message-box/message-box.module.d.ts +1 -11
  563. package/message-box/message-box.service.d.ts +2 -5
  564. package/notification/notification.component.d.ts +3 -6
  565. package/notification/notification.module.d.ts +1 -5
  566. package/notification/notification.service.d.ts +1 -3
  567. package/outlet/outlet.directive.d.ts +4 -5
  568. package/outlet/outlet.module.d.ts +1 -2
  569. package/package.json +72 -72
  570. package/page-header/page-header.component.d.ts +5 -7
  571. package/page-header/page-header.module.d.ts +1 -4
  572. package/pagination/pagination.component.d.ts +8 -10
  573. package/pagination/pagination.module.d.ts +1 -9
  574. package/pattern/pattern.component.d.ts +4 -4
  575. package/pattern/pattern.module.d.ts +1 -2
  576. package/popconfirm/popconfirm.component.d.ts +6 -9
  577. package/popconfirm/popconfirm.module.d.ts +1 -7
  578. package/popover/popover-portal.component.d.ts +4 -5
  579. package/popover/popover.directive.d.ts +9 -10
  580. package/popover/popover.module.d.ts +1 -6
  581. package/portal/portal.module.d.ts +1 -3
  582. package/portal/portal.service.d.ts +3 -4
  583. package/progress/progress.component.d.ts +3 -7
  584. package/progress/progress.module.d.ts +1 -5
  585. package/radio/radio.component.d.ts +6 -8
  586. package/radio/radio.module.d.ts +1 -8
  587. package/rate/rate.component.d.ts +6 -8
  588. package/rate/rate.module.d.ts +1 -7
  589. package/resizable/resizable.directive.d.ts +5 -7
  590. package/resizable/resizable.module.d.ts +1 -2
  591. package/resizable/resizable.property.d.ts +1 -1
  592. package/result/result.component.d.ts +3 -7
  593. package/result/result.module.d.ts +1 -5
  594. package/ripple/ripple.directive.d.ts +4 -5
  595. package/ripple/ripple.module.d.ts +1 -3
  596. package/select/select-portal.component.d.ts +1 -1
  597. package/select/select.component.d.ts +14 -15
  598. package/select/select.module.d.ts +1 -12
  599. package/skeleton/skeleton.component.d.ts +3 -6
  600. package/skeleton/skeleton.module.d.ts +1 -4
  601. package/slider/slider.component.d.ts +5 -7
  602. package/slider/slider.module.d.ts +1 -7
  603. package/slider-select/slider-select.component.d.ts +6 -7
  604. package/slider-select/slider-select.module.d.ts +1 -9
  605. package/statistic/countdown.component.d.ts +6 -7
  606. package/statistic/statistic.component.d.ts +2 -3
  607. package/statistic/statistic.module.d.ts +1 -5
  608. package/steps/steps.component.d.ts +4 -7
  609. package/steps/steps.module.d.ts +1 -5
  610. package/style/core/base.scss +0 -7
  611. package/style/core/index.css +1 -8
  612. package/style/core/index.css.map +1 -1
  613. package/style/params/colors.scss +1 -1
  614. package/switch/switch.component.d.ts +6 -7
  615. package/switch/switch.module.d.ts +1 -7
  616. package/table/table-body.component.d.ts +1 -1
  617. package/table/table-foot.component.d.ts +3 -6
  618. package/table/table-head.component.d.ts +5 -7
  619. package/table/table.component.d.ts +1 -1
  620. package/table/table.module.d.ts +4 -17
  621. package/tabs/tab-content.component.d.ts +6 -6
  622. package/tabs/tab-link.directive.d.ts +2 -2
  623. package/tabs/tab.component.d.ts +2 -3
  624. package/tabs/tabs.component.d.ts +8 -9
  625. package/tabs/tabs.module.d.ts +3 -9
  626. package/tag/tag.component.d.ts +4 -8
  627. package/tag/tag.module.d.ts +1 -5
  628. package/text-retract/text-retract.component.d.ts +6 -10
  629. package/text-retract/text-retract.module.d.ts +1 -6
  630. package/textarea/textarea.component.d.ts +5 -7
  631. package/textarea/textarea.module.d.ts +1 -6
  632. package/theme/theme.component.d.ts +8 -9
  633. package/theme/theme.module.d.ts +1 -10
  634. package/time-ago/time-ago.module.d.ts +1 -1
  635. package/time-ago/time-ago.pipe.d.ts +6 -9
  636. package/time-picker/time-picker-frame.component.d.ts +5 -6
  637. package/time-picker/time-picker-portal.component.d.ts +5 -7
  638. package/time-picker/time-picker.component.d.ts +14 -16
  639. package/time-picker/time-picker.module.d.ts +2 -13
  640. package/time-range/time-range.module.d.ts +1 -1
  641. package/time-range/time-range.pipe.d.ts +1 -1
  642. package/timeline/timeline.component.d.ts +5 -8
  643. package/timeline/timeline.module.d.ts +1 -7
  644. package/tooltip/tooltip-portal.component.d.ts +4 -5
  645. package/tooltip/tooltip.directive.d.ts +8 -9
  646. package/tooltip/tooltip.module.d.ts +1 -6
  647. package/transfer/transfer.component.d.ts +6 -9
  648. package/transfer/transfer.module.d.ts +1 -15
  649. package/tree/tree-node.component.d.ts +6 -10
  650. package/tree/tree.component.d.ts +1 -1
  651. package/tree/tree.module.d.ts +1 -11
  652. package/tree-file/tree-file.component.d.ts +5 -10
  653. package/tree-file/tree-file.module.d.ts +1 -9
  654. package/tree-select/tree-select-portal.component.d.ts +5 -7
  655. package/tree-select/tree-select.component.d.ts +14 -15
  656. package/tree-select/tree-select.module.d.ts +1 -14
  657. package/typography/typography.component.d.ts +3 -4
  658. package/typography/typography.module.d.ts +1 -3
  659. package/upload/upload-portal.component.d.ts +5 -7
  660. package/upload/upload.component.d.ts +12 -15
  661. package/upload/upload.module.d.ts +1 -14
@@ -1,17 +1,17 @@
1
- import { Injectable, TemplateRef, Injector } from '@angular/core';
1
+ import { Injectable, TemplateRef, Injector, RendererFactory2, inject } from '@angular/core';
2
+ import { Overlay } from '@angular/cdk/overlay';
2
3
  import { TemplatePortal, ComponentPortal } from '@angular/cdk/portal';
3
4
  import { XPortalPlacement } from './portal.property';
4
5
  import { XComputed } from '@ng-nest/ui/core';
5
6
  import * as i0 from "@angular/core";
6
- import * as i1 from "@angular/cdk/overlay";
7
7
  /**
8
8
  * 动态创建视图服务
9
9
  */
10
10
  export class XPortalService {
11
- constructor(overlay, injector, rendererFactory) {
12
- this.overlay = overlay;
13
- this.injector = injector;
14
- this.rendererFactory = rendererFactory;
11
+ constructor() {
12
+ this.overlay = inject(Overlay);
13
+ this.injector = inject(Injector);
14
+ this.rendererFactory = inject(RendererFactory2);
15
15
  this.renderer = this.rendererFactory.createRenderer(null, null);
16
16
  }
17
17
  attach(option) {
@@ -180,10 +180,11 @@ export class XPortalService {
180
180
  placement.forEach((place) => result.push(XPortalPlacement[place]));
181
181
  return result;
182
182
  }
183
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPortalService, deps: [{ token: i1.Overlay }, { token: i0.Injector }, { token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
184
- /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPortalService }); }
183
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPortalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
184
+ /** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPortalService, providedIn: 'root' }); }
185
185
  }
186
186
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPortalService, decorators: [{
187
- type: Injectable
188
- }], ctorParameters: () => [{ type: i1.Overlay }, { type: i0.Injector }, { type: i0.RendererFactory2 }] });
189
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wb3J0YWwvcG9ydGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQU1ULE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFzQyxnQkFBZ0IsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ3pGLE9BQU8sRUFBaUMsU0FBUyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUU1RTs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW1CLE9BQWdCLEVBQVMsUUFBa0IsRUFBUyxlQUFpQztRQUFyRixZQUFPLEdBQVAsT0FBTyxDQUFTO1FBQVMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUFTLG9CQUFlLEdBQWYsZUFBZSxDQUFrQjtRQUN0RyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsTUFBTSxDQUFJLE1BQXVCO1FBQy9CLElBQUksTUFBTSxHQUF5QixFQUFFLENBQUM7UUFDdEMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksTUFBTSxDQUFDLE9BQU8sWUFBWSxXQUFXLElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFFO1lBQ3BFLE1BQU0sQ0FBQyxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxNQUFN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Q0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RixPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO2lJQXpMVSxjQUFjO3FJQUFkLGNBQWM7OzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIEluamVjdGFibGUsXHJcbiAgVGVtcGxhdGVSZWYsXHJcbiAgSW5qZWN0b3IsXHJcbiAgRWxlbWVudFJlZixcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFN0YXRpY1Byb3ZpZGVyLFxyXG4gIFJlbmRlcmVyRmFjdG9yeTIsXHJcbiAgUmVuZGVyZXIyXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3ksIENvbm5lY3RlZFBvc2l0aW9uLCBDb21wb25lbnRUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBUZW1wbGF0ZVBvcnRhbCwgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IFhQb3J0YWxQcm9wZXJ0eSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxQbGFjZW1lbnQgfSBmcm9tICcuL3BvcnRhbC5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhQbGFjZW1lbnQsIFhQb3NpdGlvbiwgWFBsYWNlLCBYQ29tcHV0ZWQgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuXHJcbi8qKlxyXG4gKiDliqjmgIHliJvlu7rop4blm77mnI3liqFcclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFhQb3J0YWxTZXJ2aWNlIHtcclxuICByZW5kZXJlciE6IFJlbmRlcmVyMjtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3ZlcmxheTogT3ZlcmxheSwgcHVibGljIGluamVjdG9yOiBJbmplY3RvciwgcHVibGljIHJlbmRlcmVyRmFjdG9yeTogUmVuZGVyZXJGYWN0b3J5Mikge1xyXG4gICAgdGhpcy5yZW5kZXJlciA9IHRoaXMucmVuZGVyZXJGYWN0b3J5LmNyZWF0ZVJlbmRlcmVyKG51bGwsIG51bGwpO1xyXG4gIH1cclxuXHJcbiAgYXR0YWNoPFQ+KG9wdGlvbjogWFBvcnRhbFByb3BlcnR5KTogWFBvcnRhbE92ZXJsYXlSZWY8VD4ge1xyXG4gICAgbGV0IHBvcnRhbDogWFBvcnRhbE92ZXJsYXlSZWY8VD4gPSB7fTtcclxuICAgIGlmICh0eXBlb2Ygb3B0aW9uLmNvbnRlbnQgPT09ICd1bmRlZmluZWQnKSByZXR1cm4gcG9ydGFsO1xyXG4gICAgcG9ydGFsLm92ZXJsYXlSZWYgPSB0aGlzLmNyZWF0ZU92ZXJsYXlSZWYob3B0aW9uKTtcclxuICAgIGlmIChvcHRpb24uY29udGVudCBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmICYmIG9wdGlvbi52aWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICAgIHBvcnRhbC50ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChvcHRpb24uY29udGVudCwgb3B0aW9uLnZpZXdDb250YWluZXJSZWYsIG9wdGlvbi5jb250ZXh0KTtcclxuICAgICAgcG9ydGFsLmVtYmVkZGVkVmlld1JlZiA9IHBvcnRhbC5vdmVybGF5UmVmLmF0dGFjaChwb3J0YWwudGVtcGxhdGVQb3J0YWwpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcG9ydGFsLmNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwoXHJcbiAgICAgICAgb3B0aW9uLmNvbnRlbnQgYXMgQ29tcG9uZW50VHlwZTxhbnk+LFxyXG4gICAgICAgIG9wdGlvbi52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICAgIG9wdGlvbi5pbmplY3RvcixcclxuICAgICAgICBvcHRpb24uY29tcG9uZW50RmFjdG9yeVJlc29sdmVyXHJcbiAgICAgICk7XHJcbiAgICAgIHBvcnRhbC5jb21wb25lbnRSZWYgPSBwb3J0YWwub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsLmNvbXBvbmVudFBvcnRhbCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHBvcnRhbDtcclxuICB9XHJcblxyXG4gIGNyZWF0ZUluamVjdG9yKHByb3ZpZGVyczogU3RhdGljUHJvdmlkZXJbXSwgdmlld0NvbnRhaW5lclJlZj86IFZpZXdDb250YWluZXJSZWYpIHtcclxuICAgIGNvbnN0IGluamVjdG9yID0gdmlld0NvbnRhaW5lclJlZiAmJiB2aWV3Q29udGFpbmVyUmVmLmluamVjdG9yO1xyXG4gICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7IHBhcmVudDogaW5qZWN0b3IgfHwgdGhpcy5pbmplY3RvciwgcHJvdmlkZXJzIH0pO1xyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2VtZW50KHBhcmFtPzogeyBlbGVtZW50UmVmPzogRWxlbWVudFJlZjsgcGxhY2VtZW50PzogWFBsYWNlW10gfCBYUGxhY2VtZW50W107IHRyYW5zZm9ybU9yaWdpbk9uPzogc3RyaW5nIH0pOiBQb3NpdGlvblN0cmF0ZWd5IHtcclxuICAgIGlmICghcGFyYW0pIHtcclxuICAgICAgcmV0dXJuIHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLmNlbnRlckhvcml6b250YWxseSgpLmNlbnRlclZlcnRpY2FsbHkoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy5vdmVybGF5XHJcbiAgICAgICAgICAucG9zaXRpb24oKVxyXG4gICAgICAgICAgLmZsZXhpYmxlQ29ubmVjdGVkVG8ocGFyYW0uZWxlbWVudFJlZiEpXHJcbiAgICAgICAgICAvLyAud2l0aExvY2tlZFBvc2l0aW9uKHRydWUpXHJcbiAgICAgICAgICAud2l0aEZsZXhpYmxlRGltZW5zaW9ucyhmYWxzZSlcclxuICAgICAgICAgIC53aXRoUHVzaChmYWxzZSlcclxuICAgICAgICAgIC53aXRoUG9zaXRpb25zKHRoaXMuc2V0Q29ubmVjdGVkUG9zaXRpb24oLi4ucGFyYW0ucGxhY2VtZW50ISkpXHJcbiAgICAgICAgICAud2l0aFRyYW5zZm9ybU9yaWdpbk9uKHBhcmFtLnRyYW5zZm9ybU9yaWdpbk9uISlcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKHBvc2l0aW9uPzogWFBvc2l0aW9uLCB3aWR0aD86IHN0cmluZywgaGVpZ2h0Pzogc3RyaW5nKTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICBsZXQgcmVzdWx0ID0gdGhpcy5vdmVybGF5LnBvc2l0aW9uKCkuZ2xvYmFsKCkud2lkdGgod2lkdGgpLmhlaWdodChoZWlnaHQpO1xyXG4gICAgc3dpdGNoIChwb3NpdGlvbikge1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmxlZnQoKTtcclxuICAgICAgY2FzZSAncmlnaHQnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQucmlnaHQoKTtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvcCgpO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuYm90dG9tKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZShwbGFjZT86IFhQbGFjZSwgLi4ub2Zmc2V0OiBzdHJpbmdbXSk6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpO1xyXG4gICAgbGV0IFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdID0gdGhpcy5nZXRPZmZzZXQob2Zmc2V0KTtcclxuICAgIHN3aXRjaCAocGxhY2UpIHtcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LnRvcCh0b3ApLmxlZnQobGVmdCk7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5jZW50ZXJIb3Jpem9udGFsbHkoKS50b3AodG9wKTtcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b3AodG9wKS5yaWdodChyaWdodCk7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuY2VudGVyVmVydGljYWxseSgpLmxlZnQobGVmdCk7XHJcbiAgICAgIGNhc2UgJ2NlbnRlcic6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5jZW50ZXJWZXJ0aWNhbGx5KCkuY2VudGVySG9yaXpvbnRhbGx5KCk7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmNlbnRlclZlcnRpY2FsbHkoKS5yaWdodChyaWdodCk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5ib3R0b20oYm90dG9tKS5sZWZ0KGxlZnQpO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuY2VudGVySG9yaXpvbnRhbGx5KCkuYm90dG9tKGJvdHRvbSk7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuYm90dG9tKGJvdHRvbSkucmlnaHQocmlnaHQpO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuY2VudGVyVmVydGljYWxseSgpLmNlbnRlckhvcml6b250YWxseSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UmVzaXphYmxlKGVsZTogSFRNTEVsZW1lbnQsIHBsYWNlPzogWFBsYWNlKSB7XHJcbiAgICBjb25zdCB7IGNsaWVudFdpZHRoLCBjbGllbnRIZWlnaHQgfSA9IGVsZTtcclxuICAgIGNvbnN0IGNvbXB1dGVkU3R5bGUgPSBYQ29tcHV0ZWQoZWxlKTtcclxuICAgIGNvbnN0IG1hcmdpblJpZ2h0ID0gcGFyc2VGbG9hdChjb21wdXRlZFN0eWxlLm1hcmdpblJpZ2h0KTtcclxuICAgIGNvbnN0IG1hcmdpbkJvdHRvbSA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5Cb3R0b20pO1xyXG4gICAgbGV0IG1hcmdpbkxlZnQgPSBudWxsO1xyXG4gICAgbGV0IG1hcmdpblRvcCA9IG51bGw7XHJcbiAgICBzd2l0Y2ggKHBsYWNlKSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgbWFyZ2luTGVmdCA9IGBjYWxjKDUwdncgLSAke2NsaWVudFdpZHRoIC8gMn1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoMTAwdncgLSAke2NsaWVudFdpZHRoICsgbWFyZ2luUmlnaHR9cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoNTB2aCAtICR7Y2xpZW50SGVpZ2h0IC8gMn1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgIG1hcmdpbkxlZnQgPSBgY2FsYyg1MHZ3IC0gJHtjbGllbnRXaWR0aCAvIDJ9cHgpYDtcclxuICAgICAgICBtYXJnaW5Ub3AgPSBgY2FsYyg1MHZoIC0gJHtjbGllbnRIZWlnaHQgLyAyfXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoMTAwdncgLSAke2NsaWVudFdpZHRoICsgbWFyZ2luUmlnaHR9cHgpYDtcclxuICAgICAgICBtYXJnaW5Ub3AgPSBgY2FsYyg1MHZoIC0gJHtjbGllbnRIZWlnaHQgLyAyfXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1zdGFydCc6XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoMTAwdmggLSAke2NsaWVudEhlaWdodCArIG1hcmdpbkJvdHRvbX1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIG1hcmdpbkxlZnQgPSBgY2FsYyg1MHZ3IC0gJHtjbGllbnRXaWR0aCAvIDJ9cHgpYDtcclxuICAgICAgICBtYXJnaW5Ub3AgPSBgY2FsYygxMDB2aCAtICR7Y2xpZW50SGVpZ2h0ICsgbWFyZ2luQm90dG9tfXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2JvdHRvbS1lbmQnOlxyXG4gICAgICAgIG1hcmdpbkxlZnQgPSBgY2FsYygxMDB2dyAtICR7Y2xpZW50V2lkdGggKyBtYXJnaW5SaWdodH1weClgO1xyXG4gICAgICAgIG1hcmdpblRvcCA9IGBjYWxjKDEwMHZoIC0gJHtjbGllbnRIZWlnaHQgKyBtYXJnaW5Cb3R0b219cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoNTB2dyAtICR7Y2xpZW50V2lkdGggLyAyfXB4KWA7XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoMTAwdmggLSAke2NsaWVudEhlaWdodCAvIDJ9cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICAgIG1hcmdpbkxlZnQgJiYgdGhpcy5yZW5kZXJlci5zZXRTdHlsZShlbGUsICdtYXJnaW4tbGVmdCcsIG1hcmdpbkxlZnQpO1xyXG4gICAgbWFyZ2luVG9wICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlLCAnbWFyZ2luLXRvcCcsIG1hcmdpblRvcCk7XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbWFyZ2luTGVmdDogbWFyZ2luTGVmdCB8fCBjb21wdXRlZFN0eWxlLm1hcmdpbkxlZnQsXHJcbiAgICAgIG1hcmdpblRvcDogbWFyZ2luVG9wIHx8IGNvbXB1dGVkU3R5bGUubWFyZ2luVG9wLFxyXG4gICAgICBtYXJnaW5Cb3R0b206IGNvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tLFxyXG4gICAgICBtYXJnaW5SaWdodDogY29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldENvbnRhaW5lclN0eWxlKHBsYWNlPzogWFBsYWNlLCAuLi5vZmZzZXQ6IHN0cmluZ1tdKSB7XHJcbiAgICBsZXQgW3RvcCwgcmlnaHQsIGJvdHRvbSwgbGVmdF0gPSB0aGlzLmdldE9mZnNldChvZmZzZXQpO1xyXG4gICAgc3dpdGNoIChwbGFjZSkge1xyXG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiB7IHRvcCwgbGVmdCB9O1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHJldHVybiB7IHRvcCB9O1xyXG4gICAgICBjYXNlICd0b3AtZW5kJzpcclxuICAgICAgICByZXR1cm4geyB0b3AsIHJpZ2h0IH07XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIHJldHVybiB7IGxlZnQgfTtcclxuICAgICAgY2FzZSAnY2VudGVyJzpcclxuICAgICAgICByZXR1cm4ge307XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICByZXR1cm4geyByaWdodCB9O1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiB7IGJvdHRvbSwgbGVmdCB9O1xyXG4gICAgICBjYXNlICdib3R0b20nOlxyXG4gICAgICAgIHJldHVybiB7IGJvdHRvbSB9O1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICByZXR1cm4geyBib3R0b20sIHJpZ2h0IH07XHJcbiAgICB9XHJcbiAgICByZXR1cm4ge307XHJcbiAgfVxyXG5cclxuICBnZXRPZmZzZXQob2Zmc2V0OiBzdHJpbmdbXSkge1xyXG4gICAgaWYgKG9mZnNldC5sZW5ndGggPT09IDApIG9mZnNldCA9IEFycmF5LmZyb20oeyBsZW5ndGg6IDQgfSkubWFwKCgpID0+IGAwYCk7XHJcbiAgICBlbHNlIGlmIChvZmZzZXQubGVuZ3RoIDwgNCkge1xyXG4gICAgICBBcnJheS5mcm9tKHsgbGVuZ3RoOiA0IC0gb2Zmc2V0Lmxlbmd0aCB9KS5tYXAoKCkgPT4gKG9mZnNldCA9IFsuLi5vZmZzZXQsIG9mZnNldFtvZmZzZXQubGVuZ3RoIC0gMV1dKSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gb2Zmc2V0O1xyXG4gIH1cclxuXHJcbiAgY3JlYXRlT3ZlcmxheVJlZihvcHRpb246IFhQb3J0YWxQcm9wZXJ0eSk6IE92ZXJsYXlSZWYge1xyXG4gICAgcmV0dXJuIHRoaXMub3ZlcmxheS5jcmVhdGUob3B0aW9uLm92ZXJsYXlDb25maWcpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q29ubmVjdGVkUG9zaXRpb24oLi4ucGxhY2VtZW50OiBYUGxhY2VbXSB8IFhQbGFjZW1lbnRbXSk6IENvbm5lY3RlZFBvc2l0aW9uW10ge1xyXG4gICAgbGV0IHJlc3VsdDogQ29ubmVjdGVkUG9zaXRpb25bXSA9IFtdO1xyXG4gICAgcGxhY2VtZW50LmZvckVhY2goKHBsYWNlOiBYUGxhY2UgfCBYUGxhY2VtZW50KSA9PiByZXN1bHQucHVzaChYUG9ydGFsUGxhY2VtZW50W3BsYWNlXSkpO1xyXG4gICAgcmV0dXJuIHJlc3VsdDtcclxuICB9XHJcbn1cclxuIl19
187
+ type: Injectable,
188
+ args: [{ providedIn: 'root' }]
189
+ }] });
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9wb3J0YWwvcG9ydGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFVBQVUsRUFDVixXQUFXLEVBQ1gsUUFBUSxFQUlSLGdCQUFnQixFQUNoQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE9BQU8sRUFBa0UsTUFBTSxzQkFBc0IsQ0FBQztBQUMvRyxPQUFPLEVBQUUsY0FBYyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3RFLE9BQU8sRUFBc0MsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN6RixPQUFPLEVBQWlDLFNBQVMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOztBQUU1RTs7R0FFRztBQUVILE1BQU0sT0FBTyxjQUFjO0lBRDNCO1FBRUUsWUFBTyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUMxQixhQUFRLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ3BCLG9CQUFlLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkQsYUFBUSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztLQTBMNUQ7SUF4TEMsTUFBTSxDQUFJLE1BQXVCO1FBQy9CLElBQUksTUFBTSxHQUF5QixFQUFFLENBQUM7UUFDdEMsSUFBSSxPQUFPLE1BQU0sQ0FBQyxPQUFPLEtBQUssV0FBVztZQUFFLE9BQU8sTUFBTSxDQUFDO1FBQ3pELE1BQU0sQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xELElBQUksTUFBTSxDQUFDLE9BQU8sWUFBWSxXQUFXLElBQUksTUFBTSxDQUFDLGdCQUFnQixFQUFF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LENBQUMsS0FBMEIsRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEYsT0FBTyxNQUFNLENBQUM7SUFDaEIsQ0FBQztpSUE3TFUsY0FBYztxSUFBZCxjQUFjLGNBREQsTUFBTTs7MkZBQ25CLGNBQWM7a0JBRDFCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBJbmplY3RhYmxlLFxyXG4gIFRlbXBsYXRlUmVmLFxyXG4gIEluamVjdG9yLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgVmlld0NvbnRhaW5lclJlZixcclxuICBTdGF0aWNQcm92aWRlcixcclxuICBSZW5kZXJlckZhY3RvcnkyLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5UmVmLCBQb3NpdGlvblN0cmF0ZWd5LCBDb25uZWN0ZWRQb3NpdGlvbiwgQ29tcG9uZW50VHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgVGVtcGxhdGVQb3J0YWwsIENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xyXG5pbXBvcnQgeyBYUG9ydGFsUHJvcGVydHksIFhQb3J0YWxPdmVybGF5UmVmLCBYUG9ydGFsUGxhY2VtZW50IH0gZnJvbSAnLi9wb3J0YWwucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYUGxhY2VtZW50LCBYUG9zaXRpb24sIFhQbGFjZSwgWENvbXB1dGVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcblxyXG4vKipcclxuICog5Yqo5oCB5Yib5bu66KeG5Zu+5pyN5YqhXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgWFBvcnRhbFNlcnZpY2Uge1xyXG4gIG92ZXJsYXkgPSBpbmplY3QoT3ZlcmxheSk7XHJcbiAgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xyXG4gIHByaXZhdGUgcmVuZGVyZXJGYWN0b3J5ID0gaW5qZWN0KFJlbmRlcmVyRmFjdG9yeTIpO1xyXG4gIHJlbmRlcmVyID0gdGhpcy5yZW5kZXJlckZhY3RvcnkuY3JlYXRlUmVuZGVyZXIobnVsbCwgbnVsbCk7XHJcblxyXG4gIGF0dGFjaDxUPihvcHRpb246IFhQb3J0YWxQcm9wZXJ0eSk6IFhQb3J0YWxPdmVybGF5UmVmPFQ+IHtcclxuICAgIGxldCBwb3J0YWw6IFhQb3J0YWxPdmVybGF5UmVmPFQ+ID0ge307XHJcbiAgICBpZiAodHlwZW9mIG9wdGlvbi5jb250ZW50ID09PSAndW5kZWZpbmVkJykgcmV0dXJuIHBvcnRhbDtcclxuICAgIHBvcnRhbC5vdmVybGF5UmVmID0gdGhpcy5jcmVhdGVPdmVybGF5UmVmKG9wdGlvbik7XHJcbiAgICBpZiAob3B0aW9uLmNvbnRlbnQgaW5zdGFuY2VvZiBUZW1wbGF0ZVJlZiAmJiBvcHRpb24udmlld0NvbnRhaW5lclJlZikge1xyXG4gICAgICBwb3J0YWwudGVtcGxhdGVQb3J0YWwgPSBuZXcgVGVtcGxhdGVQb3J0YWwob3B0aW9uLmNvbnRlbnQsIG9wdGlvbi52aWV3Q29udGFpbmVyUmVmLCBvcHRpb24uY29udGV4dCk7XHJcbiAgICAgIHBvcnRhbC5lbWJlZGRlZFZpZXdSZWYgPSBwb3J0YWwub3ZlcmxheVJlZi5hdHRhY2gocG9ydGFsLnRlbXBsYXRlUG9ydGFsKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHBvcnRhbC5jb21wb25lbnRQb3J0YWwgPSBuZXcgQ29tcG9uZW50UG9ydGFsKFxyXG4gICAgICAgIG9wdGlvbi5jb250ZW50IGFzIENvbXBvbmVudFR5cGU8YW55PixcclxuICAgICAgICBvcHRpb24udmlld0NvbnRhaW5lclJlZixcclxuICAgICAgICBvcHRpb24uaW5qZWN0b3IsXHJcbiAgICAgICAgb3B0aW9uLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxyXG4gICAgICApO1xyXG4gICAgICBwb3J0YWwuY29tcG9uZW50UmVmID0gcG9ydGFsLm92ZXJsYXlSZWYuYXR0YWNoKHBvcnRhbC5jb21wb25lbnRQb3J0YWwpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBwb3J0YWw7XHJcbiAgfVxyXG5cclxuICBjcmVhdGVJbmplY3Rvcihwcm92aWRlcnM6IFN0YXRpY1Byb3ZpZGVyW10sIHZpZXdDb250YWluZXJSZWY/OiBWaWV3Q29udGFpbmVyUmVmKSB7XHJcbiAgICBjb25zdCBpbmplY3RvciA9IHZpZXdDb250YWluZXJSZWYgJiYgdmlld0NvbnRhaW5lclJlZi5pbmplY3RvcjtcclxuICAgIHJldHVybiBJbmplY3Rvci5jcmVhdGUoeyBwYXJlbnQ6IGluamVjdG9yIHx8IHRoaXMuaW5qZWN0b3IsIHByb3ZpZGVycyB9KTtcclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudChwYXJhbT86IHtcclxuICAgIGVsZW1lbnRSZWY/OiBFbGVtZW50UmVmO1xyXG4gICAgcGxhY2VtZW50PzogWFBsYWNlW10gfCBYUGxhY2VtZW50W107XHJcbiAgICB0cmFuc2Zvcm1PcmlnaW5Pbj86IHN0cmluZztcclxuICB9KTogUG9zaXRpb25TdHJhdGVneSB7XHJcbiAgICBpZiAoIXBhcmFtKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKS5jZW50ZXJIb3Jpem9udGFsbHkoKS5jZW50ZXJWZXJ0aWNhbGx5KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMub3ZlcmxheVxyXG4gICAgICAgICAgLnBvc2l0aW9uKClcclxuICAgICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHBhcmFtLmVsZW1lbnRSZWYhKVxyXG4gICAgICAgICAgLy8gLndpdGhMb2NrZWRQb3NpdGlvbih0cnVlKVxyXG4gICAgICAgICAgLndpdGhGbGV4aWJsZURpbWVuc2lvbnMoZmFsc2UpXHJcbiAgICAgICAgICAud2l0aFB1c2goZmFsc2UpXHJcbiAgICAgICAgICAud2l0aFBvc2l0aW9ucyh0aGlzLnNldENvbm5lY3RlZFBvc2l0aW9uKC4uLnBhcmFtLnBsYWNlbWVudCEpKVxyXG4gICAgICAgICAgLndpdGhUcmFuc2Zvcm1PcmlnaW5PbihwYXJhbS50cmFuc2Zvcm1PcmlnaW5PbiEpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihwb3NpdGlvbj86IFhQb3NpdGlvbiwgd2lkdGg/OiBzdHJpbmcsIGhlaWdodD86IHN0cmluZyk6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG4gICAgbGV0IHJlc3VsdCA9IHRoaXMub3ZlcmxheS5wb3NpdGlvbigpLmdsb2JhbCgpLndpZHRoKHdpZHRoKS5oZWlnaHQoaGVpZ2h0KTtcclxuICAgIHN3aXRjaCAocG9zaXRpb24pIHtcclxuICAgICAgY2FzZSAnbGVmdCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5sZWZ0KCk7XHJcbiAgICAgIGNhc2UgJ3JpZ2h0JzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LnJpZ2h0KCk7XHJcbiAgICAgIGNhc2UgJ3RvcCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b3AoKTtcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmJvdHRvbSgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UGxhY2UocGxhY2U/OiBYUGxhY2UsIC4uLm9mZnNldDogc3RyaW5nW10pOiBQb3NpdGlvblN0cmF0ZWd5IHtcclxuICAgIGxldCByZXN1bHQgPSB0aGlzLm92ZXJsYXkucG9zaXRpb24oKS5nbG9iYWwoKTtcclxuICAgIGxldCBbdG9wLCByaWdodCwgYm90dG9tLCBsZWZ0XSA9IHRoaXMuZ2V0T2Zmc2V0KG9mZnNldCk7XHJcbiAgICBzd2l0Y2ggKHBsYWNlKSB7XHJcbiAgICAgIGNhc2UgJ3RvcC1zdGFydCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC50b3AodG9wKS5sZWZ0KGxlZnQpO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuY2VudGVySG9yaXpvbnRhbGx5KCkudG9wKHRvcCk7XHJcbiAgICAgIGNhc2UgJ3RvcC1lbmQnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQudG9wKHRvcCkucmlnaHQocmlnaHQpO1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmNlbnRlclZlcnRpY2FsbHkoKS5sZWZ0KGxlZnQpO1xyXG4gICAgICBjYXNlICdjZW50ZXInOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuY2VudGVyVmVydGljYWxseSgpLmNlbnRlckhvcml6b250YWxseSgpO1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgcmV0dXJuIHJlc3VsdC5jZW50ZXJWZXJ0aWNhbGx5KCkucmlnaHQocmlnaHQpO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIHJldHVybiByZXN1bHQuYm90dG9tKGJvdHRvbSkubGVmdChsZWZ0KTtcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmNlbnRlckhvcml6b250YWxseSgpLmJvdHRvbShib3R0b20pO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmJvdHRvbShib3R0b20pLnJpZ2h0KHJpZ2h0KTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gcmVzdWx0LmNlbnRlclZlcnRpY2FsbHkoKS5jZW50ZXJIb3Jpem9udGFsbHkoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFJlc2l6YWJsZShlbGU6IEhUTUxFbGVtZW50LCBwbGFjZT86IFhQbGFjZSkge1xyXG4gICAgY29uc3QgeyBjbGllbnRXaWR0aCwgY2xpZW50SGVpZ2h0IH0gPSBlbGU7XHJcbiAgICBjb25zdCBjb21wdXRlZFN0eWxlID0gWENvbXB1dGVkKGVsZSk7XHJcbiAgICBjb25zdCBtYXJnaW5SaWdodCA9IHBhcnNlRmxvYXQoY29tcHV0ZWRTdHlsZS5tYXJnaW5SaWdodCk7XHJcbiAgICBjb25zdCBtYXJnaW5Cb3R0b20gPSBwYXJzZUZsb2F0KGNvbXB1dGVkU3R5bGUubWFyZ2luQm90dG9tKTtcclxuICAgIGxldCBtYXJnaW5MZWZ0ID0gbnVsbDtcclxuICAgIGxldCBtYXJnaW5Ub3AgPSBudWxsO1xyXG4gICAgc3dpdGNoIChwbGFjZSkge1xyXG4gICAgICBjYXNlICd0b3Atc3RhcnQnOlxyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICd0b3AnOlxyXG4gICAgICAgIG1hcmdpbkxlZnQgPSBgY2FsYyg1MHZ3IC0gJHtjbGllbnRXaWR0aCAvIDJ9cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgbWFyZ2luTGVmdCA9IGBjYWxjKDEwMHZ3IC0gJHtjbGllbnRXaWR0aCArIG1hcmdpblJpZ2h0fXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ2xlZnQnOlxyXG4gICAgICAgIG1hcmdpblRvcCA9IGBjYWxjKDUwdmggLSAke2NsaWVudEhlaWdodCAvIDJ9cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnY2VudGVyJzpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoNTB2dyAtICR7Y2xpZW50V2lkdGggLyAyfXB4KWA7XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoNTB2aCAtICR7Y2xpZW50SGVpZ2h0IC8gMn1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgbWFyZ2luTGVmdCA9IGBjYWxjKDEwMHZ3IC0gJHtjbGllbnRXaWR0aCArIG1hcmdpblJpZ2h0fXB4KWA7XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoNTB2aCAtICR7Y2xpZW50SGVpZ2h0IC8gMn1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tc3RhcnQnOlxyXG4gICAgICAgIG1hcmdpblRvcCA9IGBjYWxjKDEwMHZoIC0gJHtjbGllbnRIZWlnaHQgKyBtYXJnaW5Cb3R0b219cHgpYDtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoNTB2dyAtICR7Y2xpZW50V2lkdGggLyAyfXB4KWA7XHJcbiAgICAgICAgbWFyZ2luVG9wID0gYGNhbGMoMTAwdmggLSAke2NsaWVudEhlaWdodCArIG1hcmdpbkJvdHRvbX1weClgO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdib3R0b20tZW5kJzpcclxuICAgICAgICBtYXJnaW5MZWZ0ID0gYGNhbGMoMTAwdncgLSAke2NsaWVudFdpZHRoICsgbWFyZ2luUmlnaHR9cHgpYDtcclxuICAgICAgICBtYXJnaW5Ub3AgPSBgY2FsYygxMDB2aCAtICR7Y2xpZW50SGVpZ2h0ICsgbWFyZ2luQm90dG9tfXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgbWFyZ2luTGVmdCA9IGBjYWxjKDUwdncgLSAke2NsaWVudFdpZHRoIC8gMn1weClgO1xyXG4gICAgICAgIG1hcmdpblRvcCA9IGBjYWxjKDEwMHZoIC0gJHtjbGllbnRIZWlnaHQgLyAyfXB4KWA7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgICBtYXJnaW5MZWZ0ICYmIHRoaXMucmVuZGVyZXIuc2V0U3R5bGUoZWxlLCAnbWFyZ2luLWxlZnQnLCBtYXJnaW5MZWZ0KTtcclxuICAgIG1hcmdpblRvcCAmJiB0aGlzLnJlbmRlcmVyLnNldFN0eWxlKGVsZSwgJ21hcmdpbi10b3AnLCBtYXJnaW5Ub3ApO1xyXG5cclxuICAgIHJldHVybiB7XHJcbiAgICAgIG1hcmdpbkxlZnQ6IG1hcmdpbkxlZnQgfHwgY29tcHV0ZWRTdHlsZS5tYXJnaW5MZWZ0LFxyXG4gICAgICBtYXJnaW5Ub3A6IG1hcmdpblRvcCB8fCBjb21wdXRlZFN0eWxlLm1hcmdpblRvcCxcclxuICAgICAgbWFyZ2luQm90dG9tOiBjb21wdXRlZFN0eWxlLm1hcmdpbkJvdHRvbSxcclxuICAgICAgbWFyZ2luUmlnaHQ6IGNvbXB1dGVkU3R5bGUubWFyZ2luUmlnaHRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBzZXRDb250YWluZXJTdHlsZShwbGFjZT86IFhQbGFjZSwgLi4ub2Zmc2V0OiBzdHJpbmdbXSkge1xyXG4gICAgbGV0IFt0b3AsIHJpZ2h0LCBib3R0b20sIGxlZnRdID0gdGhpcy5nZXRPZmZzZXQob2Zmc2V0KTtcclxuICAgIHN3aXRjaCAocGxhY2UpIHtcclxuICAgICAgY2FzZSAndG9wLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4geyB0b3AsIGxlZnQgfTtcclxuICAgICAgY2FzZSAndG9wJzpcclxuICAgICAgICByZXR1cm4geyB0b3AgfTtcclxuICAgICAgY2FzZSAndG9wLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIHsgdG9wLCByaWdodCB9O1xyXG4gICAgICBjYXNlICdsZWZ0JzpcclxuICAgICAgICByZXR1cm4geyBsZWZ0IH07XHJcbiAgICAgIGNhc2UgJ2NlbnRlcic6XHJcbiAgICAgICAgcmV0dXJuIHt9O1xyXG4gICAgICBjYXNlICdyaWdodCc6XHJcbiAgICAgICAgcmV0dXJuIHsgcmlnaHQgfTtcclxuICAgICAgY2FzZSAnYm90dG9tLXN0YXJ0JzpcclxuICAgICAgICByZXR1cm4geyBib3R0b20sIGxlZnQgfTtcclxuICAgICAgY2FzZSAnYm90dG9tJzpcclxuICAgICAgICByZXR1cm4geyBib3R0b20gfTtcclxuICAgICAgY2FzZSAnYm90dG9tLWVuZCc6XHJcbiAgICAgICAgcmV0dXJuIHsgYm90dG9tLCByaWdodCB9O1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHt9O1xyXG4gIH1cclxuXHJcbiAgZ2V0T2Zmc2V0KG9mZnNldDogc3RyaW5nW10pIHtcclxuICAgIGlmIChvZmZzZXQubGVuZ3RoID09PSAwKSBvZmZzZXQgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiA0IH0pLm1hcCgoKSA9PiBgMGApO1xyXG4gICAgZWxzZSBpZiAob2Zmc2V0Lmxlbmd0aCA8IDQpIHtcclxuICAgICAgQXJyYXkuZnJvbSh7IGxlbmd0aDogNCAtIG9mZnNldC5sZW5ndGggfSkubWFwKCgpID0+IChvZmZzZXQgPSBbLi4ub2Zmc2V0LCBvZmZzZXRbb2Zmc2V0Lmxlbmd0aCAtIDFdXSkpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIG9mZnNldDtcclxuICB9XHJcblxyXG4gIGNyZWF0ZU92ZXJsYXlSZWYob3B0aW9uOiBYUG9ydGFsUHJvcGVydHkpOiBPdmVybGF5UmVmIHtcclxuICAgIHJldHVybiB0aGlzLm92ZXJsYXkuY3JlYXRlKG9wdGlvbi5vdmVybGF5Q29uZmlnKTtcclxuICB9XHJcblxyXG4gIHNldENvbm5lY3RlZFBvc2l0aW9uKC4uLnBsYWNlbWVudDogWFBsYWNlW10gfCBYUGxhY2VtZW50W10pOiBDb25uZWN0ZWRQb3NpdGlvbltdIHtcclxuICAgIGxldCByZXN1bHQ6IENvbm5lY3RlZFBvc2l0aW9uW10gPSBbXTtcclxuICAgIHBsYWNlbWVudC5mb3JFYWNoKChwbGFjZTogWFBsYWNlIHwgWFBsYWNlbWVudCkgPT4gcmVzdWx0LnB1c2goWFBvcnRhbFBsYWNlbWVudFtwbGFjZV0pKTtcclxuICAgIHJldHVybiByZXN1bHQ7XHJcbiAgfVxyXG59XHJcbiJdfQ==
@@ -1,22 +1,20 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, inject } from '@angular/core';
2
2
  import { XProgressPrefix, XProgressProperty } from './progress.property';
3
- import { XIsFunction, XIsString, XIsObjectArray, XIsEmpty, XIsChange, XIsNumber } from '@ng-nest/ui/core';
3
+ import { XIsFunction, XIsString, XIsObjectArray, XIsEmpty, XIsChange, XConfigService, XIsNumber } from '@ng-nest/ui/core';
4
+ import { CommonModule } from '@angular/common';
5
+ import { FormsModule } from '@angular/forms';
6
+ import { XIconComponent } from '@ng-nest/ui/icon';
4
7
  import * as i0 from "@angular/core";
5
- import * as i1 from "@ng-nest/ui/core";
6
- import * as i2 from "@angular/common";
7
- import * as i3 from "@ng-nest/ui/icon";
8
+ import * as i1 from "@angular/common";
8
9
  export class XProgressComponent extends XProgressProperty {
10
+ constructor() {
11
+ super(...arguments);
12
+ this.stepsArray = [];
13
+ this.configService = inject(XConfigService);
14
+ }
9
15
  get maskWidth() {
10
16
  return XIsNumber(this.percent) ? 100 - Number(this.percent) : 100;
11
17
  }
12
- constructor(renderer, elementRef, cdr, configService) {
13
- super();
14
- this.renderer = renderer;
15
- this.elementRef = elementRef;
16
- this.cdr = cdr;
17
- this.configService = configService;
18
- this.stepsArray = [];
19
- }
20
18
  ngOnChanges(simples) {
21
19
  const { status, percent, gradient, steps, type, notchAngle } = simples;
22
20
  XIsChange(type, status) && this.setClassMap();
@@ -211,11 +209,11 @@ export class XProgressComponent extends XProgressProperty {
211
209
  onFormat(percent) {
212
210
  return this.format && this.format(percent);
213
211
  }
214
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressComponent, deps: [{ token: i0.Renderer2 }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
215
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XProgressComponent, selector: "x-progress", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"x-progress\"\r\n [ngClass]=\"classMap\"\r\n [class.x-progress-steps]=\"stepsArray.length > 0\"\r\n [class.x-progress-steps-flex]=\"stepFlex\"\r\n [ngSwitch]=\"type\"\r\n>\r\n <ng-container *ngSwitchCase=\"'circle'\">\r\n <ng-container *ngTemplateOutlet=\"circleTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dashboard'\">\r\n <ng-container *ngTemplateOutlet=\"dashboardTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"lineTpl\"> </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #lineTpl>\r\n <ng-container *ngIf=\"stepsArray.length === 0\">\r\n <ng-container *ngTemplateOutlet=\"trackTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepsArray.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"stepsTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"info && !inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #circleTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"circleClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dashboardTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.clip-path]=\"dashboardRailClipPath\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"dashboardClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #trackTpl>\r\n <div class=\"x-progress-track\">\r\n <div class=\"x-progress-rail\" [class.x-progress-mask]=\"subsection\" [style.background-image]=\"subsection ? subLinearGradient : 'none'\">\r\n <div\r\n class=\"x-progress-bg\"\r\n [style.width.%]=\"percent\"\r\n [style.background-color]=\"currentColor\"\r\n [style.background-image]=\"linearGradient\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n >\r\n <ng-container *ngIf=\"info && inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"subsection\"\r\n class=\"x-progress-bg-mask\"\r\n [style.width.%]=\"maskWidth\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #stepsTpl>\r\n <div\r\n *ngFor=\"let step of stepsArray\"\r\n class=\"x-progress-step\"\r\n [class.x-progress-step-active]=\"step\"\r\n [style.background-color]=\"currentColor\"\r\n [style.width]=\"stepWidth\"\r\n [style.flex]=\"stepFlex ? 1 : 'none'\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n</ng-template>\r\n\r\n<ng-template #textTpl>\r\n <span class=\"x-progress-text\" [ngSwitch]=\"status\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-check-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'exception'\">\r\n <x-icon type=\"fto-x-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'warning'\">\r\n <x-icon type=\"fto-help-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"format; else defaultTemp\">{{ onFormat(percent) }}</ng-container>\r\n <ng-template #defaultTemp>{{ percent }}%</ng-template>\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n", styles: ["@keyframes x-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}x-progress{display:initial}.x-progress{margin:0;padding:0;display:inline-flex;align-items:center;width:100%}.x-progress-track{width:100%;display:inline-flex;align-items:center}.x-progress-rail{position:relative;display:inline-flex;width:100%;overflow:hidden;vertical-align:middle;background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-bg{position:relative;background-color:var(--x-primary);transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;border-radius:var(--x-border-radius);text-align:right;color:#fff}.x-progress-bg>span{margin:0 .325rem}.x-progress-circle,.x-progress-dashboard,.x-progress-steps:not(.x-progress-steps-flex){width:initial}.x-progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.x-progress-ring-rail{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-border-100);border-radius:100%}.x-progress-ring-bg{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-primary);border-radius:100%;transition:clip-path .3s cubic-bezier(.08,.82,.17,1) 0s}.x-progress-ring .x-progress-text{margin-left:0;justify-content:center;font-size:var(--x-font-size-large)}.x-progress-mask .x-progress-bg{background:transparent}.x-progress-bg-mask{transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;background-color:var(--x-border-100);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-progress-step{background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-step:not(:first-child){margin-left:.125rem}.x-progress-step-active{background-color:var(--x-primary)}.x-progress-text{margin-left:.5rem;width:3.25rem;display:inline-flex;align-items:center;white-space:nowrap}.x-progress-active .x-progress-bg:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:x-progress-active 2s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}.x-progress-exception .x-progress-text{color:var(--x-danger)}.x-progress-exception .x-progress-bg,.x-progress-exception .x-progress-step-active{background-color:var(--x-danger)}.x-progress-exception .x-progress-ring-bg{border-color:var(--x-danger)}.x-progress-success .x-progress-text{color:var(--x-success)}.x-progress-success .x-progress-bg,.x-progress-success .x-progress-step-active{background-color:var(--x-success)}.x-progress-success .x-progress-ring-bg{border-color:var(--x-success)}.x-progress-warning .x-progress-text{color:var(--x-warning)}.x-progress-warning .x-progress-bg,.x-progress-warning .x-progress-step-active{background-color:var(--x-warning)}.x-progress-warning .x-progress-ring-bg{border-color:var(--x-warning)}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i3.XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
212
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
213
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XProgressComponent, isStandalone: true, selector: "x-progress", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div\r\n class=\"x-progress\"\r\n [ngClass]=\"classMap\"\r\n [class.x-progress-steps]=\"stepsArray.length > 0\"\r\n [class.x-progress-steps-flex]=\"stepFlex\"\r\n [ngSwitch]=\"type\"\r\n>\r\n <ng-container *ngSwitchCase=\"'circle'\">\r\n <ng-container *ngTemplateOutlet=\"circleTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dashboard'\">\r\n <ng-container *ngTemplateOutlet=\"dashboardTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"lineTpl\"> </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #lineTpl>\r\n <ng-container *ngIf=\"stepsArray.length === 0\">\r\n <ng-container *ngTemplateOutlet=\"trackTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepsArray.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"stepsTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"info && !inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #circleTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"circleClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dashboardTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.clip-path]=\"dashboardRailClipPath\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"dashboardClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #trackTpl>\r\n <div class=\"x-progress-track\">\r\n <div class=\"x-progress-rail\" [class.x-progress-mask]=\"subsection\" [style.background-image]=\"subsection ? subLinearGradient : 'none'\">\r\n <div\r\n class=\"x-progress-bg\"\r\n [style.width.%]=\"percent\"\r\n [style.background-color]=\"currentColor\"\r\n [style.background-image]=\"linearGradient\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n >\r\n <ng-container *ngIf=\"info && inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"subsection\"\r\n class=\"x-progress-bg-mask\"\r\n [style.width.%]=\"maskWidth\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #stepsTpl>\r\n <div\r\n *ngFor=\"let step of stepsArray\"\r\n class=\"x-progress-step\"\r\n [class.x-progress-step-active]=\"step\"\r\n [style.background-color]=\"currentColor\"\r\n [style.width]=\"stepWidth\"\r\n [style.flex]=\"stepFlex ? 1 : 'none'\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n</ng-template>\r\n\r\n<ng-template #textTpl>\r\n <span class=\"x-progress-text\" [ngSwitch]=\"status\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-check-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'exception'\">\r\n <x-icon type=\"fto-x-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'warning'\">\r\n <x-icon type=\"fto-help-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"format; else defaultTemp\">{{ onFormat(percent) }}</ng-container>\r\n <ng-template #defaultTemp>{{ percent }}%</ng-template>\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n", styles: ["@keyframes x-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}x-progress{display:initial}.x-progress{margin:0;padding:0;display:inline-flex;align-items:center;width:100%}.x-progress-track{width:100%;display:inline-flex;align-items:center}.x-progress-rail{position:relative;display:inline-flex;width:100%;overflow:hidden;vertical-align:middle;background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-bg{position:relative;background-color:var(--x-primary);transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;border-radius:var(--x-border-radius);text-align:right;color:#fff}.x-progress-bg>span{margin:0 .325rem}.x-progress-circle,.x-progress-dashboard,.x-progress-steps:not(.x-progress-steps-flex){width:initial}.x-progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.x-progress-ring-rail{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-border-100);border-radius:100%}.x-progress-ring-bg{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-primary);border-radius:100%;transition:clip-path .3s cubic-bezier(.08,.82,.17,1) 0s}.x-progress-ring .x-progress-text{margin-left:0;justify-content:center;font-size:var(--x-font-size-large)}.x-progress-mask .x-progress-bg{background:transparent}.x-progress-bg-mask{transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;background-color:var(--x-border-100);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-progress-step{background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-step:not(:first-child){margin-left:.125rem}.x-progress-step-active{background-color:var(--x-primary)}.x-progress-text{margin-left:.5rem;width:3.25rem;display:inline-flex;align-items:center;white-space:nowrap}.x-progress-active .x-progress-bg:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:x-progress-active 2s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}.x-progress-exception .x-progress-text{color:var(--x-danger)}.x-progress-exception .x-progress-bg,.x-progress-exception .x-progress-step-active{background-color:var(--x-danger)}.x-progress-exception .x-progress-ring-bg{border-color:var(--x-danger)}.x-progress-success .x-progress-text{color:var(--x-success)}.x-progress-success .x-progress-bg,.x-progress-success .x-progress-step-active{background-color:var(--x-success)}.x-progress-success .x-progress-ring-bg{border-color:var(--x-success)}.x-progress-warning .x-progress-text{color:var(--x-warning)}.x-progress-warning .x-progress-bg,.x-progress-warning .x-progress-step-active{background-color:var(--x-warning)}.x-progress-warning .x-progress-ring-bg{border-color:var(--x-warning)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: XIconComponent, selector: "x-icon" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
216
214
  }
217
215
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressComponent, decorators: [{
218
216
  type: Component,
219
- args: [{ selector: `${XProgressPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-progress\"\r\n [ngClass]=\"classMap\"\r\n [class.x-progress-steps]=\"stepsArray.length > 0\"\r\n [class.x-progress-steps-flex]=\"stepFlex\"\r\n [ngSwitch]=\"type\"\r\n>\r\n <ng-container *ngSwitchCase=\"'circle'\">\r\n <ng-container *ngTemplateOutlet=\"circleTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dashboard'\">\r\n <ng-container *ngTemplateOutlet=\"dashboardTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"lineTpl\"> </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #lineTpl>\r\n <ng-container *ngIf=\"stepsArray.length === 0\">\r\n <ng-container *ngTemplateOutlet=\"trackTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepsArray.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"stepsTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"info && !inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #circleTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"circleClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dashboardTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.clip-path]=\"dashboardRailClipPath\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"dashboardClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #trackTpl>\r\n <div class=\"x-progress-track\">\r\n <div class=\"x-progress-rail\" [class.x-progress-mask]=\"subsection\" [style.background-image]=\"subsection ? subLinearGradient : 'none'\">\r\n <div\r\n class=\"x-progress-bg\"\r\n [style.width.%]=\"percent\"\r\n [style.background-color]=\"currentColor\"\r\n [style.background-image]=\"linearGradient\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n >\r\n <ng-container *ngIf=\"info && inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"subsection\"\r\n class=\"x-progress-bg-mask\"\r\n [style.width.%]=\"maskWidth\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #stepsTpl>\r\n <div\r\n *ngFor=\"let step of stepsArray\"\r\n class=\"x-progress-step\"\r\n [class.x-progress-step-active]=\"step\"\r\n [style.background-color]=\"currentColor\"\r\n [style.width]=\"stepWidth\"\r\n [style.flex]=\"stepFlex ? 1 : 'none'\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n</ng-template>\r\n\r\n<ng-template #textTpl>\r\n <span class=\"x-progress-text\" [ngSwitch]=\"status\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-check-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'exception'\">\r\n <x-icon type=\"fto-x-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'warning'\">\r\n <x-icon type=\"fto-help-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"format; else defaultTemp\">{{ onFormat(percent) }}</ng-container>\r\n <ng-template #defaultTemp>{{ percent }}%</ng-template>\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n", styles: ["@keyframes x-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}x-progress{display:initial}.x-progress{margin:0;padding:0;display:inline-flex;align-items:center;width:100%}.x-progress-track{width:100%;display:inline-flex;align-items:center}.x-progress-rail{position:relative;display:inline-flex;width:100%;overflow:hidden;vertical-align:middle;background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-bg{position:relative;background-color:var(--x-primary);transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;border-radius:var(--x-border-radius);text-align:right;color:#fff}.x-progress-bg>span{margin:0 .325rem}.x-progress-circle,.x-progress-dashboard,.x-progress-steps:not(.x-progress-steps-flex){width:initial}.x-progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.x-progress-ring-rail{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-border-100);border-radius:100%}.x-progress-ring-bg{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-primary);border-radius:100%;transition:clip-path .3s cubic-bezier(.08,.82,.17,1) 0s}.x-progress-ring .x-progress-text{margin-left:0;justify-content:center;font-size:var(--x-font-size-large)}.x-progress-mask .x-progress-bg{background:transparent}.x-progress-bg-mask{transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;background-color:var(--x-border-100);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-progress-step{background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-step:not(:first-child){margin-left:.125rem}.x-progress-step-active{background-color:var(--x-primary)}.x-progress-text{margin-left:.5rem;width:3.25rem;display:inline-flex;align-items:center;white-space:nowrap}.x-progress-active .x-progress-bg:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:x-progress-active 2s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}.x-progress-exception .x-progress-text{color:var(--x-danger)}.x-progress-exception .x-progress-bg,.x-progress-exception .x-progress-step-active{background-color:var(--x-danger)}.x-progress-exception .x-progress-ring-bg{border-color:var(--x-danger)}.x-progress-success .x-progress-text{color:var(--x-success)}.x-progress-success .x-progress-bg,.x-progress-success .x-progress-step-active{background-color:var(--x-success)}.x-progress-success .x-progress-ring-bg{border-color:var(--x-success)}.x-progress-warning .x-progress-text{color:var(--x-warning)}.x-progress-warning .x-progress-bg,.x-progress-warning .x-progress-step-active{background-color:var(--x-warning)}.x-progress-warning .x-progress-ring-bg{border-color:var(--x-warning)}\n"] }]
220
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.XConfigService }] });
221
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFJakIsdUJBQXVCLEVBR3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN6RSxPQUFPLEVBQ0wsV0FBVyxFQUNYLFNBQVMsRUFDVCxjQUFjLEVBQ2QsUUFBUSxFQUNSLFNBQVMsRUFHVCxTQUFTLEVBQ1YsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFVMUIsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQVN2RCxJQUFJLFNBQVM7UUFDWCxPQUFPLFNBQVMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDcEUsQ0FBQztJQUVELFlBQ1MsUUFBbUIsRUFDbkIsVUFBbUMsRUFDbkMsR0FBc0IsRUFDdEIsYUFBNkI7UUFFcEMsS0FBSyxFQUFFLENBQUM7UUFMRCxhQUFRLEdBQVIsUUFBUSxDQUFXO1FBQ25CLGVBQVUsR0FBVixVQUFVLENBQXlCO1FBQ25DLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGtCQUFhLEdBQWIsYUFBYSxDQUFnQjtRQWR0QyxlQUFVLEdBQW1CLEVBQUUsQ0FBQztJQWlCaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUNoQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sRUFBRSxR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QUFDLENBQUM7SUFDN0MsQ0FBQztpSUFuTlUsa0JBQWtCO3FIQUFsQixrQkFBa0IsOEZDOUIvQiw2bElBZ0hBOzsyRkRsRmEsa0JBQWtCO2tCQVA5QixTQUFTOytCQUNFLEdBQUcsZUFBZSxFQUFFLGlCQUdmLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBSZW5kZXJlcjIsXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYUHJvZ3Jlc3NQcmVmaXgsIFhQcm9ncmVzc1Byb3BlcnR5IH0gZnJvbSAnLi9wcm9ncmVzcy5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7XHJcbiAgWElzRnVuY3Rpb24sXHJcbiAgWElzU3RyaW5nLFxyXG4gIFhJc09iamVjdEFycmF5LFxyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc0NoYW5nZSxcclxuICBYTnVtYmVyLFxyXG4gIFhDb25maWdTZXJ2aWNlLFxyXG4gIFhJc051bWJlclxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYUHJvZ3Jlc3NDb2xvck5vZGUgfSBmcm9tICcuL3Byb2dyZXNzLnByb3BlcnR5JztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYUHJvZ3Jlc3NQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFByb2dyZXNzQ29tcG9uZW50IGV4dGVuZHMgWFByb2dyZXNzUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIGN1cnJlbnRDb2xvciE6IHN0cmluZztcclxuICBsaW5lYXJHcmFkaWVudCE6IHN0cmluZztcclxuICBzdGVwc0FycmF5OiBBcnJheTxib29sZWFuPiA9IFtdO1xyXG4gIGNpcmNsZUNsaXBQYXRoITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZENsaXBQYXRoITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZFJhaWxDbGlwUGF0aCE6IHN0cmluZztcclxuICBzdWJMaW5lYXJHcmFkaWVudCE6IHN0cmluZztcclxuXHJcbiAgZ2V0IG1hc2tXaWR0aCgpIHtcclxuICAgIHJldHVybiBYSXNOdW1iZXIodGhpcy5wZXJjZW50KSA/IDEwMCAtIE51bWJlcih0aGlzLnBlcmNlbnQpIDogMTAwO1xyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBlbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxFbGVtZW50PixcclxuICAgIHB1YmxpYyBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlXHJcbiAgKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBzdGF0dXMsIHBlcmNlbnQsIGdyYWRpZW50LCBzdGVwcywgdHlwZSwgbm90Y2hBbmdsZSB9ID0gc2ltcGxlcztcclxuICAgIFhJc0NoYW5nZSh0eXBlLCBzdGF0dXMpICYmIHRoaXMuc2V0Q2xhc3NNYXAoKTtcclxuICAgIFhJc0NoYW5nZShwZXJjZW50KSAmJiB0aGlzLnNldENvbG9yKCk7XHJcbiAgICBYSXNDaGFuZ2UoZ3JhZGllbnQpICYmIHRoaXMuc2V0R3JhZGllbnQoKTtcclxuICAgIFhJc0NoYW5nZShzdGVwcywgcGVyY2VudCkgJiYgdGhpcy5zZXRTdGVwcygpO1xyXG4gICAgWElzQ2hhbmdlKHR5cGUsIHBlcmNlbnQsIG5vdGNoQW5nbGUpICYmIHRoaXMuc2V0VHlwZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0Q2xhc3NNYXAoKSB7XHJcbiAgICB0aGlzLmNsYXNzTWFwID0ge1xyXG4gICAgICBbYCR7WFByb2dyZXNzUHJlZml4fS0ke3RoaXMuc3RhdHVzfWBdOiB0cnVlLFxyXG4gICAgICBbYCR7WFByb2dyZXNzUHJlZml4fS0ke3RoaXMudHlwZX1gXTogdHJ1ZSxcclxuICAgICAgW2Ake1hQcm9ncmVzc1ByZWZpeH0taW5zaWRlYF06IEJvb2xlYW4odGhpcy5pbnNpZGUpXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgc2V0Q29sb3IoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzZWN0aW9uKSB7XHJcbiAgICAgIHRoaXMuc2V0U3ViTGluZWFyR3JhZGllbnQoKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGlmIChYSXNFbXB0eSh0aGlzLmNvbG9yKSkgcmV0dXJuO1xyXG4gICAgICBpZiAoWElzU3RyaW5nKHRoaXMuY29sb3IpKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Q29sb3IgPSB0aGlzLmNvbG9yIGFzIHN0cmluZztcclxuICAgICAgfSBlbHNlIGlmIChYSXNPYmplY3RBcnJheSh0aGlzLmNvbG9yKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENvbG9yID0gdGhpcy5nZXRMZXZlbENvbG9yKHRoaXMucGVyY2VudCk7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzRnVuY3Rpb24odGhpcy5jb2xvcikpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRDb2xvciA9ICh0aGlzLmNvbG9yIGFzIEZ1bmN0aW9uKSh0aGlzLnBlcmNlbnQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXRMZXZlbENvbG9yKHBlcmNlbnQ6IFhOdW1iZXIpIHtcclxuICAgIGxldCBjb2xvcnMgPSAodGhpcy5jb2xvciBhcyBYUHJvZ3Jlc3NDb2xvck5vZGVbXSkuc29ydCgoYSwgYikgPT4gYS5wZXJjZW50IC0gYi5wZXJjZW50KTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgY29sb3JzLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGlmIChjb2xvcnNbaV0ucGVyY2VudCA+IE51bWJlcihwZXJjZW50KSkge1xyXG4gICAgICAgIHJldHVybiBjb2xvcnNbaV0uY29sb3I7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHJldHVybiBjb2xvcnNbY29sb3JzLmxlbmd0aCAtIDFdLmNvbG9yO1xyXG4gIH1cclxuXHJcbiAgc2V0R3JhZGllbnQoKSB7XHJcbiAgICBpZiAodGhpcy5zdWJzZWN0aW9uKSByZXR1cm47XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5ncmFkaWVudCkpIHtcclxuICAgICAgdGhpcy5saW5lYXJHcmFkaWVudCA9ICcnO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3QgeyBmcm9tLCB0bywgZGlyZWN0aW9uID0gJ3RvIHJpZ2h0JywgLi4ucGVyY2VudHMgfSA9IHRoaXMuZ3JhZGllbnQgfHwge307XHJcbiAgICAgIGlmIChPYmplY3Qua2V5cyhwZXJjZW50cykubGVuZ3RoICE9PSAwKSB7XHJcbiAgICAgICAgdGhpcy5saW5lYXJHcmFkaWVudCA9IGBsaW5lYXItZ3JhZGllbnQoJHtkaXJlY3Rpb259LCAke3RoaXMuc29ydEdyYWRpZW50KHBlcmNlbnRzIGFzIHsgW3BlcmNlbnQ6IHN0cmluZ106IHN0cmluZyB9KS5tYXAoXHJcbiAgICAgICAgICAoeyBrZXksIHZhbHVlIH0pID0+IGAke3ZhbHVlfSAke2tleX0lYFxyXG4gICAgICAgICl9KWA7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubGluZWFyR3JhZGllbnQgPSBgbGluZWFyLWdyYWRpZW50KCR7ZGlyZWN0aW9ufSwgJHtmcm9tfSwgJHt0b30pYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNvcnRHcmFkaWVudChwZXJjZW50czogeyBbcGVyY2VudDogc3RyaW5nXTogc3RyaW5nIH0pIHtcclxuICAgIGxldCBhcnI6IHsga2V5OiBudW1iZXI7IHZhbHVlOiBzdHJpbmcgfVtdID0gW107XHJcbiAgICBPYmplY3Qua2V5cyhwZXJjZW50cykuZm9yRWFjaCgoa2V5KSA9PiB7XHJcbiAgICAgIGNvbnN0IHZhbHVlID0gcGVyY2VudHNba2V5XTtcclxuICAgICAgY29uc3QgbnVtS2V5ID0gK2tleS5yZXBsYWNlKCclJywgJycpO1xyXG4gICAgICBpZiAoIWlzTmFOKG51bUtleSkpIHtcclxuICAgICAgICBhcnIucHVzaCh7IGtleTogbnVtS2V5LCB2YWx1ZSB9KTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gYXJyLnNvcnQoKGEsIGIpID0+IGEua2V5IC0gYi5rZXkpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViTGluZWFyR3JhZGllbnQoKSB7XHJcbiAgICBsZXQgY29sb3JzID0gdGhpcy5jb2xvciBhcyBYUHJvZ3Jlc3NDb2xvck5vZGVbXTtcclxuICAgIGlmICghY29sb3JzIHx8IGNvbG9ycy5sZW5ndGggPD0gMCkge1xyXG4gICAgICB0aGlzLnN1YkxpbmVhckdyYWRpZW50ID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwgdmFyKC0teC1wcmltYXJ5KSAwJSwgdmFyKC0teC1wcmltYXJ5KSAxMDAlKWA7XHJcbiAgICAgIHJldHVybjtcclxuICAgIH0gZWxzZSBpZiAoY29sb3JzLmxlbmd0aCA9PT0gMSkge1xyXG4gICAgICBjb2xvcnMucHVzaCh7IHBlcmNlbnQ6IDEwMCwgY29sb3I6ICd2YXIoLS14LXByaW1hcnkpJyB9KTtcclxuICAgIH1cclxuICAgIGNvbG9ycyA9IGNvbG9ycy5zb3J0KChhLCBiKSA9PiBhLnBlcmNlbnQgLSBiLnBlcmNlbnQpO1xyXG4gICAgbGV0IGxnczogc3RyaW5nW10gPSBbXTtcclxuICAgIGNvbG9ycy5yZWR1Y2UoKGEsIGIsIGluZGV4KSA9PiB7XHJcbiAgICAgIGlmIChpbmRleCA9PT0gMSAmJiBhLnBlcmNlbnQgPiAwKSB7XHJcbiAgICAgICAgbGdzLnB1c2goYCR7YS5jb2xvcn0gMCUsICR7YS5jb2xvcn0gJHthLnBlcmNlbnR9JWApO1xyXG4gICAgICB9XHJcbiAgICAgIGxncy5wdXNoKGAke2IuY29sb3J9ICR7YS5wZXJjZW50fSUsICR7Yi5jb2xvcn0gJHtiLnBlcmNlbnR9JWApO1xyXG4gICAgICBpZiAoaW5kZXggPT09IGNvbG9ycy5sZW5ndGggLSAxICYmIGIucGVyY2VudCA8IDEwMCkge1xyXG4gICAgICAgIGxncy5wdXNoKGB2YXIoLS14LXByaW1hcnkpICR7Yi5wZXJjZW50fSUsIHZhcigtLXgtcHJpbWFyeSkgMTAwJWApO1xyXG4gICAgICB9XHJcbiAgICAgIHJldHVybiBiO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnN1YkxpbmVhckdyYWRpZW50ID0gYGxpbmVhci1ncmFkaWVudCh0byByaWdodCwke2xncy5qb2luKCcsJyl9KWA7XHJcbiAgfVxyXG5cclxuICBzZXRTdGVwcygpIHtcclxuICAgIGlmIChYSXNFbXB0eSh0aGlzLnN0ZXBzKSkge1xyXG4gICAgICB0aGlzLnN0ZXBzQXJyYXkgPSBbXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IGNyaXRpY2FsID0gTWF0aC5jZWlsKChOdW1iZXIodGhpcy5wZXJjZW50KSAvIDEwMCkgKiB0aGlzLnN0ZXBzISk7XHJcbiAgICAgIHRoaXMuc3RlcHNBcnJheSA9IEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuc3RlcHMgYXMgbnVtYmVyIH0pLm1hcCgoXywgaW5kZXgpID0+IGluZGV4ICsgMSA8PSBjcml0aWNhbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRUeXBlKCkge1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2NpcmNsZScpIHtcclxuICAgICAgdGhpcy5zZXRDaXJjbGVDbGlwUGF0aCgpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXNoYm9hcmQnKSB7XHJcbiAgICAgIHRoaXMuc2V0RGFzaGJvYXJkQ2xpcFBhdGgoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIGNpcmNsZSDkuK3nmoQgMTAwJSDnrYnkuo4gY2xpcC1wYXRoIOS4reeahCA0MDAlXHJcbiAgICovXHJcbiAgc2V0Q2lyY2xlQ2xpcFBhdGgoKSB7XHJcbiAgICBsZXQgdmFsdWUgPSBOdW1iZXIodGhpcy5wZXJjZW50KSAqIDQ7XHJcbiAgICBsZXQgazEgPSAncG9seWdvbig1MCUgNTAlLDUwJSAwJSwnO1xyXG4gICAgbGV0IGsyID0gazEgKyAnMTAwJSAwJSwnO1xyXG4gICAgbGV0IGszID0gazIgKyAnMTAwJSAxMDAlLCc7XHJcbiAgICBsZXQgazQgPSBrMyArICcwJSAxMDAlLCc7XHJcbiAgICBsZXQgazUgPSBrNCArICcwJSAwJSwnO1xyXG4gICAgaWYgKHZhbHVlIDw9IDUwKSB7XHJcbiAgICAgIHZhbHVlICs9IDUwO1xyXG4gICAgICB0aGlzLmNpcmNsZUNsaXBQYXRoID0gYCR7azF9JHt2YWx1ZX0lIDAlKWA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID4gNTAgJiYgdmFsdWUgPD0gMTUwKSB7XHJcbiAgICAgIHZhbHVlIC09IDUwO1xyXG4gICAgICB0aGlzLmNpcmNsZUNsaXBQYXRoID0gYCR7azJ9MTAwJSAke3ZhbHVlfSUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPiAxNTAgJiYgdmFsdWUgPD0gMjUwKSB7XHJcbiAgICAgIHZhbHVlID0gMjUwIC0gdmFsdWU7XHJcbiAgICAgIHRoaXMuY2lyY2xlQ2xpcFBhdGggPSBgJHtrM30ke3ZhbHVlfSUgMTAwJSlgO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+IDI1MCAmJiB2YWx1ZSA8PSAzNTApIHtcclxuICAgICAgdmFsdWUgPSAzNTAgLSB2YWx1ZTtcclxuICAgICAgdGhpcy5jaXJjbGVDbGlwUGF0aCA9IGAke2s0fTAlICR7dmFsdWV9JSlgO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+IDM1MCAmJiB2YWx1ZSA8PSA0MDApIHtcclxuICAgICAgdmFsdWUgLT0gMzUwO1xyXG4gICAgICB0aGlzLmNpcmNsZUNsaXBQYXRoID0gYCR7azV9JHt2YWx1ZX0lIDAlKWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKlxyXG4gICAqIDkwIHBvbHlnb24oNTAlIDUwJSwgMCUgMTAwJSwgMCUgMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSk7XHJcbiAgICogMTgwIHBvbHlnb24oNTAlIDUwJSwgMCUgNTAlLCAwJSAwJSwgMTAwJSAwJSwgMTAwJSA1MCUpO1xyXG4gICAqIDI3MCBwb2x5Z29uKDUwJSA1MCUsIDAlIDAlLCAxMDAlIDAlKTtcclxuICAgKi9cclxuICBzZXREYXNoYm9hcmRDbGlwUGF0aCgpIHtcclxuICAgIGxldCByYWlsVmFsdWUgPSAoTnVtYmVyKHRoaXMubm90Y2hBbmdsZSkgLyAzNjApICogNTAgKiA0O1xyXG4gICAgbGV0IGsxID0gYHBvbHlnb24oNTAlIDUwJSxgO1xyXG4gICAgbGV0IHN0YXJ0ID0gJyc7XHJcbiAgICBsZXQgcGVyID0gMDtcclxuICAgIGlmIChyYWlsVmFsdWUgPD0gNTApIHtcclxuICAgICAgcGVyID0gNTAgLSByYWlsVmFsdWU7XHJcbiAgICAgIHN0YXJ0ID0gYCR7azF9ICR7cGVyfSUgMTAwJWA7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkUmFpbENsaXBQYXRoID0gYCR7c3RhcnR9LCAwJSAxMDAlLCAwJSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCAkezEwMCAtIHBlcn0lIDEwMCUpYDtcclxuICAgIH0gZWxzZSBpZiAocmFpbFZhbHVlID4gNTAgJiYgcmFpbFZhbHVlIDw9IDE1MCkge1xyXG4gICAgICBwZXIgPSAxNTAgLSByYWlsVmFsdWU7XHJcbiAgICAgIHN0YXJ0ID0gYCR7azF9IDAlICR7cGVyfSVgO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZFJhaWxDbGlwUGF0aCA9IGAke3N0YXJ0fSwgMCUgMCUsIDEwMCUgMCUsIDEwMCUgJHtwZXJ9JSlgO1xyXG4gICAgfSBlbHNlIGlmIChyYWlsVmFsdWUgPiAxNTAgJiYgcmFpbFZhbHVlIDw9IDI1MCkge1xyXG4gICAgICBwZXIgPSByYWlsVmFsdWUgLSAxNTA7XHJcbiAgICAgIHN0YXJ0ID0gYCR7azF9ICR7cGVyfSUgMCVgO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZFJhaWxDbGlwUGF0aCA9IGAke3N0YXJ0fSwgJHsxMDAgLSBwZXJ9JSAwJSlgO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2V0Q2lyY2xlQ2xpcFBhdGhWYWx1ZShzdGFydCwgcmFpbFZhbHVlKTtcclxuICB9XHJcblxyXG4gIHNldENpcmNsZUNsaXBQYXRoVmFsdWUoc3RhcnQ6IHN0cmluZywgcmFpbFZhbHVlOiBudW1iZXIpIHtcclxuICAgIGxldCB2YWx1ZSA9ICgoNDAwIC0gcmFpbFZhbHVlICogMikgLyAxMDApICogTnVtYmVyKHRoaXMucGVyY2VudCk7XHJcbiAgICBsZXQgdmFsID0gdmFsdWUgKyByYWlsVmFsdWU7XHJcbiAgICBpZiAodmFsIDw9IDUwKSB7XHJcbiAgICAgIHZhbCA9IDUwIC0gdmFsO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZENsaXBQYXRoID0gYCR7c3RhcnR9LCAke3ZhbH0lIDEwMCUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsID4gNTAgJiYgdmFsIDw9IDE1MCkge1xyXG4gICAgICB2YWwgPSAxNTAgLSB2YWw7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkQ2xpcFBhdGggPSBgJHtzdGFydH0sIDAlIDEwMCUsIDAlICR7dmFsfSUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsID4gMTUwICYmIHZhbCA8PSAyNTApIHtcclxuICAgICAgdmFsID0gdmFsIC0gMTUwO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZENsaXBQYXRoID0gYCR7c3RhcnR9LCAwJSAxMDAlLCAwJSAwJSwgJHt2YWx9JSAwJSlgO1xyXG4gICAgfSBlbHNlIGlmICh2YWwgPiAyNTAgJiYgdmFsIDw9IDM1MCkge1xyXG4gICAgICB2YWwgPSB2YWwgLSAyNTA7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkQ2xpcFBhdGggPSBgJHtzdGFydH0sIDAlIDEwMCUsIDAlIDAlLCAxMDAlIDAlLCAxMDAlICR7dmFsfSUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsID4gMzUwICYmIHZhbCA8PSA0MDApIHtcclxuICAgICAgdmFsID0gMTAwIC0gKHZhbCAtIDM1MCk7XHJcbiAgICAgIHRoaXMuZGFzaGJvYXJkQ2xpcFBhdGggPSBgJHtzdGFydH0sIDAlIDEwMCUsIDAlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUsICR7dmFsfSUgMTAwJSlgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25Gb3JtYXQocGVyY2VudDogWE51bWJlcikge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9ybWF0ICYmIHRoaXMuZm9ybWF0KHBlcmNlbnQpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJ4LXByb2dyZXNzXCJcclxuICBbbmdDbGFzc109XCJjbGFzc01hcFwiXHJcbiAgW2NsYXNzLngtcHJvZ3Jlc3Mtc3RlcHNdPVwic3RlcHNBcnJheS5sZW5ndGggPiAwXCJcclxuICBbY2xhc3MueC1wcm9ncmVzcy1zdGVwcy1mbGV4XT1cInN0ZXBGbGV4XCJcclxuICBbbmdTd2l0Y2hdPVwidHlwZVwiXHJcbj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInY2lyY2xlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImNpcmNsZVRwbFwiPiA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGFzaGJvYXJkJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhc2hib2FyZFRwbFwiPiA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaERlZmF1bHQ+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibGluZVRwbFwiPiA8L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2xpbmVUcGw+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBzQXJyYXkubGVuZ3RoID09PSAwXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHJhY2tUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RlcHNBcnJheS5sZW5ndGggPiAwXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwic3RlcHNUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5mbyAmJiAhaW5zaWRlXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNjaXJjbGVUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZ1wiIFtzdHlsZS53aWR0aF09XCJzaXplXCIgW3N0eWxlLmhlaWdodF09XCJzaXplXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1wcm9ncmVzcy1yaW5nLXJhaWxcIiBbc3R5bGUuYm9yZGVyLXdpZHRoXT1cInRoaWNrbmVzc1wiPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZy1iZ1wiXHJcbiAgICAgIFtzdHlsZS5jbGlwLXBhdGhdPVwiY2lyY2xlQ2xpcFBhdGhcIlxyXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICBbc3R5bGUuYm9yZGVyLXdpZHRoXT1cInRoaWNrbmVzc1wiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXNoYm9hcmRUcGw+XHJcbiAgPGRpdiBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZ1wiIFtzdHlsZS53aWR0aF09XCJzaXplXCIgW3N0eWxlLmhlaWdodF09XCJzaXplXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1wcm9ncmVzcy1yaW5nLXJhaWxcIiBbc3R5bGUuY2xpcC1wYXRoXT1cImRhc2hib2FyZFJhaWxDbGlwUGF0aFwiIFtzdHlsZS5ib3JkZXItd2lkdGhdPVwidGhpY2tuZXNzXCI+PC9kaXY+XHJcbiAgICA8ZGl2XHJcbiAgICAgIGNsYXNzPVwieC1wcm9ncmVzcy1yaW5nLWJnXCJcclxuICAgICAgW3N0eWxlLmNsaXAtcGF0aF09XCJkYXNoYm9hcmRDbGlwUGF0aFwiXHJcbiAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgIFtzdHlsZS5ib3JkZXItd2lkdGhdPVwidGhpY2tuZXNzXCJcclxuICAgID48L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3RyYWNrVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXByb2dyZXNzLXRyYWNrXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1wcm9ncmVzcy1yYWlsXCIgW2NsYXNzLngtcHJvZ3Jlc3MtbWFza109XCJzdWJzZWN0aW9uXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwic3Vic2VjdGlvbiA/IHN1YkxpbmVhckdyYWRpZW50IDogJ25vbmUnXCI+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICBjbGFzcz1cIngtcHJvZ3Jlc3MtYmdcIlxyXG4gICAgICAgIFtzdHlsZS53aWR0aC4lXT1cInBlcmNlbnRcIlxyXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImN1cnJlbnRDb2xvclwiXHJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwibGluZWFyR3JhZGllbnRcIlxyXG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICBbc3R5bGUubGluZS1oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJpbmZvICYmIGluc2lkZVwiPlxyXG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDxkaXZcclxuICAgICAgICAqbmdJZj1cInN1YnNlY3Rpb25cIlxyXG4gICAgICAgIGNsYXNzPVwieC1wcm9ncmVzcy1iZy1tYXNrXCJcclxuICAgICAgICBbc3R5bGUud2lkdGguJV09XCJtYXNrV2lkdGhcIlxyXG4gICAgICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgICBbc3R5bGUubGluZS1oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgICAgPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3N0ZXBzVHBsPlxyXG4gIDxkaXZcclxuICAgICpuZ0Zvcj1cImxldCBzdGVwIG9mIHN0ZXBzQXJyYXlcIlxyXG4gICAgY2xhc3M9XCJ4LXByb2dyZXNzLXN0ZXBcIlxyXG4gICAgW2NsYXNzLngtcHJvZ3Jlc3Mtc3RlcC1hY3RpdmVdPVwic3RlcFwiXHJcbiAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgW3N0eWxlLndpZHRoXT1cInN0ZXBXaWR0aFwiXHJcbiAgICBbc3R5bGUuZmxleF09XCJzdGVwRmxleCA/IDEgOiAnbm9uZSdcIlxyXG4gICAgW3N0eWxlLmhlaWdodF09XCJoZWlnaHRcIlxyXG4gICAgW3N0eWxlLmxpbmUtaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgPjwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0ZXh0VHBsPlxyXG4gIDxzcGFuIGNsYXNzPVwieC1wcm9ncmVzcy10ZXh0XCIgW25nU3dpdGNoXT1cInN0YXR1c1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3N1Y2Nlc3MnXCI+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by1jaGVjay1jaXJjbGVcIj48L3gtaWNvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2V4Y2VwdGlvbidcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLXgtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid3YXJuaW5nJ1wiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8taGVscC1jaXJjbGVcIj48L3gtaWNvbj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybWF0OyBlbHNlIGRlZmF1bHRUZW1wXCI+e3sgb25Gb3JtYXQocGVyY2VudCkgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0VGVtcD57eyBwZXJjZW50IH19JTwvbmctdGVtcGxhdGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L3NwYW4+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
217
+ args: [{ selector: `${XProgressPrefix}`, standalone: true, imports: [CommonModule, FormsModule, XIconComponent], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n class=\"x-progress\"\r\n [ngClass]=\"classMap\"\r\n [class.x-progress-steps]=\"stepsArray.length > 0\"\r\n [class.x-progress-steps-flex]=\"stepFlex\"\r\n [ngSwitch]=\"type\"\r\n>\r\n <ng-container *ngSwitchCase=\"'circle'\">\r\n <ng-container *ngTemplateOutlet=\"circleTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'dashboard'\">\r\n <ng-container *ngTemplateOutlet=\"dashboardTpl\"> </ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngTemplateOutlet=\"lineTpl\"> </ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #lineTpl>\r\n <ng-container *ngIf=\"stepsArray.length === 0\">\r\n <ng-container *ngTemplateOutlet=\"trackTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"stepsArray.length > 0\">\r\n <ng-container *ngTemplateOutlet=\"stepsTpl\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"info && !inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n</ng-template>\r\n\r\n<ng-template #circleTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"circleClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #dashboardTpl>\r\n <div class=\"x-progress-ring\" [style.width]=\"size\" [style.height]=\"size\">\r\n <div class=\"x-progress-ring-rail\" [style.clip-path]=\"dashboardRailClipPath\" [style.border-width]=\"thickness\"></div>\r\n <div\r\n class=\"x-progress-ring-bg\"\r\n [style.clip-path]=\"dashboardClipPath\"\r\n [style.background-color]=\"currentColor\"\r\n [style.border-width]=\"thickness\"\r\n ></div>\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #trackTpl>\r\n <div class=\"x-progress-track\">\r\n <div class=\"x-progress-rail\" [class.x-progress-mask]=\"subsection\" [style.background-image]=\"subsection ? subLinearGradient : 'none'\">\r\n <div\r\n class=\"x-progress-bg\"\r\n [style.width.%]=\"percent\"\r\n [style.background-color]=\"currentColor\"\r\n [style.background-image]=\"linearGradient\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n >\r\n <ng-container *ngIf=\"info && inside\">\r\n <ng-container *ngTemplateOutlet=\"textTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <div\r\n *ngIf=\"subsection\"\r\n class=\"x-progress-bg-mask\"\r\n [style.width.%]=\"maskWidth\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #stepsTpl>\r\n <div\r\n *ngFor=\"let step of stepsArray\"\r\n class=\"x-progress-step\"\r\n [class.x-progress-step-active]=\"step\"\r\n [style.background-color]=\"currentColor\"\r\n [style.width]=\"stepWidth\"\r\n [style.flex]=\"stepFlex ? 1 : 'none'\"\r\n [style.height]=\"height\"\r\n [style.line-height]=\"height\"\r\n ></div>\r\n</ng-template>\r\n\r\n<ng-template #textTpl>\r\n <span class=\"x-progress-text\" [ngSwitch]=\"status\">\r\n <ng-container *ngSwitchCase=\"'success'\">\r\n <x-icon type=\"fto-check-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'exception'\">\r\n <x-icon type=\"fto-x-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'warning'\">\r\n <x-icon type=\"fto-help-circle\"></x-icon>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <ng-container *ngIf=\"format; else defaultTemp\">{{ onFormat(percent) }}</ng-container>\r\n <ng-template #defaultTemp>{{ percent }}%</ng-template>\r\n </ng-container>\r\n </span>\r\n</ng-template>\r\n", styles: ["@keyframes x-progress-active{0%{width:0;opacity:.1}20%{width:0;opacity:.5}to{width:100%;opacity:0}}x-progress{display:initial}.x-progress{margin:0;padding:0;display:inline-flex;align-items:center;width:100%}.x-progress-track{width:100%;display:inline-flex;align-items:center}.x-progress-rail{position:relative;display:inline-flex;width:100%;overflow:hidden;vertical-align:middle;background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-bg{position:relative;background-color:var(--x-primary);transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;border-radius:var(--x-border-radius);text-align:right;color:#fff}.x-progress-bg>span{margin:0 .325rem}.x-progress-circle,.x-progress-dashboard,.x-progress-steps:not(.x-progress-steps-flex){width:initial}.x-progress-ring{position:relative;display:inline-flex;align-items:center;justify-content:center}.x-progress-ring-rail{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-border-100);border-radius:100%}.x-progress-ring-bg{position:absolute;width:100%;height:100%;border-style:solid;border-color:var(--x-primary);border-radius:100%;transition:clip-path .3s cubic-bezier(.08,.82,.17,1) 0s}.x-progress-ring .x-progress-text{margin-left:0;justify-content:center;font-size:var(--x-font-size-large)}.x-progress-mask .x-progress-bg{background:transparent}.x-progress-bg-mask{transition:width .3s cubic-bezier(.08,.82,.17,1) 0s;background-color:var(--x-border-100);border-top-right-radius:var(--x-border-radius);border-bottom-right-radius:var(--x-border-radius)}.x-progress-step{background-color:var(--x-border-100);border-radius:var(--x-border-radius)}.x-progress-step:not(:first-child){margin-left:.125rem}.x-progress-step-active{background-color:var(--x-primary)}.x-progress-text{margin-left:.5rem;width:3.25rem;display:inline-flex;align-items:center;white-space:nowrap}.x-progress-active .x-progress-bg:before{position:absolute;inset:0;background:var(--x-background-100);border-radius:var(--x-border-radius);opacity:0;animation:x-progress-active 2s cubic-bezier(.23,1,.32,1) infinite;content:\"\"}.x-progress-exception .x-progress-text{color:var(--x-danger)}.x-progress-exception .x-progress-bg,.x-progress-exception .x-progress-step-active{background-color:var(--x-danger)}.x-progress-exception .x-progress-ring-bg{border-color:var(--x-danger)}.x-progress-success .x-progress-text{color:var(--x-success)}.x-progress-success .x-progress-bg,.x-progress-success .x-progress-step-active{background-color:var(--x-success)}.x-progress-success .x-progress-ring-bg{border-color:var(--x-success)}.x-progress-warning .x-progress-text{color:var(--x-warning)}.x-progress-warning .x-progress-bg,.x-progress-warning .x-progress-step-active{background-color:var(--x-warning)}.x-progress-warning .x-progress-ring-bg{border-color:var(--x-warning)}\n"] }]
218
+ }] });
219
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLE1BQU0sRUFDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDekUsT0FBTyxFQUNMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsY0FBYyxFQUNkLFFBQVEsRUFDUixTQUFTLEVBRVQsY0FBYyxFQUNkLFNBQVMsRUFDVixNQUFNLGtCQUFrQixDQUFDO0FBRTFCLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFXbEQsTUFBTSxPQUFPLGtCQUFtQixTQUFRLGlCQUFpQjtJQVR6RDs7UUFZRSxlQUFVLEdBQW1CLEVBQUUsQ0FBQztRQVVoQyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWdNeEM7SUFwTUMsSUFBSSxTQUFTO1FBQ1gsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ3BFLENBQUM7SUFJRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLE1BQU0sRUFBRSxP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Q0FBQyxPQUFPLENBQUMsQ0FBQztJQUM3QyxDQUFDO2lJQTVNVSxrQkFBa0I7cUhBQWxCLGtCQUFrQixrSENqQy9CLDZsSUFnSEEsMDBGRHJGWSxZQUFZLGd4QkFBRSxXQUFXLCtCQUFFLGNBQWM7OzJGQU14QyxrQkFBa0I7a0JBVDlCLFNBQVM7K0JBQ0UsR0FBRyxlQUFlLEVBQUUsY0FDbEIsSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxjQUFjLENBQUMsaUJBR3JDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBpbmplY3RcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWFByb2dyZXNzUHJlZml4LCBYUHJvZ3Jlc3NQcm9wZXJ0eSB9IGZyb20gJy4vcHJvZ3Jlc3MucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0Z1bmN0aW9uLFxyXG4gIFhJc1N0cmluZyxcclxuICBYSXNPYmplY3RBcnJheSxcclxuICBYSXNFbXB0eSxcclxuICBYSXNDaGFuZ2UsXHJcbiAgWE51bWJlcixcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYSXNOdW1iZXJcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWFByb2dyZXNzQ29sb3JOb2RlIH0gZnJvbSAnLi9wcm9ncmVzcy5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBYSWNvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2ljb24nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hQcm9ncmVzc1ByZWZpeH1gLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFhJY29uQ29tcG9uZW50XSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcHJvZ3Jlc3MuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3Byb2dyZXNzLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFByb2dyZXNzQ29tcG9uZW50IGV4dGVuZHMgWFByb2dyZXNzUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMge1xyXG4gIGN1cnJlbnRDb2xvciE6IHN0cmluZztcclxuICBsaW5lYXJHcmFkaWVudCE6IHN0cmluZztcclxuICBzdGVwc0FycmF5OiBBcnJheTxib29sZWFuPiA9IFtdO1xyXG4gIGNpcmNsZUNsaXBQYXRoITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZENsaXBQYXRoITogc3RyaW5nO1xyXG4gIGRhc2hib2FyZFJhaWxDbGlwUGF0aCE6IHN0cmluZztcclxuICBzdWJMaW5lYXJHcmFkaWVudCE6IHN0cmluZztcclxuXHJcbiAgZ2V0IG1hc2tXaWR0aCgpIHtcclxuICAgIHJldHVybiBYSXNOdW1iZXIodGhpcy5wZXJjZW50KSA/IDEwMCAtIE51bWJlcih0aGlzLnBlcmNlbnQpIDogMTAwO1xyXG4gIH1cclxuXHJcbiAgY29uZmlnU2VydmljZSA9IGluamVjdChYQ29uZmlnU2VydmljZSk7XHJcblxyXG4gIG5nT25DaGFuZ2VzKHNpbXBsZXM6IFNpbXBsZUNoYW5nZXMpIHtcclxuICAgIGNvbnN0IHsgc3RhdHVzLCBwZXJjZW50LCBncmFkaWVudCwgc3RlcHMsIHR5cGUsIG5vdGNoQW5nbGUgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UodHlwZSwgc3RhdHVzKSAmJiB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICBYSXNDaGFuZ2UocGVyY2VudCkgJiYgdGhpcy5zZXRDb2xvcigpO1xyXG4gICAgWElzQ2hhbmdlKGdyYWRpZW50KSAmJiB0aGlzLnNldEdyYWRpZW50KCk7XHJcbiAgICBYSXNDaGFuZ2Uoc3RlcHMsIHBlcmNlbnQpICYmIHRoaXMuc2V0U3RlcHMoKTtcclxuICAgIFhJc0NoYW5nZSh0eXBlLCBwZXJjZW50LCBub3RjaEFuZ2xlKSAmJiB0aGlzLnNldFR5cGUoKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgdGhpcy5jbGFzc01hcCA9IHtcclxuICAgICAgW2Ake1hQcm9ncmVzc1ByZWZpeH0tJHt0aGlzLnN0YXR1c31gXTogdHJ1ZSxcclxuICAgICAgW2Ake1hQcm9ncmVzc1ByZWZpeH0tJHt0aGlzLnR5cGV9YF06IHRydWUsXHJcbiAgICAgIFtgJHtYUHJvZ3Jlc3NQcmVmaXh9LWluc2lkZWBdOiBCb29sZWFuKHRoaXMuaW5zaWRlKVxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIHNldENvbG9yKCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2VjdGlvbikge1xyXG4gICAgICB0aGlzLnNldFN1YkxpbmVhckdyYWRpZW50KCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBpZiAoWElzRW1wdHkodGhpcy5jb2xvcikpIHJldHVybjtcclxuICAgICAgaWYgKFhJc1N0cmluZyh0aGlzLmNvbG9yKSkge1xyXG4gICAgICAgIHRoaXMuY3VycmVudENvbG9yID0gdGhpcy5jb2xvciBhcyBzdHJpbmc7XHJcbiAgICAgIH0gZWxzZSBpZiAoWElzT2JqZWN0QXJyYXkodGhpcy5jb2xvcikpIHtcclxuICAgICAgICB0aGlzLmN1cnJlbnRDb2xvciA9IHRoaXMuZ2V0TGV2ZWxDb2xvcih0aGlzLnBlcmNlbnQpO1xyXG4gICAgICB9IGVsc2UgaWYgKFhJc0Z1bmN0aW9uKHRoaXMuY29sb3IpKSB7XHJcbiAgICAgICAgdGhpcy5jdXJyZW50Q29sb3IgPSAodGhpcy5jb2xvciBhcyBGdW5jdGlvbikodGhpcy5wZXJjZW50KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0TGV2ZWxDb2xvcihwZXJjZW50OiBYTnVtYmVyKSB7XHJcbiAgICBsZXQgY29sb3JzID0gKHRoaXMuY29sb3IgYXMgWFByb2dyZXNzQ29sb3JOb2RlW10pLnNvcnQoKGEsIGIpID0+IGEucGVyY2VudCAtIGIucGVyY2VudCk7XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IGNvbG9ycy5sZW5ndGg7IGkrKykge1xyXG4gICAgICBpZiAoY29sb3JzW2ldLnBlcmNlbnQgPiBOdW1iZXIocGVyY2VudCkpIHtcclxuICAgICAgICByZXR1cm4gY29sb3JzW2ldLmNvbG9yO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY29sb3JzW2NvbG9ycy5sZW5ndGggLSAxXS5jb2xvcjtcclxuICB9XHJcblxyXG4gIHNldEdyYWRpZW50KCkge1xyXG4gICAgaWYgKHRoaXMuc3Vic2VjdGlvbikgcmV0dXJuO1xyXG4gICAgaWYgKFhJc0VtcHR5KHRoaXMuZ3JhZGllbnQpKSB7XHJcbiAgICAgIHRoaXMubGluZWFyR3JhZGllbnQgPSAnJztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGNvbnN0IHsgZnJvbSwgdG8sIGRpcmVjdGlvbiA9ICd0byByaWdodCcsIC4uLnBlcmNlbnRzIH0gPSB0aGlzLmdyYWRpZW50IHx8IHt9O1xyXG4gICAgICBpZiAoT2JqZWN0LmtleXMocGVyY2VudHMpLmxlbmd0aCAhPT0gMCkge1xyXG4gICAgICAgIHRoaXMubGluZWFyR3JhZGllbnQgPSBgbGluZWFyLWdyYWRpZW50KCR7ZGlyZWN0aW9ufSwgJHt0aGlzLnNvcnRHcmFkaWVudChcclxuICAgICAgICAgIHBlcmNlbnRzIGFzIHsgW3BlcmNlbnQ6IHN0cmluZ106IHN0cmluZyB9XHJcbiAgICAgICAgKS5tYXAoKHsga2V5LCB2YWx1ZSB9KSA9PiBgJHt2YWx1ZX0gJHtrZXl9JWApfSlgO1xyXG4gICAgICAgIHJldHVybjtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmxpbmVhckdyYWRpZW50ID0gYGxpbmVhci1ncmFkaWVudCgke2RpcmVjdGlvbn0sICR7ZnJvbX0sICR7dG99KWA7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzb3J0R3JhZGllbnQocGVyY2VudHM6IHsgW3BlcmNlbnQ6IHN0cmluZ106IHN0cmluZyB9KSB7XHJcbiAgICBsZXQgYXJyOiB7IGtleTogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH1bXSA9IFtdO1xyXG4gICAgT2JqZWN0LmtleXMocGVyY2VudHMpLmZvckVhY2goKGtleSkgPT4ge1xyXG4gICAgICBjb25zdCB2YWx1ZSA9IHBlcmNlbnRzW2tleV07XHJcbiAgICAgIGNvbnN0IG51bUtleSA9ICtrZXkucmVwbGFjZSgnJScsICcnKTtcclxuICAgICAgaWYgKCFpc05hTihudW1LZXkpKSB7XHJcbiAgICAgICAgYXJyLnB1c2goeyBrZXk6IG51bUtleSwgdmFsdWUgfSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gICAgcmV0dXJuIGFyci5zb3J0KChhLCBiKSA9PiBhLmtleSAtIGIua2V5KTtcclxuICB9XHJcblxyXG4gIHNldFN1YkxpbmVhckdyYWRpZW50KCkge1xyXG4gICAgbGV0IGNvbG9ycyA9IHRoaXMuY29sb3IgYXMgWFByb2dyZXNzQ29sb3JOb2RlW107XHJcbiAgICBpZiAoIWNvbG9ycyB8fCBjb2xvcnMubGVuZ3RoIDw9IDApIHtcclxuICAgICAgdGhpcy5zdWJMaW5lYXJHcmFkaWVudCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsIHZhcigtLXgtcHJpbWFyeSkgMCUsIHZhcigtLXgtcHJpbWFyeSkgMTAwJSlgO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9IGVsc2UgaWYgKGNvbG9ycy5sZW5ndGggPT09IDEpIHtcclxuICAgICAgY29sb3JzLnB1c2goeyBwZXJjZW50OiAxMDAsIGNvbG9yOiAndmFyKC0teC1wcmltYXJ5KScgfSk7XHJcbiAgICB9XHJcbiAgICBjb2xvcnMgPSBjb2xvcnMuc29ydCgoYSwgYikgPT4gYS5wZXJjZW50IC0gYi5wZXJjZW50KTtcclxuICAgIGxldCBsZ3M6IHN0cmluZ1tdID0gW107XHJcbiAgICBjb2xvcnMucmVkdWNlKChhLCBiLCBpbmRleCkgPT4ge1xyXG4gICAgICBpZiAoaW5kZXggPT09IDEgJiYgYS5wZXJjZW50ID4gMCkge1xyXG4gICAgICAgIGxncy5wdXNoKGAke2EuY29sb3J9IDAlLCAke2EuY29sb3J9ICR7YS5wZXJjZW50fSVgKTtcclxuICAgICAgfVxyXG4gICAgICBsZ3MucHVzaChgJHtiLmNvbG9yfSAke2EucGVyY2VudH0lLCAke2IuY29sb3J9ICR7Yi5wZXJjZW50fSVgKTtcclxuICAgICAgaWYgKGluZGV4ID09PSBjb2xvcnMubGVuZ3RoIC0gMSAmJiBiLnBlcmNlbnQgPCAxMDApIHtcclxuICAgICAgICBsZ3MucHVzaChgdmFyKC0teC1wcmltYXJ5KSAke2IucGVyY2VudH0lLCB2YXIoLS14LXByaW1hcnkpIDEwMCVgKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gYjtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zdWJMaW5lYXJHcmFkaWVudCA9IGBsaW5lYXItZ3JhZGllbnQodG8gcmlnaHQsJHtsZ3Muam9pbignLCcpfSlgO1xyXG4gIH1cclxuXHJcbiAgc2V0U3RlcHMoKSB7XHJcbiAgICBpZiAoWElzRW1wdHkodGhpcy5zdGVwcykpIHtcclxuICAgICAgdGhpcy5zdGVwc0FycmF5ID0gW107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBjb25zdCBjcml0aWNhbCA9IE1hdGguY2VpbCgoTnVtYmVyKHRoaXMucGVyY2VudCkgLyAxMDApICogdGhpcy5zdGVwcyEpO1xyXG4gICAgICB0aGlzLnN0ZXBzQXJyYXkgPSBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLnN0ZXBzIGFzIG51bWJlciB9KS5tYXAoKF8sIGluZGV4KSA9PiBpbmRleCArIDEgPD0gY3JpdGljYWwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0VHlwZSgpIHtcclxuICAgIGlmICh0aGlzLnR5cGUgPT09ICdjaXJjbGUnKSB7XHJcbiAgICAgIHRoaXMuc2V0Q2lyY2xlQ2xpcFBhdGgoKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnZGFzaGJvYXJkJykge1xyXG4gICAgICB0aGlzLnNldERhc2hib2FyZENsaXBQYXRoKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBjaXJjbGUg5Lit55qEIDEwMCUg562J5LqOIGNsaXAtcGF0aCDkuK3nmoQgNDAwJVxyXG4gICAqL1xyXG4gIHNldENpcmNsZUNsaXBQYXRoKCkge1xyXG4gICAgbGV0IHZhbHVlID0gTnVtYmVyKHRoaXMucGVyY2VudCkgKiA0O1xyXG4gICAgbGV0IGsxID0gJ3BvbHlnb24oNTAlIDUwJSw1MCUgMCUsJztcclxuICAgIGxldCBrMiA9IGsxICsgJzEwMCUgMCUsJztcclxuICAgIGxldCBrMyA9IGsyICsgJzEwMCUgMTAwJSwnO1xyXG4gICAgbGV0IGs0ID0gazMgKyAnMCUgMTAwJSwnO1xyXG4gICAgbGV0IGs1ID0gazQgKyAnMCUgMCUsJztcclxuICAgIGlmICh2YWx1ZSA8PSA1MCkge1xyXG4gICAgICB2YWx1ZSArPSA1MDtcclxuICAgICAgdGhpcy5jaXJjbGVDbGlwUGF0aCA9IGAke2sxfSR7dmFsdWV9JSAwJSlgO1xyXG4gICAgfSBlbHNlIGlmICh2YWx1ZSA+IDUwICYmIHZhbHVlIDw9IDE1MCkge1xyXG4gICAgICB2YWx1ZSAtPSA1MDtcclxuICAgICAgdGhpcy5jaXJjbGVDbGlwUGF0aCA9IGAke2syfTEwMCUgJHt2YWx1ZX0lKWA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbHVlID4gMTUwICYmIHZhbHVlIDw9IDI1MCkge1xyXG4gICAgICB2YWx1ZSA9IDI1MCAtIHZhbHVlO1xyXG4gICAgICB0aGlzLmNpcmNsZUNsaXBQYXRoID0gYCR7azN9JHt2YWx1ZX0lIDEwMCUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPiAyNTAgJiYgdmFsdWUgPD0gMzUwKSB7XHJcbiAgICAgIHZhbHVlID0gMzUwIC0gdmFsdWU7XHJcbiAgICAgIHRoaXMuY2lyY2xlQ2xpcFBhdGggPSBgJHtrNH0wJSAke3ZhbHVlfSUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsdWUgPiAzNTAgJiYgdmFsdWUgPD0gNDAwKSB7XHJcbiAgICAgIHZhbHVlIC09IDM1MDtcclxuICAgICAgdGhpcy5jaXJjbGVDbGlwUGF0aCA9IGAke2s1fSR7dmFsdWV9JSAwJSlgO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICpcclxuICAgKiA5MCBwb2x5Z29uKDUwJSA1MCUsIDAlIDEwMCUsIDAlIDAlLCAxMDAlIDAlLCAxMDAlIDEwMCUpO1xyXG4gICAqIDE4MCBwb2x5Z29uKDUwJSA1MCUsIDAlIDUwJSwgMCUgMCUsIDEwMCUgMCUsIDEwMCUgNTAlKTtcclxuICAgKiAyNzAgcG9seWdvbig1MCUgNTAlLCAwJSAwJSwgMTAwJSAwJSk7XHJcbiAgICovXHJcbiAgc2V0RGFzaGJvYXJkQ2xpcFBhdGgoKSB7XHJcbiAgICBsZXQgcmFpbFZhbHVlID0gKE51bWJlcih0aGlzLm5vdGNoQW5nbGUpIC8gMzYwKSAqIDUwICogNDtcclxuICAgIGxldCBrMSA9IGBwb2x5Z29uKDUwJSA1MCUsYDtcclxuICAgIGxldCBzdGFydCA9ICcnO1xyXG4gICAgbGV0IHBlciA9IDA7XHJcbiAgICBpZiAocmFpbFZhbHVlIDw9IDUwKSB7XHJcbiAgICAgIHBlciA9IDUwIC0gcmFpbFZhbHVlO1xyXG4gICAgICBzdGFydCA9IGAke2sxfSAke3Blcn0lIDEwMCVgO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZFJhaWxDbGlwUGF0aCA9IGAke3N0YXJ0fSwgMCUgMTAwJSwgMCUgMCUsIDEwMCUgMCUsIDEwMCUgMTAwJSwgJHsxMDAgLSBwZXJ9JSAxMDAlKWA7XHJcbiAgICB9IGVsc2UgaWYgKHJhaWxWYWx1ZSA+IDUwICYmIHJhaWxWYWx1ZSA8PSAxNTApIHtcclxuICAgICAgcGVyID0gMTUwIC0gcmFpbFZhbHVlO1xyXG4gICAgICBzdGFydCA9IGAke2sxfSAwJSAke3Blcn0lYDtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRSYWlsQ2xpcFBhdGggPSBgJHtzdGFydH0sIDAlIDAlLCAxMDAlIDAlLCAxMDAlICR7cGVyfSUpYDtcclxuICAgIH0gZWxzZSBpZiAocmFpbFZhbHVlID4gMTUwICYmIHJhaWxWYWx1ZSA8PSAyNTApIHtcclxuICAgICAgcGVyID0gcmFpbFZhbHVlIC0gMTUwO1xyXG4gICAgICBzdGFydCA9IGAke2sxfSAke3Blcn0lIDAlYDtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRSYWlsQ2xpcFBhdGggPSBgJHtzdGFydH0sICR7MTAwIC0gcGVyfSUgMCUpYDtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLnNldENpcmNsZUNsaXBQYXRoVmFsdWUoc3RhcnQsIHJhaWxWYWx1ZSk7XHJcbiAgfVxyXG5cclxuICBzZXRDaXJjbGVDbGlwUGF0aFZhbHVlKHN0YXJ0OiBzdHJpbmcsIHJhaWxWYWx1ZTogbnVtYmVyKSB7XHJcbiAgICBsZXQgdmFsdWUgPSAoKDQwMCAtIHJhaWxWYWx1ZSAqIDIpIC8gMTAwKSAqIE51bWJlcih0aGlzLnBlcmNlbnQpO1xyXG4gICAgbGV0IHZhbCA9IHZhbHVlICsgcmFpbFZhbHVlO1xyXG4gICAgaWYgKHZhbCA8PSA1MCkge1xyXG4gICAgICB2YWwgPSA1MCAtIHZhbDtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRDbGlwUGF0aCA9IGAke3N0YXJ0fSwgJHt2YWx9JSAxMDAlKWA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbCA+IDUwICYmIHZhbCA8PSAxNTApIHtcclxuICAgICAgdmFsID0gMTUwIC0gdmFsO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZENsaXBQYXRoID0gYCR7c3RhcnR9LCAwJSAxMDAlLCAwJSAke3ZhbH0lKWA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbCA+IDE1MCAmJiB2YWwgPD0gMjUwKSB7XHJcbiAgICAgIHZhbCA9IHZhbCAtIDE1MDtcclxuICAgICAgdGhpcy5kYXNoYm9hcmRDbGlwUGF0aCA9IGAke3N0YXJ0fSwgMCUgMTAwJSwgMCUgMCUsICR7dmFsfSUgMCUpYDtcclxuICAgIH0gZWxzZSBpZiAodmFsID4gMjUwICYmIHZhbCA8PSAzNTApIHtcclxuICAgICAgdmFsID0gdmFsIC0gMjUwO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZENsaXBQYXRoID0gYCR7c3RhcnR9LCAwJSAxMDAlLCAwJSAwJSwgMTAwJSAwJSwgMTAwJSAke3ZhbH0lKWA7XHJcbiAgICB9IGVsc2UgaWYgKHZhbCA+IDM1MCAmJiB2YWwgPD0gNDAwKSB7XHJcbiAgICAgIHZhbCA9IDEwMCAtICh2YWwgLSAzNTApO1xyXG4gICAgICB0aGlzLmRhc2hib2FyZENsaXBQYXRoID0gYCR7c3RhcnR9LCAwJSAxMDAlLCAwJSAwJSwgMTAwJSAwJSwgMTAwJSAxMDAlLCAke3ZhbH0lIDEwMCUpYDtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uRm9ybWF0KHBlcmNlbnQ6IFhOdW1iZXIpIHtcclxuICAgIHJldHVybiB0aGlzLmZvcm1hdCAmJiB0aGlzLmZvcm1hdChwZXJjZW50KTtcclxuICB9XHJcbn1cclxuIiwiPGRpdlxyXG4gIGNsYXNzPVwieC1wcm9ncmVzc1wiXHJcbiAgW25nQ2xhc3NdPVwiY2xhc3NNYXBcIlxyXG4gIFtjbGFzcy54LXByb2dyZXNzLXN0ZXBzXT1cInN0ZXBzQXJyYXkubGVuZ3RoID4gMFwiXHJcbiAgW2NsYXNzLngtcHJvZ3Jlc3Mtc3RlcHMtZmxleF09XCJzdGVwRmxleFwiXHJcbiAgW25nU3dpdGNoXT1cInR5cGVcIlxyXG4+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2NpcmNsZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjaXJjbGVUcGxcIj4gPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2Rhc2hib2FyZCdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXNoYm9hcmRUcGxcIj4gPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImxpbmVUcGxcIj4gPC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNsaW5lVHBsPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwc0FycmF5Lmxlbmd0aCA9PT0gMFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRyYWNrVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBzQXJyYXkubGVuZ3RoID4gMFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInN0ZXBzVHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImluZm8gJiYgIWluc2lkZVwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY2lyY2xlVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXByb2dyZXNzLXJpbmdcIiBbc3R5bGUud2lkdGhdPVwic2l6ZVwiIFtzdHlsZS5oZWlnaHRdPVwic2l6ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZy1yYWlsXCIgW3N0eWxlLmJvcmRlci13aWR0aF09XCJ0aGlja25lc3NcIj48L2Rpdj5cclxuICAgIDxkaXZcclxuICAgICAgY2xhc3M9XCJ4LXByb2dyZXNzLXJpbmctYmdcIlxyXG4gICAgICBbc3R5bGUuY2xpcC1wYXRoXT1cImNpcmNsZUNsaXBQYXRoXCJcclxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY3VycmVudENvbG9yXCJcclxuICAgICAgW3N0eWxlLmJvcmRlci13aWR0aF09XCJ0aGlja25lc3NcIlxyXG4gICAgPjwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRleHRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGFzaGJvYXJkVHBsPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXByb2dyZXNzLXJpbmdcIiBbc3R5bGUud2lkdGhdPVwic2l6ZVwiIFtzdHlsZS5oZWlnaHRdPVwic2l6ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZy1yYWlsXCIgW3N0eWxlLmNsaXAtcGF0aF09XCJkYXNoYm9hcmRSYWlsQ2xpcFBhdGhcIiBbc3R5bGUuYm9yZGVyLXdpZHRoXT1cInRoaWNrbmVzc1wiPjwvZGl2PlxyXG4gICAgPGRpdlxyXG4gICAgICBjbGFzcz1cIngtcHJvZ3Jlc3MtcmluZy1iZ1wiXHJcbiAgICAgIFtzdHlsZS5jbGlwLXBhdGhdPVwiZGFzaGJvYXJkQ2xpcFBhdGhcIlxyXG4gICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICBbc3R5bGUuYm9yZGVyLXdpZHRoXT1cInRoaWNrbmVzc1wiXHJcbiAgICA+PC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidGV4dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICN0cmFja1RwbD5cclxuICA8ZGl2IGNsYXNzPVwieC1wcm9ncmVzcy10cmFja1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtcHJvZ3Jlc3MtcmFpbFwiIFtjbGFzcy54LXByb2dyZXNzLW1hc2tdPVwic3Vic2VjdGlvblwiIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cInN1YnNlY3Rpb24gPyBzdWJMaW5lYXJHcmFkaWVudCA6ICdub25lJ1wiPlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgY2xhc3M9XCJ4LXByb2dyZXNzLWJnXCJcclxuICAgICAgICBbc3R5bGUud2lkdGguJV09XCJwZXJjZW50XCJcclxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCJjdXJyZW50Q29sb3JcIlxyXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWltYWdlXT1cImxpbmVhckdyYWRpZW50XCJcclxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLmxpbmUtaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgID5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiaW5mbyAmJiBpbnNpZGVcIj5cclxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0ZXh0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8ZGl2XHJcbiAgICAgICAgKm5nSWY9XCJzdWJzZWN0aW9uXCJcclxuICAgICAgICBjbGFzcz1cIngtcHJvZ3Jlc3MtYmctbWFza1wiXHJcbiAgICAgICAgW3N0eWxlLndpZHRoLiVdPVwibWFza1dpZHRoXCJcclxuICAgICAgICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgICAgW3N0eWxlLmxpbmUtaGVpZ2h0XT1cImhlaWdodFwiXHJcbiAgICAgID48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNzdGVwc1RwbD5cclxuICA8ZGl2XHJcbiAgICAqbmdGb3I9XCJsZXQgc3RlcCBvZiBzdGVwc0FycmF5XCJcclxuICAgIGNsYXNzPVwieC1wcm9ncmVzcy1zdGVwXCJcclxuICAgIFtjbGFzcy54LXByb2dyZXNzLXN0ZXAtYWN0aXZlXT1cInN0ZXBcIlxyXG4gICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiY3VycmVudENvbG9yXCJcclxuICAgIFtzdHlsZS53aWR0aF09XCJzdGVwV2lkdGhcIlxyXG4gICAgW3N0eWxlLmZsZXhdPVwic3RlcEZsZXggPyAxIDogJ25vbmUnXCJcclxuICAgIFtzdHlsZS5oZWlnaHRdPVwiaGVpZ2h0XCJcclxuICAgIFtzdHlsZS5saW5lLWhlaWdodF09XCJoZWlnaHRcIlxyXG4gID48L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjdGV4dFRwbD5cclxuICA8c3BhbiBjbGFzcz1cIngtcHJvZ3Jlc3MtdGV4dFwiIFtuZ1N3aXRjaF09XCJzdGF0dXNcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidzdWNjZXNzJ1wiPlxyXG4gICAgICA8eC1pY29uIHR5cGU9XCJmdG8tY2hlY2stY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidleGNlcHRpb24nXCI+XHJcbiAgICAgIDx4LWljb24gdHlwZT1cImZ0by14LWNpcmNsZVwiPjwveC1pY29uPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2FybmluZydcIj5cclxuICAgICAgPHgtaWNvbiB0eXBlPVwiZnRvLWhlbHAtY2lyY2xlXCI+PC94LWljb24+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZvcm1hdDsgZWxzZSBkZWZhdWx0VGVtcFwiPnt7IG9uRm9ybWF0KHBlcmNlbnQpIH19PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdFRlbXA+e3sgcGVyY2VudCB9fSU8L25nLXRlbXBsYXRlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9zcGFuPlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
@@ -1,21 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { XProgressComponent } from './progress.component';
4
- import { FormsModule } from '@angular/forms';
5
- import { XIconModule } from '@ng-nest/ui/icon';
6
- import { XProgressProperty } from './progress.property';
7
3
  import * as i0 from "@angular/core";
8
4
  export class XProgressModule {
9
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, declarations: [XProgressComponent, XProgressProperty], imports: [CommonModule, FormsModule, XIconModule], exports: [XProgressComponent] }); }
11
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, imports: [CommonModule, FormsModule, XIconModule] }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, imports: [XProgressComponent], exports: [XProgressComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, imports: [XProgressComponent] }); }
12
8
  }
13
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XProgressModule, decorators: [{
14
10
  type: NgModule,
15
11
  args: [{
16
- declarations: [XProgressComponent, XProgressProperty],
17
12
  exports: [XProgressComponent],
18
- imports: [CommonModule, FormsModule, XIconModule]
13
+ imports: [XProgressComponent]
19
14
  }]
20
15
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzFELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBT3hELE1BQU0sT0FBTyxlQUFlO2lJQUFmLGVBQWU7a0lBQWYsZUFBZSxpQkFKWCxrQkFBa0IsRUFBRSxpQkFBaUIsYUFFMUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLGFBRHRDLGtCQUFrQjtrSUFHakIsZUFBZSxZQUZoQixZQUFZLEVBQUUsV0FBVyxFQUFFLFdBQVc7OzJGQUVyQyxlQUFlO2tCQUwzQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGtCQUFrQixFQUFFLGlCQUFpQixDQUFDO29CQUNyRCxPQUFPLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztvQkFDN0IsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxXQUFXLENBQUM7aUJBQ2xEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWFByb2dyZXNzQ29tcG9uZW50IH0gZnJvbSAnLi9wcm9ncmVzcy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgWEljb25Nb2R1bGUgfSBmcm9tICdAbmctbmVzdC91aS9pY29uJztcclxuaW1wb3J0IHsgWFByb2dyZXNzUHJvcGVydHkgfSBmcm9tICcuL3Byb2dyZXNzLnByb3BlcnR5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbWFByb2dyZXNzQ29tcG9uZW50LCBYUHJvZ3Jlc3NQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hQcm9ncmVzc0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgRm9ybXNNb2R1bGUsIFhJY29uTW9kdWxlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWFByb2dyZXNzTW9kdWxlIHt9XHJcbiJdfQ==
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvZ3Jlc3MubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvcHJvZ3Jlc3MvcHJvZ3Jlc3MubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBTTFELE1BQU0sT0FBTyxlQUFlO2lJQUFmLGVBQWU7a0lBQWYsZUFBZSxZQUZoQixrQkFBa0IsYUFEbEIsa0JBQWtCO2tJQUdqQixlQUFlLFlBRmhCLGtCQUFrQjs7MkZBRWpCLGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsa0JBQWtCLENBQUM7b0JBQzdCLE9BQU8sRUFBRSxDQUFDLGtCQUFrQixDQUFDO2lCQUM5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhQcm9ncmVzc0NvbXBvbmVudCB9IGZyb20gJy4vcHJvZ3Jlc3MuY29tcG9uZW50JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZXhwb3J0czogW1hQcm9ncmVzc0NvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW1hQcm9ncmVzc0NvbXBvbmVudF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhQcm9ncmVzc01vZHVsZSB7fVxyXG4iXX0=