@ng-nest/ui 17.0.1 → 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 (659) 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 +17 -19
  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 +64 -64
  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/index.css +1 -1
  611. package/style/params/colors.scss +1 -1
  612. package/switch/switch.component.d.ts +6 -7
  613. package/switch/switch.module.d.ts +1 -7
  614. package/table/table-body.component.d.ts +1 -1
  615. package/table/table-foot.component.d.ts +3 -6
  616. package/table/table-head.component.d.ts +5 -7
  617. package/table/table.component.d.ts +1 -1
  618. package/table/table.module.d.ts +4 -17
  619. package/tabs/tab-content.component.d.ts +6 -6
  620. package/tabs/tab-link.directive.d.ts +2 -2
  621. package/tabs/tab.component.d.ts +2 -3
  622. package/tabs/tabs.component.d.ts +8 -9
  623. package/tabs/tabs.module.d.ts +3 -9
  624. package/tag/tag.component.d.ts +4 -8
  625. package/tag/tag.module.d.ts +1 -5
  626. package/text-retract/text-retract.component.d.ts +6 -10
  627. package/text-retract/text-retract.module.d.ts +1 -6
  628. package/textarea/textarea.component.d.ts +5 -7
  629. package/textarea/textarea.module.d.ts +1 -6
  630. package/theme/theme.component.d.ts +8 -9
  631. package/theme/theme.module.d.ts +1 -10
  632. package/time-ago/time-ago.module.d.ts +1 -1
  633. package/time-ago/time-ago.pipe.d.ts +6 -9
  634. package/time-picker/time-picker-frame.component.d.ts +5 -6
  635. package/time-picker/time-picker-portal.component.d.ts +5 -7
  636. package/time-picker/time-picker.component.d.ts +14 -16
  637. package/time-picker/time-picker.module.d.ts +2 -13
  638. package/time-range/time-range.module.d.ts +1 -1
  639. package/time-range/time-range.pipe.d.ts +1 -1
  640. package/timeline/timeline.component.d.ts +5 -8
  641. package/timeline/timeline.module.d.ts +1 -7
  642. package/tooltip/tooltip-portal.component.d.ts +4 -5
  643. package/tooltip/tooltip.directive.d.ts +8 -9
  644. package/tooltip/tooltip.module.d.ts +1 -6
  645. package/transfer/transfer.component.d.ts +6 -9
  646. package/transfer/transfer.module.d.ts +1 -15
  647. package/tree/tree-node.component.d.ts +6 -10
  648. package/tree/tree.component.d.ts +1 -1
  649. package/tree/tree.module.d.ts +1 -11
  650. package/tree-file/tree-file.component.d.ts +5 -10
  651. package/tree-file/tree-file.module.d.ts +1 -9
  652. package/tree-select/tree-select-portal.component.d.ts +5 -7
  653. package/tree-select/tree-select.component.d.ts +14 -15
  654. package/tree-select/tree-select.module.d.ts +1 -14
  655. package/typography/typography.component.d.ts +3 -4
  656. package/typography/typography.module.d.ts +1 -3
  657. package/upload/upload-portal.component.d.ts +5 -7
  658. package/upload/upload.component.d.ts +12 -15
  659. package/upload/upload.module.d.ts +1 -14
@@ -1,19 +1,19 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';
2
2
  import { XCrumbPrefix, XCrumbProperty } from './crumb.property';
3
- import { XIsChange, XSetData } from '@ng-nest/ui/core';
3
+ import { XIsChange, XSetData, XConfigService } from '@ng-nest/ui/core';
4
4
  import { Subject } from 'rxjs';
5
+ import { XLinkComponent } from '@ng-nest/ui/link';
6
+ import { XOutletDirective } from '@ng-nest/ui/outlet';
7
+ import { CommonModule } from '@angular/common';
5
8
  import * as i0 from "@angular/core";
6
- import * as i1 from "@ng-nest/ui/core";
7
- import * as i2 from "@angular/common";
8
- import * as i3 from "@ng-nest/ui/link";
9
- import * as i4 from "@ng-nest/ui/outlet";
9
+ import * as i1 from "@angular/common";
10
10
  export class XCrumbComponent extends XCrumbProperty {
11
- constructor(cdr, configService) {
12
- super();
13
- this.cdr = cdr;
14
- this.configService = configService;
11
+ constructor() {
12
+ super(...arguments);
15
13
  this.nodes = [];
16
14
  this._unSubject = new Subject();
15
+ this.cdr = inject(ChangeDetectorRef);
16
+ this.configService = inject(XConfigService);
17
17
  }
18
18
  ngOnChanges(changes) {
19
19
  const { data } = changes;
@@ -42,11 +42,11 @@ export class XCrumbComponent extends XCrumbProperty {
42
42
  this.cdr.detectChanges();
43
43
  });
44
44
  }
45
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.XConfigService }], target: i0.ɵɵFactoryTarget.Component }); }
46
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XCrumbComponent, selector: "x-crumb", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ul #crumbs class=\"x-crumb\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\">\r\n <x-link\r\n [title]=\"nodeTpl ? node.label : ''\"\r\n [icon]=\"node.icon\"\r\n [disabled]=\"node.disabled || i === nodes.length - 1\"\r\n (click)=\"action('click', node, $event)\"\r\n >\r\n <ng-container *ngIf=\"!nodeTpl\">{{ node.label }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </x-link>\r\n <span class=\"x-crumb-separator\" *ngIf=\"i !== nodes.length - 1\">\r\n <ng-container *xOutlet=\"separator\">{{ separator }}</ng-container>\r\n </span>\r\n </li>\r\n</ul>\r\n", styles: [".x-crumb{margin:0;padding:0;list-style:none;display:flex}.x-crumb>li{padding:0;margin:0;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center}.x-crumb>li .x-link.x-link-disabled{color:var(--x-text-400);cursor:text}.x-crumb-separator{margin:0 .5rem;font-weight:600;color:var(--x-text-400)}\n"], dependencies: [{ 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: "component", type: i3.XLinkComponent, selector: "x-link" }, { kind: "directive", type: i4.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
45
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
46
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XCrumbComponent, isStandalone: true, selector: "x-crumb", usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<ul #crumbs class=\"x-crumb\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\">\r\n <x-link\r\n [title]=\"nodeTpl ? node.label : ''\"\r\n [icon]=\"node.icon\"\r\n [disabled]=\"node.disabled || i === nodes.length - 1\"\r\n (click)=\"action('click', node, $event)\"\r\n >\r\n <ng-container *ngIf=\"!nodeTpl\">{{ node.label }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </x-link>\r\n <span class=\"x-crumb-separator\" *ngIf=\"i !== nodes.length - 1\">\r\n <ng-container *xOutlet=\"separator\">{{ separator }}</ng-container>\r\n </span>\r\n </li>\r\n</ul>\r\n", styles: [".x-crumb{margin:0;padding:0;list-style:none;display:flex}.x-crumb>li{padding:0;margin:0;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center}.x-crumb>li .x-link.x-link-disabled{color:var(--x-text-400);cursor:text}.x-crumb-separator{margin:0 .5rem;font-weight:600;color:var(--x-text-400)}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
47
47
  }
