@ng-nest/ui 15.0.13 → 15.0.15

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 (540) hide show
  1. package/anchor/anchor-inner.component.d.ts +6 -0
  2. package/anchor/anchor.component.d.ts +5 -2
  3. package/anchor/anchor.module.d.ts +5 -4
  4. package/anchor/anchor.property.d.ts +13 -0
  5. package/anchor/public-api.d.ts +1 -0
  6. package/core/config/config.d.ts +2 -0
  7. package/core/functions/date.d.ts +3 -0
  8. package/date-picker/date-picker-portal.component.d.ts +7 -2
  9. package/date-picker/date-picker.property.d.ts +87 -6
  10. package/date-picker/date-range-portal.component.d.ts +6 -2
  11. package/date-picker/picker-date.component.d.ts +8 -0
  12. package/date-picker/picker-month.component.d.ts +1 -0
  13. package/date-picker/picker-year.component.d.ts +1 -0
  14. package/esm2020/affix/affix.component.mjs +3 -3
  15. package/esm2020/affix/affix.module.mjs +4 -4
  16. package/esm2020/affix/affix.property.mjs +3 -3
  17. package/esm2020/alert/alert.component.mjs +3 -3
  18. package/esm2020/alert/alert.module.mjs +4 -4
  19. package/esm2020/alert/alert.property.mjs +3 -3
  20. package/esm2020/anchor/anchor-inner.component.mjs +17 -0
  21. package/esm2020/anchor/anchor.component.mjs +30 -13
  22. package/esm2020/anchor/anchor.module.mjs +9 -8
  23. package/esm2020/anchor/anchor.property.mjs +21 -4
  24. package/esm2020/anchor/public-api.mjs +2 -1
  25. package/esm2020/api/api.component.mjs +3 -3
  26. package/esm2020/api/api.module.mjs +4 -4
  27. package/esm2020/auto-complete/auto-complete-portal.component.mjs +3 -3
  28. package/esm2020/auto-complete/auto-complete.component.mjs +3 -3
  29. package/esm2020/auto-complete/auto-complete.module.mjs +4 -4
  30. package/esm2020/auto-complete/auto-complete.property.mjs +3 -3
  31. package/esm2020/avatar/avatar-group.component.mjs +3 -3
  32. package/esm2020/avatar/avatar.component.mjs +3 -3
  33. package/esm2020/avatar/avatar.module.mjs +4 -4
  34. package/esm2020/avatar/avatar.property.mjs +6 -6
  35. package/esm2020/back-top/back-top.component.mjs +3 -3
  36. package/esm2020/back-top/back-top.module.mjs +4 -4
  37. package/esm2020/back-top/back-top.property.mjs +3 -3
  38. package/esm2020/badge/badge.component.mjs +3 -3
  39. package/esm2020/badge/badge.module.mjs +4 -4
  40. package/esm2020/badge/badge.property.mjs +3 -3
  41. package/esm2020/base-form/base-form.component.mjs +3 -3
  42. package/esm2020/base-form/base-form.module.mjs +4 -4
  43. package/esm2020/base-form/base-form.property.mjs +3 -3
  44. package/esm2020/border/border.component.mjs +3 -3
  45. package/esm2020/border/border.module.mjs +4 -4
  46. package/esm2020/button/button.component.mjs +3 -3
  47. package/esm2020/button/button.module.mjs +4 -4
  48. package/esm2020/button/button.property.mjs +6 -6
  49. package/esm2020/button/buttons.component.mjs +3 -3
  50. package/esm2020/calendar/calendar.component.mjs +3 -3
  51. package/esm2020/calendar/calendar.module.mjs +4 -4
  52. package/esm2020/calendar/calendar.property.mjs +3 -3
  53. package/esm2020/card/card.component.mjs +3 -3
  54. package/esm2020/card/card.module.mjs +4 -4
  55. package/esm2020/card/card.property.mjs +3 -3
  56. package/esm2020/carousel/carousel-panel.component.mjs +3 -3
  57. package/esm2020/carousel/carousel.component.mjs +3 -3
  58. package/esm2020/carousel/carousel.module.mjs +4 -4
  59. package/esm2020/carousel/carousel.property.mjs +6 -6
  60. package/esm2020/cascade/cascade-portal.component.mjs +3 -3
  61. package/esm2020/cascade/cascade.component.mjs +3 -3
  62. package/esm2020/cascade/cascade.module.mjs +4 -4
  63. package/esm2020/cascade/cascade.property.mjs +3 -3
  64. package/esm2020/checkbox/checkbox.component.mjs +3 -3
  65. package/esm2020/checkbox/checkbox.module.mjs +4 -4
  66. package/esm2020/checkbox/checkbox.property.mjs +3 -3
  67. package/esm2020/collapse/collapse-panel.component.mjs +3 -3
  68. package/esm2020/collapse/collapse.component.mjs +3 -3
  69. package/esm2020/collapse/collapse.module.mjs +4 -4
  70. package/esm2020/collapse/collapse.property.mjs +6 -6
  71. package/esm2020/color/color.component.mjs +3 -3
  72. package/esm2020/color/color.module.mjs +4 -4
  73. package/esm2020/color/color.property.mjs +3 -3
  74. package/esm2020/color-picker/color-picker-portal.component.mjs +5 -5
  75. package/esm2020/color-picker/color-picker.component.mjs +3 -3
  76. package/esm2020/color-picker/color-picker.module.mjs +4 -4
  77. package/esm2020/color-picker/color-picker.property.mjs +3 -3
  78. package/esm2020/comment/comment-reply.component.mjs +3 -3
  79. package/esm2020/comment/comment.component.mjs +3 -3
  80. package/esm2020/comment/comment.module.mjs +4 -4
  81. package/esm2020/comment/comment.property.mjs +6 -6
  82. package/esm2020/container/aside.component.mjs +3 -3
  83. package/esm2020/container/container.component.mjs +3 -3
  84. package/esm2020/container/container.module.mjs +4 -4
  85. package/esm2020/container/container.property.mjs +12 -12
  86. package/esm2020/container/footer.component.mjs +3 -3
  87. package/esm2020/container/header.component.mjs +3 -3
  88. package/esm2020/container/main.component.mjs +3 -3
  89. package/esm2020/core/config/config.mjs +1 -1
  90. package/esm2020/core/config/config.service.mjs +3 -3
  91. package/esm2020/core/functions/date.mjs +73 -1
  92. package/esm2020/core/services/http.service.mjs +3 -3
  93. package/esm2020/core/services/preloading-strategy.service.mjs +3 -3
  94. package/esm2020/core/services/storage.service.mjs +3 -3
  95. package/esm2020/core/theme/theme.service.mjs +3 -3
  96. package/esm2020/crumb/crumb.component.mjs +3 -3
  97. package/esm2020/crumb/crumb.module.mjs +4 -4
  98. package/esm2020/crumb/crumb.property.mjs +3 -3
  99. package/esm2020/date-picker/date-picker-portal.component.mjs +36 -8
  100. package/esm2020/date-picker/date-picker.component.mjs +17 -7
  101. package/esm2020/date-picker/date-picker.module.mjs +4 -4
  102. package/esm2020/date-picker/date-picker.property.mjs +30 -16
  103. package/esm2020/date-picker/date-range-portal.component.mjs +32 -20
  104. package/esm2020/date-picker/date-range.component.mjs +28 -10
  105. package/esm2020/date-picker/picker-date.component.mjs +68 -8
  106. package/esm2020/date-picker/picker-month.component.mjs +15 -6
  107. package/esm2020/date-picker/picker-year.component.mjs +17 -6
  108. package/esm2020/description/description-item.component.mjs +3 -3
  109. package/esm2020/description/description.component.mjs +3 -3
  110. package/esm2020/description/description.module.mjs +4 -4
  111. package/esm2020/description/description.property.mjs +6 -6
  112. package/esm2020/dialog/dialog-container.component.mjs +3 -3
  113. package/esm2020/dialog/dialog-portal.component.mjs +3 -3
  114. package/esm2020/dialog/dialog-portal.directives.mjs +18 -18
  115. package/esm2020/dialog/dialog.component.mjs +3 -3
  116. package/esm2020/dialog/dialog.module.mjs +4 -4
  117. package/esm2020/dialog/dialog.property.mjs +6 -6
  118. package/esm2020/dialog/dialog.service.mjs +3 -3
  119. package/esm2020/doc/doc.component.mjs +3 -3
  120. package/esm2020/doc/doc.module.mjs +4 -4
  121. package/esm2020/drawer/drawer-container.component.mjs +3 -3
  122. package/esm2020/drawer/drawer-portal.component.mjs +3 -3
  123. package/esm2020/drawer/drawer-portal.directives.mjs +9 -9
  124. package/esm2020/drawer/drawer.component.mjs +3 -3
  125. package/esm2020/drawer/drawer.module.mjs +4 -4
  126. package/esm2020/drawer/drawer.property.mjs +6 -6
  127. package/esm2020/drawer/drawer.service.mjs +3 -3
  128. package/esm2020/dropdown/dropdown-portal.component.mjs +3 -3
  129. package/esm2020/dropdown/dropdown.component.mjs +3 -3
  130. package/esm2020/dropdown/dropdown.module.mjs +4 -4
  131. package/esm2020/dropdown/dropdown.property.mjs +3 -3
  132. package/esm2020/empty/empty.component.mjs +3 -3
  133. package/esm2020/empty/empty.module.mjs +4 -4
  134. package/esm2020/empty/empty.property.mjs +3 -3
  135. package/esm2020/examples/examples.component.mjs +3 -3
  136. package/esm2020/examples/examples.module.mjs +4 -4
  137. package/esm2020/find/find.component.mjs +3 -3
  138. package/esm2020/find/find.module.mjs +4 -4
  139. package/esm2020/find/find.property.mjs +3 -3
  140. package/esm2020/form/control.component.mjs +3 -3
  141. package/esm2020/form/form.component.mjs +3 -3
  142. package/esm2020/form/form.module.mjs +4 -4
  143. package/esm2020/form/form.property.mjs +6 -6
  144. package/esm2020/highlight/highlight.component.mjs +3 -3
  145. package/esm2020/highlight/highlight.module.mjs +4 -4
  146. package/esm2020/highlight/highlight.property.mjs +3 -3
  147. package/esm2020/i18n/i18n.directive.mjs +3 -3
  148. package/esm2020/i18n/i18n.module.mjs +4 -4
  149. package/esm2020/i18n/i18n.pipe.mjs +3 -3
  150. package/esm2020/i18n/i18n.property.mjs +1 -1
  151. package/esm2020/i18n/i18n.service.mjs +3 -3
  152. package/esm2020/i18n/languages/en_GB.mjs +6 -2
  153. package/esm2020/i18n/languages/en_US.mjs +6 -2
  154. package/esm2020/i18n/languages/zh_CN.mjs +6 -2
  155. package/esm2020/i18n/languages/zh_TW.mjs +6 -2
  156. package/esm2020/icon/icon.component.mjs +3 -3
  157. package/esm2020/icon/icon.module.mjs +4 -4
  158. package/esm2020/icon/icon.property.mjs +3 -3
  159. package/esm2020/icon/icon.service.mjs +3 -3
  160. package/esm2020/image/image-group.component.mjs +3 -3
  161. package/esm2020/image/image-preview.component.mjs +3 -3
  162. package/esm2020/image/image.component.mjs +3 -3
  163. package/esm2020/image/image.module.mjs +4 -4
  164. package/esm2020/image/image.property.mjs +6 -6
  165. package/esm2020/inner/inner.component.mjs +3 -3
  166. package/esm2020/inner/inner.module.mjs +4 -4
  167. package/esm2020/inner/inner.property.mjs +3 -3
  168. package/esm2020/input/input-group.component.mjs +3 -3
  169. package/esm2020/input/input.component.mjs +3 -3
  170. package/esm2020/input/input.module.mjs +4 -4
  171. package/esm2020/input/input.property.mjs +6 -6
  172. package/esm2020/input-number/input-number.component.mjs +3 -3
  173. package/esm2020/input-number/input-number.module.mjs +4 -4
  174. package/esm2020/input-number/input-number.property.mjs +3 -3
  175. package/esm2020/keyword/keyword.directive.mjs +3 -3
  176. package/esm2020/keyword/keyword.module.mjs +4 -4
  177. package/esm2020/keyword/keyword.property.mjs +3 -3
  178. package/esm2020/layout/col.component.mjs +3 -3
  179. package/esm2020/layout/layout.module.mjs +4 -4
  180. package/esm2020/layout/layout.property.mjs +6 -6
  181. package/esm2020/layout/row.component.mjs +3 -3
  182. package/esm2020/link/link.component.mjs +3 -3
  183. package/esm2020/link/link.module.mjs +4 -4
  184. package/esm2020/link/link.property.mjs +3 -3
  185. package/esm2020/list/list-drop-group.directive.mjs +3 -3
  186. package/esm2020/list/list-option.component.mjs +4 -4
  187. package/esm2020/list/list.component.mjs +4 -4
  188. package/esm2020/list/list.module.mjs +4 -4
  189. package/esm2020/list/list.property.mjs +6 -6
  190. package/esm2020/loading/loading.component.mjs +3 -3
  191. package/esm2020/loading/loading.module.mjs +4 -4
  192. package/esm2020/loading/loading.property.mjs +3 -3
  193. package/esm2020/menu/menu-node.component.mjs +3 -3
  194. package/esm2020/menu/menu.component.mjs +3 -3
  195. package/esm2020/menu/menu.module.mjs +4 -4
  196. package/esm2020/menu/menu.property.mjs +6 -6
  197. package/esm2020/message/message.component.mjs +3 -3
  198. package/esm2020/message/message.module.mjs +4 -4
  199. package/esm2020/message/message.service.mjs +3 -3
  200. package/esm2020/message-box/message-box.component.mjs +3 -3
  201. package/esm2020/message-box/message-box.module.mjs +4 -4
  202. package/esm2020/message-box/message-box.service.mjs +3 -3
  203. package/esm2020/notification/notification.component.mjs +3 -3
  204. package/esm2020/notification/notification.module.mjs +4 -4
  205. package/esm2020/notification/notification.service.mjs +3 -3
  206. package/esm2020/outlet/outlet.directive.mjs +3 -3
  207. package/esm2020/outlet/outlet.module.mjs +4 -4
  208. package/esm2020/page-header/page-header.component.mjs +3 -3
  209. package/esm2020/page-header/page-header.module.mjs +4 -4
  210. package/esm2020/page-header/page-header.property.mjs +3 -3
  211. package/esm2020/pagination/pagination.component.mjs +3 -3
  212. package/esm2020/pagination/pagination.module.mjs +4 -4
  213. package/esm2020/pagination/pagination.property.mjs +3 -3
  214. package/esm2020/pattern/pattern.component.mjs +3 -3
  215. package/esm2020/pattern/pattern.module.mjs +4 -4
  216. package/esm2020/popconfirm/popconfirm.component.mjs +3 -3
  217. package/esm2020/popconfirm/popconfirm.module.mjs +4 -4
  218. package/esm2020/popconfirm/popconfirm.property.mjs +3 -3
  219. package/esm2020/popover/popover-portal.component.mjs +3 -3
  220. package/esm2020/popover/popover.directive.mjs +3 -3
  221. package/esm2020/popover/popover.module.mjs +4 -4
  222. package/esm2020/popover/popover.property.mjs +3 -3
  223. package/esm2020/portal/portal.module.mjs +4 -4
  224. package/esm2020/portal/portal.service.mjs +3 -3
  225. package/esm2020/progress/progress.component.mjs +3 -3
  226. package/esm2020/progress/progress.module.mjs +4 -4
  227. package/esm2020/progress/progress.property.mjs +3 -3
  228. package/esm2020/radio/radio.component.mjs +3 -3
  229. package/esm2020/radio/radio.module.mjs +4 -4
  230. package/esm2020/radio/radio.property.mjs +3 -3
  231. package/esm2020/rate/rate.component.mjs +3 -3
  232. package/esm2020/rate/rate.module.mjs +4 -4
  233. package/esm2020/rate/rate.property.mjs +3 -3
  234. package/esm2020/resizable/resizable.directive.mjs +3 -3
  235. package/esm2020/resizable/resizable.module.mjs +4 -4
  236. package/esm2020/resizable/resizable.property.mjs +3 -3
  237. package/esm2020/result/result.component.mjs +3 -3
  238. package/esm2020/result/result.module.mjs +4 -4
  239. package/esm2020/result/result.property.mjs +3 -3
  240. package/esm2020/ripple/ripple.directive.mjs +3 -3
  241. package/esm2020/ripple/ripple.module.mjs +4 -4
  242. package/esm2020/ripple/ripple.property.mjs +3 -3
  243. package/esm2020/select/select-portal.component.mjs +3 -3
  244. package/esm2020/select/select.component.mjs +3 -3
  245. package/esm2020/select/select.module.mjs +4 -4
  246. package/esm2020/select/select.property.mjs +3 -3
  247. package/esm2020/skeleton/skeleton.component.mjs +3 -3
  248. package/esm2020/skeleton/skeleton.module.mjs +4 -4
  249. package/esm2020/skeleton/skeleton.property.mjs +3 -3
  250. package/esm2020/slider/slider.component.mjs +8 -5
  251. package/esm2020/slider/slider.module.mjs +4 -4
  252. package/esm2020/slider/slider.property.mjs +10 -4
  253. package/esm2020/slider-select/slider-select.component.mjs +3 -3
  254. package/esm2020/slider-select/slider-select.module.mjs +4 -4
  255. package/esm2020/slider-select/slider-select.property.mjs +3 -3
  256. package/esm2020/statistic/countdown.component.mjs +3 -3
  257. package/esm2020/statistic/statistic.component.mjs +3 -3
  258. package/esm2020/statistic/statistic.module.mjs +4 -4
  259. package/esm2020/statistic/statistic.property.mjs +6 -6
  260. package/esm2020/steps/steps.component.mjs +3 -3
  261. package/esm2020/steps/steps.module.mjs +4 -4
  262. package/esm2020/steps/steps.property.mjs +3 -3
  263. package/esm2020/switch/switch.component.mjs +3 -3
  264. package/esm2020/switch/switch.module.mjs +4 -4
  265. package/esm2020/switch/switch.property.mjs +3 -3
  266. package/esm2020/table/drag.directive.mjs +3 -3
  267. package/esm2020/table/table-body.component.mjs +3 -3
  268. package/esm2020/table/table-foot.component.mjs +3 -3
  269. package/esm2020/table/table-head.component.mjs +3 -3
  270. package/esm2020/table/table.component.mjs +3 -3
  271. package/esm2020/table/table.module.mjs +4 -4
  272. package/esm2020/table/table.property.mjs +12 -12
  273. package/esm2020/tabs/tab-content.component.mjs +3 -3
  274. package/esm2020/tabs/tab-link.directive.mjs +6 -6
  275. package/esm2020/tabs/tab.component.mjs +3 -3
  276. package/esm2020/tabs/tabs.component.mjs +3 -3
  277. package/esm2020/tabs/tabs.module.mjs +4 -4
  278. package/esm2020/tabs/tabs.property.mjs +6 -6
  279. package/esm2020/tag/tag.component.mjs +3 -3
  280. package/esm2020/tag/tag.module.mjs +4 -4
  281. package/esm2020/tag/tag.property.mjs +3 -3
  282. package/esm2020/text-retract/text-retract.component.mjs +3 -3
  283. package/esm2020/text-retract/text-retract.module.mjs +4 -4
  284. package/esm2020/text-retract/text-retract.property.mjs +3 -3
  285. package/esm2020/textarea/textarea.component.mjs +3 -3
  286. package/esm2020/textarea/textarea.module.mjs +4 -4
  287. package/esm2020/textarea/textarea.property.mjs +3 -3
  288. package/esm2020/theme/theme.component.mjs +3 -3
  289. package/esm2020/theme/theme.module.mjs +4 -4
  290. package/esm2020/theme/theme.property.mjs +3 -3
  291. package/esm2020/time-ago/time-ago.module.mjs +4 -4
  292. package/esm2020/time-ago/time-ago.pipe.mjs +3 -3
  293. package/esm2020/time-picker/time-picker-frame.component.mjs +50 -16
  294. package/esm2020/time-picker/time-picker-portal.component.mjs +5 -5
  295. package/esm2020/time-picker/time-picker.component.mjs +5 -4
  296. package/esm2020/time-picker/time-picker.module.mjs +4 -4
  297. package/esm2020/time-picker/time-picker.property.mjs +6 -4
  298. package/esm2020/time-range/time-range.module.mjs +4 -4
  299. package/esm2020/time-range/time-range.pipe.mjs +3 -3
  300. package/esm2020/timeline/timeline.component.mjs +3 -3
  301. package/esm2020/timeline/timeline.module.mjs +4 -4
  302. package/esm2020/timeline/timeline.property.mjs +3 -3
  303. package/esm2020/tooltip/tooltip-portal.component.mjs +3 -3
  304. package/esm2020/tooltip/tooltip.directive.mjs +3 -3
  305. package/esm2020/tooltip/tooltip.module.mjs +4 -4
  306. package/esm2020/tooltip/tooltip.property.mjs +3 -3
  307. package/esm2020/transfer/transfer.component.mjs +3 -3
  308. package/esm2020/transfer/transfer.module.mjs +4 -4
  309. package/esm2020/transfer/transfer.property.mjs +3 -3
  310. package/esm2020/tree/tree-node.component.mjs +99 -16
  311. package/esm2020/tree/tree.component.mjs +127 -30
  312. package/esm2020/tree/tree.module.mjs +33 -6
  313. package/esm2020/tree/tree.property.mjs +42 -8
  314. package/esm2020/tree/tree.service.mjs +77 -0
  315. package/esm2020/tree-file/tree-file.component.mjs +17 -6
  316. package/esm2020/tree-file/tree-file.module.mjs +4 -4
  317. package/esm2020/tree-file/tree-file.property.mjs +3 -3
  318. package/esm2020/tree-select/tree-select-portal.component.mjs +3 -3
  319. package/esm2020/tree-select/tree-select.component.mjs +3 -3
  320. package/esm2020/tree-select/tree-select.module.mjs +4 -4
  321. package/esm2020/tree-select/tree-select.property.mjs +3 -3
  322. package/esm2020/typography/typography.component.mjs +3 -3
  323. package/esm2020/typography/typography.module.mjs +4 -4
  324. package/esm2020/typography/typography.property.mjs +3 -3
  325. package/esm2020/upload/upload-portal.component.mjs +3 -3
  326. package/esm2020/upload/upload.component.mjs +3 -3
  327. package/esm2020/upload/upload.module.mjs +4 -4
  328. package/esm2020/upload/upload.property.mjs +3 -3
  329. package/fesm2015/ng-nest-ui-affix.mjs +10 -11
  330. package/fesm2015/ng-nest-ui-alert.mjs +10 -11
  331. package/fesm2015/ng-nest-ui-anchor.mjs +71 -24
  332. package/fesm2015/ng-nest-ui-anchor.mjs.map +1 -1
  333. package/fesm2015/ng-nest-ui-api.mjs +7 -8
  334. package/fesm2015/ng-nest-ui-auto-complete.mjs +13 -14
  335. package/fesm2015/ng-nest-ui-avatar.mjs +16 -17
  336. package/fesm2015/ng-nest-ui-back-top.mjs +10 -11
  337. package/fesm2015/ng-nest-ui-badge.mjs +10 -11
  338. package/fesm2015/ng-nest-ui-base-form.mjs +10 -11
  339. package/fesm2015/ng-nest-ui-border.mjs +7 -8
  340. package/fesm2015/ng-nest-ui-button.mjs +16 -17
  341. package/fesm2015/ng-nest-ui-calendar.mjs +10 -11
  342. package/fesm2015/ng-nest-ui-card.mjs +10 -11
  343. package/fesm2015/ng-nest-ui-carousel.mjs +16 -17
  344. package/fesm2015/ng-nest-ui-cascade.mjs +13 -14
  345. package/fesm2015/ng-nest-ui-checkbox.mjs +10 -11
  346. package/fesm2015/ng-nest-ui-collapse.mjs +16 -17
  347. package/fesm2015/ng-nest-ui-color-picker.mjs +14 -15
  348. package/fesm2015/ng-nest-ui-color-picker.mjs.map +1 -1
  349. package/fesm2015/ng-nest-ui-color.mjs +10 -11
  350. package/fesm2015/ng-nest-ui-comment.mjs +16 -17
  351. package/fesm2015/ng-nest-ui-container.mjs +31 -32
  352. package/fesm2015/ng-nest-ui-core.mjs +88 -16
  353. package/fesm2015/ng-nest-ui-core.mjs.map +1 -1
  354. package/fesm2015/ng-nest-ui-crumb.mjs +10 -11
  355. package/fesm2015/ng-nest-ui-date-picker.mjs +234 -72
  356. package/fesm2015/ng-nest-ui-date-picker.mjs.map +1 -1
  357. package/fesm2015/ng-nest-ui-description.mjs +16 -17
  358. package/fesm2015/ng-nest-ui-dialog.mjs +40 -41
  359. package/fesm2015/ng-nest-ui-doc.mjs +7 -8
  360. package/fesm2015/ng-nest-ui-drawer.mjs +31 -32
  361. package/fesm2015/ng-nest-ui-dropdown.mjs +13 -14
  362. package/fesm2015/ng-nest-ui-empty.mjs +10 -11
  363. package/fesm2015/ng-nest-ui-examples.mjs +7 -8
  364. package/fesm2015/ng-nest-ui-find.mjs +10 -11
  365. package/fesm2015/ng-nest-ui-form.mjs +16 -17
  366. package/fesm2015/ng-nest-ui-highlight.mjs +10 -11
  367. package/fesm2015/ng-nest-ui-i18n.mjs +33 -18
  368. package/fesm2015/ng-nest-ui-i18n.mjs.map +1 -1
  369. package/fesm2015/ng-nest-ui-icon.mjs +13 -14
  370. package/fesm2015/ng-nest-ui-image.mjs +19 -20
  371. package/fesm2015/ng-nest-ui-inner.mjs +10 -11
  372. package/fesm2015/ng-nest-ui-input-number.mjs +10 -11
  373. package/fesm2015/ng-nest-ui-input.mjs +16 -17
  374. package/fesm2015/ng-nest-ui-keyword.mjs +10 -11
  375. package/fesm2015/ng-nest-ui-layout.mjs +16 -17
  376. package/fesm2015/ng-nest-ui-link.mjs +10 -11
  377. package/fesm2015/ng-nest-ui-list.mjs +21 -22
  378. package/fesm2015/ng-nest-ui-list.mjs.map +1 -1
  379. package/fesm2015/ng-nest-ui-loading.mjs +10 -11
  380. package/fesm2015/ng-nest-ui-menu.mjs +16 -17
  381. package/fesm2015/ng-nest-ui-message-box.mjs +10 -11
  382. package/fesm2015/ng-nest-ui-message.mjs +10 -11
  383. package/fesm2015/ng-nest-ui-notification.mjs +10 -11
  384. package/fesm2015/ng-nest-ui-outlet.mjs +7 -8
  385. package/fesm2015/ng-nest-ui-page-header.mjs +10 -11
  386. package/fesm2015/ng-nest-ui-pagination.mjs +10 -11
  387. package/fesm2015/ng-nest-ui-pattern.mjs +7 -8
  388. package/fesm2015/ng-nest-ui-popconfirm.mjs +10 -11
  389. package/fesm2015/ng-nest-ui-popover.mjs +13 -14
  390. package/fesm2015/ng-nest-ui-portal.mjs +7 -8
  391. package/fesm2015/ng-nest-ui-progress.mjs +10 -11
  392. package/fesm2015/ng-nest-ui-radio.mjs +10 -11
  393. package/fesm2015/ng-nest-ui-rate.mjs +10 -11
  394. package/fesm2015/ng-nest-ui-resizable.mjs +10 -11
  395. package/fesm2015/ng-nest-ui-result.mjs +10 -11
  396. package/fesm2015/ng-nest-ui-ripple.mjs +10 -11
  397. package/fesm2015/ng-nest-ui-select.mjs +13 -14
  398. package/fesm2015/ng-nest-ui-skeleton.mjs +10 -11
  399. package/fesm2015/ng-nest-ui-slider-select.mjs +10 -11
  400. package/fesm2015/ng-nest-ui-slider.mjs +20 -12
  401. package/fesm2015/ng-nest-ui-slider.mjs.map +1 -1
  402. package/fesm2015/ng-nest-ui-statistic.mjs +16 -17
  403. package/fesm2015/ng-nest-ui-steps.mjs +10 -11
  404. package/fesm2015/ng-nest-ui-switch.mjs +10 -11
  405. package/fesm2015/ng-nest-ui-table.mjs +31 -31
  406. package/fesm2015/ng-nest-ui-tabs.mjs +25 -26
  407. package/fesm2015/ng-nest-ui-tag.mjs +10 -11
  408. package/fesm2015/ng-nest-ui-text-retract.mjs +10 -11
  409. package/fesm2015/ng-nest-ui-textarea.mjs +10 -11
  410. package/fesm2015/ng-nest-ui-theme.mjs +10 -11
  411. package/fesm2015/ng-nest-ui-time-ago.mjs +7 -8
  412. package/fesm2015/ng-nest-ui-time-picker.mjs +66 -30
  413. package/fesm2015/ng-nest-ui-time-picker.mjs.map +1 -1
  414. package/fesm2015/ng-nest-ui-time-range.mjs +7 -8
  415. package/fesm2015/ng-nest-ui-timeline.mjs +10 -11
  416. package/fesm2015/ng-nest-ui-tooltip.mjs +13 -14
  417. package/fesm2015/ng-nest-ui-transfer.mjs +10 -10
  418. package/fesm2015/ng-nest-ui-tree-file.mjs +23 -13
  419. package/fesm2015/ng-nest-ui-tree-file.mjs.map +1 -1
  420. package/fesm2015/ng-nest-ui-tree-select.mjs +13 -14
  421. package/fesm2015/ng-nest-ui-tree.mjs +368 -55
  422. package/fesm2015/ng-nest-ui-tree.mjs.map +1 -1
  423. package/fesm2015/ng-nest-ui-typography.mjs +10 -11
  424. package/fesm2015/ng-nest-ui-upload.mjs +13 -14
  425. package/fesm2015/ng-nest-ui.mjs +0 -1
  426. package/fesm2020/ng-nest-ui-affix.mjs +10 -11
  427. package/fesm2020/ng-nest-ui-alert.mjs +10 -11
  428. package/fesm2020/ng-nest-ui-anchor.mjs +71 -24
  429. package/fesm2020/ng-nest-ui-anchor.mjs.map +1 -1
  430. package/fesm2020/ng-nest-ui-api.mjs +7 -8
  431. package/fesm2020/ng-nest-ui-auto-complete.mjs +13 -14
  432. package/fesm2020/ng-nest-ui-avatar.mjs +16 -17
  433. package/fesm2020/ng-nest-ui-back-top.mjs +10 -11
  434. package/fesm2020/ng-nest-ui-badge.mjs +10 -11
  435. package/fesm2020/ng-nest-ui-base-form.mjs +10 -11
  436. package/fesm2020/ng-nest-ui-border.mjs +7 -8
  437. package/fesm2020/ng-nest-ui-button.mjs +16 -17
  438. package/fesm2020/ng-nest-ui-calendar.mjs +10 -11
  439. package/fesm2020/ng-nest-ui-card.mjs +10 -11
  440. package/fesm2020/ng-nest-ui-carousel.mjs +16 -17
  441. package/fesm2020/ng-nest-ui-cascade.mjs +13 -14
  442. package/fesm2020/ng-nest-ui-checkbox.mjs +10 -11
  443. package/fesm2020/ng-nest-ui-collapse.mjs +16 -17
  444. package/fesm2020/ng-nest-ui-color-picker.mjs +14 -15
  445. package/fesm2020/ng-nest-ui-color-picker.mjs.map +1 -1
  446. package/fesm2020/ng-nest-ui-color.mjs +10 -11
  447. package/fesm2020/ng-nest-ui-comment.mjs +16 -17
  448. package/fesm2020/ng-nest-ui-container.mjs +31 -32
  449. package/fesm2020/ng-nest-ui-core.mjs +88 -16
  450. package/fesm2020/ng-nest-ui-core.mjs.map +1 -1
  451. package/fesm2020/ng-nest-ui-crumb.mjs +10 -11
  452. package/fesm2020/ng-nest-ui-date-picker.mjs +233 -72
  453. package/fesm2020/ng-nest-ui-date-picker.mjs.map +1 -1
  454. package/fesm2020/ng-nest-ui-description.mjs +16 -17
  455. package/fesm2020/ng-nest-ui-dialog.mjs +40 -41
  456. package/fesm2020/ng-nest-ui-doc.mjs +7 -8
  457. package/fesm2020/ng-nest-ui-drawer.mjs +31 -32
  458. package/fesm2020/ng-nest-ui-dropdown.mjs +13 -14
  459. package/fesm2020/ng-nest-ui-empty.mjs +10 -11
  460. package/fesm2020/ng-nest-ui-examples.mjs +7 -8
  461. package/fesm2020/ng-nest-ui-find.mjs +10 -11
  462. package/fesm2020/ng-nest-ui-form.mjs +16 -17
  463. package/fesm2020/ng-nest-ui-highlight.mjs +10 -11
  464. package/fesm2020/ng-nest-ui-i18n.mjs +33 -18
  465. package/fesm2020/ng-nest-ui-i18n.mjs.map +1 -1
  466. package/fesm2020/ng-nest-ui-icon.mjs +13 -14
  467. package/fesm2020/ng-nest-ui-image.mjs +19 -20
  468. package/fesm2020/ng-nest-ui-inner.mjs +10 -11
  469. package/fesm2020/ng-nest-ui-input-number.mjs +10 -11
  470. package/fesm2020/ng-nest-ui-input.mjs +16 -17
  471. package/fesm2020/ng-nest-ui-keyword.mjs +10 -11
  472. package/fesm2020/ng-nest-ui-layout.mjs +16 -17
  473. package/fesm2020/ng-nest-ui-link.mjs +10 -11
  474. package/fesm2020/ng-nest-ui-list.mjs +21 -22
  475. package/fesm2020/ng-nest-ui-list.mjs.map +1 -1
  476. package/fesm2020/ng-nest-ui-loading.mjs +10 -11
  477. package/fesm2020/ng-nest-ui-menu.mjs +16 -17
  478. package/fesm2020/ng-nest-ui-message-box.mjs +10 -11
  479. package/fesm2020/ng-nest-ui-message.mjs +10 -11
  480. package/fesm2020/ng-nest-ui-notification.mjs +10 -11
  481. package/fesm2020/ng-nest-ui-outlet.mjs +7 -8
  482. package/fesm2020/ng-nest-ui-page-header.mjs +10 -11
  483. package/fesm2020/ng-nest-ui-pagination.mjs +10 -11
  484. package/fesm2020/ng-nest-ui-pattern.mjs +7 -8
  485. package/fesm2020/ng-nest-ui-popconfirm.mjs +10 -11
  486. package/fesm2020/ng-nest-ui-popover.mjs +13 -14
  487. package/fesm2020/ng-nest-ui-portal.mjs +7 -8
  488. package/fesm2020/ng-nest-ui-progress.mjs +10 -11
  489. package/fesm2020/ng-nest-ui-radio.mjs +10 -11
  490. package/fesm2020/ng-nest-ui-rate.mjs +10 -11
  491. package/fesm2020/ng-nest-ui-resizable.mjs +10 -11
  492. package/fesm2020/ng-nest-ui-result.mjs +10 -11
  493. package/fesm2020/ng-nest-ui-ripple.mjs +10 -11
  494. package/fesm2020/ng-nest-ui-select.mjs +13 -14
  495. package/fesm2020/ng-nest-ui-skeleton.mjs +10 -11
  496. package/fesm2020/ng-nest-ui-slider-select.mjs +10 -11
  497. package/fesm2020/ng-nest-ui-slider.mjs +20 -12
  498. package/fesm2020/ng-nest-ui-slider.mjs.map +1 -1
  499. package/fesm2020/ng-nest-ui-statistic.mjs +16 -17
  500. package/fesm2020/ng-nest-ui-steps.mjs +10 -11
  501. package/fesm2020/ng-nest-ui-switch.mjs +10 -11
  502. package/fesm2020/ng-nest-ui-table.mjs +31 -31
  503. package/fesm2020/ng-nest-ui-tabs.mjs +25 -26
  504. package/fesm2020/ng-nest-ui-tag.mjs +10 -11
  505. package/fesm2020/ng-nest-ui-text-retract.mjs +10 -11
  506. package/fesm2020/ng-nest-ui-textarea.mjs +10 -11
  507. package/fesm2020/ng-nest-ui-theme.mjs +10 -11
  508. package/fesm2020/ng-nest-ui-time-ago.mjs +7 -8
  509. package/fesm2020/ng-nest-ui-time-picker.mjs +66 -30
  510. package/fesm2020/ng-nest-ui-time-picker.mjs.map +1 -1
  511. package/fesm2020/ng-nest-ui-time-range.mjs +7 -8
  512. package/fesm2020/ng-nest-ui-timeline.mjs +10 -11
  513. package/fesm2020/ng-nest-ui-tooltip.mjs +13 -14
  514. package/fesm2020/ng-nest-ui-transfer.mjs +10 -10
  515. package/fesm2020/ng-nest-ui-tree-file.mjs +23 -13
  516. package/fesm2020/ng-nest-ui-tree-file.mjs.map +1 -1
  517. package/fesm2020/ng-nest-ui-tree-select.mjs +13 -14
  518. package/fesm2020/ng-nest-ui-tree.mjs +365 -55
  519. package/fesm2020/ng-nest-ui-tree.mjs.map +1 -1
  520. package/fesm2020/ng-nest-ui-typography.mjs +10 -11
  521. package/fesm2020/ng-nest-ui-upload.mjs +13 -14
  522. package/fesm2020/ng-nest-ui.mjs +0 -1
  523. package/i18n/i18n.property.d.ts +3 -0
  524. package/i18n/languages/en_GB.d.ts +4 -0
  525. package/i18n/languages/en_US.d.ts +4 -0
  526. package/i18n/languages/zh_CN.d.ts +4 -0
  527. package/i18n/languages/zh_TW.d.ts +4 -0
  528. package/package.json +1 -1
  529. package/slider/slider.component.d.ts +1 -1
  530. package/slider/slider.property.d.ts +6 -1
  531. package/time-picker/time-picker-frame.component.d.ts +6 -2
  532. package/time-picker/time-picker-portal.component.d.ts +2 -1
  533. package/time-picker/time-picker.property.d.ts +32 -1
  534. package/tree/tree-node.component.d.ts +35 -4
  535. package/tree/tree.component.d.ts +24 -3
  536. package/tree/tree.module.d.ts +8 -7
  537. package/tree/tree.property.d.ts +63 -1
  538. package/tree/tree.service.d.ts +10 -0
  539. package/tree-file/tree-file.component.d.ts +1 -0
  540. package/divider/README.md +0 -9
