@ng-nest/ui 17.0.1 → 17.0.3

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 (724) hide show
  1. package/affix/affix.component.d.ts +1 -2
  2. package/affix/affix.module.d.ts +1 -3
  3. package/alert/alert.component.d.ts +4 -5
  4. package/alert/alert.module.d.ts +1 -8
  5. package/anchor/anchor-inner.component.d.ts +1 -1
  6. package/anchor/anchor.component.d.ts +6 -7
  7. package/anchor/anchor.module.d.ts +2 -6
  8. package/api/api.component.d.ts +4 -4
  9. package/api/api.module.d.ts +1 -2
  10. package/auto-complete/auto-complete-portal.component.d.ts +3 -5
  11. package/auto-complete/auto-complete.component.d.ts +12 -13
  12. package/auto-complete/auto-complete.module.d.ts +1 -9
  13. package/avatar/avatar-group.component.d.ts +1 -2
  14. package/avatar/avatar.component.d.ts +6 -7
  15. package/avatar/avatar.module.d.ts +2 -6
  16. package/back-top/back-top.component.d.ts +7 -12
  17. package/back-top/back-top.module.d.ts +1 -5
  18. package/badge/badge.component.d.ts +3 -8
  19. package/badge/badge.module.d.ts +1 -3
  20. package/base-form/base-form.component.d.ts +1 -1
  21. package/base-form/base-form.module.d.ts +1 -2
  22. package/border/border.component.d.ts +4 -4
  23. package/border/border.module.d.ts +1 -1
  24. package/button/button.component.d.ts +8 -10
  25. package/button/button.module.d.ts +1 -5
  26. package/button/buttons.component.d.ts +4 -5
  27. package/calendar/calendar.component.d.ts +9 -14
  28. package/calendar/calendar.module.d.ts +1 -10
  29. package/card/card.component.d.ts +2 -6
  30. package/card/card.module.d.ts +1 -5
  31. package/carousel/carousel-panel.component.d.ts +10 -13
  32. package/carousel/carousel.component.d.ts +4 -8
  33. package/carousel/carousel.module.d.ts +1 -5
  34. package/cascade/cascade-portal.component.d.ts +4 -5
  35. package/cascade/cascade.component.d.ts +14 -13
  36. package/cascade/cascade.module.d.ts +1 -9
  37. package/checkbox/checkbox.component.d.ts +6 -9
  38. package/checkbox/checkbox.module.d.ts +1 -8
  39. package/collapse/collapse-panel.component.d.ts +5 -8
  40. package/collapse/collapse.component.d.ts +3 -7
  41. package/collapse/collapse.module.d.ts +1 -5
  42. package/color/color.component.d.ts +4 -6
  43. package/color/color.module.d.ts +1 -3
  44. package/color-picker/color-picker-portal.component.d.ts +7 -11
  45. package/color-picker/color-picker.component.d.ts +11 -12
  46. package/color-picker/color-picker.module.d.ts +1 -11
  47. package/comment/comment-reply.component.d.ts +4 -9
  48. package/comment/comment.component.d.ts +5 -9
  49. package/comment/comment.module.d.ts +1 -11
  50. package/container/aside.component.d.ts +5 -5
  51. package/container/container.component.d.ts +2 -3
  52. package/container/container.module.d.ts +1 -3
  53. package/container/footer.component.d.ts +5 -7
  54. package/container/header.component.d.ts +5 -7
  55. package/container/main.component.d.ts +4 -4
  56. package/crumb/crumb.component.d.ts +4 -6
  57. package/crumb/crumb.module.d.ts +1 -5
  58. package/date-picker/date-picker-portal.component.d.ts +5 -9
  59. package/date-picker/date-picker.component.d.ts +14 -16
  60. package/date-picker/date-picker.module.d.ts +2 -21
  61. package/date-picker/date-quarter.pipe.d.ts +1 -1
  62. package/date-picker/date-range-portal.component.d.ts +1 -1
  63. package/date-picker/date-range.component.d.ts +17 -19
  64. package/date-picker/picker-date.component.d.ts +8 -12
  65. package/date-picker/picker-month.component.d.ts +8 -11
  66. package/date-picker/picker-quarter.component.d.ts +9 -14
  67. package/date-picker/picker-year.component.d.ts +5 -8
  68. package/description/description-item.component.d.ts +1 -2
  69. package/description/description.component.d.ts +4 -5
  70. package/description/description.module.d.ts +2 -5
  71. package/dialog/dialog-container.component.d.ts +1 -2
  72. package/dialog/dialog-portal.component.d.ts +1 -1
  73. package/dialog/dialog-portal.directives.d.ts +13 -17
  74. package/dialog/dialog.component.d.ts +15 -17
  75. package/dialog/dialog.module.d.ts +1 -14
  76. package/dialog/dialog.service.d.ts +8 -10
  77. package/doc/doc.component.d.ts +6 -6
  78. package/doc/doc.module.d.ts +1 -2
  79. package/drag/drag.directive.d.ts +5 -6
  80. package/drag/drag.module.d.ts +1 -2
  81. package/drawer/drawer-container.component.d.ts +1 -2
  82. package/drawer/drawer-portal.component.d.ts +1 -2
  83. package/drawer/drawer-portal.directives.d.ts +5 -6
  84. package/drawer/drawer.component.d.ts +10 -15
  85. package/drawer/drawer.module.d.ts +2 -8
  86. package/drawer/drawer.service.d.ts +5 -7
  87. package/dropdown/dropdown-portal.component.d.ts +1 -1
  88. package/dropdown/dropdown.component.d.ts +10 -13
  89. package/dropdown/dropdown.module.d.ts +1 -7
  90. package/empty/empty.component.d.ts +4 -7
  91. package/empty/empty.module.d.ts +1 -6
  92. package/esm2022/affix/affix.component.mjs +11 -11
  93. package/esm2022/affix/affix.module.mjs +6 -9
  94. package/esm2022/affix/affix.property.mjs +3 -3
  95. package/esm2022/alert/alert.component.mjs +19 -19
  96. package/esm2022/alert/alert.module.mjs +6 -14
  97. package/esm2022/alert/alert.property.mjs +4 -4
  98. package/esm2022/anchor/anchor-inner.component.mjs +5 -4
  99. package/esm2022/anchor/anchor.component.mjs +18 -21
  100. package/esm2022/anchor/anchor.module.mjs +6 -11
  101. package/esm2022/anchor/anchor.property.mjs +7 -7
  102. package/esm2022/api/api.component.mjs +14 -12
  103. package/esm2022/api/api.module.mjs +6 -8
  104. package/esm2022/auto-complete/auto-complete-portal.component.mjs +15 -16
  105. package/esm2022/auto-complete/auto-complete.component.mjs +44 -31
  106. package/esm2022/auto-complete/auto-complete.module.mjs +7 -16
  107. package/esm2022/auto-complete/auto-complete.property.mjs +3 -3
  108. package/esm2022/avatar/avatar-group.component.mjs +7 -7
  109. package/esm2022/avatar/avatar.component.mjs +17 -19
  110. package/esm2022/avatar/avatar.module.mjs +6 -11
  111. package/esm2022/avatar/avatar.property.mjs +7 -7
  112. package/esm2022/back-top/back-top.component.mjs +23 -29
  113. package/esm2022/back-top/back-top.module.mjs +6 -11
  114. package/esm2022/back-top/back-top.property.mjs +3 -3
  115. package/esm2022/badge/badge.component.mjs +18 -23
  116. package/esm2022/badge/badge.module.mjs +6 -9
  117. package/esm2022/badge/badge.property.mjs +3 -3
  118. package/esm2022/base-form/base-form.component.mjs +11 -6
  119. package/esm2022/base-form/base-form.module.mjs +7 -8
  120. package/esm2022/base-form/base-form.property.mjs +4 -4
  121. package/esm2022/border/border.component.mjs +14 -12
  122. package/esm2022/border/border.module.mjs +6 -6
  123. package/esm2022/button/button.component.mjs +19 -24
  124. package/esm2022/button/button.module.mjs +6 -11
  125. package/esm2022/button/button.property.mjs +7 -7
  126. package/esm2022/button/buttons.component.mjs +15 -15
  127. package/esm2022/calendar/calendar.component.mjs +38 -30
  128. package/esm2022/calendar/calendar.module.mjs +6 -16
  129. package/esm2022/calendar/calendar.property.mjs +3 -3
  130. package/esm2022/card/card.component.mjs +14 -17
  131. package/esm2022/card/card.module.mjs +6 -11
  132. package/esm2022/card/card.property.mjs +3 -3
  133. package/esm2022/carousel/carousel-panel.component.mjs +36 -34
  134. package/esm2022/carousel/carousel.component.mjs +19 -26
  135. package/esm2022/carousel/carousel.module.mjs +7 -12
  136. package/esm2022/carousel/carousel.property.mjs +6 -6
  137. package/esm2022/cascade/cascade-portal.component.mjs +20 -20
  138. package/esm2022/cascade/cascade.component.mjs +34 -29
  139. package/esm2022/cascade/cascade.module.mjs +7 -16
  140. package/esm2022/cascade/cascade.property.mjs +3 -3
  141. package/esm2022/checkbox/checkbox.component.mjs +31 -27
  142. package/esm2022/checkbox/checkbox.module.mjs +6 -14
  143. package/esm2022/checkbox/checkbox.property.mjs +3 -3
  144. package/esm2022/collapse/collapse-panel.component.mjs +18 -21
  145. package/esm2022/collapse/collapse.component.mjs +11 -15
  146. package/esm2022/collapse/collapse.module.mjs +6 -11
  147. package/esm2022/collapse/collapse.property.mjs +6 -6
  148. package/esm2022/color/color.component.mjs +14 -19
  149. package/esm2022/color/color.module.mjs +6 -9
  150. package/esm2022/color/color.property.mjs +3 -3
  151. package/esm2022/color-picker/color-picker-portal.component.mjs +45 -35
  152. package/esm2022/color-picker/color-picker.component.mjs +36 -35
  153. package/esm2022/color-picker/color-picker.module.mjs +7 -44
  154. package/esm2022/color-picker/color-picker.property.mjs +3 -3
  155. package/esm2022/comment/comment-reply.component.mjs +18 -19
  156. package/esm2022/comment/comment.component.mjs +30 -25
  157. package/esm2022/comment/comment.module.mjs +6 -43
  158. package/esm2022/comment/comment.property.mjs +7 -7
  159. package/esm2022/container/aside.component.mjs +15 -13
  160. package/esm2022/container/container.component.mjs +14 -14
  161. package/esm2022/container/container.module.mjs +7 -37
  162. package/esm2022/container/container.property.mjs +12 -12
  163. package/esm2022/container/footer.component.mjs +17 -21
  164. package/esm2022/container/header.component.mjs +17 -21
  165. package/esm2022/container/main.component.mjs +14 -12
  166. package/esm2022/core/config/config.service.mjs +11 -6
  167. package/esm2022/core/services/http.service.mjs +3 -3
  168. package/esm2022/core/services/preloading-strategy.service.mjs +6 -5
  169. package/esm2022/core/services/storage.service.mjs +3 -3
  170. package/esm2022/core/theme/theme.service.mjs +3 -3
  171. package/esm2022/crumb/crumb.component.mjs +15 -19
  172. package/esm2022/crumb/crumb.module.mjs +6 -11
  173. package/esm2022/crumb/crumb.property.mjs +3 -3
  174. package/esm2022/date-picker/date-picker-portal.component.mjs +38 -29
  175. package/esm2022/date-picker/date-picker.component.mjs +52 -47
  176. package/esm2022/date-picker/date-picker.module.mjs +7 -108
  177. package/esm2022/date-picker/date-picker.property.mjs +18 -18
  178. package/esm2022/date-picker/date-quarter.pipe.mjs +5 -5
  179. package/esm2022/date-picker/date-range-portal.component.mjs +25 -13
  180. package/esm2022/date-picker/date-range.component.mjs +50 -51
  181. package/esm2022/date-picker/picker-date.component.mjs +45 -43
  182. package/esm2022/date-picker/picker-month.component.mjs +31 -30
  183. package/esm2022/date-picker/picker-quarter.component.mjs +31 -32
  184. package/esm2022/date-picker/picker-year.component.mjs +26 -25
  185. package/esm2022/description/description-item.component.mjs +6 -9
  186. package/esm2022/description/description.component.mjs +13 -14
  187. package/esm2022/description/description.module.mjs +6 -10
  188. package/esm2022/description/description.property.mjs +6 -6
  189. package/esm2022/dialog/dialog-container.component.mjs +7 -7
  190. package/esm2022/dialog/dialog-portal.component.mjs +22 -11
  191. package/esm2022/dialog/dialog-portal.directives.mjs +48 -48
  192. package/esm2022/dialog/dialog-ref.mjs +1 -1
  193. package/esm2022/dialog/dialog.component.mjs +40 -48
  194. package/esm2022/dialog/dialog.module.mjs +12 -71
  195. package/esm2022/dialog/dialog.property.mjs +6 -6
  196. package/esm2022/dialog/dialog.service.mjs +16 -17
  197. package/esm2022/doc/doc.component.mjs +12 -10
  198. package/esm2022/doc/doc.module.mjs +6 -8
  199. package/esm2022/drag/drag.directive.mjs +11 -11
  200. package/esm2022/drag/drag.module.mjs +6 -8
  201. package/esm2022/drag/drag.property.mjs +3 -3
  202. package/esm2022/drawer/drawer-container.component.mjs +7 -7
  203. package/esm2022/drawer/drawer-portal.component.mjs +12 -12
  204. package/esm2022/drawer/drawer-portal.directives.mjs +22 -21
  205. package/esm2022/drawer/drawer.component.mjs +23 -33
  206. package/esm2022/drawer/drawer.module.mjs +10 -27
  207. package/esm2022/drawer/drawer.property.mjs +6 -6
  208. package/esm2022/drawer/drawer.service.mjs +15 -15
  209. package/esm2022/dropdown/dropdown-portal.component.mjs +8 -7
  210. package/esm2022/dropdown/dropdown.component.mjs +18 -22
  211. package/esm2022/dropdown/dropdown.module.mjs +7 -14
  212. package/esm2022/dropdown/dropdown.property.mjs +3 -3
  213. package/esm2022/empty/empty.component.mjs +20 -18
  214. package/esm2022/empty/empty.module.mjs +6 -12
  215. package/esm2022/empty/empty.property.mjs +3 -3
  216. package/esm2022/examples/examples.component.mjs +12 -10
  217. package/esm2022/examples/examples.module.mjs +6 -8
  218. package/esm2022/find/find.component.mjs +48 -33
  219. package/esm2022/find/find.module.mjs +6 -54
  220. package/esm2022/find/find.property.mjs +3 -3
  221. package/esm2022/form/control.component.mjs +67 -40
  222. package/esm2022/form/form.component.mjs +28 -22
  223. package/esm2022/form/form.module.mjs +6 -71
  224. package/esm2022/form/form.property.mjs +6 -6
  225. package/esm2022/highlight/highlight.component.mjs +26 -24
  226. package/esm2022/highlight/highlight.module.mjs +6 -10
  227. package/esm2022/highlight/highlight.property.mjs +3 -3
  228. package/esm2022/i18n/i18n.directive.mjs +14 -11
  229. package/esm2022/i18n/i18n.module.mjs +6 -6
  230. package/esm2022/i18n/i18n.pipe.mjs +6 -5
  231. package/esm2022/i18n/i18n.service.mjs +9 -13
  232. package/esm2022/icon/icon.component.mjs +21 -22
  233. package/esm2022/icon/icon.module.mjs +6 -11
  234. package/esm2022/icon/icon.property.mjs +4 -4
  235. package/esm2022/icon/icon.service.mjs +36 -35
  236. package/esm2022/image/image-group.component.mjs +12 -6
  237. package/esm2022/image/image-preview.component.mjs +26 -32
  238. package/esm2022/image/image.component.mjs +30 -30
  239. package/esm2022/image/image.module.mjs +6 -15
  240. package/esm2022/image/image.property.mjs +6 -6
  241. package/esm2022/inner/inner.component.mjs +14 -14
  242. package/esm2022/inner/inner.module.mjs +6 -9
  243. package/esm2022/inner/inner.property.mjs +3 -3
  244. package/esm2022/input/input-group.component.mjs +12 -14
  245. package/esm2022/input/input.component.mjs +33 -35
  246. package/esm2022/input/input.module.mjs +6 -13
  247. package/esm2022/input/input.property.mjs +6 -6
  248. package/esm2022/input-number/input-number.component.mjs +23 -27
  249. package/esm2022/input-number/input-number.module.mjs +6 -13
  250. package/esm2022/input-number/input-number.property.mjs +3 -3
  251. package/esm2022/keyword/keyword.directive.mjs +14 -14
  252. package/esm2022/keyword/keyword.module.mjs +6 -9
  253. package/esm2022/keyword/keyword.property.mjs +5 -5
  254. package/esm2022/layout/col.component.mjs +15 -19
  255. package/esm2022/layout/layout.module.mjs +6 -9
  256. package/esm2022/layout/layout.property.mjs +7 -7
  257. package/esm2022/layout/row.component.mjs +13 -13
  258. package/esm2022/link/link.component.mjs +17 -19
  259. package/esm2022/link/link.module.mjs +6 -12
  260. package/esm2022/link/link.property.mjs +3 -3
  261. package/esm2022/list/list-drop-group.directive.mjs +5 -4
  262. package/esm2022/list/list-option.component.mjs +16 -17
  263. package/esm2022/list/list.component.mjs +36 -33
  264. package/esm2022/list/list.module.mjs +6 -54
  265. package/esm2022/list/list.property.mjs +6 -6
  266. package/esm2022/loading/loading.component.mjs +19 -22
  267. package/esm2022/loading/loading.module.mjs +6 -12
  268. package/esm2022/loading/loading.property.mjs +3 -3
  269. package/esm2022/menu/menu-node.component.mjs +17 -18
  270. package/esm2022/menu/menu.component.mjs +21 -27
  271. package/esm2022/menu/menu.module.mjs +6 -13
  272. package/esm2022/menu/menu.property.mjs +6 -6
  273. package/esm2022/message/message.component.mjs +10 -16
  274. package/esm2022/message/message.module.mjs +7 -14
  275. package/esm2022/message/message.service.mjs +13 -13
  276. package/esm2022/message-box/message-box.component.mjs +21 -12
  277. package/esm2022/message-box/message-box.module.mjs +7 -49
  278. package/esm2022/message-box/message-box.service.mjs +13 -12
  279. package/esm2022/notification/notification.component.mjs +10 -16
  280. package/esm2022/notification/notification.module.mjs +7 -14
  281. package/esm2022/notification/notification.service.mjs +15 -11
  282. package/esm2022/outlet/outlet.directive.mjs +10 -10
  283. package/esm2022/outlet/outlet.module.mjs +6 -8
  284. package/esm2022/page-header/page-header.component.mjs +18 -19
  285. package/esm2022/page-header/page-header.module.mjs +6 -10
  286. package/esm2022/page-header/page-header.property.mjs +3 -3
  287. package/esm2022/pagination/pagination.component.mjs +37 -33
  288. package/esm2022/pagination/pagination.module.mjs +6 -15
  289. package/esm2022/pagination/pagination.property.mjs +3 -3
  290. package/esm2022/pattern/pattern.component.mjs +12 -10
  291. package/esm2022/pattern/pattern.module.mjs +6 -8
  292. package/esm2022/popconfirm/popconfirm.component.mjs +23 -26
  293. package/esm2022/popconfirm/popconfirm.module.mjs +6 -13
  294. package/esm2022/popconfirm/popconfirm.property.mjs +3 -3
  295. package/esm2022/popover/popover-portal.component.mjs +16 -16
  296. package/esm2022/popover/popover.directive.mjs +17 -19
  297. package/esm2022/popover/popover.module.mjs +7 -13
  298. package/esm2022/popover/popover.property.mjs +3 -3
  299. package/esm2022/portal/portal.module.mjs +8 -11
  300. package/esm2022/portal/portal.service.mjs +13 -12
  301. package/esm2022/progress/progress.component.mjs +16 -19
  302. package/esm2022/progress/progress.module.mjs +6 -11
  303. package/esm2022/progress/progress.property.mjs +3 -3
  304. package/esm2022/radio/radio.component.mjs +21 -25
  305. package/esm2022/radio/radio.module.mjs +6 -14
  306. package/esm2022/radio/radio.property.mjs +3 -3
  307. package/esm2022/rate/rate.component.mjs +22 -22
  308. package/esm2022/rate/rate.module.mjs +6 -13
  309. package/esm2022/rate/rate.property.mjs +3 -3
  310. package/esm2022/resizable/resizable.directive.mjs +57 -46
  311. package/esm2022/resizable/resizable.module.mjs +7 -9
  312. package/esm2022/resizable/resizable.property.mjs +5 -5
  313. package/esm2022/result/result.component.mjs +15 -19
  314. package/esm2022/result/result.module.mjs +6 -11
  315. package/esm2022/result/result.property.mjs +3 -3
  316. package/esm2022/ripple/ripple.directive.mjs +12 -11
  317. package/esm2022/ripple/ripple.module.mjs +7 -10
  318. package/esm2022/ripple/ripple.property.mjs +3 -3
  319. package/esm2022/select/select-portal.component.mjs +7 -6
  320. package/esm2022/select/select.component.mjs +51 -50
  321. package/esm2022/select/select.module.mjs +7 -48
  322. package/esm2022/select/select.property.mjs +3 -3
  323. package/esm2022/skeleton/skeleton.component.mjs +14 -17
  324. package/esm2022/skeleton/skeleton.module.mjs +6 -10
  325. package/esm2022/skeleton/skeleton.property.mjs +3 -3
  326. package/esm2022/slider/slider.component.mjs +38 -39
  327. package/esm2022/slider/slider.module.mjs +7 -13
  328. package/esm2022/slider/slider.property.mjs +3 -3
  329. package/esm2022/slider-select/slider-select.component.mjs +46 -38
  330. package/esm2022/slider-select/slider-select.module.mjs +6 -38
  331. package/esm2022/slider-select/slider-select.property.mjs +3 -3
  332. package/esm2022/statistic/countdown.component.mjs +15 -16
  333. package/esm2022/statistic/statistic.component.mjs +13 -14
  334. package/esm2022/statistic/statistic.module.mjs +6 -11
  335. package/esm2022/statistic/statistic.property.mjs +6 -6
  336. package/esm2022/steps/steps.component.mjs +17 -22
  337. package/esm2022/steps/steps.module.mjs +6 -11
  338. package/esm2022/steps/steps.property.mjs +3 -3
  339. package/esm2022/switch/switch.component.mjs +18 -18
  340. package/esm2022/switch/switch.module.mjs +6 -13
  341. package/esm2022/switch/switch.property.mjs +3 -3
  342. package/esm2022/table/table-body.component.mjs +23 -13
  343. package/esm2022/table/table-foot.component.mjs +12 -16
  344. package/esm2022/table/table-head.component.mjs +35 -31
  345. package/esm2022/table/table.component.mjs +22 -13
  346. package/esm2022/table/table.module.mjs +6 -71
  347. package/esm2022/table/table.property.mjs +12 -12
  348. package/esm2022/tabs/tab-content.component.mjs +13 -11
  349. package/esm2022/tabs/tab-link.directive.mjs +11 -9
  350. package/esm2022/tabs/tab.component.mjs +11 -11
  351. package/esm2022/tabs/tabs.component.mjs +28 -27
  352. package/esm2022/tabs/tabs.module.mjs +7 -28
  353. package/esm2022/tabs/tabs.property.mjs +6 -6
  354. package/esm2022/tag/tag.component.mjs +16 -20
  355. package/esm2022/tag/tag.module.mjs +6 -11
  356. package/esm2022/tag/tag.property.mjs +3 -3
  357. package/esm2022/text-retract/text-retract.component.mjs +16 -19
  358. package/esm2022/text-retract/text-retract.module.mjs +6 -12
  359. package/esm2022/text-retract/text-retract.property.mjs +3 -3
  360. package/esm2022/textarea/textarea.component.mjs +24 -25
  361. package/esm2022/textarea/textarea.module.mjs +6 -12
  362. package/esm2022/textarea/textarea.property.mjs +3 -3
  363. package/esm2022/theme/theme.component.mjs +42 -31
  364. package/esm2022/theme/theme.module.mjs +6 -42
  365. package/esm2022/theme/theme.property.mjs +3 -3
  366. package/esm2022/time-ago/time-ago.module.mjs +6 -8
  367. package/esm2022/time-ago/time-ago.pipe.mjs +21 -21
  368. package/esm2022/time-picker/time-picker-frame.component.mjs +30 -30
  369. package/esm2022/time-picker/time-picker-portal.component.mjs +18 -20
  370. package/esm2022/time-picker/time-picker.component.mjs +40 -41
  371. package/esm2022/time-picker/time-picker.module.mjs +7 -48
  372. package/esm2022/time-picker/time-picker.property.mjs +3 -3
  373. package/esm2022/time-range/time-range.module.mjs +7 -7
  374. package/esm2022/time-range/time-range.pipe.mjs +5 -5
  375. package/esm2022/timeline/timeline.component.mjs +17 -20
  376. package/esm2022/timeline/timeline.module.mjs +6 -13
  377. package/esm2022/timeline/timeline.property.mjs +3 -3
  378. package/esm2022/tooltip/tooltip-portal.component.mjs +16 -16
  379. package/esm2022/tooltip/tooltip.directive.mjs +16 -19
  380. package/esm2022/tooltip/tooltip.module.mjs +7 -13
  381. package/esm2022/tooltip/tooltip.property.mjs +3 -3
  382. package/esm2022/transfer/transfer.component.mjs +70 -55
  383. package/esm2022/transfer/transfer.module.mjs +6 -59
  384. package/esm2022/transfer/transfer.property.mjs +3 -3
  385. package/esm2022/tree/tree-node.component.mjs +36 -30
  386. package/esm2022/tree/tree.component.mjs +12 -16
  387. package/esm2022/tree/tree.module.mjs +6 -43
  388. package/esm2022/tree/tree.property.mjs +6 -6
  389. package/esm2022/tree/tree.service.mjs +6 -5
  390. package/esm2022/tree-file/tree-file.component.mjs +34 -31
  391. package/esm2022/tree-file/tree-file.module.mjs +6 -15
  392. package/esm2022/tree-file/tree-file.property.mjs +3 -3
  393. package/esm2022/tree-select/tree-select-portal.component.mjs +24 -26
  394. package/esm2022/tree-select/tree-select.component.mjs +52 -51
  395. package/esm2022/tree-select/tree-select.module.mjs +8 -56
  396. package/esm2022/tree-select/tree-select.property.mjs +3 -3
  397. package/esm2022/typography/typography.component.mjs +12 -12
  398. package/esm2022/typography/typography.module.mjs +6 -9
  399. package/esm2022/typography/typography.property.mjs +3 -3
  400. package/esm2022/upload/upload-portal.component.mjs +11 -12
  401. package/esm2022/upload/upload.component.mjs +42 -43
  402. package/esm2022/upload/upload.module.mjs +6 -55
  403. package/esm2022/upload/upload.property.mjs +3 -3
  404. package/examples/examples.component.d.ts +6 -6
  405. package/examples/examples.module.d.ts +1 -2
  406. package/fesm2022/ng-nest-ui-affix.mjs +18 -21
  407. package/fesm2022/ng-nest-ui-affix.mjs.map +1 -1
  408. package/fesm2022/ng-nest-ui-alert.mjs +25 -32
  409. package/fesm2022/ng-nest-ui-alert.mjs.map +1 -1
  410. package/fesm2022/ng-nest-ui-anchor.mjs +32 -37
  411. package/fesm2022/ng-nest-ui-anchor.mjs.map +1 -1
  412. package/fesm2022/ng-nest-ui-api.mjs +18 -18
  413. package/fesm2022/ng-nest-ui-api.mjs.map +1 -1
  414. package/fesm2022/ng-nest-ui-auto-complete.mjs +65 -57
  415. package/fesm2022/ng-nest-ui-auto-complete.mjs.map +1 -1
  416. package/fesm2022/ng-nest-ui-avatar.mjs +33 -38
  417. package/fesm2022/ng-nest-ui-avatar.mjs.map +1 -1
  418. package/fesm2022/ng-nest-ui-back-top.mjs +30 -39
  419. package/fesm2022/ng-nest-ui-back-top.mjs.map +1 -1
  420. package/fesm2022/ng-nest-ui-badge.mjs +25 -32
  421. package/fesm2022/ng-nest-ui-badge.mjs.map +1 -1
  422. package/fesm2022/ng-nest-ui-base-form.mjs +19 -14
  423. package/fesm2022/ng-nest-ui-base-form.mjs.map +1 -1
  424. package/fesm2022/ng-nest-ui-border.mjs +18 -16
  425. package/fesm2022/ng-nest-ui-border.mjs.map +1 -1
  426. package/fesm2022/ng-nest-ui-button.mjs +40 -49
  427. package/fesm2022/ng-nest-ui-button.mjs.map +1 -1
  428. package/fesm2022/ng-nest-ui-calendar.mjs +44 -44
  429. package/fesm2022/ng-nest-ui-calendar.mjs.map +1 -1
  430. package/fesm2022/ng-nest-ui-card.mjs +21 -28
  431. package/fesm2022/ng-nest-ui-card.mjs.map +1 -1
  432. package/fesm2022/ng-nest-ui-carousel.mjs +62 -68
  433. package/fesm2022/ng-nest-ui-carousel.mjs.map +1 -1
  434. package/fesm2022/ng-nest-ui-cascade.mjs +58 -58
  435. package/fesm2022/ng-nest-ui-cascade.mjs.map +1 -1
  436. package/fesm2022/ng-nest-ui-checkbox.mjs +37 -39
  437. package/fesm2022/ng-nest-ui-checkbox.mjs.map +1 -1
  438. package/fesm2022/ng-nest-ui-collapse.mjs +36 -47
  439. package/fesm2022/ng-nest-ui-collapse.mjs.map +1 -1
  440. package/fesm2022/ng-nest-ui-color-picker.mjs +84 -106
  441. package/fesm2022/ng-nest-ui-color-picker.mjs.map +1 -1
  442. package/fesm2022/ng-nest-ui-color.mjs +22 -28
  443. package/fesm2022/ng-nest-ui-color.mjs.map +1 -1
  444. package/fesm2022/ng-nest-ui-comment.mjs +51 -83
  445. package/fesm2022/ng-nest-ui-comment.mjs.map +1 -1
  446. package/fesm2022/ng-nest-ui-container.mjs +80 -114
  447. package/fesm2022/ng-nest-ui-container.mjs.map +1 -1
  448. package/fesm2022/ng-nest-ui-core.mjs +24 -18
  449. package/fesm2022/ng-nest-ui-core.mjs.map +1 -1
  450. package/fesm2022/ng-nest-ui-crumb.mjs +22 -30
  451. package/fesm2022/ng-nest-ui-crumb.mjs.map +1 -1
  452. package/fesm2022/ng-nest-ui-date-picker.mjs +277 -326
  453. package/fesm2022/ng-nest-ui-date-picker.mjs.map +1 -1
  454. package/fesm2022/ng-nest-ui-description.mjs +28 -35
  455. package/fesm2022/ng-nest-ui-description.mjs.map +1 -1
  456. package/fesm2022/ng-nest-ui-dialog.mjs +193 -242
  457. package/fesm2022/ng-nest-ui-dialog.mjs.map +1 -1
  458. package/fesm2022/ng-nest-ui-doc.mjs +16 -16
  459. package/fesm2022/ng-nest-ui-doc.mjs.map +1 -1
  460. package/fesm2022/ng-nest-ui-drag.mjs +19 -20
  461. package/fesm2022/ng-nest-ui-drag.mjs.map +1 -1
  462. package/fesm2022/ng-nest-ui-drawer.mjs +128 -149
  463. package/fesm2022/ng-nest-ui-drawer.mjs.map +1 -1
  464. package/fesm2022/ng-nest-ui-dropdown.mjs +33 -38
  465. package/fesm2022/ng-nest-ui-dropdown.mjs.map +1 -1
  466. package/fesm2022/ng-nest-ui-empty.mjs +26 -31
  467. package/fesm2022/ng-nest-ui-empty.mjs.map +1 -1
  468. package/fesm2022/ng-nest-ui-examples.mjs +16 -16
  469. package/fesm2022/ng-nest-ui-examples.mjs.map +1 -1
  470. package/fesm2022/ng-nest-ui-find.mjs +55 -86
  471. package/fesm2022/ng-nest-ui-find.mjs.map +1 -1
  472. package/fesm2022/ng-nest-ui-form.mjs +98 -126
  473. package/fesm2022/ng-nest-ui-form.mjs.map +1 -1
  474. package/fesm2022/ng-nest-ui-highlight.mjs +33 -33
  475. package/fesm2022/ng-nest-ui-highlight.mjs.map +1 -1
  476. package/fesm2022/ng-nest-ui-i18n.mjs +29 -29
  477. package/fesm2022/ng-nest-ui-i18n.mjs.map +1 -1
  478. package/fesm2022/ng-nest-ui-icon.mjs +62 -64
  479. package/fesm2022/ng-nest-ui-icon.mjs.map +1 -1
  480. package/fesm2022/ng-nest-ui-image.mjs +69 -75
  481. package/fesm2022/ng-nest-ui-image.mjs.map +1 -1
  482. package/fesm2022/ng-nest-ui-inner.mjs +21 -24
  483. package/fesm2022/ng-nest-ui-inner.mjs.map +1 -1
  484. package/fesm2022/ng-nest-ui-input-number.mjs +31 -38
  485. package/fesm2022/ng-nest-ui-input-number.mjs.map +1 -1
  486. package/fesm2022/ng-nest-ui-input.mjs +51 -60
  487. package/fesm2022/ng-nest-ui-input.mjs.map +1 -1
  488. package/fesm2022/ng-nest-ui-keyword.mjs +22 -24
  489. package/fesm2022/ng-nest-ui-keyword.mjs.map +1 -1
  490. package/fesm2022/ng-nest-ui-layout.mjs +35 -41
  491. package/fesm2022/ng-nest-ui-layout.mjs.map +1 -1
  492. package/fesm2022/ng-nest-ui-link.mjs +24 -31
  493. package/fesm2022/ng-nest-ui-link.mjs.map +1 -1
  494. package/fesm2022/ng-nest-ui-list.mjs +63 -100
  495. package/fesm2022/ng-nest-ui-list.mjs.map +1 -1
  496. package/fesm2022/ng-nest-ui-loading.mjs +26 -34
  497. package/fesm2022/ng-nest-ui-loading.mjs.map +1 -1
  498. package/fesm2022/ng-nest-ui-menu.mjs +42 -54
  499. package/fesm2022/ng-nest-ui-menu.mjs.map +1 -1
  500. package/fesm2022/ng-nest-ui-message-box.mjs +38 -66
  501. package/fesm2022/ng-nest-ui-message-box.mjs.map +1 -1
  502. package/fesm2022/ng-nest-ui-message.mjs +26 -37
  503. package/fesm2022/ng-nest-ui-message.mjs.map +1 -1
  504. package/fesm2022/ng-nest-ui-notification.mjs +28 -35
  505. package/fesm2022/ng-nest-ui-notification.mjs.map +1 -1
  506. package/fesm2022/ng-nest-ui-outlet.mjs +14 -16
  507. package/fesm2022/ng-nest-ui-outlet.mjs.map +1 -1
  508. package/fesm2022/ng-nest-ui-page-header.mjs +25 -30
  509. package/fesm2022/ng-nest-ui-page-header.mjs.map +1 -1
  510. package/fesm2022/ng-nest-ui-pagination.mjs +43 -47
  511. package/fesm2022/ng-nest-ui-pagination.mjs.map +1 -1
  512. package/fesm2022/ng-nest-ui-pattern.mjs +16 -16
  513. package/fesm2022/ng-nest-ui-pattern.mjs.map +1 -1
  514. package/fesm2022/ng-nest-ui-popconfirm.mjs +30 -40
  515. package/fesm2022/ng-nest-ui-popconfirm.mjs.map +1 -1
  516. package/fesm2022/ng-nest-ui-popover.mjs +39 -44
  517. package/fesm2022/ng-nest-ui-popover.mjs.map +1 -1
  518. package/fesm2022/ng-nest-ui-portal.mjs +26 -26
  519. package/fesm2022/ng-nest-ui-portal.mjs.map +1 -1
  520. package/fesm2022/ng-nest-ui-progress.mjs +22 -29
  521. package/fesm2022/ng-nest-ui-progress.mjs.map +1 -1
  522. package/fesm2022/ng-nest-ui-radio.mjs +28 -38
  523. package/fesm2022/ng-nest-ui-radio.mjs.map +1 -1
  524. package/fesm2022/ng-nest-ui-rate.mjs +29 -34
  525. package/fesm2022/ng-nest-ui-rate.mjs.map +1 -1
  526. package/fesm2022/ng-nest-ui-resizable.mjs +67 -57
  527. package/fesm2022/ng-nest-ui-resizable.mjs.map +1 -1
  528. package/fesm2022/ng-nest-ui-result.mjs +22 -30
  529. package/fesm2022/ng-nest-ui-result.mjs.map +1 -1
  530. package/fesm2022/ng-nest-ui-ripple.mjs +20 -21
  531. package/fesm2022/ng-nest-ui-ripple.mjs.map +1 -1
  532. package/fesm2022/ng-nest-ui-select.mjs +66 -100
  533. package/fesm2022/ng-nest-ui-select.mjs.map +1 -1
  534. package/fesm2022/ng-nest-ui-skeleton.mjs +21 -27
  535. package/fesm2022/ng-nest-ui-skeleton.mjs.map +1 -1
  536. package/fesm2022/ng-nest-ui-slider-select.mjs +53 -73
  537. package/fesm2022/ng-nest-ui-slider-select.mjs.map +1 -1
  538. package/fesm2022/ng-nest-ui-slider.mjs +46 -52
  539. package/fesm2022/ng-nest-ui-slider.mjs.map +1 -1
  540. package/fesm2022/ng-nest-ui-statistic.mjs +34 -40
  541. package/fesm2022/ng-nest-ui-statistic.mjs.map +1 -1
  542. package/fesm2022/ng-nest-ui-steps.mjs +24 -33
  543. package/fesm2022/ng-nest-ui-steps.mjs.map +1 -1
  544. package/fesm2022/ng-nest-ui-switch.mjs +25 -30
  545. package/fesm2022/ng-nest-ui-switch.mjs.map +1 -1
  546. package/fesm2022/ng-nest-ui-table.mjs +111 -154
  547. package/fesm2022/ng-nest-ui-table.mjs.map +1 -1
  548. package/fesm2022/ng-nest-ui-tabs.mjs +67 -79
  549. package/fesm2022/ng-nest-ui-tabs.mjs.map +1 -1
  550. package/fesm2022/ng-nest-ui-tag.mjs +23 -31
  551. package/fesm2022/ng-nest-ui-tag.mjs.map +1 -1
  552. package/fesm2022/ng-nest-ui-text-retract.mjs +22 -30
  553. package/fesm2022/ng-nest-ui-text-retract.mjs.map +1 -1
  554. package/fesm2022/ng-nest-ui-textarea.mjs +31 -36
  555. package/fesm2022/ng-nest-ui-textarea.mjs.map +1 -1
  556. package/fesm2022/ng-nest-ui-theme.mjs +49 -71
  557. package/fesm2022/ng-nest-ui-theme.mjs.map +1 -1
  558. package/fesm2022/ng-nest-ui-time-ago.mjs +24 -26
  559. package/fesm2022/ng-nest-ui-time-ago.mjs.map +1 -1
  560. package/fesm2022/ng-nest-ui-time-picker.mjs +89 -127
  561. package/fesm2022/ng-nest-ui-time-picker.mjs.map +1 -1
  562. package/fesm2022/ng-nest-ui-time-range.mjs +10 -10
  563. package/fesm2022/ng-nest-ui-time-range.mjs.map +1 -1
  564. package/fesm2022/ng-nest-ui-timeline.mjs +24 -33
  565. package/fesm2022/ng-nest-ui-timeline.mjs.map +1 -1
  566. package/fesm2022/ng-nest-ui-tooltip.mjs +38 -44
  567. package/fesm2022/ng-nest-ui-tooltip.mjs.map +1 -1
  568. package/fesm2022/ng-nest-ui-transfer.mjs +76 -111
  569. package/fesm2022/ng-nest-ui-transfer.mjs.map +1 -1
  570. package/fesm2022/ng-nest-ui-tree-file.mjs +41 -46
  571. package/fesm2022/ng-nest-ui-tree-file.mjs.map +1 -1
  572. package/fesm2022/ng-nest-ui-tree-select.mjs +83 -126
  573. package/fesm2022/ng-nest-ui-tree-select.mjs.map +1 -1
  574. package/fesm2022/ng-nest-ui-tree.mjs +60 -89
  575. package/fesm2022/ng-nest-ui-tree.mjs.map +1 -1
  576. package/fesm2022/ng-nest-ui-typography.mjs +19 -21
  577. package/fesm2022/ng-nest-ui-typography.mjs.map +1 -1
  578. package/fesm2022/ng-nest-ui-upload.mjs +58 -106
  579. package/fesm2022/ng-nest-ui-upload.mjs.map +1 -1
  580. package/find/find.component.d.ts +6 -8
  581. package/find/find.module.d.ts +1 -13
  582. package/form/control.component.d.ts +6 -7
  583. package/form/form.component.d.ts +5 -8
  584. package/form/form.module.d.ts +1 -24
  585. package/highlight/highlight.component.d.ts +12 -10
  586. package/highlight/highlight.module.d.ts +1 -4
  587. package/i18n/i18n.directive.d.ts +6 -7
  588. package/i18n/i18n.module.d.ts +1 -1
  589. package/i18n/i18n.pipe.d.ts +1 -1
  590. package/i18n/i18n.service.d.ts +3 -2
  591. package/icon/icon.component.d.ts +7 -9
  592. package/icon/icon.module.d.ts +1 -3
  593. package/icon/icon.property.d.ts +1 -1
  594. package/icon/icon.service.d.ts +6 -7
  595. package/image/image-group.component.d.ts +3 -1
  596. package/image/image-preview.component.d.ts +5 -10
  597. package/image/image.component.d.ts +9 -14
  598. package/image/image.module.d.ts +3 -11
  599. package/inner/inner.component.d.ts +2 -3
  600. package/inner/inner.module.d.ts +1 -3
  601. package/input/input-group.component.d.ts +3 -6
  602. package/input/input.component.d.ts +8 -10
  603. package/input/input.module.d.ts +2 -8
  604. package/input-number/input-number.component.d.ts +5 -6
  605. package/input-number/input-number.module.d.ts +1 -7
  606. package/keyword/keyword.directive.d.ts +3 -4
  607. package/keyword/keyword.module.d.ts +1 -3
  608. package/keyword/keyword.property.d.ts +1 -1
  609. package/layout/col.component.d.ts +5 -7
  610. package/layout/layout.module.d.ts +1 -3
  611. package/layout/row.component.d.ts +3 -4
  612. package/link/link.component.d.ts +5 -7
  613. package/link/link.module.d.ts +1 -6
  614. package/list/list-drop-group.directive.d.ts +1 -1
  615. package/list/list-option.component.d.ts +6 -7
  616. package/list/list.component.d.ts +9 -12
  617. package/list/list.module.d.ts +1 -13
  618. package/loading/loading.component.d.ts +7 -10
  619. package/loading/loading.module.d.ts +1 -6
  620. package/menu/menu-node.component.d.ts +6 -7
  621. package/menu/menu.component.d.ts +4 -8
  622. package/menu/menu.module.d.ts +1 -7
  623. package/message/message.component.d.ts +3 -7
  624. package/message/message.module.d.ts +1 -5
  625. package/message/message.service.d.ts +4 -5
  626. package/message-box/message-box.component.d.ts +1 -1
  627. package/message-box/message-box.module.d.ts +1 -11
  628. package/message-box/message-box.service.d.ts +2 -5
  629. package/notification/notification.component.d.ts +3 -7
  630. package/notification/notification.module.d.ts +1 -5
  631. package/notification/notification.service.d.ts +1 -3
  632. package/outlet/outlet.directive.d.ts +4 -5
  633. package/outlet/outlet.module.d.ts +1 -2
  634. package/package.json +36 -36
  635. package/page-header/page-header.component.d.ts +5 -7
  636. package/page-header/page-header.module.d.ts +1 -4
  637. package/pagination/pagination.component.d.ts +8 -11
  638. package/pagination/pagination.module.d.ts +1 -9
  639. package/pattern/pattern.component.d.ts +4 -4
  640. package/pattern/pattern.module.d.ts +1 -2
  641. package/popconfirm/popconfirm.component.d.ts +6 -9
  642. package/popconfirm/popconfirm.module.d.ts +1 -7
  643. package/popover/popover-portal.component.d.ts +4 -5
  644. package/popover/popover.directive.d.ts +9 -10
  645. package/popover/popover.module.d.ts +1 -6
  646. package/portal/portal.module.d.ts +1 -3
  647. package/portal/portal.service.d.ts +3 -4
  648. package/progress/progress.component.d.ts +3 -7
  649. package/progress/progress.module.d.ts +1 -5
  650. package/radio/radio.component.d.ts +6 -9
  651. package/radio/radio.module.d.ts +1 -8
  652. package/rate/rate.component.d.ts +6 -8
  653. package/rate/rate.module.d.ts +1 -7
  654. package/resizable/resizable.directive.d.ts +5 -7
  655. package/resizable/resizable.module.d.ts +1 -2
  656. package/resizable/resizable.property.d.ts +1 -1
  657. package/result/result.component.d.ts +3 -7
  658. package/result/result.module.d.ts +1 -5
  659. package/ripple/ripple.directive.d.ts +4 -5
  660. package/ripple/ripple.module.d.ts +1 -3
  661. package/select/select-portal.component.d.ts +1 -1
  662. package/select/select.component.d.ts +14 -15
  663. package/select/select.module.d.ts +1 -12
  664. package/skeleton/skeleton.component.d.ts +3 -6
  665. package/skeleton/skeleton.module.d.ts +1 -4
  666. package/slider/slider.component.d.ts +5 -8
  667. package/slider/slider.module.d.ts +1 -7
  668. package/slider-select/slider-select.component.d.ts +6 -7
  669. package/slider-select/slider-select.module.d.ts +1 -9
  670. package/statistic/countdown.component.d.ts +6 -7
  671. package/statistic/statistic.component.d.ts +2 -3
  672. package/statistic/statistic.module.d.ts +1 -5
  673. package/steps/steps.component.d.ts +4 -8
  674. package/steps/steps.module.d.ts +1 -5
  675. package/style/core/index.css +1 -1
  676. package/style/params/colors.scss +1 -1
  677. package/switch/switch.component.d.ts +6 -7
  678. package/switch/switch.module.d.ts +1 -7
  679. package/table/table-body.component.d.ts +1 -1
  680. package/table/table-foot.component.d.ts +3 -6
  681. package/table/table-head.component.d.ts +5 -8
  682. package/table/table.component.d.ts +1 -1
  683. package/table/table.module.d.ts +4 -17
  684. package/tabs/tab-content.component.d.ts +6 -6
  685. package/tabs/tab-link.directive.d.ts +2 -2
  686. package/tabs/tab.component.d.ts +2 -3
  687. package/tabs/tabs.component.d.ts +8 -9
  688. package/tabs/tabs.module.d.ts +3 -9
  689. package/tag/tag.component.d.ts +4 -8
  690. package/tag/tag.module.d.ts +1 -5
  691. package/text-retract/text-retract.component.d.ts +6 -10
  692. package/text-retract/text-retract.module.d.ts +1 -6
  693. package/textarea/textarea.component.d.ts +5 -7
  694. package/textarea/textarea.module.d.ts +1 -6
  695. package/theme/theme.component.d.ts +8 -9
  696. package/theme/theme.module.d.ts +1 -10
  697. package/time-ago/time-ago.module.d.ts +1 -1
  698. package/time-ago/time-ago.pipe.d.ts +6 -9
  699. package/time-picker/time-picker-frame.component.d.ts +5 -6
  700. package/time-picker/time-picker-portal.component.d.ts +5 -7
  701. package/time-picker/time-picker.component.d.ts +14 -16
  702. package/time-picker/time-picker.module.d.ts +2 -13
  703. package/time-range/time-range.module.d.ts +1 -1
  704. package/time-range/time-range.pipe.d.ts +1 -1
  705. package/timeline/timeline.component.d.ts +5 -8
  706. package/timeline/timeline.module.d.ts +1 -7
  707. package/tooltip/tooltip-portal.component.d.ts +4 -5
  708. package/tooltip/tooltip.directive.d.ts +8 -9
  709. package/tooltip/tooltip.module.d.ts +1 -6
  710. package/transfer/transfer.component.d.ts +6 -9
  711. package/transfer/transfer.module.d.ts +1 -15
  712. package/tree/tree-node.component.d.ts +6 -10
  713. package/tree/tree.component.d.ts +1 -1
  714. package/tree/tree.module.d.ts +1 -11
  715. package/tree-file/tree-file.component.d.ts +5 -10
  716. package/tree-file/tree-file.module.d.ts +1 -9
  717. package/tree-select/tree-select-portal.component.d.ts +5 -7
  718. package/tree-select/tree-select.component.d.ts +14 -15
  719. package/tree-select/tree-select.module.d.ts +1 -14
  720. package/typography/typography.component.d.ts +3 -4
  721. package/typography/typography.module.d.ts +1 -3
  722. package/upload/upload-portal.component.d.ts +5 -7
  723. package/upload/upload.component.d.ts +12 -16
  724. package/upload/upload.module.d.ts +1 -14
