@acorex/components 7.17.14 → 7.17.16

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 (291) hide show
  1. package/common/lib/services/hotkey.service.d.ts +14 -0
  2. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  3. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  4. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  5. package/esm2022/alert/lib/alert.component.mjs +9 -9
  6. package/esm2022/alert/lib/alert.module.mjs +4 -4
  7. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  8. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  9. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  10. package/esm2022/badge/lib/badge.component.mjs +3 -3
  11. package/esm2022/badge/lib/badge.module.mjs +4 -4
  12. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  13. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  14. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  15. package/esm2022/button/lib/button-item-list.component.mjs +5 -5
  16. package/esm2022/button/lib/button-item.component.mjs +3 -3
  17. package/esm2022/button/lib/button.component.mjs +5 -5
  18. package/esm2022/button/lib/button.module.mjs +4 -4
  19. package/esm2022/button-group/lib/button-group.component.mjs +4 -4
  20. package/esm2022/button-group/lib/button-group.module.mjs +4 -4
  21. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  22. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  23. package/esm2022/calendar/lib/calendar.component.mjs +5 -5
  24. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  25. package/esm2022/check-box/lib/check-box.component.mjs +3 -3
  26. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  27. package/esm2022/chips/lib/chips.component.mjs +3 -3
  28. package/esm2022/chips/lib/chips.module.mjs +4 -4
  29. package/esm2022/circular-progress/lib/circular-progress.component.mjs +4 -4
  30. package/esm2022/circular-progress/lib/circular-progress.module.mjs +4 -4
  31. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  32. package/esm2022/collapse/lib/collapse.component.mjs +5 -5
  33. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  34. package/esm2022/color-box/lib/color-box.component.mjs +3 -3
  35. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  36. package/esm2022/color-palette/lib/color-palette-input.component.mjs +4 -4
  37. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +3 -3
  38. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  39. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  40. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  41. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  42. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  43. package/esm2022/common/lib/classes/components.class.mjs +21 -21
  44. package/esm2022/common/lib/common.module.mjs +4 -4
  45. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  46. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  47. package/esm2022/common/lib/components/look-component.class.mjs +3 -3
  48. package/esm2022/common/lib/components/selection-base.component.class.mjs +6 -6
  49. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  50. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  51. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  52. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  53. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  54. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  55. package/esm2022/common/lib/directives/ripple.directive.mjs +3 -3
  56. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  57. package/esm2022/common/lib/services/hotkey.service.mjs +12 -4
  58. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  59. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  60. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +4 -4
  61. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  62. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  63. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +6 -6
  64. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  65. package/esm2022/data-pager/lib/data-pager.component.mjs +5 -5
  66. package/esm2022/data-pager/lib/data-pager.module.mjs +4 -4
  67. package/esm2022/data-table/lib/columns/data-table-column.mjs +3 -3
  68. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +3 -3
  69. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +6 -6
  70. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +3 -3
  71. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +3 -3
  72. package/esm2022/data-table/lib/data-table.component.mjs +4 -4
  73. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  74. package/esm2022/datetime-box/lib/datetime-box.component.mjs +3 -3
  75. package/esm2022/datetime-box/lib/datetime-box.module.mjs +4 -4
  76. package/esm2022/datetime-input/lib/datetime-input.component.mjs +3 -3
  77. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  78. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +6 -6
  79. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +4 -4
  80. package/esm2022/decorators/lib/components/clear-button.component.mjs +7 -7
  81. package/esm2022/decorators/lib/components/close-button.component.mjs +5 -5
  82. package/esm2022/decorators/lib/components/generic-content.component.mjs +3 -3
  83. package/esm2022/decorators/lib/components/icon.component.mjs +3 -3
  84. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  85. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  86. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  87. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  88. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  89. package/esm2022/drawer/lib/drawer.component.mjs +3 -3
  90. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  91. package/esm2022/dropdown/lib/dropdown-box.class.mjs +3 -3
  92. package/esm2022/dropdown/lib/dropdown-box.component.mjs +3 -3
  93. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +3 -3
  94. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  95. package/esm2022/form/lib/form-field.component.mjs +3 -3
  96. package/esm2022/form/lib/form.component.mjs +3 -3
  97. package/esm2022/form/lib/form.module.mjs +4 -4
  98. package/esm2022/form/lib/validation-rule.widget.mjs +3 -3
  99. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  100. package/esm2022/image/lib/image.component.mjs +3 -3
  101. package/esm2022/image/lib/image.module.mjs +4 -4
  102. package/esm2022/label/lib/label.component.mjs +3 -3
  103. package/esm2022/label/lib/label.module.mjs +4 -4
  104. package/esm2022/list/lib/list.component.mjs +5 -5
  105. package/esm2022/list/lib/list.module.mjs +4 -4
  106. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  107. package/esm2022/loading/lib/loading.component.mjs +3 -3
  108. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  109. package/esm2022/loading/lib/loading.module.mjs +4 -4
  110. package/esm2022/loading/lib/loading.service.mjs +3 -3
  111. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +5 -5
  112. package/esm2022/menu/lib/menu.component.mjs +5 -5
  113. package/esm2022/menu/lib/menu.module.mjs +4 -4
  114. package/esm2022/navbar/lib/navbar.component.mjs +3 -3
  115. package/esm2022/navbar/lib/navbar.module.mjs +4 -4
  116. package/esm2022/notification/lib/notification.component.mjs +9 -9
  117. package/esm2022/notification/lib/notification.module.mjs +4 -4
  118. package/esm2022/notification/lib/notification.service.mjs +3 -3
  119. package/esm2022/number-box/lib/number-box.component.mjs +9 -6
  120. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  121. package/esm2022/otp/lib/otp.component.mjs +3 -3
  122. package/esm2022/otp/lib/otp.module.mjs +4 -4
  123. package/esm2022/page/lib/base-page.class.mjs +4 -4
  124. package/esm2022/page/lib/page.component.mjs +3 -3
  125. package/esm2022/page/lib/page.module.mjs +4 -4
  126. package/esm2022/password-box/lib/password-box.component.mjs +7 -4
  127. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  128. package/esm2022/picker/lib/picker-column.directive.mjs +3 -3
  129. package/esm2022/picker/lib/picker.component.mjs +6 -6
  130. package/esm2022/picker/lib/picker.module.mjs +4 -4
  131. package/esm2022/popover/lib/popover.component.mjs +3 -3
  132. package/esm2022/popover/lib/popover.module.mjs +4 -4
  133. package/esm2022/popup/lib/popup.component.mjs +10 -5
  134. package/esm2022/popup/lib/popup.module.mjs +4 -4
  135. package/esm2022/popup/lib/popup.service.mjs +3 -3
  136. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  137. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  138. package/esm2022/radio/lib/radio.component.mjs +3 -3
  139. package/esm2022/radio/lib/radio.module.mjs +4 -4
  140. package/esm2022/range-slider/lib/range-slider.component.mjs +3 -3
  141. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  142. package/esm2022/result/lib/result.component.mjs +3 -3
  143. package/esm2022/result/lib/result.module.mjs +4 -4
  144. package/esm2022/routing-progress/lib/routing-progress.component.mjs +3 -3
  145. package/esm2022/routing-progress/lib/routing-progress.module.mjs +4 -4
  146. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
  147. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +3 -3
  148. package/esm2022/scheduler/lib/scheduler.component.mjs +3 -3
  149. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -4
  150. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  151. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  152. package/esm2022/select-box/lib/select-box.component.mjs +48 -15
  153. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  154. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  155. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  156. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +3 -3
  157. package/esm2022/side-menu/lib/side-menu.component.mjs +4 -4
  158. package/esm2022/side-menu/lib/side-menu.module.mjs +4 -4
  159. package/esm2022/skeleton/lib/skeleton.component.mjs +3 -3
  160. package/esm2022/skeleton/lib/skeleton.module.mjs +4 -4
  161. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  162. package/esm2022/switch/lib/switch.component.mjs +3 -3
  163. package/esm2022/switch/lib/switch.module.mjs +4 -4
  164. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  165. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  166. package/esm2022/tabs/lib/tabs.component.mjs +4 -4
  167. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  168. package/esm2022/tag/lib/tag.component.mjs +3 -3
  169. package/esm2022/tag/lib/tag.module.mjs +4 -4
  170. package/esm2022/text-area/lib/text-area.component.mjs +12 -6
  171. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  172. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  173. package/esm2022/text-box/lib/text-box.component.mjs +7 -4
  174. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  175. package/esm2022/toast/lib/toast.component.mjs +9 -9
  176. package/esm2022/toast/lib/toast.module.mjs +4 -4
  177. package/esm2022/toast/lib/toast.service.mjs +3 -3
  178. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  179. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  180. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  181. package/esm2022/uploader/index.mjs +3 -2
  182. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +27 -0
  183. package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +39 -0
  184. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +6 -5
  185. package/esm2022/uploader/lib/uploader-list.component.mjs +13 -54
  186. package/esm2022/uploader/lib/uploader-zone.directive.mjs +8 -6
  187. package/esm2022/uploader/lib/uploader.models.mjs +68 -0
  188. package/esm2022/uploader/lib/uploader.module.mjs +40 -18
  189. package/esm2022/uploader/lib/uploader.service.mjs +68 -36
  190. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  191. package/fesm2022/acorex-components-alert.mjs +12 -12
  192. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  193. package/fesm2022/acorex-components-avatar.mjs +10 -10
  194. package/fesm2022/acorex-components-badge.mjs +7 -7
  195. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  196. package/fesm2022/acorex-components-button-group.mjs +8 -8
  197. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  198. package/fesm2022/acorex-components-button.mjs +17 -17
  199. package/fesm2022/acorex-components-button.mjs.map +1 -1
  200. package/fesm2022/acorex-components-calendar.mjs +15 -15
  201. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  202. package/fesm2022/acorex-components-check-box.mjs +7 -7
  203. package/fesm2022/acorex-components-chips.mjs +7 -7
  204. package/fesm2022/acorex-components-circular-progress.mjs +8 -8
  205. package/fesm2022/acorex-components-circular-progress.mjs.map +1 -1
  206. package/fesm2022/acorex-components-collapse.mjs +11 -11
  207. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  208. package/fesm2022/acorex-components-color-box.mjs +7 -7
  209. package/fesm2022/acorex-components-color-palette.mjs +26 -26
  210. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  211. package/fesm2022/acorex-components-common.mjs +75 -67
  212. package/fesm2022/acorex-components-common.mjs.map +1 -1
  213. package/fesm2022/acorex-components-data-pager.mjs +36 -36
  214. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  215. package/fesm2022/acorex-components-data-table.mjs +26 -26
  216. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  217. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  218. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  219. package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
  220. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  221. package/fesm2022/acorex-components-decorators.mjs +21 -21
  222. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  223. package/fesm2022/acorex-components-dialog.mjs +10 -10
  224. package/fesm2022/acorex-components-drawer.mjs +10 -10
  225. package/fesm2022/acorex-components-dropdown.mjs +13 -13
  226. package/fesm2022/acorex-components-form.mjs +16 -16
  227. package/fesm2022/acorex-components-image.mjs +7 -7
  228. package/fesm2022/acorex-components-label.mjs +7 -7
  229. package/fesm2022/acorex-components-list.mjs +9 -9
  230. package/fesm2022/acorex-components-list.mjs.map +1 -1
  231. package/fesm2022/acorex-components-loading.mjs +16 -16
  232. package/fesm2022/acorex-components-menu.mjs +13 -13
  233. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  234. package/fesm2022/acorex-components-navbar.mjs +7 -7
  235. package/fesm2022/acorex-components-notification.mjs +15 -15
  236. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  237. package/fesm2022/acorex-components-number-box.mjs +12 -9
  238. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  239. package/fesm2022/acorex-components-otp.mjs +7 -7
  240. package/fesm2022/acorex-components-page.mjs +10 -10
  241. package/fesm2022/acorex-components-page.mjs.map +1 -1
  242. package/fesm2022/acorex-components-password-box.mjs +10 -7
  243. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  244. package/fesm2022/acorex-components-picker.mjs +12 -12
  245. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  246. package/fesm2022/acorex-components-popover.mjs +7 -7
  247. package/fesm2022/acorex-components-popup.mjs +16 -11
  248. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  249. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  250. package/fesm2022/acorex-components-radio.mjs +7 -7
  251. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  252. package/fesm2022/acorex-components-result.mjs +7 -7
  253. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  254. package/fesm2022/acorex-components-scheduler.mjs +13 -13
  255. package/fesm2022/acorex-components-search-box.mjs +7 -7
  256. package/fesm2022/acorex-components-select-box.mjs +50 -17
  257. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  258. package/fesm2022/acorex-components-selection-list.mjs +7 -7
  259. package/fesm2022/acorex-components-side-menu.mjs +11 -11
  260. package/fesm2022/acorex-components-side-menu.mjs.map +1 -1
  261. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  262. package/fesm2022/acorex-components-switch.mjs +10 -10
  263. package/fesm2022/acorex-components-tabs.mjs +14 -14
  264. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  265. package/fesm2022/acorex-components-tag.mjs +7 -7
  266. package/fesm2022/acorex-components-text-area.mjs +15 -9
  267. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  268. package/fesm2022/acorex-components-text-box.mjs +13 -10
  269. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  270. package/fesm2022/acorex-components-toast.mjs +15 -15
  271. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  272. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  273. package/fesm2022/acorex-components-uploader.mjs +266 -130
  274. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  275. package/number-box/lib/number-box.component.d.ts +1 -1
  276. package/package.json +3 -3
  277. package/page/lib/base-page.class.d.ts +1 -0
  278. package/password-box/lib/password-box.component.d.ts +1 -1
  279. package/select-box/lib/select-box.component.d.ts +10 -3
  280. package/text-area/lib/text-area.component.d.ts +2 -1
  281. package/text-box/lib/text-box.component.d.ts +1 -1
  282. package/uploader/index.d.ts +2 -1
  283. package/uploader/lib/uploader-browse-handle.directive.d.ts +11 -0
  284. package/uploader/lib/uploader-dialog-container.component.d.ts +9 -0
  285. package/uploader/lib/uploader-list.component.d.ts +4 -19
  286. package/uploader/lib/uploader-zone.directive.d.ts +1 -0
  287. package/uploader/lib/uploader.models.d.ts +19 -0
  288. package/uploader/lib/uploader.module.d.ts +15 -9
  289. package/uploader/lib/uploader.service.d.ts +15 -8
  290. package/esm2022/uploader/lib/uploader-overlay.component.mjs +0 -12
  291. package/uploader/lib/uploader-overlay.component.d.ts +0 -6