@@ -1,6 +1,6 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener } from '@angular/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, HostListener, ViewChild } from '@angular/core';
2
2
  import { XDatePickerPortalPrefix } from './date-picker.property';
3
- import { XIsEmpty, XConnectBaseAnimation, XAddDays } from '@ng-nest/ui/core';
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
6
  import { DatePipe, LowerCasePipe } from '@angular/common';
@@ -23,7 +23,6 @@ export class XDatePickerPortalComponent {
23
23
  this.type = 'date';
24
24
  this.display = new Date();
25
25
  this.locale = {};
26
- this.time = new Date().getTime();
27
26
  this.preset = [];
28
27
  this._unSubject = new Subject();
29
28
  }
@@ -37,6 +36,19 @@ export class XDatePickerPortalComponent {
37
36
  get isDatePicker() {
38
37
  return ['date', 'month', 'year'].includes(this.type);
39
38
  }
39
+ get sureDisabled() {
40
+ let res = XIsUndefined(this.time);
41
+ if (this.timePickerFrame && !XIsUndefined(this.time)) {
42
+ const dt = new Date(this.time);
43
+ const hours = dt.getHours();
44
+ const minutes = dt.getMinutes();
45
+ const seconds = dt.getSeconds();
46
+ return (this.timePickerFrame.setDisabled('hours', hours) ||
47
+ this.timePickerFrame.setDisabled('minutes', minutes) ||
48
+ this.timePickerFrame.setDisabled('seconds', seconds));
49
+ }
50
+ return res;
51
+ }
40
52
  ngOnInit() {
41
53
  this.valueChange.pipe(takeUntil(this._unSubject)).subscribe((x) => {
42
54
  this.value = x;
@@ -83,6 +95,16 @@ export class XDatePickerPortalComponent {
83
95
  this.setDisplay(date);
84
96
  this.model = date;
85
97
  if (['date-time', 'date-hour', 'date-minute'].includes(this._type)) {
98
+ let time = new Date();
99
+ if (['date-hour', 'date-minute'].includes(this.type)) {
100
+ time.setSeconds(0);
101
+ }
102
+ if (this.type === 'date-hour') {
103
+ time.setMinutes(0);
104
+ }
105
+ if (!this.time) {
106
+ this.time = time.getTime();
107
+ }
86
108
  this.setModelTime(this.model, new Date(this.time));
87
109
  this.nodeEmit(this.model, false);
88
110
  }
@@ -125,6 +147,9 @@ export class XDatePickerPortalComponent {
125
147
  this.dateChange(item.func());
126
148
  }
127
149
  selectTime(time) {
150
+ if (!this.model) {
151
+ this.model = new Date();
152
+ }
128
153
  this.time = time.getTime();
129
154
  this.nodeEmit(this.setModelTime(this.model, time), false);
130
155
  this.cdr.detectChanges();
@@ -134,11 +159,11 @@ export class XDatePickerPortalComponent {
134
159
  return this.model;
135
160
  }
136
161
  }
137
- /** @nocollapse */ XDatePickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerPortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
138
- /** @nocollapse */ XDatePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", 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], 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 [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"monthChange($event)\"></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"yearChange($event)\"></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 [display]=\"display\" [(type)]=\"type\" [model]=\"model\" (modelChange)=\"dateChange($event)\"></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 [type]=\"timeType\" [value]=\"time\" size=\"small\" (nodeEmit)=\"selectTime($event)\"></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)=\"nodeEmit(model)\" size=\"small\">{{ 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.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"], 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.XPickerYearComponent, selector: "x-picker-year" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
139
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerPortalComponent, decorators: [{
162
+ /** @nocollapse */ XDatePickerPortalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerPortalComponent, deps: [{ token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i0.ChangeDetectorRef }, { token: i2.XI18nService }], target: i0.ɵɵFactoryTarget.Component });
163
+ /** @nocollapse */ XDatePickerPortalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", 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=\"'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.XPickerYearComponent, selector: "x-picker-year" }, { kind: "pipe", type: i1.DatePipe, name: "date" }], animations: [XConnectBaseAnimation], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerPortalComponent, decorators: [{
140
165
  type: Component,
141
- 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 [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"dateChange($event)\"></x-picker-date>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'month'\">\r\n <x-picker-month [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"monthChange($event)\"></x-picker-month>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'year'\">\r\n <x-picker-year [display]=\"display\" [model]=\"model\" [(type)]=\"type\" (modelChange)=\"yearChange($event)\"></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 [display]=\"display\" [(type)]=\"type\" [model]=\"model\" (modelChange)=\"dateChange($event)\"></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 [type]=\"timeType\" [value]=\"time\" size=\"small\" (nodeEmit)=\"selectTime($event)\"></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)=\"nodeEmit(model)\" size=\"small\">{{ 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.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"] }]
166
+ 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=\"'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"] }]
142
167
  }], ctorParameters: function () { return [{ type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i0.ChangeDetectorRef }, { type: i2.XI18nService }]; }, propDecorators: { placement: [{
143
168
  type: HostBinding,
144
169
  args: ['@x-connect-base-animation']
@@ -148,5 +173,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
148
173
  }], start: [{
149
174
  type: HostListener,
150
175
  args: ['@x-connect-base-animation.start', ['$event']]
176
+ }], timePickerFrame: [{
177
+ type: ViewChild,
178
+ args: ['timePickerFrame']
151
179
  }] } });