48
48
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbComponent, decorators: [{
49
49
  type: Component,
50
- args: [{ selector: `${XCrumbPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul #crumbs class=\"x-crumb\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\">\r\n <x-link\r\n [title]=\"nodeTpl ? node.label : ''\"\r\n [icon]=\"node.icon\"\r\n [disabled]=\"node.disabled || i === nodes.length - 1\"\r\n (click)=\"action('click', node, $event)\"\r\n >\r\n <ng-container *ngIf=\"!nodeTpl\">{{ node.label }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </x-link>\r\n <span class=\"x-crumb-separator\" *ngIf=\"i !== nodes.length - 1\">\r\n <ng-container *xOutlet=\"separator\">{{ separator }}</ng-container>\r\n </span>\r\n </li>\r\n</ul>\r\n", styles: [".x-crumb{margin:0;padding:0;list-style:none;display:flex}.x-crumb>li{padding:0;margin:0;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center}.x-crumb>li .x-link.x-link-disabled{color:var(--x-text-400);cursor:text}.x-crumb-separator{margin:0 .5rem;font-weight:600;color:var(--x-text-400)}\n"] }]
51
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.XConfigService }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxZQUFZLEVBQWMsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDNUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQWtCLE1BQU0sa0JBQWtCLENBQUM7QUFDdkUsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBUy9CLE1BQU0sT0FBTyxlQUFnQixTQUFRLGNBQWM7SUFJakQsWUFBb0IsR0FBc0IsRUFBUyxhQUE2QjtRQUM5RSxLQUFLLEVBQUUsQ0FBQztRQURVLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWdCO1FBSGhGLFVBQUssR0FBaUIsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBSXpDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBc0I7UUFDaEMsTUFBTSxFQUFFLElBQUksRUFBRSxHQUFHLE9BQU8sQ0FBQztRQUN6QixTQUFTLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBWSxFQUFFLE1BQWtCLEVBQUUsS0FBWTtRQUNuRCxRQUFRLElBQUksRUFBRTtZQUNaLEtBQUssT0FBTztnQkFDVixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQztvQkFDbEIsS0FBSyxFQUFFLEtBQUs7b0JBQ1osSUFBSSxFQUFFLE1BQU07aUJBQ2IsQ0FBQyxDQUFDO2dCQUNILE1BQU07U0FDVDtJQUNILENBQUM7SUFFRCxXQUFXLENBQUMsTUFBYyxFQUFFLElBQWdCO1FBQzFDLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQztJQUNqQixDQUFDO0lBRU8sT0FBTztRQUNiLFFBQVEsQ0FBYSxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMvRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDM0IsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO2lJQXRDVSxlQUFlO3FIQUFmLGVBQWUsMkZDcEI1QiwwckJBZ0JBOzsyRkRJYSxlQUFlO2tCQVAzQixTQUFTOytCQUNFLEdBQUcsWUFBWSxFQUFFLGlCQUdaLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkRlc3Ryb3lcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENydW1iUHJlZml4LCBYQ3J1bWJOb2RlLCBYQ3J1bWJQcm9wZXJ0eSB9IGZyb20gJy4vY3J1bWIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNDaGFuZ2UsIFhTZXREYXRhLCBYQ29uZmlnU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WENydW1iUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NydW1iLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9zdHlsZS9pbmRleC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxyXG59KVxyXG5leHBvcnQgY2xhc3MgWENydW1iQ29tcG9uZW50IGV4dGVuZHMgWENydW1iUHJvcGVydHkgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XHJcbiAgbm9kZXM6IFhDcnVtYk5vZGVbXSA9IFtdO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyBkYXRhIH0gPSBjaGFuZ2VzO1xyXG4gICAgWElzQ2hhbmdlKGRhdGEpICYmIHRoaXMuc2V0RGF0YSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBhY3Rpb24odHlwZTogc3RyaW5nLCBvcHRpb246IFhDcnVtYk5vZGUsIGV2ZW50OiBFdmVudCkge1xyXG4gICAgc3dpdGNoICh0eXBlKSB7XHJcbiAgICAgIGNhc2UgJ2NsaWNrJzpcclxuICAgICAgICB0aGlzLm5vZGVDbGljay5lbWl0KHtcclxuICAgICAgICAgIGV2ZW50OiBldmVudCxcclxuICAgICAgICAgIG5vZGU6IG9wdGlvblxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdHJhY2tCeU5vZGUoX2luZGV4OiBudW1iZXIsIGl0ZW06IFhDcnVtYk5vZGUpIHtcclxuICAgIHJldHVybiBpdGVtLmlkO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBzZXREYXRhKCkge1xyXG4gICAgWFNldERhdGE8WENydW1iTm9kZT4odGhpcy5kYXRhLCB0aGlzLl91blN1YmplY3QpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLm5vZGVzID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjx1bCAjY3J1bWJzIGNsYXNzPVwieC1jcnVtYlwiPlxyXG4gIDxsaSAqbmdGb3I9XCJsZXQgbm9kZSBvZiBub2RlczsgaW5kZXggYXMgaTsgdHJhY2tCeTogdHJhY2tCeU5vZGVcIj5cclxuICAgIDx4LWxpbmtcclxuICAgICAgW3RpdGxlXT1cIm5vZGVUcGwgPyBub2RlLmxhYmVsIDogJydcIlxyXG4gICAgICBbaWNvbl09XCJub2RlLmljb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwibm9kZS5kaXNhYmxlZCB8fCBpID09PSBub2Rlcy5sZW5ndGggLSAxXCJcclxuICAgICAgKGNsaWNrKT1cImFjdGlvbignY2xpY2snLCBub2RlLCAkZXZlbnQpXCJcclxuICAgID5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFub2RlVHBsXCI+e3sgbm9kZS5sYWJlbCB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwibm9kZVRwbDsgY29udGV4dDogeyAkbm9kZTogbm9kZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICA8L3gtbGluaz5cclxuICAgIDxzcGFuIGNsYXNzPVwieC1jcnVtYi1zZXBhcmF0b3JcIiAqbmdJZj1cImkgIT09IG5vZGVzLmxlbmd0aCAtIDFcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cInNlcGFyYXRvclwiPnt7IHNlcGFyYXRvciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9zcGFuPlxyXG4gIDwvbGk+XHJcbjwvdWw+XHJcbiJdfQ==
50
+ args: [{ selector: `${XCrumbPrefix}`, standalone: true, imports: [CommonModule, XLinkComponent, XOutletDirective], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ul #crumbs class=\"x-crumb\">\r\n <li *ngFor=\"let node of nodes; index as i; trackBy: trackByNode\">\r\n <x-link\r\n [title]=\"nodeTpl ? node.label : ''\"\r\n [icon]=\"node.icon\"\r\n [disabled]=\"node.disabled || i === nodes.length - 1\"\r\n (click)=\"action('click', node, $event)\"\r\n >\r\n <ng-container *ngIf=\"!nodeTpl\">{{ node.label }}</ng-container>\r\n <ng-container *ngTemplateOutlet=\"nodeTpl; context: { $node: node }\"></ng-container>\r\n </x-link>\r\n <span class=\"x-crumb-separator\" *ngIf=\"i !== nodes.length - 1\">\r\n <ng-container *xOutlet=\"separator\">{{ separator }}</ng-container>\r\n </span>\r\n </li>\r\n</ul>\r\n", styles: [".x-crumb{margin:0;padding:0;list-style:none;display:flex}.x-crumb>li{padding:0;margin:0;white-space:nowrap;box-sizing:border-box;display:flex;align-items:center}.x-crumb>li .x-link.x-link-disabled{color:var(--x-text-400);cursor:text}.x-crumb-separator{margin:0 .5rem;font-weight:600;color:var(--x-text-400)}\n"] }]
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBR3ZCLGlCQUFpQixFQUVqQixNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBYyxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUM1RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUN2RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVcvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxjQUFjO0lBVG5EOztRQVVFLFVBQUssR0FBaUIsRUFBRSxDQUFDO1FBQ2pCLGVBQVUsR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO1FBQ2pDLFFBQUcsR0FBRyxNQUFNLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUN4QyxrQkFBYSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztLQWlDeEM7SUEvQkMsV0FBVyxDQUFDLE9BQXNCO1FBQ2hDLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDekIsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsTUFBTSxDQUFDLElBQVksRUFBRSxNQUFrQixFQUFFLEtBQVk7UUFDbkQsUUFBUSxJQUFJLEVBQUU7WUFDWixLQUFLLE9BQU87Z0JBQ1YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLEtBQUssRUFBRSxLQUFLO29CQUNaLElBQUksRUFBRSxNQUFNO2lCQUNiLENBQUMsQ0FBQztnQkFDSCxNQUFNO1NBQ1Q7SUFDSCxDQUFDO0lBRUQsV0FBVyxDQUFDLE1BQWMsRUFBRSxJQUFnQjtRQUMxQyxPQUFPLElBQUksQ0FBQyxFQUFFLENBQUM7SUFDakIsQ0FBQztJQUVPLE9BQU87UUFDYixRQUFRLENBQWEsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDL0QsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7WUFDZixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztpSUFwQ1UsZUFBZTtxSEFBZixlQUFlLCtHQzFCNUIsMHJCQWdCQSw4V0RJWSxZQUFZLHVhQUFFLGNBQWMsbURBQUUsZ0JBQWdCOzsyRkFNN0MsZUFBZTtrQkFUM0IsU0FBUzsrQkFDRSxHQUFHLFlBQVksRUFBRSxjQUNmLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsZ0JBQWdCLENBQUMsaUJBRzFDLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBWaWV3RW5jYXBzdWxhdGlvbixcclxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlcyxcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBPbkRlc3Ryb3ksXHJcbiAgaW5qZWN0XHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhDcnVtYlByZWZpeCwgWENydW1iTm9kZSwgWENydW1iUHJvcGVydHkgfSBmcm9tICcuL2NydW1iLnByb3BlcnR5JztcclxuaW1wb3J0IHsgWElzQ2hhbmdlLCBYU2V0RGF0YSwgWENvbmZpZ1NlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBYTGlua0NvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2xpbmsnO1xyXG5pbXBvcnQgeyBYT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiBgJHtYQ3J1bWJQcmVmaXh9YCxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFhMaW5rQ29tcG9uZW50LCBYT3V0bGV0RGlyZWN0aXZlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3J1bWIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3N0eWxlL2luZGV4LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ3J1bWJDb21wb25lbnQgZXh0ZW5kcyBYQ3J1bWJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25EZXN0cm95IHtcclxuICBub2RlczogWENydW1iTm9kZVtdID0gW107XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgY29uZmlnU2VydmljZSA9IGluamVjdChYQ29uZmlnU2VydmljZSk7XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGNvbnN0IHsgZGF0YSB9ID0gY2hhbmdlcztcclxuICAgIFhJc0NoYW5nZShkYXRhKSAmJiB0aGlzLnNldERhdGEoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgYWN0aW9uKHR5cGU6IHN0cmluZywgb3B0aW9uOiBYQ3J1bWJOb2RlLCBldmVudDogRXZlbnQpIHtcclxuICAgIHN3aXRjaCAodHlwZSkge1xyXG4gICAgICBjYXNlICdjbGljayc6XHJcbiAgICAgICAgdGhpcy5ub2RlQ2xpY2suZW1pdCh7XHJcbiAgICAgICAgICBldmVudDogZXZlbnQsXHJcbiAgICAgICAgICBub2RlOiBvcHRpb25cclxuICAgICAgICB9KTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHRyYWNrQnlOb2RlKF9pbmRleDogbnVtYmVyLCBpdGVtOiBYQ3J1bWJOb2RlKSB7XHJcbiAgICByZXR1cm4gaXRlbS5pZDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc2V0RGF0YSgpIHtcclxuICAgIFhTZXREYXRhPFhDcnVtYk5vZGU+KHRoaXMuZGF0YSwgdGhpcy5fdW5TdWJqZWN0KS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5ub2RlcyA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gIH1cclxufVxyXG4iLCI8dWwgI2NydW1icyBjbGFzcz1cIngtY3J1bWJcIj5cclxuICA8bGkgKm5nRm9yPVwibGV0IG5vZGUgb2Ygbm9kZXM7IGluZGV4IGFzIGk7IHRyYWNrQnk6IHRyYWNrQnlOb2RlXCI+XHJcbiAgICA8eC1saW5rXHJcbiAgICAgIFt0aXRsZV09XCJub2RlVHBsID8gbm9kZS5sYWJlbCA6ICcnXCJcclxuICAgICAgW2ljb25dPVwibm9kZS5pY29uXCJcclxuICAgICAgW2Rpc2FibGVkXT1cIm5vZGUuZGlzYWJsZWQgfHwgaSA9PT0gbm9kZXMubGVuZ3RoIC0gMVwiXHJcbiAgICAgIChjbGljayk9XCJhY3Rpb24oJ2NsaWNrJywgbm9kZSwgJGV2ZW50KVwiXHJcbiAgICA+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhbm9kZVRwbFwiPnt7IG5vZGUubGFiZWwgfX08L25nLWNvbnRhaW5lcj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm5vZGVUcGw7IGNvbnRleHQ6IHsgJG5vZGU6IG5vZGUgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgPC94LWxpbms+XHJcbiAgICA8c3BhbiBjbGFzcz1cIngtY3J1bWItc2VwYXJhdG9yXCIgKm5nSWY9XCJpICE9PSBub2Rlcy5sZW5ndGggLSAxXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJzZXBhcmF0b3JcIj57eyBzZXBhcmF0b3IgfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDwvc3Bhbj5cclxuICA8L2xpPlxyXG48L3VsPlxyXG4iXX0=
@@ -1,21 +1,16 @@
1
1
  import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
2
  import { XCrumbComponent } from './crumb.component';
4
- import { XLinkModule } from '@ng-nest/ui/link';
5
- import { XOutletModule } from '@ng-nest/ui/outlet';
6
- import { XCrumbProperty } from './crumb.property';
7
3
  import * as i0 from "@angular/core";
8
4
  export class XCrumbModule {
9
5
  /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
10
- /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, declarations: [XCrumbComponent, XCrumbProperty], imports: [CommonModule, XLinkModule, XOutletModule], exports: [XCrumbComponent] }); }
11
- /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, imports: [CommonModule, XLinkModule, XOutletModule] }); }
6
+ /** @nocollapse */ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, imports: [XCrumbComponent], exports: [XCrumbComponent] }); }
7
+ /** @nocollapse */ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, imports: [XCrumbComponent] }); }
12
8
  }
13
9
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XCrumbModule, decorators: [{
14
10
  type: NgModule,
15
11
  args: [{
16
- declarations: [XCrumbComponent, XCrumbProperty],
17
12
  exports: [XCrumbComponent],
18
- imports: [CommonModule, XLinkModule, XOutletModule]
13
+ imports: [XCrumbComponent]
19
14
  }]
20
15
  }] });
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFPbEQsTUFBTSxPQUFPLFlBQVk7aUlBQVosWUFBWTtrSUFBWixZQUFZLGlCQUpSLGVBQWUsRUFBRSxjQUFjLGFBRXBDLFlBQVksRUFBRSxXQUFXLEVBQUUsYUFBYSxhQUR4QyxlQUFlO2tJQUdkLFlBQVksWUFGYixZQUFZLEVBQUUsV0FBVyxFQUFFLGFBQWE7OzJGQUV2QyxZQUFZO2tCQUx4QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLGVBQWUsRUFBRSxjQUFjLENBQUM7b0JBQy9DLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztvQkFDMUIsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLFdBQVcsRUFBRSxhQUFhLENBQUM7aUJBQ3BEIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWENydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYTGlua01vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2xpbmsnO1xyXG5pbXBvcnQgeyBYT3V0bGV0TW9kdWxlIH0gZnJvbSAnQG5nLW5lc3QvdWkvb3V0bGV0JztcclxuaW1wb3J0IHsgWENydW1iUHJvcGVydHkgfSBmcm9tICcuL2NydW1iLnByb3BlcnR5JztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbWENydW1iQ29tcG9uZW50LCBYQ3J1bWJQcm9wZXJ0eV0sXHJcbiAgZXhwb3J0czogW1hDcnVtYkNvbXBvbmVudF0sXHJcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgWExpbmtNb2R1bGUsIFhPdXRsZXRNb2R1bGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ3J1bWJNb2R1bGUge31cclxuIl19
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1bWIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvY3J1bWIvY3J1bWIubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQU1wRCxNQUFNLE9BQU8sWUFBWTtpSUFBWixZQUFZO2tJQUFaLFlBQVksWUFGYixlQUFlLGFBRGYsZUFBZTtrSUFHZCxZQUFZLFlBRmIsZUFBZTs7MkZBRWQsWUFBWTtrQkFKeEIsUUFBUTttQkFBQztvQkFDUixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7b0JBQzFCLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQztpQkFDM0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ3J1bWJDb21wb25lbnQgfSBmcm9tICcuL2NydW1iLmNvbXBvbmVudCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gIGV4cG9ydHM6IFtYQ3J1bWJDb21wb25lbnRdLFxyXG4gIGltcG9ydHM6IFtYQ3J1bWJDb21wb25lbnRdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYQ3J1bWJNb2R1bGUge31cclxuIl19
@@ -1,21 +1,31 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChild } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, HostBinding, HostListener, ViewChild, inject } from '@angular/core';
2
2
  import { XDatePickerPortalPrefix } from './date-picker.property';
3
3
  import { XIsEmpty, XConnectBaseAnimation, XAddDays, XIsUndefined } from '@ng-nest/ui/core';
4
4
  import { Subject } from 'rxjs';
5
5
  import { takeUntil, map } from 'rxjs/operators';
6
- import { DatePipe, LowerCasePipe } from '@angular/common';
6
+ import { CommonModule, DatePipe, LowerCasePipe } from '@angular/common';
7
+ import { XI18nService } from '@ng-nest/ui/i18n';
8
+ import { XTimePickerModule } from '@ng-nest/ui/time-picker';
9
+ import { XPickerDateComponent } from './picker-date.component';
10
+ import { XPickerMonthComponent } from './picker-month.component';
11
+ import { XPickerQuarterComponent } from './picker-quarter.component';
12
+ import { XPickerYearComponent } from './picker-year.component';
13
+ import { XButtonComponent } from '@ng-nest/ui/button';
14
+ import { XLinkComponent } from '@ng-nest/ui/link';
15
+ import { XOutletDirective } from '@ng-nest/ui/outlet';
7
16
  import * as i0 from "@angular/core";
8
17
  import * as i1 from "@angular/common";
9
- import * as i2 from "@ng-nest/ui/i18n";
10
- import * as i3 from "@ng-nest/ui/time-picker";
11
- import * as i4 from "@ng-nest/ui/link";
12
- import * as i5 from "@ng-nest/ui/button";
13
- import * as i6 from "@ng-nest/ui/outlet";
14
- import * as i7 from "./picker-date.component";
15
- import * as i8 from "./picker-month.component";
16
- import * as i9 from "./picker-quarter.component";
17
- import * as i10 from "./picker-year.component";
18
+ import * as i2 from "@ng-nest/ui/time-picker";
18
19
  export class XDatePickerPortalComponent {
20
+ constructor() {
21
+ this.type = 'date';
22
+ this.display = new Date();
23
+ this.locale = {};
24
+ this.preset = [];
25
+ this._unSubject = new Subject();
26
+ this.cdr = inject(ChangeDetectorRef);
27
+ this.i18n = inject(XI18nService);
28
+ }
19
29
  done(event) {
20
30
  this.animating(false);
21
31
  event.toState === 'void' && this.destroyPortal();
@@ -39,17 +49,6 @@ export class XDatePickerPortalComponent {
39
49
  }
40
50
  return res;
41
51
  }
42
- constructor(datePipe, lowerCasePipe, cdr, i18n) {
43
- this.datePipe = datePipe;
44
- this.lowerCasePipe = lowerCasePipe;
45
- this.cdr = cdr;
46
- this.i18n = i18n;
47
- this.type = 'date';
48
- this.display = new Date();
49
- this.locale = {};
50
- this.preset = [];
51
- this._unSubject = new Subject();
52
- }
53
52
  ngOnInit() {
54
53
  this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
55
54
  this.value = x;
@@ -170,13 +169,23 @@ export class XDatePickerPortalComponent {
170
169
  this.model = new Date(date.getFullYear(), date.getMonth(), date.getDate(), time.getHours(), time.getMinutes(), time.getSeconds());
171
170
  return this.model;
172
171
  }
173
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDatePickerPortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
174
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XDatePickerPortalComponent, selector: "x-date-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], viewQueries: [{ propertyName: "timePickerFrame", first: true, predicate: ["timePickerFrame"], descendants: true }], ngImport: i0, template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ 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: "component", type: i3.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow", "disabledTime", "disabledTimeParam"], outputs: ["nodeEmit"] }, { kind: "component", type: i4.XLinkComponent, selector: "x-link" }, { kind: "component", type: i5.XButtonComponent, selector: "x-button" }, { kind: "directive", type: i6.XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }, { kind: "component", type: i7.XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: i8.XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: i9.XPickerQuarterComponent, selector: "x-picker-quarter" }, { kind: "component", type: i10.XPickerYearComponent, selector: "x-picker-year" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
172
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDatePickerPortalComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
173
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XDatePickerPortalComponent, isStandalone: true, selector: "x-date-picker-portal", host: { listeners: { "@x-connect-base-animation.done": "done($event)", "@x-connect-base-animation.start": "start($event)" }, properties: { "@x-connect-base-animation": "this.placement" } }, providers: [DatePipe, LowerCasePipe], viewQueries: [{ propertyName: "timePickerFrame", first: true, predicate: ["timePickerFrame"], descendants: true }], ngImport: i0, template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { 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: "pipe", type: i1.DatePipe, name: "date" }, { kind: "component", type: XPickerDateComponent, selector: "x-picker-date" }, { kind: "component", type: XPickerMonthComponent, selector: "x-picker-month" }, { kind: "component", type: XPickerQuarterComponent, selector: "x-picker-quarter" }, { kind: "component", type: XPickerYearComponent, selector: "x-picker-year" }, { kind: "ngmodule", type: XTimePickerModule }, { kind: "component", type: i2.XTimePickerFrameComponent, selector: "x-time-picker-frame", inputs: ["type", "value", "use12Hours", "hourStep", "minuteStep", "secondStep", "defaultNow", "disabledTime", "disabledTimeParam"], outputs: ["nodeEmit"] }, { kind: "component", type: XButtonComponent, selector: "x-button" }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "directive", type: XOutletDirective, selector: "[xOutlet]", inputs: ["xOutletContext", "xOutlet"] }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
175
174
  }
176
175
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XDatePickerPortalComponent, decorators: [{
177
176
  type: Component,
178
- args: [{ selector: `${XDatePickerPortalPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
179
- }], ctorParameters: () => [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XI18nService }], propDecorators: { placement: [{
177
+ args: [{ selector: `${XDatePickerPortalPrefix}`, standalone: true, imports: [
178
+ CommonModule,
179
+ XPickerDateComponent,
180
+ XPickerMonthComponent,
181
+ XPickerQuarterComponent,
182
+ XPickerYearComponent,
183
+ XTimePickerModule,
184
+ XButtonComponent,
185
+ XLinkComponent,
186
+ XOutletDirective
187
+ ], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, animations: [XConnectBaseAnimation], providers: [DatePipe, LowerCasePipe], template: "<div class=\"x-date-picker-portal {{ type }}\" [ngSwitch]=\"type\" (click)=\"inputCom.inputFocus()\">\r\n <ng-container *ngSwitchCase=\"'date'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'week'\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"monthChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'quarter'\">\r\n <x-picker-quarter\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"quarterChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-quarter>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year\r\n [display]=\"display\"\r\n [model]=\"model\"\r\n [(type)]=\"type\"\r\n (modelChange)=\"yearChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-year>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-time'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm:ss', timeType: 'time' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-hour'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH', timeType: 'hour' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'date-minute'\">\r\n <ng-container *ngTemplateOutlet=\"dateTimeHourMinuteTpl; context: { timeFormat: 'HH:mm', timeType: 'minute' }\"></ng-container>\r\n </ng-container>\r\n <ng-container *ngIf=\"isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n</div>\r\n\r\n<ng-template #dateTimeHourMinuteTpl let-timeFormat=\"timeFormat\" let-timeType=\"timeType\">\r\n <div class=\"x-date-picker-portal-content\">\r\n <div class=\"x-date-picker-portal-date\">\r\n <x-picker-date\r\n [display]=\"display\"\r\n [(type)]=\"type\"\r\n [model]=\"model\"\r\n (modelChange)=\"dateChange($event)\"\r\n [disabledDate]=\"disabledDate\"\r\n ></x-picker-date>\r\n </div>\r\n <div class=\"x-date-picker-portal-time\">\r\n <div class=\"x-date-picker-portal-time-label\">\r\n {{ time | date : timeFormat }}\r\n </div>\r\n <x-time-picker-frame\r\n #timePickerFrame\r\n [type]=\"timeType\"\r\n [value]=\"time\"\r\n (nodeEmit)=\"selectTime($event)\"\r\n [disabledTime]=\"disabledTime\"\r\n [defaultNow]=\"false\"\r\n ></x-time-picker-frame>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <div *ngIf=\"extraFooter\" class=\"x-date-picker-portal-extra-footer\">\r\n <ng-container *xOutlet=\"extraFooter\">{{ extraFooter }}</ng-container>\r\n </div>\r\n </ng-container>\r\n <div class=\"x-date-picker-portal-footer\">\r\n <div class=\"x-date-picker-portal-footer-left\">\r\n <ng-container *ngIf=\"!isDatePicker\">\r\n <ng-container *ngTemplateOutlet=\"presetTpl\"></ng-container>\r\n </ng-container>\r\n </div>\r\n <x-button type=\"primary\" (click)=\"!sureDisabled && nodeEmit(model)\" size=\"small\" [disabled]=\"sureDisabled\">{{ locale.sure }}</x-button>\r\n </div>\r\n</ng-template>\r\n\r\n<ng-template #presetTpl>\r\n <div *ngIf=\"preset\" class=\"x-date-picker-portal-preset\">\r\n <ng-container *ngFor=\"let item of preset\">\r\n <x-link *ngIf=\"item.id === 'yesterday'\" (click)=\"onYesterday()\">{{ locale.yesterday }}</x-link>\r\n <x-link *ngIf=\"item.id === 'today'\" (click)=\"onToday()\">{{ locale.today }}</x-link>\r\n <x-link *ngIf=\"item.id === 'tomorrow'\" (click)=\"onTomorrow()\">{{ locale.tomorrow }}</x-link>\r\n <x-link *ngIf=\"item.func\" (click)=\"onPresetFunc(item)\">{{ item.label }}</x-link>\r\n </ng-container>\r\n </div>\r\n</ng-template>\r\n", styles: ["@charset \"UTF-8\";.x-date-picker-portal{margin:.0625rem 0;font-size:var(--x-font-size);color:var(--x-text);border:var(--x-border-width) var(--x-border-style) var(--x-border);border-radius:var(--x-border-radius);box-shadow:var(--x-box-shadow) var(--x-box-shadow-light-color);background-color:var(--x-background);width:16rem;display:flex;flex-direction:column}.x-date-picker-portal.week{width:18.125rem}.x-date-picker-portal.week .x-picker-date-body .x-picker-date-item:not(.x-date-in-range):not(.x-date-active) .x-date-text{background-color:transparent}.x-date-picker-portal.week .x-picker-date-body tbody tr:not(.x-date-week-active):hover .x-picker-date-item:not(.x-date-in-range){background-color:var(--x-background-a200);border-radius:var(--x-border-radius)}.x-date-picker-portal.date-time{width:27rem}.x-date-picker-portal.date-hour{width:19.75rem}.x-date-picker-portal.date-minute{width:23.375rem}.x-date-picker-portal-preset{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;border-top:var(--x-border-width) solid var(--x-border)}.x-date-picker-portal-preset>x-link{padding:.25rem}.x-date-picker-portal-preset>x-link:not(:first-child){margin-left:1rem}.x-date-picker-portal-body{padding:.4rem}.x-date-picker-portal-content{display:flex}.x-date-picker-portal-footer{display:flex;align-items:center;justify-content:space-between;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-footer .x-date-picker-portal-preset{border-top:none}.x-date-picker-portal-footer .x-date-picker-portal-preset>x-link{padding:0 .25rem}.x-date-picker-portal-extra-footer{display:flex;align-items:center;border-top:var(--x-border-width) var(--x-border-style) var(--x-border);padding:.5rem}.x-date-picker-portal-date{flex:1}.x-date-picker-portal-time{display:flex;flex-direction:column;border-left:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time-label{display:flex;align-items:center;justify-content:center;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) var(--x-border-style) var(--x-border)}.x-date-picker-portal-time .x-time-picker-frame{border-width:0;box-shadow:none;margin:0}\n"] }]
188
+ }], propDecorators: { placement: [{
180
189
  type: HostBinding,
181
190
  args: ['@x-connect-base-animation']
182
191
  }], done: [{
@@ -189,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
189
198
  type: ViewChild,
190
199
  args: ['timePickerFrame']
191
200
  }] } });
192
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCx1QkFBdUIsRUFHeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFzQixRQUFRLEVBQWEsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQWMxRCxNQUFNLE9BQU8sMEJBQTBCO0lBRXVCLElBQUksQ0FBQyxLQUF1QjtRQUN0RixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3RCLEtBQUssQ0FBQyxPQUFPLEtBQUssTUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBQzRELEtBQUs7UUFDaEUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2QixDQUFDO0lBd0JELElBQUksWUFBWTtRQUNkLE9BQU8sQ0FBQyxNQUFNLEVBQUUsT0FB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LGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZERhdGUsXHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZFRpbWUsXHJcbiAgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXgsXHJcbiAgWERhdGVQaWNrZXJQcmVzZXQsXHJcbiAgWERhdGVQaWNrZXJUeXBlXHJcbn0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWEFkZERheXMsIFhUZW1wbGF0ZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RpbWVQaWNrZXJGcmFtZScpIHRpbWVQaWNrZXJGcmFtZT86IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQ7XHJcblxyXG4gIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICBtb2RlbCE6IERhdGU7XHJcbiAgdmFsdWU6IGFueTtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IChkYXRlOiBEYXRlLCBzdXJlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHRpbWUhOiBudW1iZXIgfCBudWxsO1xyXG4gIHByZXNldDogWERhdGVQaWNrZXJQcmVzZXRbXSA9IFtdO1xyXG4gIGV4dHJhRm9vdGVyPzogWFRlbXBsYXRlO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIGRpc2FibGVkRGF0ZSE6IFhEYXRlUGlja2VyRGlzYWJsZWREYXRlO1xyXG4gIGRpc2FibGVkVGltZSE6IFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lO1xyXG4gIHByaXZhdGUgX3R5cGUhOiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGlzRGF0ZVBpY2tlcigpIHtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VyZURpc2FibGVkKCkge1xyXG4gICAgbGV0IHJlcyA9IFhJc1VuZGVmaW5lZCh0aGlzLnRpbWUpO1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckZyYW1lICYmICFYSXNVbmRlZmluZWQodGhpcy50aW1lKSkge1xyXG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKHRoaXMudGltZSEpO1xyXG4gICAgICBjb25zdCBob3VycyA9IGR0LmdldEhvdXJzKCk7XHJcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGNvbnN0IHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ2hvdXJzJywgaG91cnMpIHx8XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBtaW51dGVzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdzZWNvbmRzJywgc2Vjb25kcylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICB0aGlzLnRpbWUgPSB0aGlzLm1vZGVsLmdldFRpbWUoKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIGlmIChbJ2RhdGUtdGltZScsICdkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLl90eXBlKSkge1xyXG4gICAgICBsZXQgdGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGlmIChbJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICB0aW1lLnNldFNlY29uZHMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgICB0aW1lLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnRpbWUpIHtcclxuICAgICAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsVGltZSh0aGlzLm1vZGVsLCBuZXcgRGF0ZSh0aGlzLnRpbWUhKSk7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICdxdWFydGVyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuX3R5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSAnbW9udGgnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2RheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShuZXcgRGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIG9uWWVzdGVyZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIC0xKSk7XHJcbiAgfVxyXG5cclxuICBvblRvbW9ycm93KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIDEpKTtcclxuICB9XHJcblxyXG4gIG9uUHJlc2V0RnVuYyhpdGVtOiBYRGF0ZVBpY2tlclByZXNldCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKGl0ZW0uZnVuYygpKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgaWYgKCF0aGlzLm1vZGVsKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBuZXcgRGF0ZSgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwsIHRpbWUpLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgdGltZS5nZXRIb3VycygpLCB0aW1lLmdldE1pbnV0ZXMoKSwgdGltZS5nZXRTZWNvbmRzKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbCB7eyB0eXBlIH19XCIgW25nU3dpdGNoXT1cInR5cGVcIiAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3dlZWsnXCI+XHJcbiAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRoJ1wiPlxyXG4gICAgPHgtcGlja2VyLW1vbnRoXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwibW9udGhDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLW1vbnRoPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidxdWFydGVyJ1wiPlxyXG4gICAgPHgtcGlja2VyLXF1YXJ0ZXJcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJxdWFydGVyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci1xdWFydGVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFyJ1wiPlxyXG4gICAgPHgtcGlja2VyLXllYXJcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJ5ZWFyQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci15ZWFyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLXRpbWUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbTpzcycsIHRpbWVUeXBlOiAndGltZScgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLWhvdXInXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISCcsIHRpbWVUeXBlOiAnaG91cicgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLW1pbnV0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tJywgdGltZVR5cGU6ICdtaW51dGUnIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRlUGlja2VyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZXh0cmFGb290ZXJcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXJcIj57eyBleHRyYUZvb3RlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXRlVGltZUhvdXJNaW51dGVUcGwgbGV0LXRpbWVGb3JtYXQ9XCJ0aW1lRm9ybWF0XCIgbGV0LXRpbWVUeXBlPVwidGltZVR5cGVcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWRhdGVcIj5cclxuICAgICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgICAgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtdGltZS1sYWJlbFwiPlxyXG4gICAgICAgIHt7IHRpbWUgfCBkYXRlIDogdGltZUZvcm1hdCB9fVxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtdGltZS1waWNrZXItZnJhbWVcclxuICAgICAgICAjdGltZVBpY2tlckZyYW1lXHJcbiAgICAgICAgW3R5cGVdPVwidGltZVR5cGVcIlxyXG4gICAgICAgIFt2YWx1ZV09XCJ0aW1lXCJcclxuICAgICAgICAobm9kZUVtaXQpPVwic2VsZWN0VGltZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWRUaW1lXT1cImRpc2FibGVkVGltZVwiXHJcbiAgICAgICAgW2RlZmF1bHROb3ddPVwiZmFsc2VcIlxyXG4gICAgICA+PC94LXRpbWUtcGlja2VyLWZyYW1lPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RhdGVQaWNrZXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJleHRyYUZvb3RlclwiIGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlclwiPnt7IGV4dHJhRm9vdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZm9vdGVyLWxlZnRcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFpc0RhdGVQaWNrZXJcIj5cclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1idXR0b24gdHlwZT1cInByaW1hcnlcIiAoY2xpY2spPVwiIXN1cmVEaXNhYmxlZCAmJiBub2RlRW1pdChtb2RlbClcIiBzaXplPVwic21hbGxcIiBbZGlzYWJsZWRdPVwic3VyZURpc2FibGVkXCI+e3sgbG9jYWxlLnN1cmUgfX08L3gtYnV0dG9uPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLXRlbXBsYXRlICNwcmVzZXRUcGw+XHJcbiAgPGRpdiAqbmdJZj1cInByZXNldFwiIGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtcHJlc2V0XCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIHByZXNldFwiPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3llc3RlcmRheSdcIiAoY2xpY2spPVwib25ZZXN0ZXJkYXkoKVwiPnt7IGxvY2FsZS55ZXN0ZXJkYXkgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uaWQgPT09ICd0b2RheSdcIiAoY2xpY2spPVwib25Ub2RheSgpXCI+e3sgbG9jYWxlLnRvZGF5IH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmlkID09PSAndG9tb3Jyb3cnXCIgKGNsaWNrKT1cIm9uVG9tb3Jyb3coKVwiPnt7IGxvY2FsZS50b21vcnJvdyB9fTwveC1saW5rPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5mdW5jXCIgKGNsaWNrKT1cIm9uUHJlc2V0RnVuYyhpdGVtKVwiPnt7IGl0ZW0ubGFiZWwgfX08L3gtbGluaz5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG4gIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPlxyXG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUlqQixXQUFXLEVBQ1gsWUFBWSxFQUNaLFNBQVMsRUFDVCxNQUFNLEVBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUdMLHVCQUF1QixFQUd4QixNQUFNLHdCQUF3QixDQUFDO0FBQ2hDLE9BQU8sRUFDTCxRQUFRLEVBQ1IscUJBQXFCLEVBRXJCLFFBQVEsRUFFUixZQUFZLEVBQ2IsTUFBTSxrQkFBa0IsQ0FBQztBQUMxQixPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFlBQVksRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBbUIsTUFBTSxrQkFBa0IsQ0FBQztBQUVqRSxPQUFPLEVBQTZCLGlCQUFpQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDL0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDckUsT0FBTyxFQUFFLG9C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Qywya0pBaUhBLDZzRURuRUksWUFBWSxzcEJBQ1osb0JBQW9CLDBEQUNwQixxQkFBcUIsMkRBQ3JCLHVCQUF1Qiw2REFDdkIsb0JBQW9CLHlEQUNwQixpQkFBaUIsc1JBQ2pCLGdCQUFnQixxREFDaEIsY0FBYyxtREFDZCxnQkFBZ0IsK0VBTU4sQ0FBQyxxQkFBcUIsQ0FBQzs7MkZBR3hCLDBCQUEwQjtrQkFyQnRDLFNBQVM7K0JBQ0UsR0FBRyx1QkFBdUIsRUFBRSxjQUMxQixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixvQkFBb0I7d0JBQ3BCLHFCQUFxQjt3QkFDckIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGlCQUFpQjt3QkFDakIsZ0JBQWdCO3dCQUNoQixjQUFjO3dCQUNkLGdCQUFnQjtxQkFDakIsaUJBR2MsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLHFCQUFxQixDQUFDLGFBQ3hCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQzs4QkFHYSxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUk3QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NoaWxkLFxyXG4gIGluamVjdFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIFhEYXRlUGlja2VyRGlzYWJsZWREYXRlLFxyXG4gIFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lLFxyXG4gIFhEYXRlUGlja2VyUG9ydGFsUHJlZml4LFxyXG4gIFhEYXRlUGlja2VyUHJlc2V0LFxyXG4gIFhEYXRlUGlja2VyVHlwZVxyXG59IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhDb25uZWN0QmFzZUFuaW1hdGlvbixcclxuICBYUG9zaXRpb25Ub3BCb3R0b20sXHJcbiAgWEFkZERheXMsXHJcbiAgWFRlbXBsYXRlLFxyXG4gIFhJc1VuZGVmaW5lZFxyXG59IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IHRha2VVbnRpbCwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50LCBYVGltZVBpY2tlck1vZHVsZSB9IGZyb20gJ0BuZy1uZXN0L3VpL3RpbWUtcGlja2VyJztcclxuaW1wb3J0IHsgWFBpY2tlckRhdGVDb21wb25lbnQgfSBmcm9tICcuL3BpY2tlci1kYXRlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJNb250aENvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLW1vbnRoLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQaWNrZXJRdWFydGVyQ29tcG9uZW50IH0gZnJvbSAnLi9waWNrZXItcXVhcnRlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUGlja2VyWWVhckNvbXBvbmVudCB9IGZyb20gJy4vcGlja2VyLXllYXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgWEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJ0BuZy1uZXN0L3VpL2J1dHRvbic7XHJcbmltcG9ydCB7IFhMaW5rQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvbGluayc7XHJcbmltcG9ydCB7IFhPdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbmctbmVzdC91aS9vdXRsZXQnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBYUGlja2VyRGF0ZUNvbXBvbmVudCxcclxuICAgIFhQaWNrZXJNb250aENvbXBvbmVudCxcclxuICAgIFhQaWNrZXJRdWFydGVyQ29tcG9uZW50LFxyXG4gICAgWFBpY2tlclllYXJDb21wb25lbnQsXHJcbiAgICBYVGltZVBpY2tlck1vZHVsZSxcclxuICAgIFhCdXR0b25Db21wb25lbnQsXHJcbiAgICBYTGlua0NvbXBvbmVudCxcclxuICAgIFhPdXRsZXREaXJlY3RpdmVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgYW5pbWF0aW9uczogW1hDb25uZWN0QmFzZUFuaW1hdGlvbl0sXHJcbiAgcHJvdmlkZXJzOiBbRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGVdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBBZnRlclZpZXdJbml0IHtcclxuICBASG9zdEJpbmRpbmcoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24nKSBwdWJsaWMgcGxhY2VtZW50ITogWFBvc2l0aW9uVG9wQm90dG9tO1xyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uZG9uZScsIFsnJGV2ZW50J10pIGRvbmUoZXZlbnQ6IHsgdG9TdGF0ZTogYW55IH0pIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKGZhbHNlKTtcclxuICAgIGV2ZW50LnRvU3RhdGUgPT09ICd2b2lkJyAmJiB0aGlzLmRlc3Ryb3lQb3J0YWwoKTtcclxuICB9XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5zdGFydCcsIFsnJGV2ZW50J10pIHN0YXJ0KCkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcodHJ1ZSk7XHJcbiAgfVxyXG5cclxuICBAVmlld0NoaWxkKCd0aW1lUGlja2VyRnJhbWUnKSB0aW1lUGlja2VyRnJhbWU/OiBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50O1xyXG5cclxuICB0eXBlOiBYRGF0ZVBpY2tlclR5cGUgPSAnZGF0ZSc7XHJcbiAgZGlzcGxheSA9IG5ldyBEYXRlKCk7XHJcbiAgbW9kZWwhOiBEYXRlO1xyXG4gIHZhbHVlOiBhbnk7XHJcbiAgdmFsdWVDaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgcG9zaXRpb25DaGFuZ2UhOiBTdWJqZWN0PGFueT47XHJcbiAgYW5pbWF0aW5nITogRnVuY3Rpb247XHJcbiAgY2xvc2VQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBkZXN0cm95UG9ydGFsITogRnVuY3Rpb247XHJcbiAgbm9kZUVtaXQhOiAoZGF0ZTogRGF0ZSwgc3VyZT86IGJvb2xlYW4pID0+IHZvaWQ7XHJcbiAgbG9jYWxlOiBYSTE4bkRhdGVQaWNrZXIgPSB7fTtcclxuICB0aW1lITogbnVtYmVyIHwgbnVsbDtcclxuICBwcmVzZXQ6IFhEYXRlUGlja2VyUHJlc2V0W10gPSBbXTtcclxuICBleHRyYUZvb3Rlcj86IFhUZW1wbGF0ZTtcclxuICBpbnB1dENvbSE6IFhJbnB1dENvbXBvbmVudDtcclxuICBkaXNhYmxlZERhdGUhOiBYRGF0ZVBpY2tlckRpc2FibGVkRGF0ZTtcclxuICBkaXNhYmxlZFRpbWUhOiBYRGF0ZVBpY2tlckRpc2FibGVkVGltZTtcclxuICBwcml2YXRlIF90eXBlITogWERhdGVQaWNrZXJUeXBlO1xyXG4gIHByaXZhdGUgX3VuU3ViamVjdCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gIGdldCBpc0RhdGVQaWNrZXIoKSB7XHJcbiAgICByZXR1cm4gWydkYXRlJywgJ21vbnRoJywgJ3llYXInXS5pbmNsdWRlcyh0aGlzLnR5cGUpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN1cmVEaXNhYmxlZCgpIHtcclxuICAgIGxldCByZXMgPSBYSXNVbmRlZmluZWQodGhpcy50aW1lKTtcclxuICAgIGlmICh0aGlzLnRpbWVQaWNrZXJGcmFtZSAmJiAhWElzVW5kZWZpbmVkKHRoaXMudGltZSkpIHtcclxuICAgICAgY29uc3QgZHQgPSBuZXcgRGF0ZSh0aGlzLnRpbWUhKTtcclxuICAgICAgY29uc3QgaG91cnMgPSBkdC5nZXRIb3VycygpO1xyXG4gICAgICBjb25zdCBtaW51dGVzID0gZHQuZ2V0TWludXRlcygpO1xyXG4gICAgICBjb25zdCBzZWNvbmRzID0gZHQuZ2V0U2Vjb25kcygpO1xyXG4gICAgICByZXR1cm4gKFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdob3VycycsIGhvdXJzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdtaW51dGVzJywgbWludXRlcykgfHxcclxuICAgICAgICB0aGlzLnRpbWVQaWNrZXJGcmFtZS5zZXREaXNhYmxlZCgnc2Vjb25kcycsIHNlY29uZHMpXHJcbiAgICAgICk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gcmVzO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjZHIgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xyXG4gIHByaXZhdGUgaTE4biA9IGluamVjdChYSTE4blNlcnZpY2UpO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB4O1xyXG4gICAgICB0aGlzLmluaXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3NpdGlvbkNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy5wbGFjZW1lbnQgPSB4O1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmRhdGVQaWNrZXIgYXMgWEkxOG5EYXRlUGlja2VyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdBZnRlclZpZXdJbml0KCkge1xyXG4gICAgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuX3VuU3ViamVjdC5uZXh0KCk7XHJcbiAgICB0aGlzLl91blN1YmplY3QudW5zdWJzY3JpYmUoKTtcclxuICB9XHJcblxyXG4gIGluaXQoKSB7XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMudmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuc2V0RGVmYXVsdCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fdHlwZSA9IHRoaXMudHlwZTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHN0b3BQcm9wYWdhdGlvbihldmVudDogRXZlbnQpOiB2b2lkIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGVmYXVsdCgpIHtcclxuICAgIGNvbnN0IGRhdGUgPSBuZXcgRGF0ZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgdGhpcy50aW1lID0gdGhpcy5tb2RlbC5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkodGhpcy5tb2RlbCk7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5KGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuZGlzcGxheSA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCAxKTtcclxuICB9XHJcblxyXG4gIGRhdGVDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICBpZiAoWydkYXRlLXRpbWUnLCAnZGF0ZS1ob3VyJywgJ2RhdGUtbWludXRlJ10uaW5jbHVkZXModGhpcy5fdHlwZSkpIHtcclxuICAgICAgbGV0IHRpbWUgPSBuZXcgRGF0ZSgpO1xyXG4gICAgICBpZiAoWydkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLnR5cGUpKSB7XHJcbiAgICAgICAgdGltZS5zZXRTZWNvbmRzKDApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgICAgdGltZS5zZXRNaW51dGVzKDApO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICghdGhpcy50aW1lKSB7XHJcbiAgICAgICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5zZXRNb2RlbFRpbWUodGhpcy5tb2RlbCwgbmV3IERhdGUodGhpcy50aW1lISkpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KHRoaXMubW9kZWwsIGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb250aENoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuX3R5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBxdWFydGVyQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAncXVhcnRlcicpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSB0aGlzLl90eXBlO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgeWVhckNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gJ21vbnRoJztcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uVG9kYXkoKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UobmV3IERhdGUoKSk7XHJcbiAgfVxyXG5cclxuICBvblllc3RlcmRheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShYQWRkRGF5cyhuZXcgRGF0ZSgpLCAtMSkpO1xyXG4gIH1cclxuXHJcbiAgb25Ub21vcnJvdygpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShYQWRkRGF5cyhuZXcgRGF0ZSgpLCAxKSk7XHJcbiAgfVxyXG5cclxuICBvblByZXNldEZ1bmMoaXRlbTogWERhdGVQaWNrZXJQcmVzZXQpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShpdGVtLmZ1bmMoKSk7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RUaW1lKHRpbWU6IERhdGUpIHtcclxuICAgIGlmICghdGhpcy5tb2RlbCkge1xyXG4gICAgICB0aGlzLm1vZGVsID0gbmV3IERhdGUoKTtcclxuICAgIH1cclxuICAgIHRoaXMudGltZSA9IHRpbWUuZ2V0VGltZSgpO1xyXG4gICAgdGhpcy5ub2RlRW1pdCh0aGlzLnNldE1vZGVsVGltZSh0aGlzLm1vZGVsLCB0aW1lKSwgZmFsc2UpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc2V0TW9kZWxUaW1lKGRhdGU6IERhdGUsIHRpbWU6IERhdGUpIHtcclxuICAgIHRoaXMubW9kZWwgPSBuZXcgRGF0ZShcclxuICAgICAgZGF0ZS5nZXRGdWxsWWVhcigpLFxyXG4gICAgICBkYXRlLmdldE1vbnRoKCksXHJcbiAgICAgIGRhdGUuZ2V0RGF0ZSgpLFxyXG4gICAgICB0aW1lLmdldEhvdXJzKCksXHJcbiAgICAgIHRpbWUuZ2V0TWludXRlcygpLFxyXG4gICAgICB0aW1lLmdldFNlY29uZHMoKVxyXG4gICAgKTtcclxuICAgIHJldHVybiB0aGlzLm1vZGVsO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwge3sgdHlwZSB9fVwiIFtuZ1N3aXRjaF09XCJ0eXBlXCIgKGNsaWNrKT1cImlucHV0Q29tLmlucHV0Rm9jdXMoKVwiPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiPlxyXG4gICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid3ZWVrJ1wiPlxyXG4gICAgPHgtcGlja2VyLWRhdGVcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci1kYXRlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidtb250aCdcIj5cclxuICAgIDx4LXBpY2tlci1tb250aFxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cIm1vbnRoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICA+PC94LXBpY2tlci1tb250aD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncXVhcnRlcidcIj5cclxuICAgIDx4LXBpY2tlci1xdWFydGVyXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwicXVhcnRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgPjwveC1waWNrZXItcXVhcnRlcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIj5cclxuICAgIDx4LXBpY2tlci15ZWFyXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgPjwveC1waWNrZXIteWVhcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZS10aW1lJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEg6bW06c3MnLCB0aW1lVHlwZTogJ3RpbWUnIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZS1ob3VyJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEgnLCB0aW1lVHlwZTogJ2hvdXInIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZS1taW51dGUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbScsIHRpbWVUeXBlOiAnbWludXRlJyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRGF0ZVBpY2tlclwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImV4dHJhRm9vdGVyXCIgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1leHRyYS1mb290ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4dHJhRm9vdGVyXCI+e3sgZXh0cmFGb290ZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXNldFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjZGF0ZVRpbWVIb3VyTWludXRlVHBsIGxldC10aW1lRm9ybWF0PVwidGltZUZvcm1hdFwiIGxldC10aW1lVHlwZT1cInRpbWVUeXBlXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWNvbnRlbnRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1kYXRlXCI+XHJcbiAgICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICAgIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgICAgPjwveC1waWNrZXItZGF0ZT5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXRpbWVcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXRpbWUtbGFiZWxcIj5cclxuICAgICAgICB7eyB0aW1lIHwgZGF0ZSA6IHRpbWVGb3JtYXQgfX1cclxuICAgICAgPC9kaXY+XHJcbiAgICAgIDx4LXRpbWUtcGlja2VyLWZyYW1lXHJcbiAgICAgICAgI3RpbWVQaWNrZXJGcmFtZVxyXG4gICAgICAgIFt0eXBlXT1cInRpbWVUeXBlXCJcclxuICAgICAgICBbdmFsdWVdPVwidGltZVwiXHJcbiAgICAgICAgKG5vZGVFbWl0KT1cInNlbGVjdFRpbWUoJGV2ZW50KVwiXHJcbiAgICAgICAgW2Rpc2FibGVkVGltZV09XCJkaXNhYmxlZFRpbWVcIlxyXG4gICAgICAgIFtkZWZhdWx0Tm93XT1cImZhbHNlXCJcclxuICAgICAgPjwveC10aW1lLXBpY2tlci1mcmFtZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRlUGlja2VyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZXh0cmFGb290ZXJcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXJcIj57eyBleHRyYUZvb3RlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRlUGlja2VyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXNldFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIiFzdXJlRGlzYWJsZWQgJiYgbm9kZUVtaXQobW9kZWwpXCIgc2l6ZT1cInNtYWxsXCIgW2Rpc2FibGVkXT1cInN1cmVEaXNhYmxlZFwiPnt7IGxvY2FsZS5zdXJlIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcHJlc2V0VHBsPlxyXG4gIDxkaXYgKm5nSWY9XCJwcmVzZXRcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXByZXNldFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVzZXRcIj5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uaWQgPT09ICd5ZXN0ZXJkYXknXCIgKGNsaWNrKT1cIm9uWWVzdGVyZGF5KClcIj57eyBsb2NhbGUueWVzdGVyZGF5IH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmlkID09PSAndG9kYXknXCIgKGNsaWNrKT1cIm9uVG9kYXkoKVwiPnt7IGxvY2FsZS50b2RheSB9fTwveC1saW5rPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3RvbW9ycm93J1wiIChjbGljayk9XCJvblRvbW9ycm93KClcIj57eyBsb2NhbGUudG9tb3Jyb3cgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uZnVuY1wiIChjbGljayk9XCJvblByZXNldEZ1bmMoaXRlbSlcIj57eyBpdGVtLmxhYmVsIH19PC94LWxpbms+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19