@@ -1,17 +1,27 @@
1
- import { Component, ViewEncapsulation, ChangeDetectionStrategy } from '@angular/core';
2
- import { XChunk, XIsChange, XIsNull, XIsFunction } from '@ng-nest/ui/core';
1
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, ChangeDetectorRef, inject } from '@angular/core';
2
+ import { XChunk, XIsChange, XConfigService, XIsNull, XIsFunction } from '@ng-nest/ui/core';
3
3
  import { XPickerQuarterProperty } from './date-picker.property';
4
- import { DatePipe, LowerCasePipe } from '@angular/common';
4
+ import { DatePipe, LowerCasePipe, NgTemplateOutlet } from '@angular/common';
5
+ import { XI18nService } from '@ng-nest/ui/i18n';
5
6
  import { Subject } from 'rxjs';
6
7
  import { map, takeUntil } from 'rxjs/operators';
7
8
  import { XDateQuarterPipe } from './date-quarter.pipe';
9
+ import { XLinkComponent } from '@ng-nest/ui/link';
8
10
  import * as i0 from "@angular/core";
9
- import * as i1 from "@angular/common";
10
- import * as i2 from "./date-quarter.pipe";
11
- import * as i3 from "@ng-nest/ui/core";
12
- import * as i4 from "@ng-nest/ui/i18n";
13
- import * as i5 from "@ng-nest/ui/link";
14
11
  export class XPickerQuarterComponent extends XPickerQuarterProperty {
12
+ constructor() {
13
+ super(...arguments);
14
+ this.now = new Date();
15
+ this.dates = [];
16
+ this.chunkDates = [];
17
+ this.locale = {};
18
+ this._unSubject = new Subject();
19
+ this.cdr = inject(ChangeDetectorRef);
20
+ this.datePipe = inject(DatePipe);
21
+ this.dateQuarterPipe = inject(XDateQuarterPipe);
22
+ this.i18n = inject(XI18nService);
23
+ this.configService = inject(XConfigService);
24
+ }
15
25
  get rangeStart() {
16
26
  if (this.rangeValue && this.rangeValue.length > 0) {
17
27
  return this.rangeValue[0];
@@ -32,21 +42,6 @@ export class XPickerQuarterComponent extends XPickerQuarterProperty {
32
42
  return false;
33
43
  }
34
44
  }
35
- constructor(renderer, datePipe, lowerCasePipe, dateQuarterPipe, cdr, configService, i18n) {
36
- super();
37
- this.renderer = renderer;
38
- this.datePipe = datePipe;
39
- this.lowerCasePipe = lowerCasePipe;
40
- this.dateQuarterPipe = dateQuarterPipe;
41
- this.cdr = cdr;
42
- this.configService = configService;
43
- this.i18n = i18n;
44
- this.now = new Date();
45
- this.dates = [];
46
- this.chunkDates = [];
47
- this.locale = {};
48
- this._unSubject = new Subject();
49
- }
50
45
  ngOnInit() {
51
46
  this.i18n.localeChange
52
47
  .pipe(map((x) => x.datePicker), takeUntil(this._unSubject))
@@ -96,14 +91,17 @@ export class XPickerQuarterComponent extends XPickerQuarterProperty {
96
91
  item.isRangeHoverStartLeft = time < start && itemTime === start;
97
92
  item.isRangeHoverStartRight = time > start && itemTime === start;
98
93
  item.isRangeHover =
99
- (time < start && itemTime >= time && itemTime < start) || (time > start && itemTime > start && itemTime <= time);
94
+ (time < start && itemTime >= time && itemTime < start) ||
95
+ (time > start && itemTime > start && itemTime <= time);
100
96
  item.isRangeHoverStart = itemTime === time && time < start;
101
97
  item.isRangeHoverEnd = itemTime === time && time > start;
102
98
  }
103
99
  else if (XIsNull(start) && !XIsNull(end)) {
104
100
  item.isRangeHoverEndLeft = time < end && itemTime === end;
105
101
  item.isRangeHoverEndRight = time > end && itemTime === end;
106
- item.isRangeHover = (time < end && itemTime >= time && itemTime < end) || (time > end && itemTime > end && itemTime <= time);
102
+ item.isRangeHover =
103
+ (time < end && itemTime >= time && itemTime < end) ||
104
+ (time > end && itemTime > end && itemTime <= time);
107
105
  item.isRangeHoverStart = itemTime === time && time < end;
108
106
  item.isRangeHoverEnd = itemTime === time && time > end;
109
107
  }
@@ -111,7 +109,8 @@ export class XPickerQuarterComponent extends XPickerQuarterProperty {
111
109
  item.isRangeHoverStartLeft = time < start && itemTime === start;
112
110
  item.isRangeHoverEndRight = time > end && itemTime === end;
113
111
  item.isRangeHover =
114
- (time < start && itemTime >= time && itemTime < start) || (time > end && itemTime > end && itemTime <= time);
112
+ (time < start && itemTime >= time && itemTime < start) ||
113
+ (time > end && itemTime > end && itemTime <= time);
115
114
  item.isRangeHoverStart = itemTime === time && time < start;
116
115
  item.isRangeHoverEnd = itemTime === time && time > end;
117
116
  if (this.rangeType === 'start') {
@@ -227,11 +226,11 @@ export class XPickerQuarterComponent extends XPickerQuarterProperty {
227
226
  trackByQuarter(_index, item) {
228
227
  return item;
229
228
  }
230
- /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPickerQuarterComponent, deps: [{ token: i0.Renderer2 }, { token: i1.DatePipe }, { token: i1.LowerCasePipe }, { token: i2.XDateQuarterPipe }, { token: i0.ChangeDetectorRef }, { token: i3.XConfigService }, { token: i4.XI18nService }], target: i0.ɵɵFactoryTarget.Component }); }
231
- /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: XPickerQuarterComponent, selector: "x-picker-quarter", providers: [DatePipe, LowerCasePipe, XDateQuarterPipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n <div class=\"x-picker-quarter-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let quarters of chunkDates\">\r\n <ng-container *ngFor=\"let quarter of quarters; trackBy: trackByQuarter\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter : true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n <div *ngIf=\"!quarterTemp\" class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n <ng-container *ngIf=\"quarterTemp\">\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-quarter{margin:0;padding:0}.x-picker-quarter-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-quarter-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-quarter-header .x-link{padding:0 .25rem}.x-picker-quarter-year-quarter{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-quarter-body{padding:.1375rem .5rem}.x-picker-quarter-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-quarter-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-quarter-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-quarter-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-quarter-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-quarter-body .x-picker-date-item:after,.x-picker-quarter-body .x-picker-date-item:before{height:3.25rem}.x-picker-quarter-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-quarter-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-quarter .x-visibility{visibility:hidden}\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: "component", type: i5.XLinkComponent, selector: "x-link" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i2.XDateQuarterPipe, name: "xDateQuarter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
229
+ /** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XPickerQuarterComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
230
+ /** @nocollapse */ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.7", type: XPickerQuarterComponent, isStandalone: true, selector: "x-picker-quarter", providers: [DatePipe, LowerCasePipe, XDateQuarterPipe], usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date: 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates; track quarters) {\r\n <tr>\r\n @for (quarter of quarters; track quarter) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter: true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-quarter{margin:0;padding:0}.x-picker-quarter-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-quarter-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-quarter-header .x-link{padding:0 .25rem}.x-picker-quarter-year-quarter{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-quarter-body{padding:.1375rem .5rem}.x-picker-quarter-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-quarter-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-quarter-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-quarter-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-quarter-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-quarter-body .x-picker-date-item:after,.x-picker-quarter-body .x-picker-date-item:before{height:3.25rem}.x-picker-quarter-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-quarter-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-quarter .x-visibility{visibility:hidden}\n"], dependencies: [{ kind: "pipe", type: DatePipe, name: "date" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: XLinkComponent, selector: "x-link" }, { kind: "pipe", type: XDateQuarterPipe, name: "xDateQuarter" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
232
231
  }
233
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: XPickerQuarterComponent, decorators: [{
232
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: XPickerQuarterComponent, decorators: [{
234
233
  type: Component,
235
- args: [{ selector: 'x-picker-quarter', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe, XDateQuarterPipe], template: "<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n <div class=\"x-picker-quarter-header\" *ngIf=\"showHeader\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date : 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n <tr *ngFor=\"let quarters of chunkDates\">\r\n <ng-container *ngFor=\"let quarter of quarters; trackBy: trackByQuarter\">\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date : 'yyyyMM') === (model | date : 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter : true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n <div *ngIf=\"!quarterTemp\" class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n <ng-container *ngIf=\"quarterTemp\">\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n </ng-container>\r\n </td>\r\n </ng-container>\r\n </tr>\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-quarter{margin:0;padding:0}.x-picker-quarter-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-quarter-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-quarter-header .x-link{padding:0 .25rem}.x-picker-quarter-year-quarter{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-quarter-body{padding:.1375rem .5rem}.x-picker-quarter-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-quarter-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-quarter-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-quarter-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-quarter-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-quarter-body .x-picker-date-item:after,.x-picker-quarter-body .x-picker-date-item:before{height:3.25rem}.x-picker-quarter-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-quarter-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-quarter .x-visibility{visibility:hidden}\n"] }]
236
- }], ctorParameters: () => [{ type: i0.Renderer2 }, { type: i1.DatePipe }, { type: i1.LowerCasePipe }, { type: i2.XDateQuarterPipe }, { type: i0.ChangeDetectorRef }, { type: i3.XConfigService }, { type: i4.XI18nService }] });
237
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBS3hCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFrQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0YsT0FBTyxFQUE4QixzQkFBc0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVGLE9BQU8sRUFBRSxRQUFRLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ2hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7Ozs7O0FBVXZELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFRakUsSUFBSSxVQUFVO1FBQ1osSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUNqRCxPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDM0I7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxN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QUksR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxZQUFZLENBQUMsSUFBcUI7UUFDaEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRUQsY0FBYyxDQUFDLE1BQWMsRUFBRSxJQUErQjtRQUM1RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7aUlBMU9VLHVCQUF1QjtxSEFBdkIsdUJBQXVCLDJDQUZ2QixDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLENBQUMsc0VDdkJ4RCwwMkdBb0RBOzsyRkQzQmEsdUJBQXVCO2tCQVJuQyxTQUFTOytCQUNFLGtCQUFrQixpQkFHYixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNLGFBQ3BDLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIFJlbmRlcmVyMixcclxuICBPbkNoYW5nZXMsXHJcbiAgU2ltcGxlQ2hhbmdlc1xyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBYQ2h1bmssIFhJc0NoYW5nZSwgWENvbmZpZ1NlcnZpY2UsIFhJc051bGwsIFhJc0Z1bmN0aW9uIH0gZnJvbSAnQG5nLW5lc3QvdWkvY29yZSc7XHJcbmltcG9ydCB7IFhEYXRlQ2VsbCwgWERhdGVQaWNrZXJUeXBlLCBYUGlja2VyUXVhcnRlclByb3BlcnR5IH0gZnJvbSAnLi9kYXRlLXBpY2tlci5wcm9wZXJ0eSc7XHJcbmltcG9ydCB7IERhdGVQaXBlLCBMb3dlckNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgWEkxOG5EYXRlUGlja2VyLCBYSTE4blNlcnZpY2UgfSBmcm9tICdAbmctbmVzdC91aS9pMThuJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBtYXAsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgWERhdGVRdWFydGVyUGlwZSB9IGZyb20gJy4vZGF0ZS1xdWFydGVyLnBpcGUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd4LXBpY2tlci1xdWFydGVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci1xdWFydGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSwgWERhdGVRdWFydGVyUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJRdWFydGVyQ29tcG9uZW50IGV4dGVuZHMgWFBpY2tlclF1YXJ0ZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XHJcbiAgbm93ID0gbmV3IERhdGUoKTtcclxuICBkYXRlczogWERhdGVDZWxsW10gPSBbXTtcclxuICBjaHVua0RhdGVzOiBYRGF0ZUNlbGxbXVtdID0gW107XHJcbiAgbG9jYWxlOiBYSTE4bkRhdGVQaWNrZXIgPSB7fTtcclxuXHJcbiAgcHJpdmF0ZSBfdW5TdWJqZWN0ID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgZ2V0IHJhbmdlU3RhcnQoKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlICYmIHRoaXMucmFuZ2VWYWx1ZS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVbMF07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBnZXQgcmFuZ2VFbmQoKSB7XHJcbiAgICBpZiAodGhpcy5yYW5nZVZhbHVlICYmIHRoaXMucmFuZ2VWYWx1ZS5sZW5ndGggPiAxKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlVmFsdWVbMV07XHJcbiAgICB9XHJcbiAgICByZXR1cm4gJyc7XHJcbiAgfVxyXG5cclxuICBpc0Rpc2FibGVkKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLmRpc2FibGVkRGF0ZSAmJiBYSXNGdW5jdGlvbih0aGlzLmRpc2FibGVkRGF0ZSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlKGRhdGUpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgcmVuZGVyZXI6IFJlbmRlcmVyMixcclxuICAgIHB1YmxpYyBkYXRlUGlwZTogRGF0ZVBpcGUsXHJcbiAgICBwdWJsaWMgbG93ZXJDYXNlUGlwZTogTG93ZXJDYXNlUGlwZSxcclxuICAgIHB1YmxpYyBkYXRlUXVhcnRlclBpcGU6IFhEYXRlUXVhcnRlclBpcGUsXHJcbiAgICBwdWJsaWMgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcclxuICAgIHB1YmxpYyBjb25maWdTZXJ2aWNlOiBYQ29uZmlnU2VydmljZSxcclxuICAgIHB1YmxpYyBpMThuOiBYSTE4blNlcnZpY2VcclxuICApIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuaTE4bi5sb2NhbGVDaGFuZ2VcclxuICAgICAgLnBpcGUoXHJcbiAgICAgICAgbWFwKCh4KSA9PiB4LmRhdGVQaWNrZXIgYXMgWEkxOG5EYXRlUGlja2VyKSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5fdW5TdWJqZWN0KVxyXG4gICAgICApXHJcbiAgICAgIC5zdWJzY3JpYmUoKHgpID0+IHtcclxuICAgICAgICB0aGlzLmxvY2FsZSA9IHg7XHJcbiAgICAgICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgbmdPbkNoYW5nZXMoc2ltcGxlczogU2ltcGxlQ2hhbmdlcykge1xyXG4gICAgY29uc3QgeyBkaXNwbGF5IH0gPSBzaW1wbGVzO1xyXG4gICAgWElzQ2hhbmdlKGRpc3BsYXkpICYmIHRoaXMuaW5pdCgpO1xyXG4gIH1cclxuXHJcbiAgaW5pdCgpIHtcclxuICAgIHRoaXMuc2V0UXVhcnRlcnModGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIGlzU3RhcnRRdWFydGVyKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICghdGhpcy5yYW5nZVR5cGUgfHwgIXRoaXMucmFuZ2VWYWx1ZSkgcmV0dXJuO1xyXG4gICAgaWYgKCFYSXNOdWxsKHRoaXMucmFuZ2VWYWx1ZVswXSkpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMucmFuZ2VWYWx1ZVswXSwgJ3l5eXlNTScpID09PSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShkYXRlLCAneXl5eU1NJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBpc0VuZFF1YXJ0ZXIoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzFdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yYW5nZVZhbHVlWzFdLCAneXl5eU1NJykgPT09IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICd5eXl5TU0nKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIHNldERhdGVzU3RhdGUoY2VsbDogWERhdGVDZWxsKSB7XHJcbiAgICB0aGlzLmNsZWFyU3RhdGUoLi4udGhpcy5kYXRlcyk7XHJcbiAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZGF0ZXMpIHtcclxuICAgICAgdGhpcy5zZXREYXlTdGF0ZShpdGVtKTtcclxuICAgIH1cclxuICAgIHRoaXMub25UZE1vdXNlZW50ZXIoY2VsbCwgZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgb25UZE1vdXNlZW50ZXIoY2VsbDogWERhdGVDZWxsLCBpc0VtaXQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnJhbmdlVmFsdWU7XHJcbiAgICBpZiAoIVhJc051bGwoc3RhcnQpIHx8ICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgY29uc3QgdGltZSA9IGNlbGwuZGF0ZSEuZ2V0VGltZSgpO1xyXG4gICAgICBmb3IgKGxldCBpdGVtIG9mIHRoaXMuZGF0ZXMpIHtcclxuICAgICAgICBjb25zdCBpdGVtVGltZSA9IGl0ZW0uZGF0ZSEuZ2V0VGltZSgpO1xyXG4gICAgICAgIHRoaXMuY2xlYXJTdGF0ZShpdGVtKTtcclxuICAgICAgICBpZiAoIVhJc051bGwoc3RhcnQpICYmIFhJc051bGwoZW5kKSkge1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydExlZnQgPSB0aW1lIDwgc3RhcnQhICYmIGl0ZW1UaW1lID09PSBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHQgPSB0aW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lID09PSBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlciA9XHJcbiAgICAgICAgICAgICh0aW1lIDwgc3RhcnQhICYmIGl0ZW1UaW1lID49IHRpbWUgJiYgaXRlbVRpbWUgPCBzdGFydCEpIHx8ICh0aW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lID4gc3RhcnQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBzdGFydCE7XHJcbiAgICAgICAgfSBlbHNlIGlmIChYSXNOdWxsKHN0YXJ0KSAmJiAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZExlZnQgPSB0aW1lIDwgZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kUmlnaHQgPSB0aW1lID4gZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID0gKHRpbWUgPCBlbmQhICYmIGl0ZW1UaW1lID49IHRpbWUgJiYgaXRlbVRpbWUgPCBlbmQhKSB8fCAodGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lID4gZW5kITtcclxuICAgICAgICB9IGVsc2UgaWYgKCFYSXNOdWxsKHN0YXJ0KSAmJiAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0TGVmdCA9IHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kUmlnaHQgPSB0aW1lID4gZW5kISAmJiBpdGVtVGltZSA9PT0gZW5kITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID1cclxuICAgICAgICAgICAgKHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IHN0YXJ0ISkgfHwgKHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID4gZW5kISAmJiBpdGVtVGltZSA8PSB0aW1lKTtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lIDwgc3RhcnQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmQgPSBpdGVtVGltZSA9PT0gdGltZSAmJiB0aW1lID4gZW5kITtcclxuICAgICAgICAgIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICAgICAgICBpdGVtLmlzSW5SYW5nZUhvdmVyID0gaXRlbVRpbWUgPj0gdGltZSEgJiYgaXRlbVRpbWUgPD0gZW5kITtcclxuICAgICAgICAgIH0gZWxzZSBpZiAodGhpcy5yYW5nZVR5cGUgPT09ICdlbmQnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlSG92ZXIgPSBpdGVtVGltZSA+PSBzdGFydCEgJiYgaXRlbVRpbWUgPD0gdGltZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYgKGlzRW1pdCkge1xyXG4gICAgICAgIHRoaXMucmFuZ2VUZE1vdXNlZW50ZXIuZW1pdChjZWxsKTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9uVGRNb3VzZWxlYXZlKGNlbGw6IFhEYXRlQ2VsbCwgaXNFbWl0ID0gdHJ1ZSkge1xyXG4gICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5yYW5nZVZhbHVlO1xyXG4gICAgaWYgKCFYSXNOdWxsKHN0YXJ0KSB8fCAhWElzTnVsbChlbmQpKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTdGF0ZSguLi50aGlzLmRhdGVzKTtcclxuICAgICAgaWYgKGlzRW1pdCkgdGhpcy5yYW5nZVRkTW91c2VsZWF2ZS5lbWl0KGNlbGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xlYXJTdGF0ZSguLi5jZWxsczogWERhdGVDZWxsW10pIHtcclxuICAgIGZvciAobGV0IGNlbGwgb2YgY2VsbHMpIHtcclxuICAgICAgY2VsbC5pc0luUmFuZ2VIb3ZlciA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlciA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyRW5kID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnRMZWZ0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnRSaWdodCA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlckVuZExlZnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0UXVhcnRlcnMoZGF0ZTogRGF0ZSkge1xyXG4gICAgbGV0IHllYXIgPSBkYXRlLmdldEZ1bGxZZWFyKCk7XHJcbiAgICBsZXQgZGF0ZXM6IFhEYXRlQ2VsbFtdID0gW107XHJcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQ7IGkrKykge1xyXG4gICAgICBjb25zdCBjZWxsID0geyBkYXRlOiBuZXcgRGF0ZSh5ZWFyLCBpICogMywgMSksIGlzRmlyc3REYXk6IGkgPT09IDAsIGlzTGFzdERheTogaSA9PT0gMyB9O1xyXG4gICAgICBkYXRlcyA9IFsuLi5kYXRlcywgdGhpcy5zZXREYXlTdGF0ZShjZWxsKV07XHJcbiAgICB9XHJcbiAgICB0aGlzLmRhdGVzID0gZGF0ZXM7XHJcbiAgICB0aGlzLmNodW5rRGF0ZXMgPSBYQ2h1bmsoZGF0ZXMsIDQpO1xyXG5cclxuICAgIGlmICh0aGlzLmRhdGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5yYW5nZUNoYW5nZS5lbWl0KFtkYXRlc1swXS5kYXRlISwgZGF0ZXNbZGF0ZXMubGVuZ3RoIC0gMV0uZGF0ZSFdKTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICBzZXREYXlTdGF0ZShjZWxsOiBYRGF0ZUNlbGwpOiBYRGF0ZUNlbGwge1xyXG4gICAgY29uc3QgdGltZSA9IGNlbGwuZGF0ZT8uZ2V0VGltZSgpITtcclxuICAgIGNvbnN0IGZxdWFydGVyID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oY2VsbC5kYXRlLCAneXl5eU1NJyk7XHJcbiAgICBjb25zdCBmcXVhcnRlcnkgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShjZWxsLmRhdGUsICd5eXl5Jyk7XHJcbiAgICBjb25zdCBmZGlzcGxheXkgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLmRpc3BsYXksICd5eXl5Jyk7XHJcbiAgICBjb25zdCBmbm93ID0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5ub3csICd5eXl5TU0nKTtcclxuICAgIGNlbGwuaXNMYXN0T3JOZXh0ID0gZnF1YXJ0ZXJ5ICE9PSBmZGlzcGxheXk7XHJcbiAgICBjZWxsLmlzTm93ID0gZnF1YXJ0ZXIgPT09IGZub3c7XHJcbiAgICBjZWxsLmlzRGlzYWJsZWQgPSB0aGlzLmlzRGlzYWJsZWQoY2VsbC5kYXRlISk7XHJcbiAgICBpZiAodGhpcy5yYW5nZVBpY2tlcikge1xyXG4gICAgICBpZiAoIXRoaXMucmFuZ2VWYWx1ZSkgcmV0dXJuIGNlbGw7XHJcbiAgICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMucmFuZ2VWYWx1ZTtcclxuICAgICAgY2VsbC5pc0luUmFuZ2UgPSAhIXN0YXJ0ICYmICEhZW5kICYmIHRpbWUgPj0gc3RhcnQhICYmIHRpbWUgPD0gZW5kITtcclxuICAgICAgY2VsbC5pc1JhbmdlU3RhcnRSaWdodCA9ICEhc3RhcnQgJiYgISFlbmQgJiYgZnF1YXJ0ZXIgPT09IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHN0YXJ0ISwgJ3l5eXlNTScpO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VFbmRMZWZ0ID0gISFzdGFydCAmJiAhIWVuZCAmJiBmcXVhcnRlciA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZW5kISwgJ3l5eXlNTScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGNlbGw7XHJcbiAgfVxyXG5cclxuICBxdWFydGVyQ2xpY2soY2VsbDogWERhdGVDZWxsKSB7XHJcbiAgICB0aGlzLm1vZGVsID0gY2VsbC5kYXRlO1xyXG4gICAgdGhpcy5tb2RlbENoYW5nZS5lbWl0KGNlbGwuZGF0ZSk7XHJcbiAgICBpZiAodGhpcy5yYW5nZVBpY2tlcikge1xyXG4gICAgICB0aGlzLmNsZWFyU3RhdGUoLi4udGhpcy5kYXRlcyk7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICAgIHRoaXMuc2V0RGF5U3RhdGUoaXRlbSk7XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5yYW5nZURhdGVDbGljay5lbWl0KGNlbGwpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XHJcbiAgfVxyXG5cclxuICBnZXRMb2NhbGVRdWFydGVyKGRhdGU6IERhdGUpIHtcclxuICAgIHJldHVybiB0aGlzLmRhdGVRdWFydGVyUGlwZS50cmFuc2Zvcm0oZGF0ZSk7XHJcbiAgfVxyXG5cclxuICByYW5nZURpc2FibGVkKGRhdGU6IERhdGUpIHtcclxuICAgIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VTdGFydCAhPT0gJycgJiYgZGF0ZS5nZXRUaW1lKCkgPCB0aGlzLnJhbmdlU3RhcnQhO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ3N0YXJ0Jykge1xyXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZUVuZCAhPT0gJycgJiYgZGF0ZS5nZXRUaW1lKCkgPiB0aGlzLnJhbmdlRW5kITtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHNldERpc3BsYXkoZGF0ZTogRGF0ZSkge1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gbmV3IERhdGUoZGF0ZS5nZXRGdWxsWWVhcigpLCBkYXRlLmdldE1vbnRoKCksIDEpO1xyXG4gICAgdGhpcy5kaXNwbGF5Q2hhbmdlLmVtaXQodGhpcy5kaXNwbGF5KTtcclxuICAgIHRoaXMuc2V0UXVhcnRlcnModGhpcy5kaXNwbGF5KTtcclxuICB9XHJcblxyXG4gIG5leHRZZWFyKG51bTogbnVtYmVyKSB7XHJcbiAgICBsZXQgZGF0ZSA9IG5ldyBEYXRlKHRoaXMuZGlzcGxheSk7XHJcbiAgICBkYXRlLnNldEZ1bGxZZWFyKGRhdGUuZ2V0RnVsbFllYXIoKSArIG51bSk7XHJcbiAgICB0aGlzLnNldERpc3BsYXkoZGF0ZSk7XHJcbiAgICB0aGlzLnllYXJDaGFuZ2UuZW1pdChudW0pO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHlwZU9uQ2hhbmdlKHR5cGU6IFhEYXRlUGlja2VyVHlwZSkge1xyXG4gICAgdGhpcy50eXBlID0gdHlwZTtcclxuICAgIHRoaXMudHlwZUNoYW5nZS5lbWl0KHR5cGUpO1xyXG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuXHJcbiAgdHJhY2tCeVF1YXJ0ZXIoX2luZGV4OiBudW1iZXIsIGl0ZW06IHN0cmluZyB8IERhdGUgfCBYRGF0ZUNlbGwpIHtcclxuICAgIHJldHVybiBpdGVtO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwieC1waWNrZXItcXVhcnRlclwiIFtjbGFzcy54LWRhdGUtcGlja2VyLXF1YXJ0ZXJ0ZW1wXT1cInF1YXJ0ZXJUZW1wXCI+XHJcbiAgPGRpdiBjbGFzcz1cIngtcGlja2VyLXF1YXJ0ZXItaGVhZGVyXCIgKm5nSWY9XCJzaG93SGVhZGVyXCI+XHJcbiAgICA8eC1saW5rIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIWxhc3RZZWFyQnRuXCIgaWNvbj1cImZ0by1jaGV2cm9ucy1sZWZ0XCIgKGNsaWNrKT1cIm5leHRZZWFyKC0xKVwiPjwveC1saW5rPlxyXG4gICAgPGRpdiBjbGFzcz1cIngtcGlja2VyLXF1YXJ0ZXIteWVhci1xdWFydGVyXCI+XHJcbiAgICAgIDx4LWxpbmsgKGNsaWNrKT1cInR5cGVPbkNoYW5nZSgneWVhcicpXCI+e3sgZGlzcGxheSB8IGRhdGUgOiAneXl5eScgfX17eyBsb2NhbGUueWVhciB9fTwveC1saW5rPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8eC1saW5rIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIW5leHRZZWFyQnRuXCIgaWNvbj1cImZ0by1jaGV2cm9ucy1yaWdodFwiIChjbGljayk9XCJuZXh0WWVhcigxKVwiPjwveC1saW5rPlxyXG4gIDwvZGl2PlxyXG4gIDxkaXYgY2xhc3M9XCJ4LXBpY2tlci1xdWFydGVyLWJvZHlcIj5cclxuICAgIDx0YWJsZSBjZWxsc3BhY2luZz1cIjBcIiBjZWxscGFkZGluZz1cIjBcIj5cclxuICAgICAgPHRyICpuZ0Zvcj1cImxldCBxdWFydGVycyBvZiBjaHVua0RhdGVzXCI+XHJcbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcXVhcnRlciBvZiBxdWFydGVyczsgdHJhY2tCeTogdHJhY2tCeVF1YXJ0ZXJcIj5cclxuICAgICAgICAgIDx0ZFxyXG4gICAgICAgICAgICBjbGFzcz1cIngtcGlja2VyLWRhdGUtaXRlbVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtZGlzYWJsZWRdPVwicXVhcnRlci5pc0Rpc2FibGVkXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1sYXN0LW9yLW5leHRdPVwicXVhcnRlci5pc0xhc3RPck5leHRcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLW5vd109XCJxdWFydGVyLmlzTm93XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1maXJzdC1kYXldPVwicXVhcnRlci5pc0ZpcnN0RGF5XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1sYXN0LWRheV09XCJxdWFydGVyLmlzTGFzdERheVwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnRdPVwicmFuZ2VQaWNrZXIgJiYgaXNTdGFydFF1YXJ0ZXIocXVhcnRlci5kYXRlISlcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZF09XCJyYW5nZVBpY2tlciAmJiBpc0VuZFF1YXJ0ZXIocXVhcnRlci5kYXRlISlcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLXN0YXJ0LWxlZnRdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc1JhbmdlU3RhcnRMZWZ0XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1zdGFydC1yaWdodF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VTdGFydFJpZ2h0XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1lbmQtbGVmdF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VFbmRMZWZ0XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1lbmQtcmlnaHRdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc1JhbmdlRW5kUmlnaHRcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyXT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyXCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1zdGFydC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyU3RhcnRMZWZ0XCJcclxuICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1zdGFydC1yaWdodF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VIb3ZlclN0YXJ0UmlnaHRcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLWVuZC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyRW5kTGVmdFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItZW5kLXJpZ2h0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyRW5kUmlnaHRcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLXN0YXJ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyU3RhcnRcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLWVuZF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VIb3ZlckVuZFwiXHJcbiAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtaW4tcmFuZ2VdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc0luUmFuZ2VcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLWluLXJhbmdlLWhvdmVyXT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNJblJhbmdlSG92ZXJcIlxyXG4gICAgICAgICAgICBbY2xhc3MueC1kYXRlLWFjdGl2ZV09XCIhcmFuZ2VQaWNrZXIgJiYgKHF1YXJ0ZXIuZGF0ZSB8IGRhdGUgOiAneXl5eU1NJykgPT09IChtb2RlbCB8IGRhdGUgOiAneXl5eU1NJylcIlxyXG4gICAgICAgICAgICB0aXRsZT1cInt7IHF1YXJ0ZXIuZGF0ZSB8IHhEYXRlUXVhcnRlciA6IHRydWUgfX1cIlxyXG4gICAgICAgICAgICAoY2xpY2spPVwiIXF1YXJ0ZXIuaXNEaXNhYmxlZCAmJiBxdWFydGVyQ2xpY2socXVhcnRlcilcIlxyXG4gICAgICAgICAgICAobW91c2VlbnRlcik9XCIhcXVhcnRlci5pc0Rpc2FibGVkICYmIHJhbmdlUGlja2VyICYmIG9uVGRNb3VzZWVudGVyKHF1YXJ0ZXIpXCJcclxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiIXF1YXJ0ZXIuaXNEaXNhYmxlZCAmJiByYW5nZVBpY2tlciAmJiBvblRkTW91c2VsZWF2ZShxdWFydGVyKVwiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxkaXYgKm5nSWY9XCIhcXVhcnRlclRlbXBcIiBjbGFzcz1cIngtZGF0ZS10ZXh0XCI+XHJcbiAgICAgICAgICAgICAge3sgcXVhcnRlci5kYXRlIHwgeERhdGVRdWFydGVyIH19XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicXVhcnRlclRlbXBcIj5cclxuICAgICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwicXVhcnRlclRlbXA7IGNvbnRleHQ6IHsgZGF0ZSQ6IHF1YXJ0ZXIuZGF0ZSB9XCI+PC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgPC90ZD5cclxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgPC90cj5cclxuICAgIDwvdGFibGU+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
234
+ args: [{ selector: 'x-picker-quarter', standalone: true, imports: [DatePipe, NgTemplateOutlet, XLinkComponent, XDateQuarterPipe], encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [DatePipe, LowerCasePipe, XDateQuarterPipe], template: "<div class=\"x-picker-quarter\" [class.x-date-picker-quartertemp]=\"quarterTemp\">\r\n @if (showHeader) {\r\n <div class=\"x-picker-quarter-header\">\r\n <x-link [class.x-visibility]=\"!lastYearBtn\" icon=\"fto-chevrons-left\" (click)=\"nextYear(-1)\"></x-link>\r\n <div class=\"x-picker-quarter-year-quarter\">\r\n <x-link (click)=\"typeOnChange('year')\">{{ display | date: 'yyyy' }}{{ locale.year }}</x-link>\r\n </div>\r\n <x-link [class.x-visibility]=\"!nextYearBtn\" icon=\"fto-chevrons-right\" (click)=\"nextYear(1)\"></x-link>\r\n </div>\r\n }\r\n <div class=\"x-picker-quarter-body\">\r\n <table cellspacing=\"0\" cellpadding=\"0\">\r\n @for (quarters of chunkDates; track quarters) {\r\n <tr>\r\n @for (quarter of quarters; track quarter) {\r\n <td\r\n class=\"x-picker-date-item\"\r\n [class.x-date-disabled]=\"quarter.isDisabled\"\r\n [class.x-date-last-or-next]=\"quarter.isLastOrNext\"\r\n [class.x-date-now]=\"quarter.isNow\"\r\n [class.x-date-first-day]=\"quarter.isFirstDay\"\r\n [class.x-date-last-day]=\"quarter.isLastDay\"\r\n [class.x-date-range-start]=\"rangePicker && isStartQuarter(quarter.date!)\"\r\n [class.x-date-range-end]=\"rangePicker && isEndQuarter(quarter.date!)\"\r\n [class.x-date-range-start-left]=\"rangePicker && quarter.isRangeStartLeft\"\r\n [class.x-date-range-start-right]=\"rangePicker && quarter.isRangeStartRight\"\r\n [class.x-date-range-end-left]=\"rangePicker && quarter.isRangeEndLeft\"\r\n [class.x-date-range-end-right]=\"rangePicker && quarter.isRangeEndRight\"\r\n [class.x-date-range-hover]=\"rangePicker && quarter.isRangeHover\"\r\n [class.x-date-range-hover-start-left]=\"rangePicker && quarter.isRangeHoverStartLeft\"\r\n [class.x-date-range-hover-start-right]=\"rangePicker && quarter.isRangeHoverStartRight\"\r\n [class.x-date-range-hover-end-left]=\"rangePicker && quarter.isRangeHoverEndLeft\"\r\n [class.x-date-range-hover-end-right]=\"rangePicker && quarter.isRangeHoverEndRight\"\r\n [class.x-date-range-hover-start]=\"rangePicker && quarter.isRangeHoverStart\"\r\n [class.x-date-range-hover-end]=\"rangePicker && quarter.isRangeHoverEnd\"\r\n [class.x-date-in-range]=\"rangePicker && quarter.isInRange\"\r\n [class.x-date-in-range-hover]=\"rangePicker && quarter.isInRangeHover\"\r\n [class.x-date-active]=\"!rangePicker && (quarter.date | date: 'yyyyMM') === (model | date: 'yyyyMM')\"\r\n title=\"{{ quarter.date | xDateQuarter: true }}\"\r\n (click)=\"!quarter.isDisabled && quarterClick(quarter)\"\r\n (mouseenter)=\"!quarter.isDisabled && rangePicker && onTdMouseenter(quarter)\"\r\n (mouseleave)=\"!quarter.isDisabled && rangePicker && onTdMouseleave(quarter)\"\r\n >\r\n @if (quarterTemp) {\r\n <ng-container *ngTemplateOutlet=\"quarterTemp; context: { date$: quarter.date }\"></ng-container>\r\n } @else {\r\n <div class=\"x-date-text\">\r\n {{ quarter.date | xDateQuarter }}\r\n </div>\r\n }\r\n </td>\r\n }\r\n </tr>\r\n }\r\n </table>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";.x-picker-quarter{margin:0;padding:0}.x-picker-quarter-header{display:flex;align-items:center;justify-content:space-between;padding:0 .5rem;height:2.5rem;border-bottom:var(--x-border-width) solid var(--x-border);color:var(--x-text-500);font-size:var(--x-font-size-medium)}.x-picker-quarter-header x-link{height:100%;-webkit-user-select:none;user-select:none}.x-picker-quarter-header .x-link{padding:0 .25rem}.x-picker-quarter-year-quarter{flex:1;text-align:center;color:var(--x-text);font-size:var(--x-font-size)}.x-picker-quarter-body{padding:.1375rem .5rem}.x-picker-quarter-body>table{width:100%;border-collapse:collapse;border-spacing:0}.x-picker-quarter-body>table tr{padding:.125rem 0;display:flex;align-items:center;justify-content:center}.x-picker-quarter-body>table td{flex:1;padding:.125rem 0;-webkit-user-select:none;user-select:none}.x-picker-quarter-body .x-picker-date-item{text-align:center;cursor:pointer;color:var(--x-text-300);position:relative}.x-picker-quarter-body .x-picker-date-item .x-date-text{width:3.5rem;height:3.25rem;display:flex;align-items:center;justify-content:center;margin:0 auto;border:var(--x-border-width) var(--x-border-style) transparent;border-radius:var(--x-border-radius);transition:var(--x-animation-duration-base);position:relative}.x-picker-quarter-body .x-picker-date-item:after,.x-picker-quarter-body .x-picker-date-item:before{height:3.25rem}.x-picker-quarter-body .x-picker-date-item:hover:not(.x-date-in-range) .x-date-text{background-color:var(--x-background-a200)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next){color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next) .x-date-text{background-color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover{color:var(--x-background-100)}.x-picker-quarter-body .x-picker-date-item.x-date-active:not(.x-date-last-or-next):hover .x-date-text{background-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-last-or-next{color:var(--x-text-700)}.x-picker-quarter-body .x-picker-date-item.x-date-now:not(.x-date-active):not(.x-date-range-start):not(.x-date-range-end):not(.x-date-last-or-next) .x-date-text{color:var(--x-primary);border-color:var(--x-primary)}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:first-child:not(.x-date-last-or-next).x-date-range-hover-end:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day.x-date-range-hover-end:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover:last-child:not(.x-date-last-or-next).x-date-range-hover-start:before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day.x-date-range-hover-start:before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-first-day:last-child:not(.x-date-last-or-next):before,.x-picker-quarter-body .x-picker-date-item.x-date-range-hover.x-date-last-day:first-child:not(.x-date-last-or-next):before{width:3.5rem}.x-picker-quarter-body .x-picker-date-item.x-date-disabled{cursor:default;background-color:var(--x-background-a200);color:var(--x-text-700)}.x-picker-quarter .x-visibility{visibility:hidden}\n"] }]
235
+ }] });
236
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vbGliL25nLW5lc3QvdWkvZGF0ZS1waWNrZXIvcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxpQkFBaUIsRUFDakIsdUJBQXVCLEVBQ3ZCLGlCQUFpQixFQUdqQixNQUFNLEVBRVAsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsY0FBYyxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUMzRixPQUFPLEVBQThCLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDNUYsT0FBTyxFQUFFLFFBQVEsRUFBRSxhQUFhLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUM1RSxPQUFPLEVBQW1CLFlBQVksRUFBRSxNQUFNLGtCQUFrQixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0IsT0FBTyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBWWxELE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxzQkFBc0I7SUFWbkU7O1FBV0UsUUFBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUM7UUFDakIsVUFBSyxHQUFnQixFQUFFLENBQUM7UUFDeEIsZUFBVSxHQUFrQixFQUFFLENBQUM7UUFDL0IsV0FBTSxH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cG9uZW50LFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxyXG4gIENoYW5nZURldGVjdG9yUmVmLFxyXG4gIE9uQ2hhbmdlcyxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG4gIGluamVjdCxcclxuICBPbkluaXRcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgWENodW5rLCBYSXNDaGFuZ2UsIFhDb25maWdTZXJ2aWNlLCBYSXNOdWxsLCBYSXNGdW5jdGlvbiB9IGZyb20gJ0BuZy1uZXN0L3VpL2NvcmUnO1xyXG5pbXBvcnQgeyBYRGF0ZUNlbGwsIFhEYXRlUGlja2VyVHlwZSwgWFBpY2tlclF1YXJ0ZXJQcm9wZXJ0eSB9IGZyb20gJy4vZGF0ZS1waWNrZXIucHJvcGVydHknO1xyXG5pbXBvcnQgeyBEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IFhJMThuRGF0ZVBpY2tlciwgWEkxOG5TZXJ2aWNlIH0gZnJvbSAnQG5nLW5lc3QvdWkvaTE4bic7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IFhEYXRlUXVhcnRlclBpcGUgfSBmcm9tICcuL2RhdGUtcXVhcnRlci5waXBlJztcclxuaW1wb3J0IHsgWExpbmtDb21wb25lbnQgfSBmcm9tICdAbmctbmVzdC91aS9saW5rJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAneC1waWNrZXItcXVhcnRlcicsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbRGF0ZVBpcGUsIE5nVGVtcGxhdGVPdXRsZXQsIFhMaW5rQ29tcG9uZW50LCBYRGF0ZVF1YXJ0ZXJQaXBlXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vcGlja2VyLXF1YXJ0ZXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL3BpY2tlci1xdWFydGVyLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxuICBwcm92aWRlcnM6IFtEYXRlUGlwZSwgTG93ZXJDYXNlUGlwZSwgWERhdGVRdWFydGVyUGlwZV1cclxufSlcclxuZXhwb3J0IGNsYXNzIFhQaWNrZXJRdWFydGVyQ29tcG9uZW50IGV4dGVuZHMgWFBpY2tlclF1YXJ0ZXJQcm9wZXJ0eSBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gIGRhdGVzOiBYRGF0ZUNlbGxbXSA9IFtdO1xyXG4gIGNodW5rRGF0ZXM6IFhEYXRlQ2VsbFtdW10gPSBbXTtcclxuICBsb2NhbGU6IFhJMThuRGF0ZVBpY2tlciA9IHt9O1xyXG5cclxuICBwcml2YXRlIF91blN1YmplY3QgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG5cclxuICBnZXQgcmFuZ2VTdGFydCgpIHtcclxuICAgIGlmICh0aGlzLnJhbmdlVmFsdWUgJiYgdGhpcy5yYW5nZVZhbHVlLmxlbmd0aCA+IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VWYWx1ZVswXTtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGdldCByYW5nZUVuZCgpIHtcclxuICAgIGlmICh0aGlzLnJhbmdlVmFsdWUgJiYgdGhpcy5yYW5nZVZhbHVlLmxlbmd0aCA+IDEpIHtcclxuICAgICAgcmV0dXJuIHRoaXMucmFuZ2VWYWx1ZVsxXTtcclxuICAgIH1cclxuICAgIHJldHVybiAnJztcclxuICB9XHJcblxyXG4gIGlzRGlzYWJsZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMuZGlzYWJsZWREYXRlICYmIFhJc0Z1bmN0aW9uKHRoaXMuZGlzYWJsZWREYXRlKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGUoZGF0ZSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNkciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XHJcbiAgcHJpdmF0ZSBkYXRlUGlwZSA9IGluamVjdChEYXRlUGlwZSk7XHJcbiAgcHJpdmF0ZSBkYXRlUXVhcnRlclBpcGUgPSBpbmplY3QoWERhdGVRdWFydGVyUGlwZSk7XHJcbiAgcHJpdmF0ZSBpMThuID0gaW5qZWN0KFhJMThuU2VydmljZSk7XHJcbiAgY29uZmlnU2VydmljZSA9IGluamVjdChYQ29uZmlnU2VydmljZSk7XHJcblxyXG4gIG5nT25Jbml0KCkge1xyXG4gICAgdGhpcy5pMThuLmxvY2FsZUNoYW5nZVxyXG4gICAgICAucGlwZShcclxuICAgICAgICBtYXAoKHgpID0+IHguZGF0ZVBpY2tlciBhcyBYSTE4bkRhdGVQaWNrZXIpLFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl91blN1YmplY3QpXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSgoeCkgPT4ge1xyXG4gICAgICAgIHRoaXMubG9jYWxlID0geDtcclxuICAgICAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBuZ09uQ2hhbmdlcyhzaW1wbGVzOiBTaW1wbGVDaGFuZ2VzKSB7XHJcbiAgICBjb25zdCB7IGRpc3BsYXkgfSA9IHNpbXBsZXM7XHJcbiAgICBYSXNDaGFuZ2UoZGlzcGxheSkgJiYgdGhpcy5pbml0KCk7XHJcbiAgfVxyXG5cclxuICBpbml0KCkge1xyXG4gICAgdGhpcy5zZXRRdWFydGVycyh0aGlzLmRpc3BsYXkpO1xyXG4gIH1cclxuXHJcbiAgaXNTdGFydFF1YXJ0ZXIoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKCF0aGlzLnJhbmdlVHlwZSB8fCAhdGhpcy5yYW5nZVZhbHVlKSByZXR1cm47XHJcbiAgICBpZiAoIVhJc051bGwodGhpcy5yYW5nZVZhbHVlWzBdKSkge1xyXG4gICAgICByZXR1cm4gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0odGhpcy5yYW5nZVZhbHVlWzBdLCAneXl5eU1NJykgPT09IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGRhdGUsICd5eXl5TU0nKTtcclxuICAgIH1cclxuICAgIHJldHVybjtcclxuICB9XHJcblxyXG4gIGlzRW5kUXVhcnRlcihkYXRlOiBEYXRlKSB7XHJcbiAgICBpZiAoIXRoaXMucmFuZ2VUeXBlIHx8ICF0aGlzLnJhbmdlVmFsdWUpIHJldHVybjtcclxuICAgIGlmICghWElzTnVsbCh0aGlzLnJhbmdlVmFsdWVbMV0pKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLnJhbmdlVmFsdWVbMV0sICd5eXl5TU0nKSA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oZGF0ZSwgJ3l5eXlNTScpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuO1xyXG4gIH1cclxuXHJcbiAgc2V0RGF0ZXNTdGF0ZShjZWxsOiBYRGF0ZUNlbGwpIHtcclxuICAgIHRoaXMuY2xlYXJTdGF0ZSguLi50aGlzLmRhdGVzKTtcclxuICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICB0aGlzLnNldERheVN0YXRlKGl0ZW0pO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblRkTW91c2VlbnRlcihjZWxsLCBmYWxzZSk7XHJcbiAgfVxyXG5cclxuICBvblRkTW91c2VlbnRlcihjZWxsOiBYRGF0ZUNlbGwsIGlzRW1pdCA9IHRydWUpIHtcclxuICAgIGNvbnN0IFtzdGFydCwgZW5kXSA9IHRoaXMucmFuZ2VWYWx1ZTtcclxuICAgIGlmICghWElzTnVsbChzdGFydCkgfHwgIVhJc051bGwoZW5kKSkge1xyXG4gICAgICBjb25zdCB0aW1lID0gY2VsbC5kYXRlIS5nZXRUaW1lKCk7XHJcbiAgICAgIGZvciAobGV0IGl0ZW0gb2YgdGhpcy5kYXRlcykge1xyXG4gICAgICAgIGNvbnN0IGl0ZW1UaW1lID0gaXRlbS5kYXRlIS5nZXRUaW1lKCk7XHJcbiAgICAgICAgdGhpcy5jbGVhclN0YXRlKGl0ZW0pO1xyXG4gICAgICAgIGlmICghWElzTnVsbChzdGFydCkgJiYgWElzTnVsbChlbmQpKSB7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0TGVmdCA9IHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnRSaWdodCA9IHRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPT09IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyID1cclxuICAgICAgICAgICAgKHRpbWUgPCBzdGFydCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IHN0YXJ0ISkgfHxcclxuICAgICAgICAgICAgKHRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPiBzdGFydCEgJiYgaXRlbVRpbWUgPD0gdGltZSk7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA8IHN0YXJ0ITtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA+IHN0YXJ0ITtcclxuICAgICAgICB9IGVsc2UgaWYgKFhJc051bGwoc3RhcnQpICYmICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyRW5kTGVmdCA9IHRpbWUgPCBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXIgPVxyXG4gICAgICAgICAgICAodGltZSA8IGVuZCEgJiYgaXRlbVRpbWUgPj0gdGltZSAmJiBpdGVtVGltZSA8IGVuZCEpIHx8XHJcbiAgICAgICAgICAgICh0aW1lID4gZW5kISAmJiBpdGVtVGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPD0gdGltZSk7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlclN0YXJ0ID0gaXRlbVRpbWUgPT09IHRpbWUgJiYgdGltZSA8IGVuZCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBlbmQhO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoIVhJc051bGwoc3RhcnQpICYmICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgICAgIGl0ZW0uaXNSYW5nZUhvdmVyU3RhcnRMZWZ0ID0gdGltZSA8IHN0YXJ0ISAmJiBpdGVtVGltZSA9PT0gc3RhcnQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJFbmRSaWdodCA9IHRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lID09PSBlbmQhO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXIgPVxyXG4gICAgICAgICAgICAodGltZSA8IHN0YXJ0ISAmJiBpdGVtVGltZSA+PSB0aW1lICYmIGl0ZW1UaW1lIDwgc3RhcnQhKSB8fFxyXG4gICAgICAgICAgICAodGltZSA+IGVuZCEgJiYgaXRlbVRpbWUgPiBlbmQhICYmIGl0ZW1UaW1lIDw9IHRpbWUpO1xyXG4gICAgICAgICAgaXRlbS5pc1JhbmdlSG92ZXJTdGFydCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPCBzdGFydCE7XHJcbiAgICAgICAgICBpdGVtLmlzUmFuZ2VIb3ZlckVuZCA9IGl0ZW1UaW1lID09PSB0aW1lICYmIHRpbWUgPiBlbmQhO1xyXG4gICAgICAgICAgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgICAgICAgIGl0ZW0uaXNJblJhbmdlSG92ZXIgPSBpdGVtVGltZSA+PSB0aW1lISAmJiBpdGVtVGltZSA8PSBlbmQhO1xyXG4gICAgICAgICAgfSBlbHNlIGlmICh0aGlzLnJhbmdlVHlwZSA9PT0gJ2VuZCcpIHtcclxuICAgICAgICAgICAgaXRlbS5pc0luUmFuZ2VIb3ZlciA9IGl0ZW1UaW1lID49IHN0YXJ0ISAmJiBpdGVtVGltZSA8PSB0aW1lO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZiAoaXNFbWl0KSB7XHJcbiAgICAgICAgdGhpcy5yYW5nZVRkTW91c2VlbnRlci5lbWl0KGNlbGwpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb25UZE1vdXNlbGVhdmUoY2VsbDogWERhdGVDZWxsLCBpc0VtaXQgPSB0cnVlKSB7XHJcbiAgICBjb25zdCBbc3RhcnQsIGVuZF0gPSB0aGlzLnJhbmdlVmFsdWU7XHJcbiAgICBpZiAoIVhJc051bGwoc3RhcnQpIHx8ICFYSXNOdWxsKGVuZCkpIHtcclxuICAgICAgdGhpcy5jbGVhclN0YXRlKC4uLnRoaXMuZGF0ZXMpO1xyXG4gICAgICBpZiAoaXNFbWl0KSB0aGlzLnJhbmdlVGRNb3VzZWxlYXZlLmVtaXQoY2VsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjbGVhclN0YXRlKC4uLmNlbGxzOiBYRGF0ZUNlbGxbXSkge1xyXG4gICAgZm9yIChsZXQgY2VsbCBvZiBjZWxscykge1xyXG4gICAgICBjZWxsLmlzSW5SYW5nZUhvdmVyID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyU3RhcnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJFbmQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJTdGFydExlZnQgPSBmYWxzZTtcclxuICAgICAgY2VsbC5pc1JhbmdlSG92ZXJTdGFydFJpZ2h0ID0gZmFsc2U7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUhvdmVyRW5kTGVmdCA9IGZhbHNlO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VIb3ZlckVuZFJpZ2h0ID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRRdWFydGVycyhkYXRlOiBEYXRlKSB7XHJcbiAgICBsZXQgeWVhciA9IGRhdGUuZ2V0RnVsbFllYXIoKTtcclxuICAgIGxldCBkYXRlczogWERhdGVDZWxsW10gPSBbXTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNDsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGNlbGwgPSB7IGRhdGU6IG5ldyBEYXRlKHllYXIsIGkgKiAzLCAxKSwgaXNGaXJzdERheTogaSA9PT0gMCwgaXNMYXN0RGF5OiBpID09PSAzIH07XHJcbiAgICAgIGRhdGVzID0gWy4uLmRhdGVzLCB0aGlzLnNldERheVN0YXRlKGNlbGwpXTtcclxuICAgIH1cclxuICAgIHRoaXMuZGF0ZXMgPSBkYXRlcztcclxuICAgIHRoaXMuY2h1bmtEYXRlcyA9IFhDaHVuayhkYXRlcywgNCk7XHJcblxyXG4gICAgaWYgKHRoaXMuZGF0ZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLnJhbmdlQ2hhbmdlLmVtaXQoW2RhdGVzWzBdLmRhdGUhLCBkYXRlc1tkYXRlcy5sZW5ndGggLSAxXS5kYXRlIV0pO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICB9XHJcblxyXG4gIHNldERheVN0YXRlKGNlbGw6IFhEYXRlQ2VsbCk6IFhEYXRlQ2VsbCB7XHJcbiAgICBjb25zdCB0aW1lID0gY2VsbC5kYXRlPy5nZXRUaW1lKCkhO1xyXG4gICAgY29uc3QgZnF1YXJ0ZXIgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShjZWxsLmRhdGUsICd5eXl5TU0nKTtcclxuICAgIGNvbnN0IGZxdWFydGVyeSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKGNlbGwuZGF0ZSwgJ3l5eXknKTtcclxuICAgIGNvbnN0IGZkaXNwbGF5eSA9IHRoaXMuZGF0ZVBpcGUudHJhbnNmb3JtKHRoaXMuZGlzcGxheSwgJ3l5eXknKTtcclxuICAgIGNvbnN0IGZub3cgPSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybSh0aGlzLm5vdywgJ3l5eXlNTScpO1xyXG4gICAgY2VsbC5pc0xhc3RPck5leHQgPSBmcXVhcnRlcnkgIT09IGZkaXNwbGF5eTtcclxuICAgIGNlbGwuaXNOb3cgPSBmcXVhcnRlciA9PT0gZm5vdztcclxuICAgIGNlbGwuaXNEaXNhYmxlZCA9IHRoaXMuaXNEaXNhYmxlZChjZWxsLmRhdGUhKTtcclxuICAgIGlmICh0aGlzLnJhbmdlUGlja2VyKSB7XHJcbiAgICAgIGlmICghdGhpcy5yYW5nZVZhbHVlKSByZXR1cm4gY2VsbDtcclxuICAgICAgY29uc3QgW3N0YXJ0LCBlbmRdID0gdGhpcy5yYW5nZVZhbHVlO1xyXG4gICAgICBjZWxsLmlzSW5SYW5nZSA9ICEhc3RhcnQgJiYgISFlbmQgJiYgdGltZSA+PSBzdGFydCEgJiYgdGltZSA8PSBlbmQhO1xyXG4gICAgICBjZWxsLmlzUmFuZ2VTdGFydFJpZ2h0ID0gISFzdGFydCAmJiAhIWVuZCAmJiBmcXVhcnRlciA9PT0gdGhpcy5kYXRlUGlwZS50cmFuc2Zvcm0oc3RhcnQhLCAneXl5eU1NJyk7XHJcbiAgICAgIGNlbGwuaXNSYW5nZUVuZExlZnQgPSAhIXN0YXJ0ICYmICEhZW5kICYmIGZxdWFydGVyID09PSB0aGlzLmRhdGVQaXBlLnRyYW5zZm9ybShlbmQhLCAneXl5eU1NJyk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gY2VsbDtcclxuICB9XHJcblxyXG4gIHF1YXJ0ZXJDbGljayhjZWxsOiBYRGF0ZUNlbGwpIHtcclxuICAgIHRoaXMubW9kZWwgPSBjZWxsLmRhdGU7XHJcbiAgICB0aGlzLm1vZGVsQ2hhbmdlLmVtaXQoY2VsbC5kYXRlKTtcclxuICAgIGlmICh0aGlzLnJhbmdlUGlja2VyKSB7XHJcbiAgICAgIHRoaXMuY2xlYXJTdGF0ZSguLi50aGlzLmRhdGVzKTtcclxuICAgICAgZm9yIChsZXQgaXRlbSBvZiB0aGlzLmRhdGVzKSB7XHJcbiAgICAgICAgdGhpcy5zZXREYXlTdGF0ZShpdGVtKTtcclxuICAgICAgfVxyXG4gICAgICB0aGlzLnJhbmdlRGF0ZUNsaWNrLmVtaXQoY2VsbCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcclxuICB9XHJcblxyXG4gIGdldExvY2FsZVF1YXJ0ZXIoZGF0ZTogRGF0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuZGF0ZVF1YXJ0ZXJQaXBlLnRyYW5zZm9ybShkYXRlKTtcclxuICB9XHJcblxyXG4gIHJhbmdlRGlzYWJsZWQoZGF0ZTogRGF0ZSkge1xyXG4gICAgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnZW5kJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5yYW5nZVN0YXJ0ICE9PSAnJyAmJiBkYXRlLmdldFRpbWUoKSA8IHRoaXMucmFuZ2VTdGFydCE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmFuZ2VUeXBlID09PSAnc3RhcnQnKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnJhbmdlRW5kICE9PSAnJyAmJiBkYXRlLmdldFRpbWUoKSA+IHRoaXMucmFuZ2VFbmQhO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgc2V0RGlzcGxheShkYXRlOiBEYXRlKSB7XHJcbiAgICB0aGlzLmRpc3BsYXkgPSBuZXcgRGF0ZShkYXRlLmdldEZ1bGxZZWFyKCksIGRhdGUuZ2V0TW9udGgoKSwgMSk7XHJcbiAgICB0aGlzLmRpc3BsYXlDaGFuZ2UuZW1pdCh0aGlzLmRpc3BsYXkpO1xyXG4gICAgdGhpcy5zZXRRdWFydGVycyh0aGlzLmRpc3BsYXkpO1xyXG4gIH1cclxuXHJcbiAgbmV4dFllYXIobnVtOiBudW1iZXIpIHtcclxuICAgIGxldCBkYXRlID0gbmV3IERhdGUodGhpcy5kaXNwbGF5KTtcclxuICAgIGRhdGUuc2V0RnVsbFllYXIoZGF0ZS5nZXRGdWxsWWVhcigpICsgbnVtKTtcclxuICAgIHRoaXMuc2V0RGlzcGxheShkYXRlKTtcclxuICAgIHRoaXMueWVhckNoYW5nZS5lbWl0KG51bSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0eXBlT25DaGFuZ2UodHlwZTogWERhdGVQaWNrZXJUeXBlKSB7XHJcbiAgICB0aGlzLnR5cGUgPSB0eXBlO1xyXG4gICAgdGhpcy50eXBlQ2hhbmdlLmVtaXQodHlwZSk7XHJcbiAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgfVxyXG5cclxuICB0cmFja0J5UXVhcnRlcihfaW5kZXg6IG51bWJlciwgaXRlbTogc3RyaW5nIHwgRGF0ZSB8IFhEYXRlQ2VsbCkge1xyXG4gICAgcmV0dXJuIGl0ZW07XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ4LXBpY2tlci1xdWFydGVyXCIgW2NsYXNzLngtZGF0ZS1waWNrZXItcXVhcnRlcnRlbXBdPVwicXVhcnRlclRlbXBcIj5cclxuICBAaWYgKHNob3dIZWFkZXIpIHtcclxuICAgIDxkaXYgY2xhc3M9XCJ4LXBpY2tlci1xdWFydGVyLWhlYWRlclwiPlxyXG4gICAgICA8eC1saW5rIFtjbGFzcy54LXZpc2liaWxpdHldPVwiIWxhc3RZZWFyQnRuXCIgaWNvbj1cImZ0by1jaGV2cm9ucy1sZWZ0XCIgKGNsaWNrKT1cIm5leHRZZWFyKC0xKVwiPjwveC1saW5rPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwieC1waWNrZXItcXVhcnRlci15ZWFyLXF1YXJ0ZXJcIj5cclxuICAgICAgICA8eC1saW5rIChjbGljayk9XCJ0eXBlT25DaGFuZ2UoJ3llYXInKVwiPnt7IGRpc3BsYXkgfCBkYXRlOiAneXl5eScgfX17eyBsb2NhbGUueWVhciB9fTwveC1saW5rPlxyXG4gICAgICA8L2Rpdj5cclxuICAgICAgPHgtbGluayBbY2xhc3MueC12aXNpYmlsaXR5XT1cIiFuZXh0WWVhckJ0blwiIGljb249XCJmdG8tY2hldnJvbnMtcmlnaHRcIiAoY2xpY2spPVwibmV4dFllYXIoMSlcIj48L3gtbGluaz5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxuICA8ZGl2IGNsYXNzPVwieC1waWNrZXItcXVhcnRlci1ib2R5XCI+XHJcbiAgICA8dGFibGUgY2VsbHNwYWNpbmc9XCIwXCIgY2VsbHBhZGRpbmc9XCIwXCI+XHJcbiAgICAgIEBmb3IgKHF1YXJ0ZXJzIG9mIGNodW5rRGF0ZXM7IHRyYWNrIHF1YXJ0ZXJzKSB7XHJcbiAgICAgICAgPHRyPlxyXG4gICAgICAgICAgQGZvciAocXVhcnRlciBvZiBxdWFydGVyczsgdHJhY2sgcXVhcnRlcikge1xyXG4gICAgICAgICAgICA8dGRcclxuICAgICAgICAgICAgICBjbGFzcz1cIngtcGlja2VyLWRhdGUtaXRlbVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1kaXNhYmxlZF09XCJxdWFydGVyLmlzRGlzYWJsZWRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtbGFzdC1vci1uZXh0XT1cInF1YXJ0ZXIuaXNMYXN0T3JOZXh0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLW5vd109XCJxdWFydGVyLmlzTm93XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWZpcnN0LWRheV09XCJxdWFydGVyLmlzRmlyc3REYXlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtbGFzdC1kYXldPVwicXVhcnRlci5pc0xhc3REYXlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2Utc3RhcnRdPVwicmFuZ2VQaWNrZXIgJiYgaXNTdGFydFF1YXJ0ZXIocXVhcnRlci5kYXRlISlcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtZW5kXT1cInJhbmdlUGlja2VyICYmIGlzRW5kUXVhcnRlcihxdWFydGVyLmRhdGUhKVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1zdGFydC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZVN0YXJ0TGVmdFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1zdGFydC1yaWdodF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VTdGFydFJpZ2h0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWVuZC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUVuZExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtZW5kLXJpZ2h0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUVuZFJpZ2h0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyXT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLXN0YXJ0LWxlZnRdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc1JhbmdlSG92ZXJTdGFydExlZnRcIlxyXG4gICAgICAgICAgICAgIFtjbGFzcy54LWRhdGUtcmFuZ2UtaG92ZXItc3RhcnQtcmlnaHRdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc1JhbmdlSG92ZXJTdGFydFJpZ2h0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLWVuZC1sZWZ0XT1cInJhbmdlUGlja2VyICYmIHF1YXJ0ZXIuaXNSYW5nZUhvdmVyRW5kTGVmdFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1lbmQtcmlnaHRdPVwicmFuZ2VQaWNrZXIgJiYgcXVhcnRlci5pc1JhbmdlSG92ZXJFbmRSaWdodFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1yYW5nZS1ob3Zlci1zdGFydF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VIb3ZlclN0YXJ0XCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLXJhbmdlLWhvdmVyLWVuZF09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzUmFuZ2VIb3ZlckVuZFwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1pbi1yYW5nZV09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzSW5SYW5nZVwiXHJcbiAgICAgICAgICAgICAgW2NsYXNzLngtZGF0ZS1pbi1yYW5nZS1ob3Zlcl09XCJyYW5nZVBpY2tlciAmJiBxdWFydGVyLmlzSW5SYW5nZUhvdmVyXCJcclxuICAgICAgICAgICAgICBbY2xhc3MueC1kYXRlLWFjdGl2ZV09XCIhcmFuZ2VQaWNrZXIgJiYgKHF1YXJ0ZXIuZGF0ZSB8IGRhdGU6ICd5eXl5TU0nKSA9PT0gKG1vZGVsIHwgZGF0ZTogJ3l5eXlNTScpXCJcclxuICAgICAgICAgICAgICB0aXRsZT1cInt7IHF1YXJ0ZXIuZGF0ZSB8IHhEYXRlUXVhcnRlcjogdHJ1ZSB9fVwiXHJcbiAgICAgICAgICAgICAgKGNsaWNrKT1cIiFxdWFydGVyLmlzRGlzYWJsZWQgJiYgcXVhcnRlckNsaWNrKHF1YXJ0ZXIpXCJcclxuICAgICAgICAgICAgICAobW91c2VlbnRlcik9XCIhcXVhcnRlci5pc0Rpc2FibGVkICYmIHJhbmdlUGlja2VyICYmIG9uVGRNb3VzZWVudGVyKHF1YXJ0ZXIpXCJcclxuICAgICAgICAgICAgICAobW91c2VsZWF2ZSk9XCIhcXVhcnRlci5pc0Rpc2FibGVkICYmIHJhbmdlUGlja2VyICYmIG9uVGRNb3VzZWxlYXZlKHF1YXJ0ZXIpXCJcclxuICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgIEBpZiAocXVhcnRlclRlbXApIHtcclxuICAgICAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJxdWFydGVyVGVtcDsgY29udGV4dDogeyBkYXRlJDogcXVhcnRlci5kYXRlIH1cIj48L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgICB9IEBlbHNlIHtcclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ4LWRhdGUtdGV4dFwiPlxyXG4gICAgICAgICAgICAgICAgICB7eyBxdWFydGVyLmRhdGUgfCB4RGF0ZVF1YXJ0ZXIgfX1cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3RyPlxyXG4gICAgICB9XHJcbiAgICA8L3RhYmxlPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19