152
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ2IsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLHVCQUF1QixFQUFzQyxNQUFNLHdCQUF3QixDQUFDO0FBQ3JHLE9BQU8sRUFBRSxRQUFRLEVBQUUscUJBQXFCLEVBQXNCLFFBQVEsRUFBYSxNQUFNLGtCQUFrQixDQUFDO0FBQzVHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsUUFBUSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7OztBQWExRCxNQUFNLE9BQU8sMEJBQTBCO0lBZ0NyQyxZQUFtQixRQUFrQixFQUFTLGFBQTRCLEVBQVMsR0FBc0IsRUFBUyxJQUFrQjtRQUFqSCxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQVMsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFBUyxRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQUFTLFNBQUksR0FBSixJQUFJLENBQWM7UUF0QnBJLFNBQUksR0FBb0IsTUFBTSxDQUFDO1FBQy9CLFlBQU8sR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO1FBU3JCLFdBQU0sR0FBb0IsRUFBRSxDQUFDO1FBQzdCLFNBQUksR0FBVyxJ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UUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzswSUFoSlUsMEJBQTBCOzhIQUExQiwwQkFBMEIsNk9BRjFCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQywwQkMxQnRDLG0vR0FnRUEsd21HRHZDYyxDQUFDLHFCQUFxQixDQUFDOzJGQUd4QiwwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0UsR0FBRyx1QkFBdUIsRUFBRSxpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLHFCQUFxQixDQUFDLGFBQ3hCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQztzTEFHYSxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgT25Jbml0LFxyXG4gIE9uRGVzdHJveSxcclxuICBBZnRlclZpZXdJbml0LFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIEhvc3RMaXN0ZW5lclxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZVBpY2tlclBvcnRhbFByZWZpeCwgWERhdGVQaWNrZXJQcmVzZXQsIFhEYXRlUGlja2VyVHlwZSB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBYSXNFbXB0eSwgWENvbm5lY3RCYXNlQW5pbWF0aW9uLCBYUG9zaXRpb25Ub3BCb3R0b20sIFhBZGREYXlzLCBYVGVtcGxhdGUgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRGF0ZVBpcGUsIExvd2VyQ2FzZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBYSTE4blNlcnZpY2UsIFhJMThuRGF0ZVBpY2tlciB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5pbXBvcnQgeyBYSW5wdXRDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9pbnB1dCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogYCR7WERhdGVQaWNrZXJQb3J0YWxQcmVmaXh9YCxcclxuICB0ZW1wbGF0ZVVybDogJy4vZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50LnNjc3MnXSxcclxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG4gIGFuaW1hdGlvbnM6IFtYQ29ubmVjdEJhc2VBbmltYXRpb25dLFxyXG4gIHByb3ZpZGVyczogW0RhdGVQaXBlLCBMb3dlckNhc2VQaXBlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgWERhdGVQaWNrZXJQb3J0YWxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgQWZ0ZXJWaWV3SW5pdCB7XHJcbiAgQEhvc3RCaW5kaW5nKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uJykgcHVibGljIHBsYWNlbWVudCE6IFhQb3NpdGlvblRvcEJvdHRvbTtcclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLmRvbmUnLCBbJyRldmVudCddKSBkb25lKGV2ZW50OiB7IHRvU3RhdGU6IGFueSB9KSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyhmYWxzZSk7XHJcbiAgICBldmVudC50b1N0YXRlID09PSAndm9pZCcgJiYgdGhpcy5kZXN0cm95UG9ydGFsKCk7XHJcbiAgfVxyXG4gIEBIb3N0TGlzdGVuZXIoJ0B4LWNvbm5lY3QtYmFzZS1hbmltYXRpb24uc3RhcnQnLCBbJyRldmVudCddKSBzdGFydCgpIHtcclxuICAgIHRoaXMuYW5pbWF0aW5nKHRydWUpO1xyXG4gIH1cclxuXHJcbiAgdHlwZTogWERhdGVQaWNrZXJUeXBlID0gJ2RhdGUnO1xyXG4gIGRpc3BsYXkgPSBuZXcgRGF0ZSgpO1xyXG4gIG1vZGVsITogRGF0ZTtcclxuICB2YWx1ZTogYW55O1xyXG4gIHZhbHVlQ2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIHBvc2l0aW9uQ2hhbmdlITogU3ViamVjdDxhbnk+O1xyXG4gIGFuaW1hdGluZyE6IEZ1bmN0aW9uO1xyXG4gIGNsb3NlUG9ydGFsITogRnVuY3Rpb247XHJcbiAgZGVzdHJveVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIG5vZGVFbWl0ITogKGRhdGU6IERhdGUsIHN1cmU/OiBib29sZWFuKSA9PiB2b2lkO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgdGltZTogbnVtYmVyID0gbmV3IERhdGUoKS5nZXRUaW1lKCk7XHJcbiAgcHJlc2V0OiBYRGF0ZVBpY2tlclByZXNldFtdID0gW107XHJcbiAgZXh0cmFGb290ZXI/OiBYVGVtcGxhdGU7XHJcbiAgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcbiAgcHJpdmF0ZSBfdHlwZSE6IFhEYXRlUGlja2VyVHlwZTtcclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgaXNEYXRlUGlja2VyKCkge1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdtb250aCcsICd5ZWFyJ10uaW5jbHVkZXModGhpcy50eXBlKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsIHB1YmxpYyBsb3dlckNhc2VQaXBlOiBMb3dlckNhc2VQaXBlLCBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZiwgcHVibGljIGkxOG46IFhJMThuU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnZhbHVlID0geDtcclxuICAgICAgdGhpcy5pbml0KCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMucG9zaXRpb25DaGFuZ2UucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgIHRoaXMucGxhY2VtZW50ID0geDtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgaWYgKCFYSXNFbXB0eSh0aGlzLnZhbHVlKSkge1xyXG4gICAgICB0aGlzLnNldERlZmF1bHQoKTtcclxuICAgIH1cclxuICAgIHRoaXMuX3R5cGUgPSB0aGlzLnR5cGU7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzdG9wUHJvcGFnYXRpb24oZXZlbnQ6IEV2ZW50KTogdm9pZCB7XHJcbiAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcclxuICB9XHJcblxyXG4gIHNldERlZmF1bHQoKSB7XHJcbiAgICBjb25zdCBkYXRlID0gbmV3IERhdGUodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIHRoaXMudGltZSA9IHRoaXMubW9kZWwuZ2V0VGltZSgpO1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KHRoaXMubW9kZWwpO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgfVxyXG5cclxuICBkYXRlQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgaWYgKFsnZGF0ZS10aW1lJywgJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMuX3R5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwsIG5ldyBEYXRlKHRoaXMudGltZSkpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KHRoaXMubW9kZWwsIGZhbHNlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtb250aENoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5fdHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9IHRoaXMuX3R5cGU7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB5ZWFyQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAneWVhcicpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnR5cGUgPSAnbW9udGgnO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgb25Ub2RheSgpIHtcclxuICAgIHRoaXMuZGF0ZUNoYW5nZShuZXcgRGF0ZSgpKTtcclxuICB9XHJcblxyXG4gIG9uWWVzdGVyZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIC0xKSk7XHJcbiAgfVxyXG5cclxuICBvblRvbW9ycm93KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKFhBZGREYXlzKG5ldyBEYXRlKCksIDEpKTtcclxuICB9XHJcblxyXG4gIG9uUHJlc2V0RnVuYyhpdGVtOiBYRGF0ZVBpY2tlclByZXNldCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKGl0ZW0uZnVuYygpKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRpbWUodGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy50aW1lID0gdGltZS5nZXRUaW1lKCk7XHJcbiAgICB0aGlzLm5vZGVFbWl0KHRoaXMuc2V0TW9kZWxUaW1lKHRoaXMubW9kZWwsIHRpbWUpLCBmYWxzZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXRNb2RlbFRpbWUoZGF0ZTogRGF0ZSwgdGltZTogRGF0ZSkge1xyXG4gICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKGRhdGUuZ2V0RnVsbFllYXIoKSwgZGF0ZS5nZXRNb250aCgpLCBkYXRlLmdldERhdGUoKSwgdGltZS5nZXRIb3VycygpLCB0aW1lLmdldE1pbnV0ZXMoKSwgdGltZS5nZXRTZWNvbmRzKCkpO1xyXG4gICAgcmV0dXJuIHRoaXMubW9kZWw7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbCB7eyB0eXBlIH19XCIgW25nU3dpdGNoXT1cInR5cGVcIiAoY2xpY2spPVwiaW5wdXRDb20uaW5wdXRGb2N1cygpXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUnXCI+XHJcbiAgICA8eC1waWNrZXItZGF0ZSBbZGlzcGxheV09XCJkaXNwbGF5XCIgW21vZGVsXT1cIm1vZGVsXCIgWyh0eXBlKV09XCJ0eXBlXCIgKG1vZGVsQ2hhbmdlKT1cImRhdGVDaGFuZ2UoJGV2ZW50KVwiPjwveC1waWNrZXItZGF0ZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XHJcbiAgICA8eC1waWNrZXItbW9udGggW2Rpc3BsYXldPVwiZGlzcGxheVwiIFttb2RlbF09XCJtb2RlbFwiIFsodHlwZSldPVwidHlwZVwiIChtb2RlbENoYW5nZSk9XCJtb250aENoYW5nZSgkZXZlbnQpXCI+PC94LXBpY2tlci1tb250aD5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIneWVhcidcIj5cclxuICAgIDx4LXBpY2tlci15ZWFyIFtkaXNwbGF5XT1cImRpc3BsYXlcIiBbbW9kZWxdPVwibW9kZWxcIiBbKHR5cGUpXT1cInR5cGVcIiAobW9kZWxDaGFuZ2UpPVwieWVhckNoYW5nZSgkZXZlbnQpXCI+PC94LXBpY2tlci15ZWFyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLXRpbWUnXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISDptbTpzcycsIHRpbWVUeXBlOiAndGltZScgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLWhvdXInXCI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwiZGF0ZVRpbWVIb3VyTWludXRlVHBsOyBjb250ZXh0OiB7IHRpbWVGb3JtYXQ6ICdISCcsIHRpbWVUeXBlOiAnaG91cicgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIidkYXRlLW1pbnV0ZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tJywgdGltZVR5cGU6ICdtaW51dGUnIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiaXNEYXRlUGlja2VyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZXh0cmFGb290ZXJcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXJcIj57eyBleHRyYUZvb3RlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicHJlc2V0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbjwvZGl2PlxyXG5cclxuPG5nLXRlbXBsYXRlICNkYXRlVGltZUhvdXJNaW51dGVUcGwgbGV0LXRpbWVGb3JtYXQ9XCJ0aW1lRm9ybWF0XCIgbGV0LXRpbWVUeXBlPVwidGltZVR5cGVcIj5cclxuICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtY29udGVudFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWRhdGVcIj5cclxuICAgICAgPHgtcGlja2VyLWRhdGUgW2Rpc3BsYXldPVwiZGlzcGxheVwiIFsodHlwZSldPVwidHlwZVwiIFttb2RlbF09XCJtb2RlbFwiIChtb2RlbENoYW5nZSk9XCJkYXRlQ2hhbmdlKCRldmVudClcIj48L3gtcGlja2VyLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lLWxhYmVsXCI+XHJcbiAgICAgICAge3sgdGltZSB8IGRhdGUgOiB0aW1lRm9ybWF0IH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8eC10aW1lLXBpY2tlci1mcmFtZSBbdHlwZV09XCJ0aW1lVHlwZVwiIFt2YWx1ZV09XCJ0aW1lXCIgc2l6ZT1cInNtYWxsXCIgKG5vZGVFbWl0KT1cInNlbGVjdFRpbWUoJGV2ZW50KVwiPjwveC10aW1lLXBpY2tlci1mcmFtZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRlUGlja2VyXCI+XHJcbiAgICA8ZGl2ICpuZ0lmPVwiZXh0cmFGb290ZXJcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWV4dHJhLWZvb3RlclwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICp4T3V0bGV0PVwiZXh0cmFGb290ZXJcIj57eyBleHRyYUZvb3RlciB9fTwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3RlclwiPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLWZvb3Rlci1sZWZ0XCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhaXNEYXRlUGlja2VyXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInByZXNldFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPHgtYnV0dG9uIHR5cGU9XCJwcmltYXJ5XCIgKGNsaWNrKT1cIm5vZGVFbWl0KG1vZGVsKVwiIHNpemU9XCJzbWFsbFwiPnt7IGxvY2FsZS5zdXJlIH19PC94LWJ1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjcHJlc2V0VHBsPlxyXG4gIDxkaXYgKm5nSWY9XCJwcmVzZXRcIiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsLXByZXNldFwiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgaXRlbSBvZiBwcmVzZXRcIj5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uaWQgPT09ICd5ZXN0ZXJkYXknXCIgKGNsaWNrKT1cIm9uWWVzdGVyZGF5KClcIj57eyBsb2NhbGUueWVzdGVyZGF5IH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmlkID09PSAndG9kYXknXCIgKGNsaWNrKT1cIm9uVG9kYXkoKVwiPnt7IGxvY2FsZS50b2RheSB9fTwveC1saW5rPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3RvbW9ycm93J1wiIChjbGljayk9XCJvblRvbW9ycm93KClcIj57eyBsb2NhbGUudG9tb3Jyb3cgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uZnVuY1wiIChjbGljayk9XCJvblByZXNldEZ1bmMoaXRlbSlcIj57eyBpdGVtLmxhYmVsIH19PC94LWxpbms+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuICA8L2Rpdj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9uZy1uZXN0L3VpL2RhdGUtcGlja2VyL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9saWIvbmctbmVzdC91aS9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci1wb3J0YWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3ZCLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNWLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFHTCx1QkFBdUIsRUFHeEIsTUFBTSx3QkFBd0IsQ0FBQztBQUNoQyxPQUFPLEVBQUUsUUFBUSxFQUFFLHFCQUFxQixFQUFzQixRQUFRLEVBQWEsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUgsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7O0FBYzFELE1BQU0sT0FBTywwQkFBMEI7SUFvRHJDLFlBQW1CLFFBQWtCLEVBQVMsYUFBNEIsRUFBUyxHQUFzQixFQUFTLElBQWtCO1FBQWpILGFBQVEsR0FBUixRQUFRLENBQVU7UUFBUyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUFTLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQVMsU0FBSSxHQUFKLElBQUksQ0FBYztRQXhDcEksU0FBSSxHQUFvQixNQUFNLENBQUM7UUFDL0IsWUFBTyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFTckIsV0FBTSxHQUFvQixFQUFFLENB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LEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDO1FBQ2xJLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNwQixDQUFDOzswSUFqTFUsMEJBQTBCOzhIQUExQiwwQkFBMEIsNk9BRjFCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQyw4SUNsQ3RDLGt5SUF3R0EsK2hIRHZFYyxDQUFDLHFCQUFxQixDQUFDOzJGQUd4QiwwQkFBMEI7a0JBVHRDLFNBQVM7K0JBQ0UsR0FBRyx1QkFBdUIsRUFBRSxpQkFHdkIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxjQUNuQyxDQUFDLHFCQUFxQixDQUFDLGFBQ3hCLENBQUMsUUFBUSxFQUFFLGFBQWEsQ0FBQztzTEFHYSxTQUFTO3NCQUF6RCxXQUFXO3VCQUFDLDJCQUEyQjtnQkFDb0IsSUFBSTtzQkFBL0QsWUFBWTt1QkFBQyxnQ0FBZ0MsRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFJRyxLQUFLO3NCQUFqRSxZQUFZO3VCQUFDLGlDQUFpQyxFQUFFLENBQUMsUUFBUSxDQUFDO2dCQUk3QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uSW5pdCxcclxuICBPbkRlc3Ryb3ksXHJcbiAgQWZ0ZXJWaWV3SW5pdCxcclxuICBIb3N0QmluZGluZyxcclxuICBIb3N0TGlzdGVuZXIsXHJcbiAgVmlld0NoaWxkXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7XHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZERhdGUsXHJcbiAgWERhdGVQaWNrZXJEaXNhYmxlZFRpbWUsXHJcbiAgWERhdGVQaWNrZXJQb3J0YWxQcmVmaXgsXHJcbiAgWERhdGVQaWNrZXJQcmVzZXQsXHJcbiAgWERhdGVQaWNrZXJUeXBlXHJcbn0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYQ29ubmVjdEJhc2VBbmltYXRpb24sIFhQb3NpdGlvblRvcEJvdHRvbSwgWEFkZERheXMsIFhUZW1wbGF0ZSwgWElzVW5kZWZpbmVkIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5TZXJ2aWNlLCBYSTE4bkRhdGVQaWNrZXIgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBYVGltZVBpY2tlckZyYW1lQ29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvdGltZS1waWNrZXInO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUG9ydGFsUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBhbmltYXRpb25zOiBbWENvbm5lY3RCYXNlQW5pbWF0aW9uXSxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xyXG4gIEBIb3N0QmluZGluZygnQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbicpIHB1YmxpYyBwbGFjZW1lbnQhOiBYUG9zaXRpb25Ub3BCb3R0b207XHJcbiAgQEhvc3RMaXN0ZW5lcignQHgtY29ubmVjdC1iYXNlLWFuaW1hdGlvbi5kb25lJywgWyckZXZlbnQnXSkgZG9uZShldmVudDogeyB0b1N0YXRlOiBhbnkgfSkge1xyXG4gICAgdGhpcy5hbmltYXRpbmcoZmFsc2UpO1xyXG4gICAgZXZlbnQudG9TdGF0ZSA9PT0gJ3ZvaWQnICYmIHRoaXMuZGVzdHJveVBvcnRhbCgpO1xyXG4gIH1cclxuICBASG9zdExpc3RlbmVyKCdAeC1jb25uZWN0LWJhc2UtYW5pbWF0aW9uLnN0YXJ0JywgWyckZXZlbnQnXSkgc3RhcnQoKSB7XHJcbiAgICB0aGlzLmFuaW1hdGluZyh0cnVlKTtcclxuICB9XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RpbWVQaWNrZXJGcmFtZScpIHRpbWVQaWNrZXJGcmFtZT86IFhUaW1lUGlja2VyRnJhbWVDb21wb25lbnQ7XHJcblxyXG4gIHR5cGU6IFhEYXRlUGlja2VyVHlwZSA9ICdkYXRlJztcclxuICBkaXNwbGF5ID0gbmV3IERhdGUoKTtcclxuICBtb2RlbCE6IERhdGU7XHJcbiAgdmFsdWU6IGFueTtcclxuICB2YWx1ZUNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBwb3NpdGlvbkNoYW5nZSE6IFN1YmplY3Q8YW55PjtcclxuICBhbmltYXRpbmchOiBGdW5jdGlvbjtcclxuICBjbG9zZVBvcnRhbCE6IEZ1bmN0aW9uO1xyXG4gIGRlc3Ryb3lQb3J0YWwhOiBGdW5jdGlvbjtcclxuICBub2RlRW1pdCE6IChkYXRlOiBEYXRlLCBzdXJlPzogYm9vbGVhbikgPT4gdm9pZDtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG4gIHRpbWUhOiBudW1iZXIgfCBudWxsO1xyXG4gIHByZXNldDogWERhdGVQaWNrZXJQcmVzZXRbXSA9IFtdO1xyXG4gIGV4dHJhRm9vdGVyPzogWFRlbXBsYXRlO1xyXG4gIGlucHV0Q29tITogWElucHV0Q29tcG9uZW50O1xyXG4gIGRpc2FibGVkRGF0ZSE6IFhEYXRlUGlja2VyRGlzYWJsZWREYXRlO1xyXG4gIGRpc2FibGVkVGltZSE6IFhEYXRlUGlja2VyRGlzYWJsZWRUaW1lO1xyXG4gIHByaXZhdGUgX3R5cGUhOiBYRGF0ZVBpY2tlclR5cGU7XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGlzRGF0ZVBpY2tlcigpIHtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnbW9udGgnLCAneWVhciddLmluY2x1ZGVzKHRoaXMudHlwZSk7XHJcbiAgfVxyXG5cclxuICBnZXQgc3VyZURpc2FibGVkKCkge1xyXG4gICAgbGV0IHJlcyA9IFhJc1VuZGVmaW5lZCh0aGlzLnRpbWUpO1xyXG4gICAgaWYgKHRoaXMudGltZVBpY2tlckZyYW1lICYmICFYSXNVbmRlZmluZWQodGhpcy50aW1lKSkge1xyXG4gICAgICBjb25zdCBkdCA9IG5ldyBEYXRlKHRoaXMudGltZSEpO1xyXG4gICAgICBjb25zdCBob3VycyA9IGR0LmdldEhvdXJzKCk7XHJcbiAgICAgIGNvbnN0IG1pbnV0ZXMgPSBkdC5nZXRNaW51dGVzKCk7XHJcbiAgICAgIGNvbnN0IHNlY29uZHMgPSBkdC5nZXRTZWNvbmRzKCk7XHJcbiAgICAgIHJldHVybiAoXHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ2hvdXJzJywgaG91cnMpIHx8XHJcbiAgICAgICAgdGhpcy50aW1lUGlja2VyRnJhbWUuc2V0RGlzYWJsZWQoJ21pbnV0ZXMnLCBtaW51dGVzKSB8fFxyXG4gICAgICAgIHRoaXMudGltZVBpY2tlckZyYW1lLnNldERpc2FibGVkKCdzZWNvbmRzJywgc2Vjb25kcylcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHJldHVybiByZXM7XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZGF0ZVBpcGU6IERhdGVQaXBlLCBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSwgcHVibGljIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2UpIHt9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgdGhpcy52YWx1ZSA9IHg7XHJcbiAgICAgIHRoaXMuaW5pdCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvc2l0aW9uQ2hhbmdlLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICB0aGlzLnBsYWNlbWVudCA9IHg7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLmluaXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy52YWx1ZSkpIHtcclxuICAgICAgdGhpcy5zZXREZWZhdWx0KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLl90eXBlID0gdGhpcy50eXBlO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgc3RvcFByb3BhZ2F0aW9uKGV2ZW50OiBFdmVudCk6IHZvaWQge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgfVxyXG5cclxuICBzZXREZWZhdWx0KCkge1xyXG4gICAgY29uc3QgZGF0ZSA9IG5ldyBEYXRlKHRoaXMudmFsdWUpO1xyXG4gICAgdGhpcy5tb2RlbCA9IGRhdGU7XHJcbiAgICB0aGlzLnRpbWUgPSB0aGlzLm1vZGVsLmdldFRpbWUoKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheSh0aGlzLm1vZGVsKTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gIH1cclxuXHJcbiAgZGF0ZUNoYW5nZShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgIGlmIChbJ2RhdGUtdGltZScsICdkYXRlLWhvdXInLCAnZGF0ZS1taW51dGUnXS5pbmNsdWRlcyh0aGlzLl90eXBlKSkge1xyXG4gICAgICBsZXQgdGltZSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIGlmIChbJ2RhdGUtaG91cicsICdkYXRlLW1pbnV0ZSddLmluY2x1ZGVzKHRoaXMudHlwZSkpIHtcclxuICAgICAgICB0aW1lLnNldFNlY29uZHMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgICB0aW1lLnNldE1pbnV0ZXMoMCk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCF0aGlzLnRpbWUpIHtcclxuICAgICAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnNldE1vZGVsVGltZSh0aGlzLm1vZGVsLCBuZXcgRGF0ZSh0aGlzLnRpbWUhKSk7XHJcbiAgICAgIHRoaXMubm9kZUVtaXQodGhpcy5tb2RlbCwgZmFsc2UpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ub2RlRW1pdCh0aGlzLm1vZGVsKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1vbnRoQ2hhbmdlKGRhdGU6IERhdGUpIHtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIGlmICh0aGlzLl90eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMubW9kZWwgPSBkYXRlO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0KGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy50eXBlID0gdGhpcy5fdHlwZTtcclxuICAgIH1cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHllYXJDaGFuZ2UoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5zZXREaXNwbGF5KGRhdGUpO1xyXG4gICAgaWYgKHRoaXMuX3R5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLm1vZGVsID0gZGF0ZTtcclxuICAgICAgdGhpcy5ub2RlRW1pdChkYXRlKTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudHlwZSA9ICdtb250aCc7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvblRvZGF5KCkge1xyXG4gICAgdGhpcy5kYXRlQ2hhbmdlKG5ldyBEYXRlKCkpO1xyXG4gIH1cclxuXHJcbiAgb25ZZXN0ZXJkYXkoKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgLTEpKTtcclxuICB9XHJcblxyXG4gIG9uVG9tb3Jyb3coKSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoWEFkZERheXMobmV3IERhdGUoKSwgMSkpO1xyXG4gIH1cclxuXHJcbiAgb25QcmVzZXRGdW5jKGl0ZW06IFhEYXRlUGlja2VyUHJlc2V0KSB7XHJcbiAgICB0aGlzLmRhdGVDaGFuZ2UoaXRlbS5mdW5jKCkpO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VGltZSh0aW1lOiBEYXRlKSB7XHJcbiAgICBpZiAoIXRoaXMubW9kZWwpIHtcclxuICAgICAgdGhpcy5tb2RlbCA9IG5ldyBEYXRlKCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLnRpbWUgPSB0aW1lLmdldFRpbWUoKTtcclxuICAgIHRoaXMubm9kZUVtaXQodGhpcy5zZXRNb2RlbFRpbWUodGhpcy5tb2RlbCwgdGltZSksIGZhbHNlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldE1vZGVsVGltZShkYXRlOiBEYXRlLCB0aW1lOiBEYXRlKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIGRhdGUuZ2V0RGF0ZSgpLCB0aW1lLmdldEhvdXJzKCksIHRpbWUuZ2V0TWludXRlcygpLCB0aW1lLmdldFNlY29uZHMoKSk7XHJcbiAgICByZXR1cm4gdGhpcy5tb2RlbDtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcG9ydGFsIHt7IHR5cGUgfX1cIiBbbmdTd2l0Y2hdPVwidHlwZVwiIChjbGljayk9XCJpbnB1dENvbS5pbnB1dEZvY3VzKClcIj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInZGF0ZSdcIj5cclxuICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgPjwveC1waWNrZXItZGF0ZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInd2VlaydcIj5cclxuICAgIDx4LXBpY2tlci1kYXRlXHJcbiAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICBbbW9kZWxdPVwibW9kZWxcIlxyXG4gICAgICBbKHR5cGUpXT1cInR5cGVcIlxyXG4gICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgPjwveC1waWNrZXItZGF0ZT5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGgnXCI+XHJcbiAgICA8eC1waWNrZXItbW9udGhcclxuICAgICAgW2Rpc3BsYXldPVwiZGlzcGxheVwiXHJcbiAgICAgIFttb2RlbF09XCJtb2RlbFwiXHJcbiAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgIChtb2RlbENoYW5nZSk9XCJtb250aENoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgW2Rpc2FibGVkRGF0ZV09XCJkaXNhYmxlZERhdGVcIlxyXG4gICAgPjwveC1waWNrZXItbW9udGg+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ3llYXInXCI+XHJcbiAgICA8eC1waWNrZXIteWVhclxyXG4gICAgICBbZGlzcGxheV09XCJkaXNwbGF5XCJcclxuICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgWyh0eXBlKV09XCJ0eXBlXCJcclxuICAgICAgKG1vZGVsQ2hhbmdlKT1cInllYXJDaGFuZ2UoJGV2ZW50KVwiXHJcbiAgICAgIFtkaXNhYmxlZERhdGVdPVwiZGlzYWJsZWREYXRlXCJcclxuICAgID48L3gtcGlja2VyLXllYXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtdGltZSdcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIOm1tOnNzJywgdGltZVR5cGU6ICd0aW1lJyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtaG91cidcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJkYXRlVGltZUhvdXJNaW51dGVUcGw7IGNvbnRleHQ6IHsgdGltZUZvcm1hdDogJ0hIJywgdGltZVR5cGU6ICdob3VyJyB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ2RhdGUtbWludXRlJ1wiPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImRhdGVUaW1lSG91ck1pbnV0ZVRwbDsgY29udGV4dDogeyB0aW1lRm9ybWF0OiAnSEg6bW0nLCB0aW1lVHlwZTogJ21pbnV0ZScgfVwiPjwvbmctY29udGFpbmVyPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxuZy1jb250YWluZXIgKm5nSWY9XCJpc0RhdGVQaWNrZXJcIj5cclxuICAgIDxkaXYgKm5nSWY9XCJleHRyYUZvb3RlclwiIGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZXh0cmEtZm9vdGVyXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXIgKnhPdXRsZXQ9XCJleHRyYUZvb3RlclwiPnt7IGV4dHJhRm9vdGVyIH19PC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVzZXRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9kaXY+XHJcblxyXG48bmctdGVtcGxhdGUgI2RhdGVUaW1lSG91ck1pbnV0ZVRwbCBsZXQtdGltZUZvcm1hdD1cInRpbWVGb3JtYXRcIiBsZXQtdGltZVR5cGU9XCJ0aW1lVHlwZVwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1jb250ZW50XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwieC1kYXRlLXBpY2tlci1wb3J0YWwtZGF0ZVwiPlxyXG4gICAgICA8eC1waWNrZXItZGF0ZVxyXG4gICAgICAgIFtkaXNwbGF5XT1cImRpc3BsYXlcIlxyXG4gICAgICAgIFsodHlwZSldPVwidHlwZVwiXHJcbiAgICAgICAgW21vZGVsXT1cIm1vZGVsXCJcclxuICAgICAgICAobW9kZWxDaGFuZ2UpPVwiZGF0ZUNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICBbZGlzYWJsZWREYXRlXT1cImRpc2FibGVkRGF0ZVwiXHJcbiAgICAgID48L3gtcGlja2VyLWRhdGU+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC10aW1lLWxhYmVsXCI+XHJcbiAgICAgICAge3sgdGltZSB8IGRhdGUgOiB0aW1lRm9ybWF0IH19XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgICA8eC10aW1lLXBpY2tlci1mcmFtZVxyXG4gICAgICAgICN0aW1lUGlja2VyRnJhbWVcclxuICAgICAgICBbdHlwZV09XCJ0aW1lVHlwZVwiXHJcbiAgICAgICAgW3ZhbHVlXT1cInRpbWVcIlxyXG4gICAgICAgIChub2RlRW1pdCk9XCJzZWxlY3RUaW1lKCRldmVudClcIlxyXG4gICAgICAgIFtkaXNhYmxlZFRpbWVdPVwiZGlzYWJsZWRUaW1lXCJcclxuICAgICAgICBbZGVmYXVsdE5vd109XCJmYWxzZVwiXHJcbiAgICAgID48L3gtdGltZS1waWNrZXItZnJhbWU+XHJcbiAgICA8L2Rpdj5cclxuICA8L2Rpdj5cclxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGF0ZVBpY2tlclwiPlxyXG4gICAgPGRpdiAqbmdJZj1cImV4dHJhRm9vdGVyXCIgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1leHRyYS1mb290ZXJcIj5cclxuICAgICAgPG5nLWNvbnRhaW5lciAqeE91dGxldD1cImV4dHJhRm9vdGVyXCI+e3sgZXh0cmFGb290ZXIgfX08L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1mb290ZXJcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1mb290ZXItbGVmdFwiPlxyXG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzRGF0ZVBpY2tlclwiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJwcmVzZXRUcGxcIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8L2Rpdj5cclxuICAgIDx4LWJ1dHRvbiB0eXBlPVwicHJpbWFyeVwiIChjbGljayk9XCIhc3VyZURpc2FibGVkICYmIG5vZGVFbWl0KG1vZGVsKVwiIHNpemU9XCJzbWFsbFwiIFtkaXNhYmxlZF09XCJzdXJlRGlzYWJsZWRcIj57eyBsb2NhbGUuc3VyZSB9fTwveC1idXR0b24+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcblxyXG48bmctdGVtcGxhdGUgI3ByZXNldFRwbD5cclxuICA8ZGl2ICpuZ0lmPVwicHJlc2V0XCIgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXBvcnRhbC1wcmVzZXRcIj5cclxuICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcHJlc2V0XCI+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmlkID09PSAneWVzdGVyZGF5J1wiIChjbGljayk9XCJvblllc3RlcmRheSgpXCI+e3sgbG9jYWxlLnllc3RlcmRheSB9fTwveC1saW5rPlxyXG4gICAgICA8eC1saW5rICpuZ0lmPVwiaXRlbS5pZCA9PT0gJ3RvZGF5J1wiIChjbGljayk9XCJvblRvZGF5KClcIj57eyBsb2NhbGUudG9kYXkgfX08L3gtbGluaz5cclxuICAgICAgPHgtbGluayAqbmdJZj1cIml0ZW0uaWQgPT09ICd0b21vcnJvdydcIiAoY2xpY2spPVwib25Ub21vcnJvdygpXCI+e3sgbG9jYWxlLnRvbW9ycm93IH19PC94LWxpbms+XHJcbiAgICAgIDx4LWxpbmsgKm5nSWY9XCJpdGVtLmZ1bmNcIiAoY2xpY2spPVwib25QcmVzZXRGdW5jKGl0ZW0pXCI+e3sgaXRlbS5sYWJlbCB9fTwveC1saW5rPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgPC9kaXY+XHJcbjwvbmctdGVtcGxhdGU+XHJcbiJdfQ==
@@ -3,7 +3,7 @@ import { XPortalConnectedPosition } from '@ng-nest/ui/portal';
3
3
  import { Subject } from 'rxjs';