@@ -27,8 +27,8 @@ export class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
27
27
  get loadingEnabled() {
28
28
  return false;
29
29
  }
30
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXRowSelectColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXRowSelectColumnComponent, selector: "ax-select-column", inputs: { width: "width", caption: "caption", fixed: "fixed" }, providers: [{ provide: AXDataTableColumnComponent, useExisting: AXRowSelectColumnComponent }], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template let-row>
30
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXRowSelectColumnComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
31
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AXRowSelectColumnComponent, selector: "ax-select-column", inputs: { width: "width", caption: "caption", fixed: "fixed" }, providers: [{ provide: AXDataTableColumnComponent, useExisting: AXRowSelectColumnComponent }], viewQueries: [{ propertyName: "_template", first: true, predicate: TemplateRef, descendants: true }], usesInheritance: true, ngImport: i0, template: ` <ng-template let-row>
32
32
  <input
33
33
  class="ax-checkbox"
34
34
  type="checkbox"
@@ -38,7 +38,7 @@ export class AXRowSelectColumnComponent extends AXDataTableColumnComponent {
38
38
  />
39
39
  </ng-template>`, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
40
40
  }
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXRowSelectColumnComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXRowSelectColumnComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{
44
44
  selector: 'ax-select-column',
@@ -197,12 +197,12 @@ export class AXDataTableComponent extends MXBaseComponent {
197
197
  _handleOnScroll(e) {
198
198
  this.updateHScroll();
199
199
  }
200
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
201
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.4", type: AXDataTableComponent, selector: "ax-data-table", inputs: { rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", showHeader: "showHeader", fetchDataMode: "fetchDataMode", dataSource: "dataSource", loading: "loading", focusedRow: "focusedRow", selectedRows: "selectedRows", itemHeight: "itemHeight" }, outputs: { onPageChanged: "onPageChanged", focusedRowChange: "focusedRowChange", selectedRowsChange: "selectedRowsChange", onScrolledIndexChanged: "onScrolledIndexChanged" }, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], queries: [{ propertyName: "columns", predicate: AXDataTableColumnComponent }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, static: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }, { propertyName: "footerContainer", first: true, predicate: ["footerContainer"], descendants: true }, { propertyName: "scrollableContainer", first: true, predicate: ["scrolling"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n<div class=\"ax-header-content\" *ngIf=\"showHeader\">\n <div class=\"ax-header-columns ax-header-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: 10px\" />\n </colgroup>\n <thead>\n <tr>\n <!------------------- start fixed column ------------------->\n <th\n *ngFor=\"let c of startFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n class=\"ax-column-fixed\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <!------------------- not fixed column ------------------->\n <th [attr.colspan]=\"notFixedColumnCount()\"></th>\n </tr>\n </thead>\n </table>\n </div>\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <colgroup>\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: auto\" />\n </colgroup>\n <thead>\n <tr>\n <th *ngFor=\"let c of startFixedColumn()\"></th>\n <th\n *ngFor=\"let c of notFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n</div>\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <!-- <div class=\"ax-body-columns ax-body-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n ------------------ start fixed column -------------------\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\">\n ------------------- not fixed column ------------------\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\">\n <col>\n </colgroup>\n <tbody>\n </tbody>\n </table>\n </div> -->\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll($event)\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <!-- <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\"> -->\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"\n let item of listDataSource;\n templateCacheSize: 100;\n let i = index;\n trackBy: trackByIdx;\n let rIndex = index\n \"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n >\n </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n <!-- <ng-container *ngFor=\"let c of startFixedColumn()\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\" [attr.data-fixed]=\"c.fixed\"\n class=\"ax-column-fixed\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container> -->\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n c.cellTemplate;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n >\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"\n c.template;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-data-table{height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-data-table table{table-layout:fixed}ax-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-data-table .ax-header-content .ax-header-columns{height:100%}ax-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content{position:relative}ax-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-body-content .ax-body-columns{height:100%}ax-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-icon{font-size:1.125rem;line-height:1.75rem}ax-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
200
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
201
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.0.6", type: AXDataTableComponent, selector: "ax-data-table", inputs: { rowTemplate: "rowTemplate", emptyTemplate: "emptyTemplate", showHeader: "showHeader", fetchDataMode: "fetchDataMode", dataSource: "dataSource", loading: "loading", focusedRow: "focusedRow", selectedRows: "selectedRows", itemHeight: "itemHeight" }, outputs: { onPageChanged: "onPageChanged", focusedRowChange: "focusedRowChange", selectedRowsChange: "selectedRowsChange", onScrolledIndexChanged: "onScrolledIndexChanged" }, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], queries: [{ propertyName: "columns", predicate: AXDataTableColumnComponent }], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true, static: true }, { propertyName: "headerContainer", first: true, predicate: ["headerContainer"], descendants: true }, { propertyName: "footerContainer", first: true, predicate: ["footerContainer"], descendants: true }, { propertyName: "scrollableContainer", first: true, predicate: ["scrolling"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n<div class=\"ax-header-content\" *ngIf=\"showHeader\">\n <div class=\"ax-header-columns ax-header-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: 10px\" />\n </colgroup>\n <thead>\n <tr>\n <!------------------- start fixed column ------------------->\n <th\n *ngFor=\"let c of startFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n class=\"ax-column-fixed\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <!------------------- not fixed column ------------------->\n <th [attr.colspan]=\"notFixedColumnCount()\"></th>\n </tr>\n </thead>\n </table>\n </div>\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <colgroup>\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: auto\" />\n </colgroup>\n <thead>\n <tr>\n <th *ngFor=\"let c of startFixedColumn()\"></th>\n <th\n *ngFor=\"let c of notFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n</div>\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <!-- <div class=\"ax-body-columns ax-body-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n ------------------ start fixed column -------------------\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\">\n ------------------- not fixed column ------------------\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\">\n <col>\n </colgroup>\n <tbody>\n </tbody>\n </table>\n </div> -->\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll($event)\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <!-- <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\"> -->\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"\n let item of listDataSource;\n templateCacheSize: 100;\n let i = index;\n trackBy: trackByIdx;\n let rIndex = index\n \"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n >\n </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n <!-- <ng-container *ngFor=\"let c of startFixedColumn()\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\" [attr.data-fixed]=\"c.fixed\"\n class=\"ax-column-fixed\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container> -->\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n c.cellTemplate;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n >\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"\n c.template;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-data-table{height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-data-table table{table-layout:fixed}ax-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-data-table .ax-header-content .ax-header-columns{height:100%}ax-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content{position:relative}ax-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-body-content .ax-body-columns{height:100%}ax-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i4.AXSkeletonComponent, selector: "ax-skeleton", inputs: ["animated"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
202
202
  }
203
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableComponent, decorators: [{
203
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableComponent, decorators: [{
204
204
  type: Component,
205
- args: [{ selector: 'ax-data-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n<div class=\"ax-header-content\" *ngIf=\"showHeader\">\n <div class=\"ax-header-columns ax-header-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: 10px\" />\n </colgroup>\n <thead>\n <tr>\n <!------------------- start fixed column ------------------->\n <th\n *ngFor=\"let c of startFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n class=\"ax-column-fixed\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <!------------------- not fixed column ------------------->\n <th [attr.colspan]=\"notFixedColumnCount()\"></th>\n </tr>\n </thead>\n </table>\n </div>\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <colgroup>\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: auto\" />\n </colgroup>\n <thead>\n <tr>\n <th *ngFor=\"let c of startFixedColumn()\"></th>\n <th\n *ngFor=\"let c of notFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n</div>\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <!-- <div class=\"ax-body-columns ax-body-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n ------------------ start fixed column -------------------\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\">\n ------------------- not fixed column ------------------\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\">\n <col>\n </colgroup>\n <tbody>\n </tbody>\n </table>\n </div> -->\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll($event)\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <!-- <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\"> -->\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"\n let item of listDataSource;\n templateCacheSize: 100;\n let i = index;\n trackBy: trackByIdx;\n let rIndex = index\n \"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n >\n </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n <!-- <ng-container *ngFor=\"let c of startFixedColumn()\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\" [attr.data-fixed]=\"c.fixed\"\n class=\"ax-column-fixed\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container> -->\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n c.cellTemplate;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n >\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"\n c.template;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-data-table{height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-data-table table{table-layout:fixed}ax-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-data-table .ax-header-content .ax-header-columns{height:100%}ax-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content{position:relative}ax-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-body-content .ax-body-columns{height:100%}ax-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-icon{font-size:1.125rem;line-height:1.75rem}ax-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"] }]
205
+ args: [{ selector: 'ax-data-table', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: AXPagedComponent, useExisting: AXDataTableComponent }], template: "<ng-content select=\"ax-header\"> </ng-content>\n<!------------------- Header contents ------------------->\n<div class=\"ax-header-content\" *ngIf=\"showHeader\">\n <div class=\"ax-header-columns ax-header-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: 10px\" />\n </colgroup>\n <thead>\n <tr>\n <!------------------- start fixed column ------------------->\n <th\n *ngFor=\"let c of startFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n class=\"ax-column-fixed\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <!------------------- not fixed column ------------------->\n <th [attr.colspan]=\"notFixedColumnCount()\"></th>\n </tr>\n </thead>\n </table>\n </div>\n <div class=\"ax-header-columns\">\n <table tabindex=\"0\" [style.width]=\"width\" #headerContainer>\n <colgroup>\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\" />\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col style=\"width: auto\" />\n </colgroup>\n <thead>\n <tr>\n <th *ngFor=\"let c of startFixedColumn()\"></th>\n <th\n *ngFor=\"let c of notFixedColumn()\"\n [class.ax-interactive]=\"c.allowSorting\"\n (click)=\"c.allowSorting ? handleColumnClick($event, c) : null\"\n >\n <ng-template [ngIf]=\"c.headerTemplate\" [ngIfElse]=\"captionTpl\">\n <ng-container *ngTemplateOutlet=\"c.headerTemplate\"></ng-container>\n </ng-template>\n <ng-template #captionTpl>\n <div class=\"ax-caption\">\n {{ c.caption }}\n <ax-icon *ngIf=\"getSort(c)\" icon=\"ax-icon {{ getSort(c) }}\"></ax-icon>\n </div>\n </ng-template>\n </th>\n <th></th>\n </tr>\n </thead>\n </table>\n </div>\n</div>\n<!------------------- Body contents ------------------->\n<div [style.height]=\"height\" class=\"ax-body-content\">\n <!-- <div class=\"ax-body-columns ax-body-fixed-columns\" *ngIf=\"false\">\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n ------------------ start fixed column -------------------\n <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\">\n ------------------- not fixed column ------------------\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\">\n <col>\n </colgroup>\n <tbody>\n </tbody>\n </table>\n </div> -->\n <div class=\"ax-body-columns\">\n <div cdkVirtualScrollingElement #scrolling [style.height]=\"'100%'\" (scroll)=\"_handleOnScroll($event)\">\n <cdk-virtual-scroll-viewport\n [itemSize]=\"itemHeight\"\n [style.--item-height]=\"itemHeight + 'px'\"\n (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\"\n >\n <table tabindex=\"0\" class=\"ax-table-body\" [style.width]=\"width\">\n <colgroup>\n <!------------------- start fixed column ------------------->\n <!-- <col *ngFor=\"let c of startFixedColumn()\" [style.width]=\"c.width\"> -->\n <!------------------- not fixed column ------------------->\n <col *ngFor=\"let c of notFixedColumn()\" [style.width]=\"c.width\" />\n <col />\n </colgroup>\n <tbody>\n <ng-container\n *cdkVirtualFor=\"\n let item of listDataSource;\n templateCacheSize: 100;\n let i = index;\n trackBy: trackByIdx;\n let rIndex = index\n \"\n >\n <!------------------- custom row template------------------->\n @if (rowTemplate != null) {\n <ng-container\n *ngTemplateOutlet=\"rowTemplate; context: { $implicit: { data: item, rowIndex: rIndex } }\"\n >\n </ng-container>\n } @else {\n <!------------------- normal row template------------------->\n <tr\n [class.ax-state-focused]=\"focusedRow && item === focusedRow\"\n [attr.data-index]=\"rIndex\"\n [class.ax-state-selected]=\"selectedRows.includes(item)\"\n (click)=\"handleRowClick($event, item)\"\n >\n <!------------------- start fixed column ------------------->\n <!-- <ng-container *ngFor=\"let c of startFixedColumn()\">\n <ng-template [ngIf]=\"c.cellTemplate\" [ngIfElse]=\"cellTpl\">\n <div class=\"ax-content\">\n <ng-container\n *ngTemplateOutlet=\"c.cellTemplate;context: { $implicit: {data:item,rowIndex:rIndex} }\">\n </ng-container>\n </div>\n </ng-template>\n <ng-template #cellTpl>\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\" [attr.data-fixed]=\"c.fixed\"\n class=\"ax-column-fixed\">\n <div class=\"ax-content\">\n <ng-container *ngIf=\"item || !c.skeleton;else loadingTpl\">\n <ng-container\n *ngTemplateOutlet=\"c.template; context: { $implicit: {data:item,rowIndex:rIndex} }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-template>\n </ng-container> -->\n <!------------------- Not fixed column ------------------->\n @for (c of notFixedColumn(); track c.name) {\n <!------------------- custom cell template ------------------->\n @if (c.cellTemplate) {\n <ng-container\n *ngTemplateOutlet=\"\n c.cellTemplate;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n >\n </ng-container>\n } @else {\n <!------------------- default cell template ------------------->\n <td [attr.data-label]=\"c.caption\" tabindex=\"0\" [class]=\"c.cssClass\">\n @if (item) {\n <!------------------- render cell ------------------->\n <ng-container\n *ngTemplateOutlet=\"\n c.template;\n context: { $implicit: { data: item, rowIndex: rIndex } }\n \"\n ></ng-container>\n } @else {\n <!------------------- render loading ------------------->\n @if (c.loadingEnabled && loading) {\n <ax-skeleton [animated]=\"loading.animation\"></ax-skeleton>\n }\n }\n </td>\n }\n }\n <td></td>\n </tr>\n }\n </ng-container>\n </tbody>\n </table>\n </cdk-virtual-scroll-viewport>\n </div>\n </div>\n</div>\n<div class=\"ax-table-footer\" #footerContainer>\n <div class=\"ax-table-info\">\n <div>Showing {{ startRowIndex }} of {{ totalRows }} items</div>\n <ax-button look=\"blank\" class=\"ax-sm\" (onClick)=\"refresh()\">\n <ax-icon icon=\"ax-icon ax-icon-refresh\"></ax-icon>\n </ax-button>\n </div>\n <ng-content select=\"ax-footer\"> </ng-content>\n</div>\n", styles: [".ax-dark ax-data-table .ax-header-content th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-500))!important}.ax-dark ax-data-table .ax-body-content tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-900))!important;color:rgba(var(--ax-color-primary-fore))!important}.ax-dark ax-data-table .ax-body-content tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-800))!important}ax-data-table{height:100%;overflow:hidden;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));font-size:.875rem;line-height:1.25rem}ax-data-table table{table-layout:fixed}ax-data-table .ax-header-content{position:relative;height:3rem;overflow:hidden}ax-data-table .ax-header-content .ax-header-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-header-content .ax-header-fixed-columns th.ax-column-fixed{pointer-events:auto}ax-data-table .ax-header-content .ax-header-fixed-columns th:not(.ax-column-fixed){visibility:hidden;background-color:transparent}ax-data-table .ax-header-content .ax-header-columns{height:100%}ax-data-table .ax-header-content .ax-header-columns>table{height:100%;overflow:hidden;border-start-end-radius:var(--ax-rounded-border-default);border-start-start-radius:var(--ax-rounded-border-default)}ax-data-table .ax-header-content .ax-header-columns>table th{border-bottom-width:1px;border-inline-end-width:1px;border-style:solid;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-on-surface));padding:.75rem 1rem;text-align:start;font-weight:500;text-transform:uppercase}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive{cursor:pointer}ax-data-table .ax-header-content .ax-header-columns>table th.ax-interactive:hover{background-color:rgba(var(--ax-color-neutral-200))}ax-data-table .ax-header-content .ax-header-columns>table th .ax-caption{display:flex;align-items:center;gap:.5rem}ax-data-table .ax-header-content .ax-header-columns>table th:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content{position:relative}ax-data-table .ax-body-content .ax-body-fixed-columns{pointer-events:none;position:absolute;z-index:10}ax-data-table .ax-body-content .ax-body-columns{height:100%}ax-data-table .ax-body-content .ax-body-columns table{border-collapse:collapse}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) td{background-color:rgba(var(--ax-color-on-surface))}ax-data-table .ax-body-content .ax-body-columns table tr:nth-child(2n) ax-skeleton{width:25%}ax-data-table .ax-body-content .ax-body-columns table tr{height:2.5rem}ax-data-table .ax-body-content .ax-body-columns table tr:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-focused:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-300));color:rgba(var(--ax-color-primary-fore-tint))}ax-data-table .ax-body-content .ax-body-columns table tr.ax-state-selected:hover td:not(.ax-index-column){background-color:rgba(var(--ax-color-primary-400));color:rgba(var(--ax-color-primary-fore))}ax-data-table .ax-body-content .ax-body-columns table td{position:relative;min-width:2rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-bottom-width:1px;border-inline-end-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface));padding:.5rem 1rem;vertical-align:middle}ax-data-table .ax-body-content .ax-body-columns table td.ax-index-column{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;background-color:rgba(var(--ax-color-on-surface));text-align:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button.ax-state-disabled{position:relative!important;cursor:not-allowed!important;opacity:.5!important}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column>div{position:absolute;inset-inline-start:0px;top:50%;display:flex;width:100%;transform:translateY(-50%);align-items:center;justify-content:center}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button{position:relative;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;border-radius:var(--ax-rounded-border-default);border-style:none;border-color:rgba(var(--ax-color-border-default));background-color:transparent;padding:.25rem;line-height:1;color:rgba(var(--ax-color-ghost-fore))}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover:not(ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-selected,ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:hover.ax-state-disabled){opacity:.75}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button:active{opacity:1}ax-data-table .ax-body-content .ax-body-columns table td.ax-command-column button .ax-ripple{background-color:rgba(var(--ax-color-ghost-fore),.05)}ax-data-table .ax-body-content .ax-body-columns table td:last-child{border-inline-end-width:0px}ax-data-table .ax-body-content .ax-body-columns table td ax-skeleton{height:.875rem;width:33.333333%;border-radius:.375rem}ax-data-table .ax-table-footer{border-collapse:collapse;overflow:hidden;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem .875rem}ax-data-table .ax-table-footer .ax-table-info{display:flex;flex:1 1 0%;align-items:center;justify-content:space-between}\n"] }]
206
206
  }], propDecorators: { columns: [{
207
207
  type: ContentChildren,
208
208
  args: [AXDataTableColumnComponent]
@@ -39,8 +39,8 @@ const MODULES = [
39
39
  AXRippleDirective,
40
40
  ];
41
41
  export class AXDataTableModule {
42
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableModule, declarations: [AXDataTableComponent,
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
43
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableModule, declarations: [AXDataTableComponent,
44
44
  AXDataTableTextColumnComponent,
45
45
  AXRowIndexColumnComponent,
46
46
  AXRowSelectColumnComponent,
@@ -62,7 +62,7 @@ export class AXDataTableModule {
62
62
  AXRowSelectColumnComponent,
63
63
  AXRowCommandColumnComponent,
64
64
  AXRowDropdownCommandColumnComponent] }); }
65
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableModule, imports: [CommonModule,
65
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableModule, imports: [CommonModule,
66
66
  AXCommonModule,
67
67
  ScrollingModule,
68
68
  AXTranslationModule,
@@ -74,7 +74,7 @@ export class AXDataTableModule {
74
74
  AXDropdownModule,
75
75
  AXFormatModule] }); }
76
76
  }
77
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDataTableModule, decorators: [{
77
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDataTableModule, decorators: [{
78
78
  type: NgModule,
79
79
  args: [{
80
80
  declarations: [...COMPONENT],
@@ -53,8 +53,8 @@ export class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent),
53
53
  _handleInputOnClick() {
54
54
  this.close();
55
55
  }
56
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
57
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", minValue: "minValue", maxValue: "maxValue", value: "value", state: "state", name: "name", id: "id", type: "type", look: "look", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, providers: [
56
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
57
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AXDateTimeBoxComponent, selector: "ax-datetime-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", minValue: "minValue", maxValue: "maxValue", value: "value", state: "state", name: "name", id: "id", type: "type", look: "look", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, providers: [
58
58
  { provide: AXComponent, useExisting: AXDateTimeBoxComponent },
59
59
  { provide: AXFocusableComponent, useExisting: AXDateTimeBoxComponent },
60
60
  { provide: AXValuableComponent, useExisting: AXDateTimeBoxComponent },
@@ -66,7 +66,7 @@ export class AXDateTimeBoxComponent extends classes((MXInputBaseValueComponent),
66
66
  },
67
67
  ], viewQueries: [{ propertyName: "input", first: true, predicate: AXDateTimeInputComponent, descendants: true }, { propertyName: "picker", first: true, predicate: AXDateTimePickerComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <ax-datetime-input id=\"{{ id }}-input\" [ngModel]=\"value\" (ngModelChange)=\"_handleInputModelChange($event)\"\n [placeholder]=\"placeholder\" [format]=\"format\" [disabled]=\"disabled\" [readonly]=\"readonly\" [type]=\"type\"\n (onFocus)=\"emitOnFocusEvent($event.nativeEvent)\" (onBlur)=\"emitOnBlurEvent($event.nativeEvent)\"\n (onClick)=\"_handleInputOnClick()\"></ax-datetime-input>\n <ng-content select=\"ax-clear-button\"></ng-content>\n <button type=\"button\" class=\"ax-general-button ax-button-icon\" [tabIndex]=\"-1\" [disabled]=\"disabled\"\n (click)=\"toggle()\">\n <span class=\"ax-icon ax-icon-calendar\"></span>\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n </ng-container>\n <ng-container panel>\n <ax-datetime-picker id=\"{{ id }}-picker\" #picker [ngModel]=\"value\"\n (ngModelChange)=\"_handlePickerModelChange($event)\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [minValue]=\"minValue\" [maxValue]=\"maxValue\" [format]=\"format\" [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\" [depth]=\"depth\" [type]=\"type\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"></ax-datetime-picker>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", dependencies: [{ kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "type", "minValue", "maxValue", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onClick", "readonlyChange", "disabledChange", "formatChange"] }, { kind: "component", type: i3.AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: i4.AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: ["disabled", "readonly", "tabIndex", "placeholder", "value", "state", "name", "id", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "currentTimeButton", "format"], outputs: ["valueChange", "stateChange", "onValueChanged", "onBlur", "onFocus", "onClick", "readonlyChange", "disabledChange", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "formatChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
68
68
  }
69
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxComponent, decorators: [{
69
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxComponent, decorators: [{
70
70
  type: Component,
71
71
  args: [{ selector: 'ax-datetime-box', inputs: [
72
72
  'disabled',
@@ -17,16 +17,16 @@ const MODULES = [
17
17
  AXDateTimePickerModule,
18
18
  ];
19
19
  export class AXDateTimeBoxModule {
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxModule, declarations: [AXDateTimeBoxComponent], imports: [CommonModule,
20
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
21
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxModule, declarations: [AXDateTimeBoxComponent], imports: [CommonModule,
22
22
  FormsModule,
23
23
  AXDateTimeInputModule,
24
24
  AXDropdownModule,
25
25
  AXCalendarModule,
26
26
  AXDateTimePickerModule], exports: [AXDateTimeBoxComponent] }); }
27
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxModule, imports: [MODULES] }); }
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxModule, imports: [MODULES] }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeBoxModule, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeBoxModule, decorators: [{
30
30
  type: NgModule,
31
31
  args: [{
32
32
  declarations: [...COMPONENT],
@@ -466,8 +466,8 @@ export class AXDateTimeInputComponent extends MXInputBaseValueComponent {
466
466
  _detectValueChanges() {
467
467
  this.commitValue(this._editingDateObj.date, true);
468
468
  }
469
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
470
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", type: "type", minValue: "minValue", maxValue: "maxValue", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { listeners: { "keydown": "_handleOnKeydownEvent($event)", "keyup": "_handleKeyUpEvent($event)" }, classAttribute: "ax-editor-input" }, providers: [
469
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
470
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AXDateTimeInputComponent, selector: "ax-datetime-input", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", type: "type", minValue: "minValue", maxValue: "maxValue", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", formatChange: "formatChange" }, host: { listeners: { "keydown": "_handleOnKeydownEvent($event)", "keyup": "_handleKeyUpEvent($event)" }, classAttribute: "ax-editor-input" }, providers: [
471
471
  { provide: AXComponent, useExisting: AXDateTimeInputComponent },
472
472
  { provide: AXFocusableComponent, useExisting: AXDateTimeInputComponent },
473
473
  { provide: AXValuableComponent, useExisting: AXDateTimeInputComponent },
@@ -479,7 +479,7 @@ export class AXDateTimeInputComponent extends MXInputBaseValueComponent {
479
479
  },
480
480
  ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }, { propertyName: "input2", first: true, predicate: ["input2"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<input #input id=\"input\" autocomplete=\"off\" autocorrect=\"off\" autocapitalize=\"off\" spellcheck=\"false\" class=\"ax-input\"\n type=\"text\" [attr.placeholder]=\"placeholder\" [class.ax-state-disabled]=\"disabled\"\n [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"true\" [ngModel]=\"_editingText\"\n (mouseup)=\"_handleOnInputClickEvent($event)\" (blur)=\"_handleBlurEvent($event)\" (focus)=\"_handleFocusEvent($event)\">\n<ng-content select=\"ax-validation-rule\">\n</ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
481
481
  }
482
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputComponent, decorators: [{
482
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputComponent, decorators: [{
483
483
  type: Component,
484
484
  args: [{ selector: 'ax-datetime-input', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id'], host: { class: 'ax-editor-input' }, outputs: [
485
485
  'valueChange',
@@ -7,11 +7,11 @@ import * as i0 from "@angular/core";
7
7
  const COMPONENT = [AXDateTimeInputComponent];
8
8
  const MODULES = [CommonModule, FormsModule, AXDateTimeModule];
9
9
  export class AXDateTimeInputModule {
10
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputModule, declarations: [AXDateTimeInputComponent], imports: [CommonModule, FormsModule, AXDateTimeModule], exports: [AXDateTimeInputComponent] }); }
12
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputModule, imports: [MODULES] }); }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputModule, declarations: [AXDateTimeInputComponent], imports: [CommonModule, FormsModule, AXDateTimeModule], exports: [AXDateTimeInputComponent] }); }
12
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputModule, imports: [MODULES] }); }
13
13
  }
14
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimeInputModule, decorators: [{
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimeInputModule, decorators: [{
15
15
  type: NgModule,
16
16
  args: [{
17
17
  declarations: [...COMPONENT],
@@ -190,8 +190,8 @@ export class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent,
190
190
  this._editingDateObj = this._calendarService.now(this.type);
191
191
  this.commitValue(this.editingDateObj.date, true);
192
192
  }
193
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.4", type: AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", depth: "depth", activeView: "activeView", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation", currentTimeButton: "currentTimeButton", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick", formatChange: "formatChange" }, providers: [
193
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimePickerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
194
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.6", type: AXDateTimePickerComponent, selector: "ax-datetime-picker", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", depth: "depth", activeView: "activeView", minValue: "minValue", maxValue: "maxValue", disabledDates: "disabledDates", holidayDates: "holidayDates", type: "type", cellTemplate: "cellTemplate", cellClass: "cellClass", showNavigation: "showNavigation", currentTimeButton: "currentTimeButton", format: "format" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", readonlyChange: "readonlyChange", disabledChange: "disabledChange", depthChange: "depthChange", typeChange: "typeChange", activeViewChange: "activeViewChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate", onSlotClick: "onSlotClick", formatChange: "formatChange" }, providers: [
195
195
  { provide: AXComponent, useExisting: AXDateTimePickerComponent },
196
196
  { provide: AXFocusableComponent, useExisting: AXDateTimePickerComponent },
197
197
  { provide: AXValuableComponent, useExisting: AXDateTimePickerComponent },
@@ -200,9 +200,9 @@ export class AXDateTimePickerComponent extends classes(MXCalendarBaseComponent,
200
200
  useExisting: forwardRef(() => AXDateTimePickerComponent),
201
201
  multi: true,
202
202
  },
203
- ], viewQueries: [{ propertyName: "picker", first: true, predicate: AXPickerComponent, descendants: true }, { propertyName: "tabs", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-header\" *ngIf=\"_hasDatePart && _hasTimePart\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item text=\"Date\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item text=\"Time\" [key]=\"'time'\" [disabled]=\"disabled\"></ax-tab-item>\n </ax-tabs>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-calendar-part\" *ngIf=\"_activePart === 'date'\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n <div class=\"ax-picker-part\" *ngIf=\"_activePart === 'time'\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n <ax-picker-column\n title=\"Hour\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.hour.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n title=\"Minute\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [step]=\"3\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.minute.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n title=\"Second\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [step]=\"3\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.second.enabled\"\n ></ax-picker-column>\n </ax-picker>\n </div>\n</div>\n<div class=\"ax-footer\" *ngIf=\"!disabled && !readonly && (currentTimeButton || _hasTimePart)\">\n <div>\n <ax-button\n [text]=\"buttonText\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n *ngIf=\"currentTimeButton\"\n ></ax-button>\n </div>\n\n <div>\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | trans\"\n *ngIf=\"_hasTimePart\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n </div>\n</div>\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{display:flex;justify-content:flex-start;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i3.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i5.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: i6.AXPickerComponent, selector: "ax-picker" }, { kind: "directive", type: i6.AXPickerColumnDirective, selector: "ax-picker-column", inputs: ["disabled", "readonly", "readonlyChange", "disabledChange", "valueField", "textField", "title", "step", "items"], outputs: ["onValueChanged", "itemsChange"] }, { kind: "pipe", type: i7.AXDateTimePipe, name: "axDate" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
203
+ ], viewQueries: [{ propertyName: "picker", first: true, predicate: AXPickerComponent, descendants: true }, { propertyName: "tabs", first: true, predicate: AXTabsComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-header\" *ngIf=\"_hasDatePart && _hasTimePart\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item text=\"Date\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item text=\"Time\" [key]=\"'time'\" [disabled]=\"disabled\"></ax-tab-item>\n </ax-tabs>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-calendar-part\" *ngIf=\"_activePart === 'date'\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n <div class=\"ax-picker-part\" *ngIf=\"_activePart === 'time'\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n <ax-picker-column\n [title]=\"'dateTime.hour' | trans\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.hour.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n [title]=\"'dateTime.minute' | trans\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.minute.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n [title]=\"'dateTime.second' | trans\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.second.enabled\"\n ></ax-picker-column>\n </ax-picker>\n </div>\n</div>\n<div class=\"ax-footer\" *ngIf=\"!disabled && !readonly && (currentTimeButton || _hasTimePart)\">\n <div>\n <ax-button\n [text]=\"buttonText\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n *ngIf=\"currentTimeButton\"\n ></ax-button>\n </div>\n\n <div>\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | trans\"\n *ngIf=\"_hasTimePart\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n </div>\n</div>\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{display:flex;justify-content:flex-start;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXTabsComponent, selector: "ax-tabs", inputs: ["look", "location", "fitParent", "minWidth", "content"], outputs: ["onActiveTabChanged"] }, { kind: "component", type: i3.AXTabItemComponent, selector: "ax-tab-item", inputs: ["disabled", "text", "key", "headerTemplate", "active"], outputs: ["disabledChange", "onClick", "onBlur", "onFocus", "activeChange"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange", "disabledChange"] }, { kind: "component", type: i5.AXCalendarComponent, selector: "ax-calendar", inputs: ["rtl", "readonly", "value", "name", "disabled", "depth", "activeView", "minValue", "maxValue", "disabledDates", "holidayDates", "type", "cellTemplate", "cellClass", "showNavigation", "count", "id"], outputs: ["onOptionChanged", "valueChange", "onValueChanged", "onBlur", "onFocus", "depthChange", "typeChange", "activeViewChange", "disabledDatesChange", "holidayDatesChange", "onNavigate", "onSlotClick", "countChange"] }, { kind: "component", type: i6.AXPickerComponent, selector: "ax-picker" }, { kind: "directive", type: i6.AXPickerColumnDirective, selector: "ax-picker-column", inputs: ["disabled", "readonly", "readonlyChange", "disabledChange", "valueField", "textField", "title", "step", "items"], outputs: ["onValueChanged", "itemsChange"] }, { kind: "pipe", type: i7.AXDateTimePipe, name: "axDate" }, { kind: "pipe", type: i8.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
204
204
  }
205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{
205
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.6", ngImport: i0, type: AXDateTimePickerComponent, decorators: [{
206
206
  type: Component,
207
207
  args: [{ selector: 'ax-datetime-picker', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: [
208
208
  'disabled',
@@ -248,7 +248,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
248
248
  useExisting: forwardRef(() => AXDateTimePickerComponent),
249
249
  multi: true,
250
250
  },
251
- ], template: "<div class=\"ax-header\" *ngIf=\"_hasDatePart && _hasTimePart\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item text=\"Date\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item text=\"Time\" [key]=\"'time'\" [disabled]=\"disabled\"></ax-tab-item>\n </ax-tabs>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-calendar-part\" *ngIf=\"_activePart === 'date'\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n <div class=\"ax-picker-part\" *ngIf=\"_activePart === 'time'\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n <ax-picker-column\n title=\"Hour\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.hour.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n title=\"Minute\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [step]=\"3\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.minute.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n title=\"Second\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [step]=\"3\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.second.enabled\"\n ></ax-picker-column>\n </ax-picker>\n </div>\n</div>\n<div class=\"ax-footer\" *ngIf=\"!disabled && !readonly && (currentTimeButton || _hasTimePart)\">\n <div>\n <ax-button\n [text]=\"buttonText\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n *ngIf=\"currentTimeButton\"\n ></ax-button>\n </div>\n\n <div>\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | trans\"\n *ngIf=\"_hasTimePart\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n </div>\n</div>\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{display:flex;justify-content:flex-start;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"] }]
251
+ ], template: "<div class=\"ax-header\" *ngIf=\"_hasDatePart && _hasTimePart\">\n <ax-tabs\n [look]=\"'default'\"\n [fitParent]=\"true\"\n [location]=\"'top'\"\n (onActiveTabChanged)=\"_handleViewChanged($event)\"\n >\n <ax-tab-item text=\"Date\" [key]=\"'date'\" [disabled]=\"disabled\"></ax-tab-item>\n <ax-tab-item text=\"Time\" [key]=\"'time'\" [disabled]=\"disabled\"></ax-tab-item>\n </ax-tabs>\n</div>\n<div class=\"ax-content\">\n <div class=\"ax-calendar-part\" *ngIf=\"_activePart === 'date'\">\n <ax-calendar\n #calendar\n id=\"calendar\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n [ngModel]=\"editingDateObj.date\"\n [minValue]=\"minValue\"\n [maxValue]=\"maxValue\"\n [disabledDates]=\"disabledDates\"\n [holidayDates]=\"holidayDates\"\n [depth]=\"depth\"\n (onNavigate)=\"_handleCalendarOnNavigate($event)\"\n (onValueChanged)=\"_handleCalendarOnValueChanged($event)\"\n [type]=\"type\"\n >\n </ax-calendar>\n </div>\n <div class=\"ax-picker-part\" *ngIf=\"_activePart === 'time'\">\n <div class=\"ax-header\">\n {{ editingDateObj | axDate: format : type }}\n </div>\n <ax-picker>\n <ax-picker-column\n [title]=\"'dateTime.hour' | trans\"\n [items]=\"hours\"\n [ngModel]=\"editingDateObj.hour\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'hour')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.hour.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n [title]=\"'dateTime.minute' | trans\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.minute\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'minute')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.minute.enabled\"\n ></ax-picker-column>\n <ax-picker-column\n [title]=\"'dateTime.second' | trans\"\n [items]=\"minutes\"\n [ngModel]=\"editingDateObj.second\"\n (onValueChanged)=\"_handlePickerOnValueChanged($event, 'second')\"\n [disabled]=\"disabled\"\n [readonly]=\"readonly\"\n *ngIf=\"_parts.second.enabled\"\n ></ax-picker-column>\n </ax-picker>\n </div>\n</div>\n<div class=\"ax-footer\" *ngIf=\"!disabled && !readonly && (currentTimeButton || _hasTimePart)\">\n <div>\n <ax-button\n [text]=\"buttonText\"\n class=\"ax-sm\"\n (onClick)=\"_handleNowClick()\"\n *ngIf=\"currentTimeButton\"\n ></ax-button>\n </div>\n\n <div>\n <ax-button\n color=\"primary\"\n [text]=\"'dateTime.set' | trans\"\n *ngIf=\"_hasTimePart\"\n class=\"ax-sm\"\n (onClick)=\"_handleSetClick()\"\n ></ax-button>\n </div>\n</div>\n", styles: ["ax-datetime-picker{display:flex;flex-direction:column}ax-datetime-picker>.ax-header{display:flex;justify-content:center;padding-left:.5rem;padding-right:.5rem;padding-top:.5rem}ax-datetime-picker>.ax-content{width:100%;overflow:hidden}@media (min-width: 768px){ax-datetime-picker>.ax-content{width:20rem}}ax-datetime-picker>.ax-content .ax-picker-part{display:flex;height:376px;width:100%;flex-direction:column}ax-datetime-picker>.ax-content .ax-picker-part>.ax-header{display:flex;justify-content:flex-start;padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem;font-weight:500}ax-datetime-picker>.ax-content .ax-picker-part ax-picker{flex:1 1 0%}ax-datetime-picker>.ax-content .ax-calendar-part{padding-top:.25rem;padding-bottom:.25rem}ax-datetime-picker>.ax-content .ax-calendar-part ax-calendar{width:100%}ax-datetime-picker>.ax-footer{display:flex;justify-content:space-between;border-top-width:1px;border-color:rgba(var(--ax-color-border-default));padding:.5rem}ax-datetime-picker>.ax-footer ax-button{min-width:100px}\n"] }]
252
252
  }], propDecorators: { currentTimeButton: [{
253
253
  type: Input
254
254
  }], picker: [{
@@ -262,4 +262,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.4", ngImpor
262
262
  }], format: [{
263
263
  type: Input
264
264
  }] } });
265
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUF5QyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQTBCLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7QUF1RDdGLE1BQU0sT0FBTyx5QkFDWCxTQUFRLE9BQU8sQ0FBQyx1QkFBdUIs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dCI6WyJpbXBvcnQgeyBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCwgTVhDYWxlbmRhckJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBNWFZhbHVlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQgeyBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50LCBBWFRhYnNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSwgQVhEYXRlVGltZSwgQVhEYXRlVGltZVBhcnRzLCBUaW1lVW5pdCB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29uZmlnLCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29uZmlnJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ29uQ2xpY2snLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPilcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgYnV0dG9uVGV4dCA9ICcnO1xuXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhEYXRlVGltZVBpY2tlckNvbmZpZyA9IGluamVjdChBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHKTtcblxuICBwcml2YXRlIF9jdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbiA9IHRoaXMuZGVmYXVsdENvbmZpZy5jdXJyZW50VGltZUJ1dHRvbjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjdXJyZW50VGltZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRpbWVCdXR0b247XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW50VGltZUJ1dHRvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2N1cnJlbnRUaW1lQnV0dG9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJTZXJ2aWNlOiBBWENhbGVuZGFyU2VydmljZSA9IGluamVjdChBWENhbGVuZGFyU2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZChBWFBpY2tlckNvbXBvbmVudClcbiAgcHJvdGVjdGVkIHBpY2tlcjogQVhQaWNrZXJDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChBWFRhYnNDb21wb25lbnQpXG4gIHByb3RlY3RlZCB0YWJzOiBBWFRhYnNDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGhvdXJzOiBhbnlbXSA9IEFycmF5KDI0KVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuICBtaW51dGVzOiBhbnlbXSA9IEFycmF5KDYwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuXG4gIHByb3RlY3RlZCBfcGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLnllYXIucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgbW9udGg6IHtcbiAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnTU0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ01NTScsICdNTU1NJywgJ01NJywgJ00nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMubW9udGgucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgZGF5OiB7XG4gICAgICBrZXk6ICdkYXknLFxuICAgICAgcGxhY2Vob2xkZXI6ICdkZCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnZGQnLCAnZCcsICdkZGRkJywgJ0REREQnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuZGF5LnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIGhvdXI6IHtcbiAgICAgIGtleTogJ2hvdXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdISCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnSEgnLCAnSCcsICdoaCcsICdoJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLmhvdXIucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgbWludXRlOiB7XG4gICAgICBrZXk6ICdtaW51dGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdtbScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnbW0nLCAnbSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5taW51dGUucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgc2Vjb25kOiB7XG4gICAgICBrZXk6ICdzZWNvbmQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdzcycsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnc3MnLCAncyddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5zZWNvbmQucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gIH07XG5cbiAgcHJvdGVjdGVkIF9hY3RpdmVQYXJ0OiAnZGF0ZScgfCAndGltZScgPSAnZGF0ZSc7XG5cbiAgcHJvdGVjdGVkIGdldCBfaGFzRGF0ZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsneWVhcicsICdtb250aCcsICdkYXknXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgX2hhc1RpbWVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWRpdGluZ0RhdGVPYmo6IEFYRGF0ZVRpbWUgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gIHByb3RlY3RlZCBnZXQgZWRpdGluZ0RhdGVPYmooKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRpbmdEYXRlT2JqO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgX2Zvcm1hdCA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyLmZvcm1hdHMuZGF0ZVRpbWVEaXNwbGF5O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XG4gIH1cbiAgcHVibGljIHNldCBmb3JtYXQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Zvcm1hdCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICAgIHRoaXMuZGV0ZWN0QnV0dG9uVGV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5waWNrZXI/LnJlZnJlc2goKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlPzogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2UuY3JlYXRlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZGV0ZWN0QnV0dG9uVGV4dCgpIHtcbiAgICB0aGlzLmJ1dHRvblRleHQgPVxuICAgICAgdGhpcy5fYWN0aXZlUGFydCA9PT0gJ2RhdGUnID8gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUudG9kYXknKSA6IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLm5vdycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVWaWV3Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGFydCA9IGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZSc7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+LCBwYXJ0OiBzdHJpbmcpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQocGFydCBhcyBUaW1lVW5pdCwgTnVtYmVyKGUudmFsdWVbJ2lkJ10pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUNhbGVuZGFyT25OYXZpZ2F0ZShlOiBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCkge1xuICAgIHRoaXMub25OYXZpZ2F0ZS5lbWl0KGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZSh0aGlzLnZhbHVlID8/IG5ldyBEYXRlKCksIHRoaXMudHlwZSlcbiAgICAgICAgLnNldCgnZGF5Jywgc2VsZWN0ZWRWYWx1ZS5kYXlPZk1vbnRoKVxuICAgICAgICAuc2V0KCdtb250aCcsIHNlbGVjdGVkVmFsdWUubW9udGhPZlllYXIpXG4gICAgICAgIC5zZXQoJ3llYXInLCBzZWxlY3RlZFZhbHVlLnllYXIpO1xuXG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICh0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVQYXJ0ID0gJ3RpbWUnO1xuICAgICAgICBpZiAodGhpcy50YWJzICYmIHRoaXMuX2hhc0RhdGVQYXJ0ICYmIHRoaXMuX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgICAgdGhpcy50YWJzLnNlbGVjdCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RQYXJ0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuZm9ybWF0LnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5maW5kKChjKSA9PiBjLnBsYWNlaG9sZGVycy5zb21lKChkKSA9PiBkID09IGYpKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgZm91bmQucGxhY2Vob2xkZXIgPSBmO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSB0aGlzLl9oYXNEYXRlUGFydCA/ICdkYXRlJyA6ICd0aW1lJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlU2V0Q2xpY2soKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVOb3dDbGljaygpIHtcbiAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5ub3codGhpcy50eXBlKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIiAqbmdJZj1cIl9oYXNEYXRlUGFydCAmJiBfaGFzVGltZVBhcnRcIj5cbiAgPGF4LXRhYnNcbiAgICBbbG9va109XCInZGVmYXVsdCdcIlxuICAgIFtmaXRQYXJlbnRdPVwidHJ1ZVwiXG4gICAgW2xvY2F0aW9uXT1cIid0b3AnXCJcbiAgICAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxheC10YWItaXRlbSB0ZXh0PVwiRGF0ZVwiIFtrZXldPVwiJ2RhdGUnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9heC10YWItaXRlbT5cbiAgICA8YXgtdGFiLWl0ZW0gdGV4dD1cIlRpbWVcIiBba2V5XT1cIid0aW1lJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtdGFiLWl0ZW0+XG4gIDwvYXgtdGFicz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBhcnRcIiAqbmdJZj1cIl9hY3RpdmVQYXJ0ID09PSAnZGF0ZSdcIj5cbiAgICA8YXgtY2FsZW5kYXJcbiAgICAgICNjYWxlbmRhclxuICAgICAgaWQ9XCJjYWxlbmRhclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLmRhdGVcIlxuICAgICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCJcbiAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgIFtob2xpZGF5RGF0ZXNdPVwiaG9saWRheURhdGVzXCJcbiAgICAgIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKCRldmVudClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgPlxuICAgIDwvYXgtY2FsZW5kYXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtcGlja2VyLXBhcnRcIiAqbmdJZj1cIl9hY3RpdmVQYXJ0ID09PSAndGltZSdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgICB7eyBlZGl0aW5nRGF0ZU9iaiB8IGF4RGF0ZTogZm9ybWF0IDogdHlwZSB9fVxuICAgIDwvZGl2PlxuICAgIDxheC1waWNrZXI+XG4gICAgICA8YXgtcGlja2VyLWNvbHVtblxuICAgICAgICB0aXRsZT1cIkhvdXJcIlxuICAgICAgICBbaXRlbXNdPVwiaG91cnNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5ob3VyXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdob3VyJylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAqbmdJZj1cIl9wYXJ0cy5ob3VyLmVuYWJsZWRcIlxuICAgICAgPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgIDxheC1waWNrZXItY29sdW1uXG4gICAgICAgIHRpdGxlPVwiTWludXRlXCJcbiAgICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5taW51dGVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgICAgW3N0ZXBdPVwiM1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICAgIFtyZWFkb25seV09XCJyZWFkb25seVwiXG4gICAgICAgICpuZ0lmPVwiX3BhcnRzLm1pbnV0ZS5lbmFibGVkXCJcbiAgICAgID48L2F4LXBpY2tlci1jb2x1bW4+XG4gICAgICA8YXgtcGlja2VyLWNvbHVtblxuICAgICAgICB0aXRsZT1cIlNlY29uZFwiXG4gICAgICAgIFtpdGVtc109XCJtaW51dGVzXCJcbiAgICAgICAgW25nTW9kZWxdPVwiZWRpdGluZ0RhdGVPYmouc2Vjb25kXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdzZWNvbmQnKVwiXG4gICAgICAgIFtzdGVwXT1cIjNcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAqbmdJZj1cIl9wYXJ0cy5zZWNvbmQuZW5hYmxlZFwiXG4gICAgICA+PC9heC1waWNrZXItY29sdW1uPlxuICAgIDwvYXgtcGlja2VyPlxuICA8L2Rpdj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWZvb3RlclwiICpuZ0lmPVwiIWRpc2FibGVkICYmICFyZWFkb25seSAmJiAoY3VycmVudFRpbWVCdXR0b24gfHwgX2hhc1RpbWVQYXJ0KVwiPlxuICA8ZGl2PlxuICAgIDxheC1idXR0b25cbiAgICAgIFt0ZXh0XT1cImJ1dHRvblRleHRcIlxuICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAob25DbGljayk9XCJfaGFuZGxlTm93Q2xpY2soKVwiXG4gICAgICAqbmdJZj1cImN1cnJlbnRUaW1lQnV0dG9uXCJcbiAgICA+PC9heC1idXR0b24+XG4gIDwvZGl2PlxuXG4gIDxkaXY+XG4gICAgPGF4LWJ1dHRvblxuICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgIFt0ZXh0XT1cIidkYXRlVGltZS5zZXQnIHwgdHJhbnNcIlxuICAgICAgKm5nSWY9XCJfaGFzVGltZVBhcnRcIlxuICAgICAgY2xhc3M9XCJheC1zbVwiXG4gICAgICAob25DbGljayk9XCJfaGFuZGxlU2V0Q2xpY2soKVwiXG4gICAgPjwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
265
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZXRpbWUtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS1waWNrZXIvc3JjL2xpYi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lLXBpY2tlci9zcmMvbGliL2RhdGV0aW1lLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDL0YsT0FBTyxFQUNMLFdBQVcsRUFDWCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBRW5CLGdCQUFnQixHQUNqQixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzlELE9BQU8sRUFBMEIsZUFBZSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDbEYsT0FBTyxFQUFFLGlCQUFpQixFQUF5QyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN4RCxPQUFPLEVBQ0wsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUVMLE1BQU0sRUFDTixTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUNuQyxPQUFPLEVBQTBCLHlCQUF5QixFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7Ozs7QUF1RDdGLE1BQU0sT0FBTyx5QkFDWCxTQUFRLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFBLGdCQUFzQixDQUFBLENBQUM7SUF2RGxFOztRQTBERSxlQUFVLEdBQUcsRUFBRSxDQUFDO1FBRVIsa0JBQWEsR0FBMkIsTUFBTSxDQUFDLHlCQUF5QixDQUFDLENBQUM7UUFFMUUsdUJBQWtCLEdBQVksSUFBSSxDQUFDLGFBQWEsQ0FBQyxpQkFBaUIsQ0FBQztRQVluRSxxQkFBZ0IsR0FBc0IsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFROUQsVUFBSyxHQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDL0IsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkMsWUFBTyxHQUFVLEtBQUssQ0FBQyxFQUFFLENBQUM7YUFDdkIsSUFBSSxDQUFDLENBQUMsQ0FBQzthQUNQLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFFN0IsV0FBTSxHQUFvQjtZQUNsQyxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLE1BQU07Z0JBQ1gsV0FBVyxFQUFFLE1BQU07Z0JBQ25CLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQztnQkFDMUMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMxRTtZQUNELEtBQUssRUFBRTtnQkFDTCxHQUFHLEVBQUUsT0FBTztnQkFDWixXQUFXLEVBQUUsSUFBSTtnQkFDakIsWUFBWSxFQUFFLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsR0FBRyxDQUFDO2dCQUN4QyxPQUFPLEVBQUUsS0FBSztnQkFDZCxPQUFPLEVBQUUsQ0FBQztnQkFDVixTQUFTLEVBQUUsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO2FBQzNFO1lBQ0QsR0FBRyxFQUFFO2dCQUNILEdBQUcsRUFBRSxLQUFLO2dCQUNWLFdBQVcsRUFBRSxJQUFJO2dCQUNqQixZQUFZLEVBQUUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUM7Z0JBQ3pDLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE9BQU8sRUFBRSxDQUFDO2dCQUNWLFNBQVMsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUM7YUFDekU7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osR0FBRyxFQUFFLE1BQU07Z0JBQ1gsV0FBVyxFQUFFLElBQUk7Z0JBQ2pCLFlBQVksRUFBRSxDQUFDLElBQUksRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFDcEMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQzthQUMxRTtZQUNELE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsUUFBUTtnQkFDYixXQUFXLEVBQUUsSUFBSTtnQkFDakIsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFDekIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUM1RTtZQUNELE1BQU0sRUFBRTtnQkFDTixHQUFHLEVBQUUsUUFBUTtnQkFDYixXQUFXLEVBQUUsSUFBSTtnQkFDakIsWUFBWSxFQUFFLENBQUMsSUFBSSxFQUFFLEdBQUcsQ0FBQztnQkFDekIsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQzthQUM1RTtTQUNGLENBQUM7UUFFUSxnQkFBVyxHQUFvQixNQUFNLENBQUM7UUFVeEMsb0JBQWUsR0FBZSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQU0zRSxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFbEMsWUFBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxlQUFlLENBQUM7S0FtR3pFO0lBbE1DLElBQ1csaUJBQWlCO1FBQzFCLE9BQU8sSUFBSSxDQUFDLGtCQUFrQixDQUFDO0lBQ2pDLENBQUM7SUFDRCxJQUFXLGlCQUFpQixDQUFDLENBQVU7UUFDckMsSUFBSSxDQUFDLFNBQVMsQ0FBQztZQUNiLElBQUksRUFBRSxtQkFBbUI7WUFDekIsS0FBSyxFQUFFLENBQUM7U0FDVCxDQUFDLENBQUM7SUFDTCxDQUFDO0lBc0VELElBQWMsWUFBWTtRQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDdEUsQ0FBQztJQUVELElBQWMsWUFBWTtRQUN4QixPQUFPLENBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxRQUFRLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUUsQ0FBQztJQUdELElBQWMsY0FBYztRQUMxQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUM7SUFDOUIsQ0FBQztJQU1ELElBQ1csTUFBTTtRQUNmLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQztJQUN0QixDQUFDO0lBQ0QsSUFBVyxNQUFNLENBQUMsQ0FBUztRQUN6QixJQUFJLENBQUMsU0FBUyxDQUFDO1lBQ2IsSUFBSSxFQUFFLFFBQVE7WUFDZCxLQUFLLEVBQUUsQ0FBQztZQUNSLGFBQWEsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDdEIsSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsUUFBUTtRQUNOLEtBQUssQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUNqQixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVNLE9BQU87UUFDWixJQUFJLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3pCLENBQUM7SUFFUSxvQkFBb0IsQ0FBQyxLQUFZO1FBQ3hDLElBQUksS0FBSyxFQUFFO1lBQ1QsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzVEO0lBQ0gsQ0FBQztJQUVTLGdCQUFnQjtRQUN4QixJQUFJLENBQUMsVUFBVTtZQUNiLElBQUksQ0FBQyxXQUFXLEtBQUssTUFBTSxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEcsQ0FBQztJQUVTLGtCQUFrQixDQUFDLENBQXlCO1FBQ3BELElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxHQUFzQixDQUFDO1FBQ2hELElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxHQUFHLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVTLDJCQUEyQixDQUFDLENBQTRCLEVBQUUsSUFBWTtRQUM5RSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLElBQWdCLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQzFGO0lBQ0gsQ0FBQztJQUVTLHlCQUF5QixDQUFDLENBQTBCO1FBQzVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzFCLENBQUM7SUFFUyw2QkFBNkIsQ0FBQyxDQUE0QjtRQUNsRSxJQUFJLENBQUMsQ0FBQyxpQkFBaUIsRUFBRTtZQUN2QixNQUFNLGFBQWEsR0FBRyxJQUFJLENBQUMsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN0RSxNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsZUFBZTtpQkFDdEMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO2lCQUMzQyxHQUFHLENBQUMsS0FBSyxFQUFFLGFBQWEsQ0FBQyxVQUFVLENBQUM7aUJBQ3BDLEdBQUcsQ0FBQyxPQUFPLEVBQUUsYUFBYSxDQUFDLFdBQVcsQ0FBQztpQkFDdkMsR0FBRyxDQUFDLE1BQU0sRUFBRSxhQUFhLENBQUMsSUFBSSxDQUFDLENBQUM7WUFFbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxZQUFZLENBQUM7WUFDcEMsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFO2dCQUNyQixJQUFJLENBQUMsV0FBVyxHQUFHLE1BQU0sQ0FBQztnQkFDMUIsSUFBSSxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTtvQkFDdkQsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3JCO3FCQUFNO29CQUNMLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7aUJBQ2xEO2FBQ0Y7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQzthQUNsRDtTQUNGO0lBQ0gsQ0FBQztJQUVPLFlBQVk7UUFDbEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDdkMsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNwRCxXQUFXLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDeEIsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDekYsSUFBSSxLQUFLLEVBQUU7Z0JBQ1QsS0FBSyxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7Z0JBQ3JCLEtBQUssQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDO2FBQ3ZCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO1FBQ3ZELElBQUksQ0FBQyxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDMUIsQ0FBQztJQUVTLGVBQWU7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRVMsZUFBZTtRQUN2QixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0ExTVUseUJBQXlCO2tHQUF6Qix5QkFBeUIsOCtCQVh6QjtZQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUU7WUFDaEUsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVyxFQUFFLHlCQUF5QixFQUFFO1lBQ3pFLEVBQUUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLFdBQVcsRUFBRSx5QkFBeUIsRUFBRTtZQUN4RTtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSxDQUFDLHlCQUF5QixDQUFDO2dCQUN4RCxLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysa0VBd0JVLGlCQUFpQix1RUFHakIsZUFBZSx1RUMxRzVCLG92RkFxRkE7OzJGREphLHlCQUF5QjtrQkF0RHJDLFNBQVM7K0JBQ0Usb0JBQW9CLG1CQUdiLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksVUFDN0I7d0JBQ04sVUFBVTt3QkFDVixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsYUFBYTt3QkFDYixPQUFPO3dCQUNQLE9BQU87d0JBQ1AsTUFBTTt3QkFDTixJQUFJO3dCQUNKLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixVQUFVO3dCQUNWLFVBQVU7d0JBQ1YsZUFBZTt3QkFDZixjQUFjO3dCQUNkLE1BQU07d0JBQ04sY0FBYzt3QkFDZCxXQUFXO3dCQUNYLGdCQUFnQjtxQkFDakIsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGFBQWE7d0JBQ2IsZ0JBQWdCO3dCQUNoQixRQUFRO3dCQUNSLFNBQVM7d0JBQ1QsU0FBUzt3QkFDVCxnQkFBZ0I7d0JBQ2hCLGdCQUFnQjt3QkFDaEIsYUFBYTt3QkFDYixZQUFZO3dCQUNaLGtCQUFrQjt3QkFDbEIscUJBQXFCO3dCQUNyQixvQkFBb0I7d0JBQ3BCLFlBQVk7d0JBQ1osYUFBYTtxQkFDZCxhQUNVO3dCQUNULEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLDJCQUEyQixFQUFFO3dCQUNoRSxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLDJCQUEyQixFQUFFO3dCQUN6RSxFQUFFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxXQUFXLDJCQUEyQixFQUFFO3dCQUN4RTs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVSxDQUFDLEdBQUcsRUFBRSwwQkFBMEIsQ0FBQzs0QkFDeEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7OEJBWVUsaUJBQWlCO3NCQUQzQixLQUFLO2dCQWNJLE1BQU07c0JBRGYsU0FBUzt1QkFBQyxpQkFBaUI7Z0JBSWxCLElBQUk7c0JBRGIsU0FBUzt1QkFBQyxlQUFlO2dCQTZFMUIsWUFBWTtzQkFEWCxNQUFNO2dCQUtJLE1BQU07c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCwgTVhDYWxlbmRhckJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXInO1xuaW1wb3J0IHtcbiAgQVhDb21wb25lbnQsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVhYmxlQ29tcG9uZW50LFxuICBBWFZhbHVlQ2hhbmdlZEV2ZW50LFxuICBNWFZhbHVlQ29tcG9uZW50LFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BpY2tlcic7XG5pbXBvcnQgeyBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50LCBBWFRhYnNDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvdGFicyc7XG5pbXBvcnQgeyBBWENhbGVuZGFyU2VydmljZSwgQVhEYXRlVGltZSwgQVhEYXRlVGltZVBhcnRzLCBUaW1lVW5pdCB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsYXNzZXMgfSBmcm9tICdwb2x5dHlwZSc7XG5pbXBvcnQgeyBBWERhdGVUaW1lUGlja2VyQ29uZmlnLCBBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHIH0gZnJvbSAnLi9kYXRldGltZS1waWNrZXIuY29uZmlnJztcbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LWRhdGV0aW1lLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRldGltZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ3ZhbHVlJyxcbiAgICAnc3RhdGUnLFxuICAgICduYW1lJyxcbiAgICAnaWQnLFxuICAgICdkZXB0aCcsXG4gICAgJ2FjdGl2ZVZpZXcnLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAnZGlzYWJsZWREYXRlcycsXG4gICAgJ2hvbGlkYXlEYXRlcycsXG4gICAgJ3R5cGUnLFxuICAgICdjZWxsVGVtcGxhdGUnLFxuICAgICdjZWxsQ2xhc3MnLFxuICAgICdzaG93TmF2aWdhdGlvbicsXG4gIF0sXG4gIG91dHB1dHM6IFtcbiAgICAndmFsdWVDaGFuZ2UnLFxuICAgICdzdGF0ZUNoYW5nZScsXG4gICAgJ29uVmFsdWVDaGFuZ2VkJyxcbiAgICAnb25CbHVyJyxcbiAgICAnb25Gb2N1cycsXG4gICAgJ29uQ2xpY2snLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgICAnZGVwdGhDaGFuZ2UnLFxuICAgICd0eXBlQ2hhbmdlJyxcbiAgICAnYWN0aXZlVmlld0NoYW5nZScsXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxuICAgICdob2xpZGF5RGF0ZXNDaGFuZ2UnLFxuICAgICdvbk5hdmlnYXRlJyxcbiAgICAnb25TbG90Q2xpY2snLFxuICBdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFZhbHVhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhEYXRlVGltZVBpY2tlckNvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWERhdGVUaW1lUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgY2xhc3NlcyhNWENhbGVuZGFyQmFzZUNvbXBvbmVudCwgTVhWYWx1ZUNvbXBvbmVudDxEYXRlPilcbiAgaW1wbGVtZW50cyBPbkluaXRcbntcbiAgYnV0dG9uVGV4dCA9ICcnO1xuXG4gIHByaXZhdGUgZGVmYXVsdENvbmZpZzogQVhEYXRlVGltZVBpY2tlckNvbmZpZyA9IGluamVjdChBWF9EQVRFVElNRV9QSUNLRVJfQ09ORklHKTtcblxuICBwcml2YXRlIF9jdXJyZW50VGltZUJ1dHRvbjogYm9vbGVhbiA9IHRoaXMuZGVmYXVsdENvbmZpZy5jdXJyZW50VGltZUJ1dHRvbjtcbiAgQElucHV0KClcbiAgcHVibGljIGdldCBjdXJyZW50VGltZUJ1dHRvbigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudFRpbWVCdXR0b247XG4gIH1cbiAgcHVibGljIHNldCBjdXJyZW50VGltZUJ1dHRvbih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2N1cnJlbnRUaW1lQnV0dG9uJyxcbiAgICAgIHZhbHVlOiB2LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBfY2FsZW5kYXJTZXJ2aWNlOiBBWENhbGVuZGFyU2VydmljZSA9IGluamVjdChBWENhbGVuZGFyU2VydmljZSk7XG5cbiAgQFZpZXdDaGlsZChBWFBpY2tlckNvbXBvbmVudClcbiAgcHJvdGVjdGVkIHBpY2tlcjogQVhQaWNrZXJDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChBWFRhYnNDb21wb25lbnQpXG4gIHByb3RlY3RlZCB0YWJzOiBBWFRhYnNDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGhvdXJzOiBhbnlbXSA9IEFycmF5KDI0KVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuICBtaW51dGVzOiBhbnlbXSA9IEFycmF5KDYwKVxuICAgIC5maWxsKDApXG4gICAgLm1hcCgobSwgaSkgPT4gKHsgaWQ6IGksIHRleHQ6IGkgfSkpO1xuXG4gIHByb3RlY3RlZCBfcGFydHM6IEFYRGF0ZVRpbWVQYXJ0cyA9IHtcbiAgICB5ZWFyOiB7XG4gICAgICBrZXk6ICd5ZWFyJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAneXl5eScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnWVknLCAneXknLCAnWVlZWScsICd5eXl5J10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDIwMjMsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLnllYXIucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgbW9udGg6IHtcbiAgICAgIGtleTogJ21vbnRoJyxcbiAgICAgIHBsYWNlaG9sZGVyOiAnTU0nLFxuICAgICAgcGxhY2Vob2xkZXJzOiBbJ01NTScsICdNTU1NJywgJ01NJywgJ00nXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMubW9udGgucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgZGF5OiB7XG4gICAgICBrZXk6ICdkYXknLFxuICAgICAgcGxhY2Vob2xkZXI6ICdkZCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnZGQnLCAnZCcsICdkZGRkJywgJ0REREQnXSxcbiAgICAgIGVuYWJsZWQ6IGZhbHNlLFxuICAgICAgZGVmYXVsdDogMSxcbiAgICAgIHJlYWxWYWx1ZTogKCkgPT4gdGhpcy5lZGl0aW5nRGF0ZU9iai5mb3JtYXQodGhpcy5fcGFydHMuZGF5LnBsYWNlaG9sZGVyKSxcbiAgICB9LFxuICAgIGhvdXI6IHtcbiAgICAgIGtleTogJ2hvdXInLFxuICAgICAgcGxhY2Vob2xkZXI6ICdISCcsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnSEgnLCAnSCcsICdoaCcsICdoJ10sXG4gICAgICBlbmFibGVkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IDAsXG4gICAgICByZWFsVmFsdWU6ICgpID0+IHRoaXMuZWRpdGluZ0RhdGVPYmouZm9ybWF0KHRoaXMuX3BhcnRzLmhvdXIucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgbWludXRlOiB7XG4gICAgICBrZXk6ICdtaW51dGUnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdtbScsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnbW0nLCAnbSddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5taW51dGUucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gICAgc2Vjb25kOiB7XG4gICAgICBrZXk6ICdzZWNvbmQnLFxuICAgICAgcGxhY2Vob2xkZXI6ICdzcycsXG4gICAgICBwbGFjZWhvbGRlcnM6IFsnc3MnLCAncyddLFxuICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICBkZWZhdWx0OiAwLFxuICAgICAgcmVhbFZhbHVlOiAoKSA9PiB0aGlzLmVkaXRpbmdEYXRlT2JqLmZvcm1hdCh0aGlzLl9wYXJ0cy5zZWNvbmQucGxhY2Vob2xkZXIpLFxuICAgIH0sXG4gIH07XG5cbiAgcHJvdGVjdGVkIF9hY3RpdmVQYXJ0OiAnZGF0ZScgfCAndGltZScgPSAnZGF0ZSc7XG5cbiAgcHJvdGVjdGVkIGdldCBfaGFzRGF0ZVBhcnQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIFsneWVhcicsICdtb250aCcsICdkYXknXS5zb21lKChrKSA9PiB0aGlzLl9wYXJ0c1trXS5lbmFibGVkKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXQgX2hhc1RpbWVQYXJ0KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBbJ2hvdXInLCAnbWludXRlJywgJ3NlY29uZCddLnNvbWUoKGspID0+IHRoaXMuX3BhcnRzW2tdLmVuYWJsZWQpO1xuICB9XG5cbiAgcHJpdmF0ZSBfZWRpdGluZ0RhdGVPYmo6IEFYRGF0ZVRpbWUgPSB0aGlzLl9jYWxlbmRhclNlcnZpY2Uubm93KHRoaXMudHlwZSk7XG4gIHByb3RlY3RlZCBnZXQgZWRpdGluZ0RhdGVPYmooKTogQVhEYXRlVGltZSB7XG4gICAgcmV0dXJuIHRoaXMuX2VkaXRpbmdEYXRlT2JqO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIGZvcm1hdENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIHByaXZhdGUgX2Zvcm1hdCA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyLmZvcm1hdHMuZGF0ZVRpbWVEaXNwbGF5O1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IGZvcm1hdCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9mb3JtYXQ7XG4gIH1cbiAgcHVibGljIHNldCBmb3JtYXQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2Zvcm1hdCcsXG4gICAgICB2YWx1ZTogdixcbiAgICAgIGFmdGVyQ2FsbGJhY2s6IChvLCBuKSA9PiB7XG4gICAgICAgIHRoaXMuX2RldGVjdFBhcnRzKCk7XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICB0aGlzLl9kZXRlY3RQYXJ0cygpO1xuICAgIHRoaXMuZGV0ZWN0QnV0dG9uVGV4dCgpO1xuICB9XG5cbiAgcHVibGljIHJlZnJlc2goKSB7XG4gICAgdGhpcy5waWNrZXI/LnJlZnJlc2goKTtcbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKHZhbHVlPzogRGF0ZSk6IHZvaWQge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9jYWxlbmRhclNlcnZpY2UuY3JlYXRlKHZhbHVlKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgZGV0ZWN0QnV0dG9uVGV4dCgpIHtcbiAgICB0aGlzLmJ1dHRvblRleHQgPVxuICAgICAgdGhpcy5fYWN0aXZlUGFydCA9PT0gJ2RhdGUnID8gQVhUcmFuc2xhdG9yLmdldCgnZGF0ZVRpbWUudG9kYXknKSA6IEFYVHJhbnNsYXRvci5nZXQoJ2RhdGVUaW1lLm5vdycpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVWaWV3Q2hhbmdlZChlOiBBWFRhYlN0cmlwQ2hhbmdlZEV2ZW50KSB7XG4gICAgdGhpcy5fYWN0aXZlUGFydCA9IGUudGFiLmtleSBhcyAnZGF0ZScgfCAndGltZSc7XG4gICAgdGhpcy5kZXRlY3RCdXR0b25UZXh0KCk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZChlOiBBWFZhbHVlQ2hhbmdlZEV2ZW50PERhdGU+LCBwYXJ0OiBzdHJpbmcpIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgdGhpcy5fZWRpdGluZ0RhdGVPYmogPSB0aGlzLl9lZGl0aW5nRGF0ZU9iai5zZXQocGFydCBhcyBUaW1lVW5pdCwgTnVtYmVyKGUudmFsdWVbJ2lkJ10pKTtcbiAgICB9XG4gIH1cblxuICBwcm90ZWN0ZWQgX2hhbmRsZUNhbGVuZGFyT25OYXZpZ2F0ZShlOiBBWENhbGVuZGFyTmF2aWdhdGVFdmVudCkge1xuICAgIHRoaXMub25OYXZpZ2F0ZS5lbWl0KGUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKGU6IEFYVmFsdWVDaGFuZ2VkRXZlbnQ8RGF0ZT4pIHtcbiAgICBpZiAoZS5pc1VzZXJJbnRlcmFjdGlvbikge1xuICAgICAgY29uc3Qgc2VsZWN0ZWRWYWx1ZSA9IHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNyZWF0ZShlLnZhbHVlLCB0aGlzLnR5cGUpO1xuICAgICAgY29uc3QgY3VycmVudFZhbHVlID0gdGhpcy5jYWxlbmRhclNlcnZpY2VcbiAgICAgICAgLmNyZWF0ZSh0aGlzLnZhbHVlID8/IG5ldyBEYXRlKCksIHRoaXMudHlwZSlcbiAgICAgICAgLnNldCgnZGF5Jywgc2VsZWN0ZWRWYWx1ZS5kYXlPZk1vbnRoKVxuICAgICAgICAuc2V0KCdtb250aCcsIHNlbGVjdGVkVmFsdWUubW9udGhPZlllYXIpXG4gICAgICAgIC5zZXQoJ3llYXInLCBzZWxlY3RlZFZhbHVlLnllYXIpO1xuXG4gICAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IGN1cnJlbnRWYWx1ZTtcbiAgICAgIGlmICh0aGlzLl9oYXNUaW1lUGFydCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVQYXJ0ID0gJ3RpbWUnO1xuICAgICAgICBpZiAodGhpcy50YWJzICYmIHRoaXMuX2hhc0RhdGVQYXJ0ICYmIHRoaXMuX2hhc1RpbWVQYXJ0KSB7XG4gICAgICAgICAgdGhpcy50YWJzLnNlbGVjdCgxKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY29tbWl0VmFsdWUodGhpcy5lZGl0aW5nRGF0ZU9iai5kYXRlLCB0cnVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwcml2YXRlIF9kZXRlY3RQYXJ0cygpIHtcbiAgICBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5mb3JFYWNoKChlKSA9PiB7XG4gICAgICBlLmVuYWJsZWQgPSBmYWxzZTtcbiAgICB9KTtcbiAgICBjb25zdCBmb3JtYXRQYXJ0cyA9IHRoaXMuZm9ybWF0LnNwbGl0KC9bXmEtekEtWl0rLyk7XG4gICAgZm9ybWF0UGFydHMuZm9yRWFjaCgoZikgPT4ge1xuICAgICAgY29uc3QgZm91bmQgPSBPYmplY3QudmFsdWVzKHRoaXMuX3BhcnRzKS5maW5kKChjKSA9PiBjLnBsYWNlaG9sZGVycy5zb21lKChkKSA9PiBkID09IGYpKTtcbiAgICAgIGlmIChmb3VuZCkge1xuICAgICAgICBmb3VuZC5lbmFibGVkID0gdHJ1ZTtcbiAgICAgICAgZm91bmQucGxhY2Vob2xkZXIgPSBmO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuX2FjdGl2ZVBhcnQgPSB0aGlzLl9oYXNEYXRlUGFydCA/ICdkYXRlJyA6ICd0aW1lJztcbiAgICB0aGlzLmNkci5tYXJrRm9yQ2hlY2soKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlU2V0Q2xpY2soKSB7XG4gICAgdGhpcy5jb21taXRWYWx1ZSh0aGlzLmVkaXRpbmdEYXRlT2JqLmRhdGUsIHRydWUpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVOb3dDbGljaygpIHtcbiAgICB0aGlzLl9lZGl0aW5nRGF0ZU9iaiA9IHRoaXMuX2NhbGVuZGFyU2VydmljZS5ub3codGhpcy50eXBlKTtcbiAgICB0aGlzLmNvbW1pdFZhbHVlKHRoaXMuZWRpdGluZ0RhdGVPYmouZGF0ZSwgdHJ1ZSk7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1oZWFkZXJcIiAqbmdJZj1cIl9oYXNEYXRlUGFydCAmJiBfaGFzVGltZVBhcnRcIj5cbiAgPGF4LXRhYnNcbiAgICBbbG9va109XCInZGVmYXVsdCdcIlxuICAgIFtmaXRQYXJlbnRdPVwidHJ1ZVwiXG4gICAgW2xvY2F0aW9uXT1cIid0b3AnXCJcbiAgICAob25BY3RpdmVUYWJDaGFuZ2VkKT1cIl9oYW5kbGVWaWV3Q2hhbmdlZCgkZXZlbnQpXCJcbiAgPlxuICAgIDxheC10YWItaXRlbSB0ZXh0PVwiRGF0ZVwiIFtrZXldPVwiJ2RhdGUnXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+PC9heC10YWItaXRlbT5cbiAgICA8YXgtdGFiLWl0ZW0gdGV4dD1cIlRpbWVcIiBba2V5XT1cIid0aW1lJ1wiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPjwvYXgtdGFiLWl0ZW0+XG4gIDwvYXgtdGFicz5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImF4LWNvbnRlbnRcIj5cbiAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXBhcnRcIiAqbmdJZj1cIl9hY3RpdmVQYXJ0ID09PSAnZGF0ZSdcIj5cbiAgICA8YXgtY2FsZW5kYXJcbiAgICAgICNjYWxlbmRhclxuICAgICAgaWQ9XCJjYWxlbmRhclwiXG4gICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgIFtuZ01vZGVsXT1cImVkaXRpbmdEYXRlT2JqLmRhdGVcIlxuICAgICAgW21pblZhbHVlXT1cIm1pblZhbHVlXCJcbiAgICAgIFttYXhWYWx1ZV09XCJtYXhWYWx1ZVwiXG4gICAgICBbZGlzYWJsZWREYXRlc109XCJkaXNhYmxlZERhdGVzXCJcbiAgICAgIFtob2xpZGF5RGF0ZXNdPVwiaG9saWRheURhdGVzXCJcbiAgICAgIFtkZXB0aF09XCJkZXB0aFwiXG4gICAgICAob25OYXZpZ2F0ZSk9XCJfaGFuZGxlQ2FsZW5kYXJPbk5hdmlnYXRlKCRldmVudClcIlxuICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVDYWxlbmRhck9uVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgW3R5cGVdPVwidHlwZVwiXG4gICAgPlxuICAgIDwvYXgtY2FsZW5kYXI+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiYXgtcGlja2VyLXBhcnRcIiAqbmdJZj1cIl9hY3RpdmVQYXJ0ID09PSAndGltZSdcIj5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtaGVhZGVyXCI+XG4gICAgICB7eyBlZGl0aW5nRGF0ZU9iaiB8IGF4RGF0ZTogZm9ybWF0IDogdHlwZSB9fVxuICAgIDwvZGl2PlxuICAgIDxheC1waWNrZXI+XG4gICAgICA8YXgtcGlja2VyLWNvbHVtblxuICAgICAgICBbdGl0bGVdPVwiJ2RhdGVUaW1lLmhvdXInIHwgdHJhbnNcIlxuICAgICAgICBbaXRlbXNdPVwiaG91cnNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5ob3VyXCJcbiAgICAgICAgKG9uVmFsdWVDaGFuZ2VkKT1cIl9oYW5kbGVQaWNrZXJPblZhbHVlQ2hhbmdlZCgkZXZlbnQsICdob3VyJylcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICAgICBbcmVhZG9ubHldPVwicmVhZG9ubHlcIlxuICAgICAgICAqbmdJZj1cIl9wYXJ0cy5ob3VyLmVuYWJsZWRcIlxuICAgICAgPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgIDxheC1waWNrZXItY29sdW1uXG4gICAgICAgIFt0aXRsZV09XCInZGF0ZVRpbWUubWludXRlJyB8IHRyYW5zXCJcbiAgICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5taW51dGVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ21pbnV0ZScpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgKm5nSWY9XCJfcGFydHMubWludXRlLmVuYWJsZWRcIlxuICAgICAgPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICAgIDxheC1waWNrZXItY29sdW1uXG4gICAgICAgIFt0aXRsZV09XCInZGF0ZVRpbWUuc2Vjb25kJyB8IHRyYW5zXCJcbiAgICAgICAgW2l0ZW1zXT1cIm1pbnV0ZXNcIlxuICAgICAgICBbbmdNb2RlbF09XCJlZGl0aW5nRGF0ZU9iai5zZWNvbmRcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVBpY2tlck9uVmFsdWVDaGFuZ2VkKCRldmVudCwgJ3NlY29uZCcpXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAgICAgW3JlYWRvbmx5XT1cInJlYWRvbmx5XCJcbiAgICAgICAgKm5nSWY9XCJfcGFydHMuc2Vjb25kLmVuYWJsZWRcIlxuICAgICAgPjwvYXgtcGlja2VyLWNvbHVtbj5cbiAgICA8L2F4LXBpY2tlcj5cbiAgPC9kaXY+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJheC1mb290ZXJcIiAqbmdJZj1cIiFkaXNhYmxlZCAmJiAhcmVhZG9ubHkgJiYgKGN1cnJlbnRUaW1lQnV0dG9uIHx8IF9oYXNUaW1lUGFydClcIj5cbiAgPGRpdj5cbiAgICA8YXgtYnV0dG9uXG4gICAgICBbdGV4dF09XCJidXR0b25UZXh0XCJcbiAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZU5vd0NsaWNrKClcIlxuICAgICAgKm5nSWY9XCJjdXJyZW50VGltZUJ1dHRvblwiXG4gICAgPjwvYXgtYnV0dG9uPlxuICA8L2Rpdj5cblxuICA8ZGl2PlxuICAgIDxheC1idXR0b25cbiAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICBbdGV4dF09XCInZGF0ZVRpbWUuc2V0JyB8IHRyYW5zXCJcbiAgICAgICpuZ0lmPVwiX2hhc1RpbWVQYXJ0XCJcbiAgICAgIGNsYXNzPVwiYXgtc21cIlxuICAgICAgKG9uQ2xpY2spPVwiX2hhbmRsZVNldENsaWNrKClcIlxuICAgID48L2F4LWJ1dHRvbj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==