4
4
  import { Component, ViewEncapsulation, ChangeDetectionStrategy, ViewChild } from '@angular/core';
5
5
  import { XDatePickerPrefix, XDatePickerProperty } from './date-picker.property';
6
- import { XIsEmpty, XIsDate, XIsNumber, XIsChange, XClearClass, XIsString, XIsNull } from '@ng-nest/ui/core';
6
+ import { XIsEmpty, XIsDate, XIsNumber, XIsChange, XClearClass, XIsString, XIsNull, XDateYearWeek } from '@ng-nest/ui/core';
7
7
  import { DatePipe } from '@angular/common';
8
8
  import { map, takeUntil } from 'rxjs/operators';
9
9
  import { XValueAccessor } from '@ng-nest/ui/base-form';
@@ -73,6 +73,9 @@ export class XDatePickerComponent extends XDatePickerProperty {
73
73
  else if (this.type === 'year') {
74
74
  return this.locale.selectYear;
75
75
  }
76
+ else if (this.type === 'week') {
77
+ return this.locale.selectWeek;
78
+ }
76
79
  else {
77
80
  return this.locale.selectDate;
78
81
  }
@@ -232,6 +235,8 @@ export class XDatePickerComponent extends XDatePickerProperty {
232
235
  valueChange: this.valueChange,
233
236
  positionChange: this.positionChange,
234
237
  inputCom: this.inputCom,
238
+ disabledDate: this.disabledDate,
239
+ disabledTime: this.disabledTime,
235
240
  closePortal: () => this.closeSubject.next(),
236
241
  destroyPortal: () => this.destroyPortal(),
237
242
  nodeEmit: (node, sure = true) => this.onNodeClick(node, sure),
@@ -258,7 +263,7 @@ export class XDatePickerComponent extends XDatePickerProperty {
258
263
  this.isInput = true;
259
264
  }
260
265
  setDisplayValue(dateNumber) {
261
- if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue))) {
266
+ if (this.isInput && isNaN(this.displayValue) && !isNaN(Date.parse(this.displayValue)) && this.type !== 'week') {
262
267
  this.displayValue = this.datePipe.transform(this.displayValue, this.format);
263
268
  this.numberValue = new Date(this.displayValue).getTime();
264
269
  this.value = this.getValue();
@@ -266,7 +271,12 @@ export class XDatePickerComponent extends XDatePickerProperty {
266
271
  this.isInput = false;
267
272
  }
268
273
  else {
269
- this.displayValue = this.datePipe.transform(dateNumber, this.format);
274
+ if (this.type === 'week') {
275
+ this.displayValue = XDateYearWeek(dateNumber);
276
+ }
277
+ else {
278
+ this.displayValue = this.datePipe.transform(dateNumber, this.format);
279
+ }
270
280
  }
271
281
  }
272
282
  setPlacement() {
@@ -288,9 +298,9 @@ export class XDatePickerComponent extends XDatePickerProperty {
288
298
  this.cdr.detectChanges();
289
299
  }
290
300
  }
291
- /** @nocollapse */ XDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i1.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.DatePipe }, { token: i4.XI18nService }, { token: i5.Overlay }], target: i0.ɵɵFactoryTarget.Component });
292
- /** @nocollapse */ XDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.0.0", type: XDatePickerComponent, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0;width:100%}.x-date-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
293
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerComponent, decorators: [{
301
+ /** @nocollapse */ XDatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerComponent, deps: [{ token: i0.Renderer2 }, { token: i1.XConfigService }, { token: i0.ChangeDetectorRef }, { token: i2.XPortalService }, { token: i0.ViewContainerRef }, { token: i3.DatePipe }, { token: i4.XI18nService }, { token: i5.Overlay }], target: i0.ɵɵFactoryTarget.Component });
302
+ /** @nocollapse */ XDatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.3", type: XDatePickerComponent, selector: "x-date-picker", providers: [XValueAccessor(XDatePickerComponent), DatePipe], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["datePicker"], descendants: true, static: true }, { propertyName: "inputCom", first: true, predicate: ["inputCom"], descendants: true, static: true }], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0;width:100%}.x-date-picker x-input{width:100%}\n"], dependencies: [{ kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i6.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i7.XInputComponent, selector: "x-input" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
303
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerComponent, decorators: [{
294
304
  type: Component,
295
305
  args: [{ selector: `${XDatePickerPrefix}`, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [XValueAccessor(XDatePickerComponent), DatePipe], template: "<div #datePicker class=\"x-date-picker\">\r\n <div class=\"x-date-picker-row\">\r\n <x-input\r\n #inputCom\r\n type=\"text\"\r\n [label]=\"label\"\r\n [labelWidth]=\"labelWidth\"\r\n [labelAlign]=\"labelAlign\"\r\n [justify]=\"justify\"\r\n [align]=\"align\"\r\n [direction]=\"direction\"\r\n [disabled]=\"disabled\"\r\n [required]=\"required\"\r\n [validator]=\"validator\"\r\n [icon]=\"icon\"\r\n [placeholder]=\"getPlaceholder\"\r\n [readonly]=\"readonly\"\r\n [clearable]=\"clearable && inputClearable\"\r\n [(ngModel)]=\"displayValue\"\r\n [valueTpl]=\"valueTpl\"\r\n [valueTplContext]=\"valueTplContext\"\r\n [size]=\"size\"\r\n [bordered]=\"bordered\"\r\n [before]=\"before\"\r\n [after]=\"after\"\r\n [pattern]=\"pattern\"\r\n [message]=\"message\"\r\n [pointer]=\"pointer\"\r\n [(active)]=\"active\"\r\n (clearEmit)=\"clearEmit()\"\r\n (xInput)=\"onInput()\"\r\n (xClick)=\"showPortal()\"\r\n (xMouseenter)=\"menter()\"\r\n (xMouseleave)=\"mleave()\"\r\n ></x-input>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";x-date-picker{display:inline-block;width:12rem}.x-date-picker{margin:0;padding:0;width:100%}.x-date-picker x-input{width:100%}\n"] }]
296
306
  }], ctorParameters: function () { return [{ type: i0.Renderer2 }, { type: i1.XConfigService }, { type: i0.ChangeDetectorRef }, { type: i2.XPortalService }, { type: i0.ViewContainerRef }, { type: i3.DatePipe }, { type: i4.XI18nService }, { type: i5.Overlay }]; }, propDecorators: { datePicker: [{
@@ -300,4 +310,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImpor
300
310
  type: ViewChild,
301
311
  args: ['inputCom', { static: true }]
302
312
  }] } });
303
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBVyxXQUFXLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUVySSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVd2RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBd0QzRCxZQUNTLFFBQW1CLEVBQ25CLGFBQTZCLEVBQ3BCLEdBQXNCLEVBQzlCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixJQUFrQixFQUNsQixPQUFnQjtRQUV4QixL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ZGF0ZS1waWNrZXItcG9ydGFsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFhQb3J0YWxTZXJ2aWNlLCBYUG9ydGFsT3ZlcmxheVJlZiwgWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvcG9ydGFsJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgUmVuZGVyZXIyLFxyXG4gIEVsZW1lbnRSZWYsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIFZpZXdDb250YWluZXJSZWYsXHJcbiAgVmlld0NoaWxkLFxyXG4gIFNpbXBsZUNoYW5nZXNcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWERhdGVQaWNrZXJQcmVmaXgsIFhEYXRlUGlja2VyUHJvcGVydHksIFhEYXRlUGlja2VyTW9kZWxUeXBlIH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IFhJc0VtcHR5LCBYSXNEYXRlLCBYSXNOdW1iZXIsIFhJc0NoYW5nZSwgWENvcm5lciwgWENsZWFyQ2xhc3MsIFhJc1N0cmluZywgWENvbmZpZ1NlcnZpY2UsIFhJc051bGwgfSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSTE4bkRhdGVQaWNrZXIsIFhJMThuU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWERhdGVQaWNrZXJDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWERhdGVQaWNrZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVBpY2tlciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIG1vZGVsVHlwZTogWERhdGVQaWNrZXJNb2RlbFR5cGUgPSAnZGF0ZSc7XHJcbiAgbnVtYmVyVmFsdWUhOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgaXNJbnB1dCA9IGZhbHNlO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChYSXNEYXRlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdkYXRlJztcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlLmdldFRpbWUoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdudW1iZXInO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKFhJc1N0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnc3RyaW5nJztcclxuICAgICAgY29uc3QgdmFsdWVUaW1lID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9ICFpc05hTih2YWx1ZVRpbWUpID8gdmFsdWVUaW1lIDogJyc7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KHZhbHVlKSB8fCBYSXNOdWxsKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNhbGVuZGFyJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldFBsYWNlaG9sZGVyKCkge1xyXG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc2VsZWN0TW9udGg7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5zZWxlY3RZZWFyO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIHRoaXMubG9jYWxlLnNlbGVjdERhdGU7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHB1YmxpYyByZW5kZXJlcjogUmVuZGVyZXIyLFxyXG4gICAgcHVibGljIGNvbmZpZ1NlcnZpY2U6IFhDb25maWdTZXJ2aWNlLFxyXG4gICAgcHVibGljIG92ZXJyaWRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYsXHJcbiAgICBwcml2YXRlIHBvcnRhbFNlcnZpY2U6IFhQb3J0YWxTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmLFxyXG4gICAgcHJpdmF0ZSBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwcml2YXRlIGkxOG46IFhJMThuU2VydmljZSxcclxuICAgIHByaXZhdGUgb3ZlcmxheTogT3ZlcmxheVxyXG4gICkge1xyXG4gICAgc3VwZXIoKTtcclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5zZXRGbGV4KHRoaXMuZGF0ZVBpY2tlci5uYXRpdmVFbGVtZW50LCB0aGlzLnJlbmRlcmVyLCB0aGlzLmp1c3RpZnksIHRoaXMuYWxpZ24sIHRoaXMuZGlyZWN0aW9uKTtcclxuICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XHJcbiAgICB0aGlzLnNldFN1YmplY3QoKTtcclxuICB9XHJcblxyXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UG9ydGFsKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBjb25zdCB7IHR5cGUgfSA9IGNoYW5nZXM7XHJcbiAgICBpZiAoWElzQ2hhbmdlKHR5cGUpKSB7XHJcbiAgICAgIHRoaXMuc2V0Rm9ybWF0KCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLl91blN1YmplY3QubmV4dCgpO1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0LnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRTdWJqZWN0KCkge1xyXG4gICAgdGhpcy5jbG9zZVN1YmplY3QucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSkuc3Vic2NyaWJlKCgpID0+IHtcclxuICAgICAgdGhpcy5jbG9zZVBvcnRhbCgpO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLmkxOG4ubG9jYWxlQ2hhbmdlXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIG1hcCgoeCkgPT4geC5kYXRlUGlja2VyIGFzIFhJMThuRGF0ZVBpY2tlciksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdClcclxuICAgICAgKVxyXG4gICAgICAuc3Vic2NyaWJlKCh4KSA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2NhbGUgPSB4O1xyXG4gICAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEZvcm1hdCgpIHtcclxuICAgIGlmICh0aGlzLmZvcm1hdCAhPT0gJ3l5eXktTU0tZGQnKSByZXR1cm47XHJcbiAgICBpZiAodGhpcy50eXBlID09PSAnZGF0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXknO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdtb250aCcpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTSc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtdGltZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbTpzcyc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtaG91cicpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISCc7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUtbWludXRlJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5LU1NLWRkIEhIOm1tJztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG1lbnRlcigpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkKSByZXR1cm47XHJcbiAgICB0aGlzLmVudGVyID0gdHJ1ZTtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIGlmICghWElzRW1wdHkodGhpcy5udW1iZXJWYWx1ZSkpIHtcclxuICAgICAgdGhpcy5pY29uID0gJyc7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUgPSB0cnVlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtbGVhdmUoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IGZhbHNlO1xyXG4gICAgaWYgKCF0aGlzLmNsZWFyYWJsZSkgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMuaW5wdXRDbGVhcmFibGUpIHtcclxuICAgICAgdGhpcy5pY29uID0gJ2Z0by1jYWxlbmRhcic7XHJcbiAgICAgIHRoaXMuaW5wdXRDbGVhcmFibGUgPSBmYWxzZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJFbWl0KCkge1xyXG4gICAgdGhpcy52YWx1ZSA9IG51bGw7XHJcbiAgICB0aGlzLm51bWJlclZhbHVlID0gJyc7XHJcbiAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5tbGVhdmUoKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICB9XHJcblxyXG4gIG1vZGVsQ2hhbmdlKCkge1xyXG4gICAgaWYgKHRoaXMub25DaGFuZ2UpIHtcclxuICAgICAgdGhpcy5vbkNoYW5nZSh0aGlzLmdldFZhbHVlKCkpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5mb3JtQ29udHJvbFZhbGlkYXRvcigpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VmFsdWUoKSB7XHJcbiAgICBpZiAodGhpcy5udW1iZXJWYWx1ZSA9PT0gJycpIHJldHVybiBudWxsO1xyXG4gICAgcmV0dXJuIFsnZGF0ZScsICdzdHJpbmcnXS5pbmNsdWRlcyh0aGlzLm1vZGVsVHlwZSkgPyBuZXcgRGF0ZSh0aGlzLm51bWJlclZhbHVlKSA6IHRoaXMubnVtYmVyVmFsdWU7XHJcbiAgfVxyXG5cclxuICBwb3J0YWxBdHRhY2hlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uaGFzQXR0YWNoZWQoKTtcclxuICB9XHJcblxyXG4gIGNsb3NlUG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMucG9ydGFsQXR0YWNoZWQoKSkge1xyXG4gICAgICB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8uZGV0YWNoKCk7XHJcbiAgICAgIHRoaXMuYWN0aXZlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgcmV0dXJuIHRydWU7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBkZXN0cm95UG9ydGFsKCkge1xyXG4gICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcclxuICB9XHJcblxyXG4gIHNob3dQb3J0YWwoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCB8fCB0aGlzLmFuaW1hdGluZykgcmV0dXJuO1xyXG4gICAgdGhpcy5hY3RpdmUgPSB0cnVlO1xyXG4gICAgY29uc3QgY29uZmlnOiBPdmVybGF5Q29uZmlnID0ge1xyXG4gICAgICBiYWNrZHJvcENsYXNzOiAnJyxcclxuICAgICAgcG9zaXRpb25TdHJhdGVneTogdGhpcy5zZXRQbGFjZW1lbnQoKSxcclxuICAgICAgc2Nyb2xsU3RyYXRlZ3k6IHRoaXMub3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLnJlcG9zaXRpb24oKVxyXG4gICAgfTtcclxuICAgIHRoaXMuc2V0UG9zaXRpb24oY29uZmlnKTtcclxuICAgIHRoaXMucG9ydGFsID0gdGhpcy5wb3J0YWxTZXJ2aWNlLmF0dGFjaCh7XHJcbiAgICAgIGNvbnRlbnQ6IFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50LFxyXG4gICAgICB2aWV3Q29udGFpbmVyUmVmOiB0aGlzLnZpZXdDb250YWluZXJSZWYsXHJcbiAgICAgIG92ZXJsYXlDb25maWc6IGNvbmZpZ1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnBvcnRhbC5vdmVybGF5UmVmXHJcbiAgICAgID8ub3V0c2lkZVBvaW50ZXJFdmVudHMoKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KSlcclxuICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICAgICAgdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpO1xyXG4gICAgICB9KTtcclxuICAgIHRoaXMuc2V0SW5zdGFuY2UoKTtcclxuICB9XHJcblxyXG4gIHNldFBvc2l0aW9uKGNvbmZpZzogT3ZlcmxheUNvbmZpZykge1xyXG4gICAgbGV0IHBvc2l0aW9uID0gY29uZmlnLnBvc2l0aW9uU3RyYXRlZ3kgYXMgRmxleGlibGVDb25uZWN0ZWRQb3NpdGlvblN0cmF0ZWd5O1xyXG4gICAgcG9zaXRpb24ucG9zaXRpb25DaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgocG9zOiBDb25uZWN0ZWRPdmVybGF5UG9zaXRpb25DaGFuZ2UpID0+IHtcclxuICAgICAgY29uc3QgcGxhY2UgPSBYUG9ydGFsQ29ubmVjdGVkUG9zaXRpb24uZ2V0KHBvcy5jb25uZWN0aW9uUGFpcikgYXMgWENvcm5lcjtcclxuICAgICAgcGxhY2UgIT09IHRoaXMucGxhY2VtZW50ICYmIHRoaXMucG9zaXRpb25DaGFuZ2UubmV4dChwbGFjZSk7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldEluc3RhbmNlKCkge1xyXG4gICAgbGV0IGNvbXBvbmVudFJlZiA9IHRoaXMucG9ydGFsPy5jb21wb25lbnRSZWY7XHJcbiAgICBpZiAoIWNvbXBvbmVudFJlZikgcmV0dXJuO1xyXG4gICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIHtcclxuICAgICAgdHlwZTogdGhpcy50eXBlLFxyXG4gICAgICB2YWx1ZTogdGhpcy5udW1iZXJWYWx1ZSxcclxuICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcclxuICAgICAgcHJlc2V0OiB0aGlzLnByZXNldCxcclxuICAgICAgZXh0cmFGb290ZXI6IHRoaXMuZXh0cmFGb290ZXIsXHJcbiAgICAgIHZhbHVlQ2hhbmdlOiB0aGlzLnZhbHVlQ2hhbmdlLFxyXG4gICAgICBwb3NpdGlvbkNoYW5nZTogdGhpcy5wb3NpdGlvbkNoYW5nZSxcclxuICAgICAgaW5wdXRDb206IHRoaXMuaW5wdXRDb20sXHJcbiAgICAgIGNsb3NlUG9ydGFsOiAoKSA9PiB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCksXHJcbiAgICAgIGRlc3Ryb3lQb3J0YWw6ICgpID0+IHRoaXMuZGVzdHJveVBvcnRhbCgpLFxyXG4gICAgICBub2RlRW1pdDogKG5vZGU6IERhdGUsIHN1cmUgPSB0cnVlKSA9PiB0aGlzLm9uTm9kZUNsaWNrKG5vZGUsIHN1cmUpLFxyXG4gICAgICBhbmltYXRpbmc6IChpbmc6IGJvb2xlYW4pID0+ICh0aGlzLmFuaW1hdGluZyA9IGluZylcclxuICAgIH0pO1xyXG4gICAgY29tcG9uZW50UmVmLmNoYW5nZURldGVjdG9yUmVmLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIG9uTm9kZUNsaWNrKGRhdGU6IERhdGUsIHN1cmUgPSB0cnVlKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQgPSBmYWxzZTtcclxuICAgIGlmIChzdXJlKSB7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBkYXRlLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy52YWx1ZSA9IHRoaXMuZ2V0VmFsdWUoKTtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgdGhpcy5tb2RlbENoYW5nZSgpO1xyXG4gICAgICB0aGlzLm5vZGVFbWl0LmVtaXQodGhpcy5udW1iZXJWYWx1ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZShkYXRlLmdldFRpbWUoKSk7XHJcbiAgICAgIHRoaXMuY2RyLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25JbnB1dCgpIHtcclxuICAgIHRoaXMuaXNJbnB1dCA9IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZXREaXNwbGF5VmFsdWUoZGF0ZU51bWJlcjogbnVtYmVyIHwgc3RyaW5nKSB7XHJcbiAgICBpZiAodGhpcy5pc0lucHV0ICYmIGlzTmFOKHRoaXMuZGlzcGxheVZhbHVlKSAmJiAhaXNOYU4oRGF0ZS5wYXJzZSh0aGlzLmRpc3BsYXlWYWx1ZSkpKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5kaXNwbGF5VmFsdWUsIHRoaXMuZm9ybWF0KTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheVZhbHVlKS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICAgICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGVOdW1iZXIsIHRoaXMuZm9ybWF0KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHNldFBsYWNlbWVudCgpIHtcclxuICAgIHJldHVybiB0aGlzLnBvcnRhbFNlcnZpY2Uuc2V0UGxhY2VtZW50KHtcclxuICAgICAgZWxlbWVudFJlZjogdGhpcy5pbnB1dENvbS5pbnB1dFJlZixcclxuICAgICAgcGxhY2VtZW50OiBbdGhpcy5wbGFjZW1lbnQgYXMgWENvcm5lciwgJ2JvdHRvbS1zdGFydCcsICdib3R0b20tZW5kJywgJ3RvcC1zdGFydCcsICd0b3AtZW5kJ10sXHJcbiAgICAgIHRyYW5zZm9ybU9yaWdpbk9uOiAneC1kYXRlLXBpY2tlci1wb3J0YWwnXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIHNldFBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsQXR0YWNoZWQoKSAmJiB0aGlzLnBvcnRhbD8ub3ZlcmxheVJlZj8udXBkYXRlUG9zaXRpb25TdHJhdGVneSh0aGlzLnNldFBsYWNlbWVudCgpKTtcclxuICB9XHJcblxyXG4gIHNldENsYXNzTWFwKCkge1xyXG4gICAgWENsZWFyQ2xhc3ModGhpcy5sYWJlbE1hcCk7XHJcbiAgICB0aGlzLmxhYmVsTWFwW2B4LXRleHQtYWxpZ24tJHt0aGlzLmxhYmVsQWxpZ259YF0gPSB0aGlzLmxhYmVsQWxpZ24gPyB0cnVlIDogZmFsc2U7XHJcbiAgfVxyXG5cclxuICBmb3JtQ29udHJvbENoYW5nZXMoKSB7XHJcbiAgICB0aGlzLm5nT25Jbml0KCk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgI2RhdGVQaWNrZXIgY2xhc3M9XCJ4LWRhdGUtcGlja2VyXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtZGF0ZS1waWNrZXItcm93XCI+XHJcbiAgICA8eC1pbnB1dFxyXG4gICAgICAjaW5wdXRDb21cclxuICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICBbbGFiZWxdPVwibGFiZWxcIlxyXG4gICAgICBbbGFiZWxXaWR0aF09XCJsYWJlbFdpZHRoXCJcclxuICAgICAgW2xhYmVsQWxpZ25dPVwibGFiZWxBbGlnblwiXHJcbiAgICAgIFtqdXN0aWZ5XT1cImp1c3RpZnlcIlxyXG4gICAgICBbYWxpZ25dPVwiYWxpZ25cIlxyXG4gICAgICBbZGlyZWN0aW9uXT1cImRpcmVjdGlvblwiXHJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgICAgIFtyZXF1aXJlZF09XCJyZXF1aXJlZFwiXHJcbiAgICAgIFt2YWxpZGF0b3JdPVwidmFsaWRhdG9yXCJcclxuICAgICAgW2ljb25dPVwiaWNvblwiXHJcbiAgICAgIFtwbGFjZWhvbGRlcl09XCJnZXRQbGFjZWhvbGRlclwiXHJcbiAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXHJcbiAgICAgIFtjbGVhcmFibGVdPVwiY2xlYXJhYmxlICYmIGlucHV0Q2xlYXJhYmxlXCJcclxuICAgICAgWyhuZ01vZGVsKV09XCJkaXNwbGF5VmFsdWVcIlxyXG4gICAgICBbdmFsdWVUcGxdPVwidmFsdWVUcGxcIlxyXG4gICAgICBbdmFsdWVUcGxDb250ZXh0XT1cInZhbHVlVHBsQ29udGV4dFwiXHJcbiAgICAgIFtzaXplXT1cInNpemVcIlxyXG4gICAgICBbYm9yZGVyZWRdPVwiYm9yZGVyZWRcIlxyXG4gICAgICBbYmVmb3JlXT1cImJlZm9yZVwiXHJcbiAgICAgIFthZnRlcl09XCJhZnRlclwiXHJcbiAgICAgIFtwYXR0ZXJuXT1cInBhdHRlcm5cIlxyXG4gICAgICBbbWVzc2FnZV09XCJtZXNzYWdlXCJcclxuICAgICAgW3BvaW50ZXJdPVwicG9pbnRlclwiXHJcbiAgICAgIFsoYWN0aXZlKV09XCJhY3RpdmVcIlxyXG4gICAgICAoY2xlYXJFbWl0KT1cImNsZWFyRW1pdCgpXCJcclxuICAgICAgKHhJbnB1dCk9XCJvbklucHV0KClcIlxyXG4gICAgICAoeENsaWNrKT1cInNob3dQb3J0YWwoKVwiXHJcbiAgICAgICh4TW91c2VlbnRlcik9XCJtZW50ZXIoKVwiXHJcbiAgICAgICh4TW91c2VsZWF2ZSk9XCJtbGVhdmUoKVwiXHJcbiAgICA+PC94LWlucHV0PlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
313
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFxQyx3QkFBd0IsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUNMLFNBQVMsRUFFVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBTXZCLFNBQVMsRUFFVixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsbUJBQW1CLEVBQXdCLE1BQU0sd0JBQXdCLENBQUM7QUFDdEcsT0FBTyxFQUNMLFFBQVEsRUFDUixPQUFPLEVBQ1AsU0FBUyxFQUNULFNBQVMsRUFFVCxXQUFXLEVBQ1gsU0FBUyxFQUVULE9BQU8sRUFDUCxhQUFhLEVBQ2QsTUFBTSxrQkFBa0IsQ0FBQztBQUUxQixPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7OztBQVd2RCxNQUFNLE9BQU8sb0JBQXFCLFNBQVEsbUJBQW1CO0lBMEQzRCxZQUNTLFFBQW1CLEVBQ25CLGFBQTZCLEVBQ3BCLEdBQXNCLEVBQzlCLGFBQTZCLEVBQzdCLGdCQUFrQyxFQUNsQyxRQUFrQixFQUNsQixJQUFrQixFQUNsQixPQUFn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R0FBRyxpQkFBaUIsRUFBRSxpQkFHakIsaUJBQWlCLENBQUMsSUFBSSxtQkFDcEIsdUJBQXVCLENBQUMsTUFBTSxhQUNwQyxDQUFDLGNBQWMsc0JBQXNCLEVBQUUsUUFBUSxDQUFDO2lTQUdoQixVQUFVO3NCQUFwRCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQ0EsUUFBUTtzQkFBaEQsU0FBUzt1QkFBQyxVQUFVLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWERhdGVQaWNrZXJQb3J0YWxDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLXBvcnRhbC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBYUG9ydGFsU2VydmljZSwgWFBvcnRhbE92ZXJsYXlSZWYsIFhQb3J0YWxDb25uZWN0ZWRQb3NpdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL3BvcnRhbCc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgT25Jbml0LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBFbGVtZW50UmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBWaWV3Q29udGFpbmVyUmVmLFxyXG4gIFZpZXdDaGlsZCxcclxuICBTaW1wbGVDaGFuZ2VzXHJcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlUGlja2VyUHJlZml4LCBYRGF0ZVBpY2tlclByb3BlcnR5LCBYRGF0ZVBpY2tlck1vZGVsVHlwZSB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQge1xyXG4gIFhJc0VtcHR5LFxyXG4gIFhJc0RhdGUsXHJcbiAgWElzTnVtYmVyLFxyXG4gIFhJc0NoYW5nZSxcclxuICBYQ29ybmVyLFxyXG4gIFhDbGVhckNsYXNzLFxyXG4gIFhJc1N0cmluZyxcclxuICBYQ29uZmlnU2VydmljZSxcclxuICBYSXNOdWxsLFxyXG4gIFhEYXRlWWVhcldlZWtcclxufSBmcm9tICdAbmctbmVzdC91aS9jb3JlJztcclxuaW1wb3J0IHsgWElucHV0Q29tcG9uZW50IH0gZnJvbSAnQG5nLW5lc3QvdWkvaW5wdXQnO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE92ZXJsYXksIE92ZXJsYXlDb25maWcsIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneSwgQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAbmctbmVzdC91aS9iYXNlLWZvcm0nO1xyXG5pbXBvcnQgeyBYSTE4bkRhdGVQaWNrZXIsIFhJMThuU2VydmljZSB9IGZyb20gJ0BuZy1uZXN0L3VpL2kxOG4nO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6IGAke1hEYXRlUGlja2VyUHJlZml4fWAsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9kYXRlLXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbiAgcHJvdmlkZXJzOiBbWFZhbHVlQWNjZXNzb3IoWERhdGVQaWNrZXJDb21wb25lbnQpLCBEYXRlUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhEYXRlUGlja2VyQ29tcG9uZW50IGV4dGVuZHMgWERhdGVQaWNrZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBAVmlld0NoaWxkKCdkYXRlUGlja2VyJywgeyBzdGF0aWM6IHRydWUgfSkgZGF0ZVBpY2tlciE6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+O1xyXG4gIEBWaWV3Q2hpbGQoJ2lucHV0Q29tJywgeyBzdGF0aWM6IHRydWUgfSkgaW5wdXRDb20hOiBYSW5wdXRDb21wb25lbnQ7XHJcblxyXG4gIG1vZGVsVHlwZTogWERhdGVQaWNrZXJNb2RlbFR5cGUgPSAnZGF0ZSc7XHJcbiAgbnVtYmVyVmFsdWUhOiBudW1iZXIgfCBzdHJpbmc7XHJcbiAgaXNJbnB1dCA9IGZhbHNlO1xyXG5cclxuICBvdmVycmlkZSB3cml0ZVZhbHVlKHZhbHVlOiBhbnkpIHtcclxuICAgIGlmIChYSXNEYXRlKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdkYXRlJztcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9IHZhbHVlLmdldFRpbWUoKTtcclxuICAgIH0gZWxzZSBpZiAoWElzTnVtYmVyKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm1vZGVsVHlwZSA9ICdudW1iZXInO1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gdmFsdWU7XHJcbiAgICB9IGVsc2UgaWYgKFhJc1N0cmluZyh2YWx1ZSkpIHtcclxuICAgICAgdGhpcy5tb2RlbFR5cGUgPSAnc3RyaW5nJztcclxuICAgICAgY29uc3QgdmFsdWVUaW1lID0gbmV3IERhdGUodmFsdWUpLmdldFRpbWUoKTtcclxuICAgICAgdGhpcy5udW1iZXJWYWx1ZSA9ICFpc05hTih2YWx1ZVRpbWUpID8gdmFsdWVUaW1lIDogJyc7XHJcbiAgICB9IGVsc2UgaWYgKFhJc0VtcHR5KHZhbHVlKSB8fCBYSXNOdWxsKHZhbHVlKSkge1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gJyc7XHJcbiAgICB9XHJcbiAgICB0aGlzLnZhbHVlID0gdmFsdWU7XHJcbiAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMudmFsdWVDaGFuZ2UubmV4dCh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIGVudGVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgaW5wdXRDbGVhcmFibGU6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBhbmltYXRpbmcgPSBmYWxzZTtcclxuICBkaXNwbGF5VmFsdWU6IGFueSA9ICcnO1xyXG4gIHBvcnRhbCE6IFhQb3J0YWxPdmVybGF5UmVmPFhEYXRlUGlja2VyUG9ydGFsQ29tcG9uZW50PjtcclxuICBpY29uOiBzdHJpbmcgPSAnZnRvLWNhbGVuZGFyJztcclxuICBib3ghOiBET01SZWN0O1xyXG4gIHByb3RhbEhlaWdodCE6IG51bWJlcjtcclxuICBtYXhOb2RlczogbnVtYmVyID0gNjtcclxuICBwcm90YWxUb2JvdHRvbTogYm9vbGVhbiA9IHRydWU7XHJcbiAgdmFsdWVDaGFuZ2U6IFN1YmplY3Q8YW55PiA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgZGF0YUNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBwb3NpdGlvbkNoYW5nZTogU3ViamVjdDxhbnk+ID0gbmV3IFN1YmplY3QoKTtcclxuICBjbG9zZVN1YmplY3Q6IFN1YmplY3Q8dm9pZD4gPSBuZXcgU3ViamVjdCgpO1xyXG4gIGxvY2FsZTogWEkxOG5EYXRlUGlja2VyID0ge307XHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IGdldFBsYWNlaG9sZGVyKCkge1xyXG4gICAgaWYgKHRoaXMucGxhY2Vob2xkZXIpIHJldHVybiB0aGlzLnBsYWNlaG9sZGVyO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ21vbnRoJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc2VsZWN0TW9udGg7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMudHlwZSA9PT0gJ3llYXInKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5zZWxlY3RZZWFyO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd3ZWVrJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5sb2NhbGUuc2VsZWN0V2VlaztcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmxvY2FsZS5zZWxlY3REYXRlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBvdmVycmlkZSBjZHI6IENoYW5nZURldGVjdG9yUmVmLFxyXG4gICAgcHJpdmF0ZSBwb3J0YWxTZXJ2aWNlOiBYUG9ydGFsU2VydmljZSxcclxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcclxuICAgIHByaXZhdGUgZGF0ZVBpcGU6IERhdGVQaXBlLFxyXG4gICAgcHJpdmF0ZSBpMThuOiBYSTE4blNlcnZpY2UsXHJcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXlcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0RmxleCh0aGlzLmRhdGVQaWNrZXIubmF0aXZlRWxlbWVudCwgdGhpcy5yZW5kZXJlciwgdGhpcy5qdXN0aWZ5LCB0aGlzLmFsaWduLCB0aGlzLmRpcmVjdGlvbik7XHJcbiAgICB0aGlzLnNldEZvcm1hdCgpO1xyXG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xyXG4gICAgdGhpcy5zZXRTdWJqZWN0KCk7XHJcbiAgfVxyXG5cclxuICBuZ0FmdGVyVmlld0luaXQoKSB7XHJcbiAgICB0aGlzLnNldFBvcnRhbCgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xyXG4gICAgY29uc3QgeyB0eXBlIH0gPSBjaGFuZ2VzO1xyXG4gICAgaWYgKFhJc0NoYW5nZSh0eXBlKSkge1xyXG4gICAgICB0aGlzLnNldEZvcm1hdCgpO1xyXG4gICAgICB0aGlzLnNldERpc3BsYXlWYWx1ZSh0aGlzLm51bWJlclZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5fdW5TdWJqZWN0Lm5leHQoKTtcclxuICAgIHRoaXMuX3VuU3ViamVjdC51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgc2V0U3ViamVjdCgpIHtcclxuICAgIHRoaXMuY2xvc2VTdWJqZWN0LnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMuY2xvc2VQb3J0YWwoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRGb3JtYXQoKSB7XHJcbiAgICBpZiAodGhpcy5mb3JtYXQgIT09ICd5eXl5LU1NLWRkJykgcmV0dXJuO1xyXG4gICAgaWYgKHRoaXMudHlwZSA9PT0gJ2RhdGUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICd5ZWFyJykge1xyXG4gICAgICB0aGlzLmZvcm1hdCA9ICd5eXl5JztcclxuICAgIH0gZWxzZSBpZiAodGhpcy50eXBlID09PSAnbW9udGgnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0nO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLXRpbWUnKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEg6bW06c3MnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLWhvdXInKSB7XHJcbiAgICAgIHRoaXMuZm9ybWF0ID0gJ3l5eXktTU0tZGQgSEgnO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnR5cGUgPT09ICdkYXRlLW1pbnV0ZScpIHtcclxuICAgICAgdGhpcy5mb3JtYXQgPSAneXl5eS1NTS1kZCBISDptbSc7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBtZW50ZXIoKSB7XHJcbiAgICBpZiAodGhpcy5kaXNhYmxlZCkgcmV0dXJuO1xyXG4gICAgdGhpcy5lbnRlciA9IHRydWU7XHJcbiAgICBpZiAoIXRoaXMuY2xlYXJhYmxlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc0VtcHR5KHRoaXMubnVtYmVyVmFsdWUpKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICcnO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gdHJ1ZTtcclxuICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbWxlYXZlKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIHRoaXMuZW50ZXIgPSBmYWxzZTtcclxuICAgIGlmICghdGhpcy5jbGVhcmFibGUpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmlucHV0Q2xlYXJhYmxlKSB7XHJcbiAgICAgIHRoaXMuaWNvbiA9ICdmdG8tY2FsZW5kYXInO1xyXG4gICAgICB0aGlzLmlucHV0Q2xlYXJhYmxlID0gZmFsc2U7XHJcbiAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsZWFyRW1pdCgpIHtcclxuICAgIHRoaXMudmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5udW1iZXJWYWx1ZSA9ICcnO1xyXG4gICAgdGhpcy5kaXNwbGF5VmFsdWUgPSAnJztcclxuICAgIHRoaXMubWxlYXZlKCk7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLm5leHQodGhpcy52YWx1ZSk7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlKCk7XHJcbiAgfVxyXG5cclxuICBtb2RlbENoYW5nZSgpIHtcclxuICAgIGlmICh0aGlzLm9uQ2hhbmdlKSB7XHJcbiAgICAgIHRoaXMub25DaGFuZ2UodGhpcy5nZXRWYWx1ZSgpKTtcclxuICAgIH1cclxuICAgIHRoaXMuZm9ybUNvbnRyb2xWYWxpZGF0b3IoKTtcclxuICB9XHJcblxyXG4gIGdldFZhbHVlKCkge1xyXG4gICAgaWYgKHRoaXMubnVtYmVyVmFsdWUgPT09ICcnKSByZXR1cm4gbnVsbDtcclxuICAgIHJldHVybiBbJ2RhdGUnLCAnc3RyaW5nJ10uaW5jbHVkZXModGhpcy5tb2RlbFR5cGUpID8gbmV3IERhdGUodGhpcy5udW1iZXJWYWx1ZSkgOiB0aGlzLm51bWJlclZhbHVlO1xyXG4gIH1cclxuXHJcbiAgcG9ydGFsQXR0YWNoZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/Lmhhc0F0dGFjaGVkKCk7XHJcbiAgfVxyXG5cclxuICBjbG9zZVBvcnRhbCgpIHtcclxuICAgIGlmICh0aGlzLnBvcnRhbEF0dGFjaGVkKCkpIHtcclxuICAgICAgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LmRldGFjaCgpO1xyXG4gICAgICB0aGlzLmFjdGl2ZSA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZGVzdHJveVBvcnRhbCgpIHtcclxuICAgIHRoaXMucG9ydGFsPy5vdmVybGF5UmVmPy5kaXNwb3NlKCk7XHJcbiAgfVxyXG5cclxuICBzaG93UG9ydGFsKCkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5hbmltYXRpbmcpIHJldHVybjtcclxuICAgIHRoaXMuYWN0aXZlID0gdHJ1ZTtcclxuICAgIGNvbnN0IGNvbmZpZzogT3ZlcmxheUNvbmZpZyA9IHtcclxuICAgICAgYmFja2Ryb3BDbGFzczogJycsXHJcbiAgICAgIHBvc2l0aW9uU3RyYXRlZ3k6IHRoaXMuc2V0UGxhY2VtZW50KCksXHJcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKClcclxuICAgIH07XHJcbiAgICB0aGlzLnNldFBvc2l0aW9uKGNvbmZpZyk7XHJcbiAgICB0aGlzLnBvcnRhbCA9IHRoaXMucG9ydGFsU2VydmljZS5hdHRhY2goe1xyXG4gICAgICBjb250ZW50OiBYRGF0ZVBpY2tlclBvcnRhbENvbXBvbmVudCxcclxuICAgICAgdmlld0NvbnRhaW5lclJlZjogdGhpcy52aWV3Q29udGFpbmVyUmVmLFxyXG4gICAgICBvdmVybGF5Q29uZmlnOiBjb25maWdcclxuICAgIH0pO1xyXG4gICAgdGhpcy5wb3J0YWwub3ZlcmxheVJlZlxyXG4gICAgICA/Lm91dHNpZGVQb2ludGVyRXZlbnRzKClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuX3VuU3ViamVjdCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xyXG4gICAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgICAgIHRoaXMuY2xvc2VTdWJqZWN0Lm5leHQoKTtcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnNldEluc3RhbmNlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3NpdGlvbihjb25maWc6IE92ZXJsYXlDb25maWcpIHtcclxuICAgIGxldCBwb3NpdGlvbiA9IGNvbmZpZy5wb3NpdGlvblN0cmF0ZWd5IGFzIEZsZXhpYmxlQ29ubmVjdGVkUG9zaXRpb25TdHJhdGVneTtcclxuICAgIHBvc2l0aW9uLnBvc2l0aW9uQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpKS5zdWJzY3JpYmUoKHBvczogQ29ubmVjdGVkT3ZlcmxheVBvc2l0aW9uQ2hhbmdlKSA9PiB7XHJcbiAgICAgIGNvbnN0IHBsYWNlID0gWFBvcnRhbENvbm5lY3RlZFBvc2l0aW9uLmdldChwb3MuY29ubmVjdGlvblBhaXIpIGFzIFhDb3JuZXI7XHJcbiAgICAgIHBsYWNlICE9PSB0aGlzLnBsYWNlbWVudCAmJiB0aGlzLnBvc2l0aW9uQ2hhbmdlLm5leHQocGxhY2UpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRJbnN0YW5jZSgpIHtcclxuICAgIGxldCBjb21wb25lbnRSZWYgPSB0aGlzLnBvcnRhbD8uY29tcG9uZW50UmVmO1xyXG4gICAgaWYgKCFjb21wb25lbnRSZWYpIHJldHVybjtcclxuICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCB7XHJcbiAgICAgIHR5cGU6IHRoaXMudHlwZSxcclxuICAgICAgdmFsdWU6IHRoaXMubnVtYmVyVmFsdWUsXHJcbiAgICAgIHBsYWNlbWVudDogdGhpcy5wbGFjZW1lbnQsXHJcbiAgICAgIHByZXNldDogdGhpcy5wcmVzZXQsXHJcbiAgICAgIGV4dHJhRm9vdGVyOiB0aGlzLmV4dHJhRm9vdGVyLFxyXG4gICAgICB2YWx1ZUNoYW5nZTogdGhpcy52YWx1ZUNoYW5nZSxcclxuICAgICAgcG9zaXRpb25DaGFuZ2U6IHRoaXMucG9zaXRpb25DaGFuZ2UsXHJcbiAgICAgIGlucHV0Q29tOiB0aGlzLmlucHV0Q29tLFxyXG4gICAgICBkaXNhYmxlZERhdGU6IHRoaXMuZGlzYWJsZWREYXRlLFxyXG4gICAgICBkaXNhYmxlZFRpbWU6IHRoaXMuZGlzYWJsZWRUaW1lLFxyXG4gICAgICBjbG9zZVBvcnRhbDogKCkgPT4gdGhpcy5jbG9zZVN1YmplY3QubmV4dCgpLFxyXG4gICAgICBkZXN0cm95UG9ydGFsOiAoKSA9PiB0aGlzLmRlc3Ryb3lQb3J0YWwoKSxcclxuICAgICAgbm9kZUVtaXQ6IChub2RlOiBEYXRlLCBzdXJlID0gdHJ1ZSkgPT4gdGhpcy5vbk5vZGVDbGljayhub2RlLCBzdXJlKSxcclxuICAgICAgYW5pbWF0aW5nOiAoaW5nOiBib29sZWFuKSA9PiAodGhpcy5hbmltYXRpbmcgPSBpbmcpXHJcbiAgICB9KTtcclxuICAgIGNvbXBvbmVudFJlZi5jaGFuZ2VEZXRlY3RvclJlZi5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk5vZGVDbGljayhkYXRlOiBEYXRlLCBzdXJlID0gdHJ1ZSkge1xyXG4gICAgdGhpcy5pc0lucHV0ID0gZmFsc2U7XHJcbiAgICBpZiAoc3VyZSkge1xyXG4gICAgICB0aGlzLm51bWJlclZhbHVlID0gZGF0ZS5nZXRUaW1lKCk7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLmdldFZhbHVlKCk7XHJcbiAgICAgIHRoaXMuc2V0RGlzcGxheVZhbHVlKHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgICB0aGlzLmNsb3NlU3ViamVjdC5uZXh0KCk7XHJcbiAgICAgIHRoaXMubW9kZWxDaGFuZ2UoKTtcclxuICAgICAgdGhpcy5ub2RlRW1pdC5lbWl0KHRoaXMubnVtYmVyVmFsdWUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZXREaXNwbGF5VmFsdWUoZGF0ZS5nZXRUaW1lKCkpO1xyXG4gICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uSW5wdXQoKSB7XHJcbiAgICB0aGlzLmlzSW5wdXQgPSB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheVZhbHVlKGRhdGVOdW1iZXI6IG51bWJlciB8IHN0cmluZykge1xyXG4gICAgaWYgKHRoaXMuaXNJbnB1dCAmJiBpc05hTih0aGlzLmRpc3BsYXlWYWx1ZSkgJiYgIWlzTmFOKERhdGUucGFyc2UodGhpcy5kaXNwbGF5VmFsdWUpKSAmJiB0aGlzLnR5cGUgIT09ICd3ZWVrJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlWYWx1ZSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZGlzcGxheVZhbHVlLCB0aGlzLmZvcm1hdCk7XHJcbiAgICAgIHRoaXMubnVtYmVyVmFsdWUgPSBuZXcgRGF0ZSh0aGlzLmRpc3BsYXlWYWx1ZSkuZ2V0VGltZSgpO1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy5nZXRWYWx1ZSgpO1xyXG4gICAgICB0aGlzLm1vZGVsQ2hhbmdlKCk7XHJcbiAgICAgIHRoaXMuaXNJbnB1dCA9IGZhbHNlO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgaWYgKHRoaXMudHlwZSA9PT0gJ3dlZWsnKSB7XHJcbiAgICAgICAgdGhpcy5kaXNwbGF5VmFsdWUgPSBYRGF0ZVllYXJXZWVrKGRhdGVOdW1iZXIpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuZGlzcGxheVZhbHVlID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZU51bWJlciwgdGhpcy5mb3JtYXQpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRQbGFjZW1lbnQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5wb3J0YWxTZXJ2aWNlLnNldFBsYWNlbWVudCh7XHJcbiAgICAgIGVsZW1lbnRSZWY6IHRoaXMuaW5wdXRDb20uaW5wdXRSZWYsXHJcbiAgICAgIHBsYWNlbWVudDogW3RoaXMucGxhY2VtZW50IGFzIFhDb3JuZXIsICdib3R0b20tc3RhcnQnLCAnYm90dG9tLWVuZCcsICd0b3Atc3RhcnQnLCAndG9wLWVuZCddLFxyXG4gICAgICB0cmFuc2Zvcm1PcmlnaW5PbjogJ3gtZGF0ZS1waWNrZXItcG9ydGFsJ1xyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBzZXRQb3J0YWwoKSB7XHJcbiAgICB0aGlzLnBvcnRhbEF0dGFjaGVkKCkgJiYgdGhpcy5wb3J0YWw/Lm92ZXJsYXlSZWY/LnVwZGF0ZVBvc2l0aW9uU3RyYXRlZ3kodGhpcy5zZXRQbGFjZW1lbnQoKSk7XHJcbiAgfVxyXG5cclxuICBzZXRDbGFzc01hcCgpIHtcclxuICAgIFhDbGVhckNsYXNzKHRoaXMubGFiZWxNYXApO1xyXG4gICAgdGhpcy5sYWJlbE1hcFtgeC10ZXh0LWFsaWduLSR7dGhpcy5sYWJlbEFsaWdufWBdID0gdGhpcy5sYWJlbEFsaWduID8gdHJ1ZSA6IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgZm9ybUNvbnRyb2xDaGFuZ2VzKCkge1xyXG4gICAgdGhpcy5uZ09uSW5pdCgpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2ICNkYXRlUGlja2VyIGNsYXNzPVwieC1kYXRlLXBpY2tlclwiPlxyXG4gIDxkaXYgY2xhc3M9XCJ4LWRhdGUtcGlja2VyLXJvd1wiPlxyXG4gICAgPHgtaW5wdXRcclxuICAgICAgI2lucHV0Q29tXHJcbiAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgW2xhYmVsXT1cImxhYmVsXCJcclxuICAgICAgW2xhYmVsV2lkdGhdPVwibGFiZWxXaWR0aFwiXHJcbiAgICAgIFtsYWJlbEFsaWduXT1cImxhYmVsQWxpZ25cIlxyXG4gICAgICBbanVzdGlmeV09XCJqdXN0aWZ5XCJcclxuICAgICAgW2FsaWduXT1cImFsaWduXCJcclxuICAgICAgW2RpcmVjdGlvbl09XCJkaXJlY3Rpb25cIlxyXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgICBbcmVxdWlyZWRdPVwicmVxdWlyZWRcIlxyXG4gICAgICBbdmFsaWRhdG9yXT1cInZhbGlkYXRvclwiXHJcbiAgICAgIFtpY29uXT1cImljb25cIlxyXG4gICAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0UGxhY2Vob2xkZXJcIlxyXG4gICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxyXG4gICAgICBbY2xlYXJhYmxlXT1cImNsZWFyYWJsZSAmJiBpbnB1dENsZWFyYWJsZVwiXHJcbiAgICAgIFsobmdNb2RlbCldPVwiZGlzcGxheVZhbHVlXCJcclxuICAgICAgW3ZhbHVlVHBsXT1cInZhbHVlVHBsXCJcclxuICAgICAgW3ZhbHVlVHBsQ29udGV4dF09XCJ2YWx1ZVRwbENvbnRleHRcIlxyXG4gICAgICBbc2l6ZV09XCJzaXplXCJcclxuICAgICAgW2JvcmRlcmVkXT1cImJvcmRlcmVkXCJcclxuICAgICAgW2JlZm9yZV09XCJiZWZvcmVcIlxyXG4gICAgICBbYWZ0ZXJdPVwiYWZ0ZXJcIlxyXG4gICAgICBbcGF0dGVybl09XCJwYXR0ZXJuXCJcclxuICAgICAgW21lc3NhZ2VdPVwibWVzc2FnZVwiXHJcbiAgICAgIFtwb2ludGVyXT1cInBvaW50ZXJcIlxyXG4gICAgICBbKGFjdGl2ZSldPVwiYWN0aXZlXCJcclxuICAgICAgKGNsZWFyRW1pdCk9XCJjbGVhckVtaXQoKVwiXHJcbiAgICAgICh4SW5wdXQpPVwib25JbnB1dCgpXCJcclxuICAgICAgKHhDbGljayk9XCJzaG93UG9ydGFsKClcIlxyXG4gICAgICAoeE1vdXNlZW50ZXIpPVwibWVudGVyKClcIlxyXG4gICAgICAoeE1vdXNlbGVhdmUpPVwibWxlYXZlKClcIlxyXG4gICAgPjwveC1pbnB1dD5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
@@ -21,8 +21,8 @@ import { XOutletModule } from '@ng-nest/ui/outlet';
21
21
  import * as i0 from "@angular/core";
22
22
  export class XDatePickerModule {
23
23
  }
24
- /** @nocollapse */ XDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
- /** @nocollapse */ XDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerModule, declarations: [XDatePickerComponent,
24
+ /** @nocollapse */ XDatePickerModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
25
+ /** @nocollapse */ XDatePickerModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerModule, declarations: [XDatePickerComponent,
26
26
  XDatePickerPortalComponent,
27
27
  XPickerDateComponent,
28
28
  XPickerMonthComponent,
@@ -50,7 +50,7 @@ export class XDatePickerModule {
50
50
  XPickerDateComponent,
51
51
  XPickerMonthComponent,
52
52
  XPickerYearComponent] });
53
- /** @nocollapse */ XDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerModule, imports: [CommonModule,
53
+ /** @nocollapse */ XDatePickerModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerModule, imports: [CommonModule,
54
54
  FormsModule,
55
55
  ReactiveFormsModule,
56
56
  XPortalModule,
@@ -62,7 +62,7 @@ export class XDatePickerModule {
62
62
  XI18nModule,
63
63
  XBaseFormModule,
64
64
  XOutletModule] });
65
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.0.0", ngImport: i0, type: XDatePickerModule, decorators: [{
65
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.3", ngImport: i0, type: XDatePickerModule, decorators: [{
66
66
  type: NgModule,
67
67
  args: [{
68
68
  declarations: [