@acorex/components 6.1.0 → 6.1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (366) hide show
  1. package/alert/public-api.d.ts +1 -0
  2. package/alert/src/alert-button.directive.d.ts +8 -0
  3. package/alert/src/alert.component.d.ts +18 -10
  4. package/alert/src/alert.module.d.ts +4 -3
  5. package/badge/src/badge.component.d.ts +2 -1
  6. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +6 -7
  7. package/button/src/button-group.component.d.ts +6 -4
  8. package/button/src/button-item.component.d.ts +6 -4
  9. package/calendar/src/calendar.component.d.ts +4 -4
  10. package/calendar/src/calendar.module.d.ts +3 -4
  11. package/color-picker/src/color-picker.component.d.ts +22 -21
  12. package/common/public-api.d.ts +1 -0
  13. package/common/src/common.module.d.ts +4 -3
  14. package/common/src/debounce-time.directive.d.ts +17 -0
  15. package/common/src/events.class.d.ts +1 -1
  16. package/data-table/src/data-table.component.d.ts +3 -3
  17. package/date-picker/src/datepicker.component.d.ts +15 -12
  18. package/decorators/public-api.d.ts +1 -0
  19. package/decorators/src/decorators.module.d.ts +7 -6
  20. package/decorators/src/sub-title.component.d.ts +9 -0
  21. package/esm2020/action-sheet/src/action-sheet-item.component.mjs +3 -3
  22. package/esm2020/action-sheet/src/action-sheet.component.mjs +3 -3
  23. package/esm2020/action-sheet/src/action-sheet.module.mjs +4 -4
  24. package/esm2020/alert/public-api.mjs +2 -1
  25. package/esm2020/alert/src/alert-button.directive.mjs +19 -0
  26. package/esm2020/alert/src/alert.component.mjs +80 -51
  27. package/esm2020/alert/src/alert.module.mjs +7 -6
  28. package/esm2020/avatar/src/avatar-group.component.mjs +3 -3
  29. package/esm2020/avatar/src/avatar.component.mjs +3 -3
  30. package/esm2020/avatar/src/avatar.module.mjs +4 -4
  31. package/esm2020/badge/src/badge.component.mjs +3 -3
  32. package/esm2020/badge/src/badge.module.mjs +4 -4
  33. package/esm2020/breadcrumbs/src/breadcrumbs-item.component.mjs +3 -3
  34. package/esm2020/breadcrumbs/src/breadcrumbs.component.mjs +3 -3
  35. package/esm2020/breadcrumbs/src/breadcrumbs.module.mjs +4 -4
  36. package/esm2020/button/src/button-group.component.mjs +3 -3
  37. package/esm2020/button/src/button-item.component.mjs +3 -3
  38. package/esm2020/button/src/button.component.mjs +3 -3
  39. package/esm2020/button/src/button.module.mjs +4 -4
  40. package/esm2020/calendar/src/calendar.class.mjs +3 -3
  41. package/esm2020/calendar/src/calendar.component.mjs +10 -12
  42. package/esm2020/calendar/src/calendar.module.mjs +6 -7
  43. package/esm2020/carousel/src/carousel-arrows.component.mjs +3 -3
  44. package/esm2020/carousel/src/carousel-item.component.mjs +3 -3
  45. package/esm2020/carousel/src/carousel-pager.component.mjs +3 -3
  46. package/esm2020/carousel/src/carousel.class.mjs +3 -3
  47. package/esm2020/carousel/src/carousel.component.mjs +3 -3
  48. package/esm2020/carousel/src/carousel.module.mjs +4 -4
  49. package/esm2020/checkbox/src/checkbox.component.mjs +3 -3
  50. package/esm2020/checkbox/src/checkbox.module.mjs +4 -4
  51. package/esm2020/collapse/src/collapse-group.component.mjs +3 -3
  52. package/esm2020/collapse/src/collapse.component.mjs +3 -3
  53. package/esm2020/collapse/src/collapse.module.mjs +4 -4
  54. package/esm2020/color-palette/src/color-palette-input.component.mjs +4 -4
  55. package/esm2020/color-palette/src/color-palette-picker.component.mjs +3 -3
  56. package/esm2020/color-palette/src/color-palette-preview.component.mjs +3 -3
  57. package/esm2020/color-palette/src/color-palette-swatches.component.mjs +3 -3
  58. package/esm2020/color-palette/src/color-palette.class.mjs +6 -6
  59. package/esm2020/color-palette/src/color-palette.component.mjs +3 -3
  60. package/esm2020/color-palette/src/color-palette.module.mjs +4 -4
  61. package/esm2020/color-picker/src/color-picker.component.mjs +5 -5
  62. package/esm2020/color-picker/src/color-picker.module.mjs +4 -4
  63. package/esm2020/common/public-api.mjs +2 -1
  64. package/esm2020/common/src/auto-focus.directive.mjs +4 -4
  65. package/esm2020/common/src/common.module.mjs +10 -5
  66. package/esm2020/common/src/components.class.mjs +18 -18
  67. package/esm2020/common/src/custom-cdk-overlay.service.mjs +7 -7
  68. package/esm2020/common/src/debounce-time.directive.mjs +47 -0
  69. package/esm2020/common/src/events.class.mjs +1 -1
  70. package/esm2020/common/src/hotkey.directive.mjs +3 -3
  71. package/esm2020/common/src/hotkey.service.mjs +4 -4
  72. package/esm2020/common/src/infinite-scroll.directive.mjs +3 -3
  73. package/esm2020/common/src/overlay.service.mjs +3 -3
  74. package/esm2020/common/src/responsive.directive.mjs +3 -3
  75. package/esm2020/context-menu/src/context-menu.component.mjs +3 -3
  76. package/esm2020/context-menu/src/context-menu.module.mjs +4 -4
  77. package/esm2020/data-pager/src/data-pager-base.component.mjs +6 -6
  78. package/esm2020/data-pager/src/data-pager-info.component.mjs +3 -3
  79. package/esm2020/data-pager/src/data-pager-input-selector.component.mjs +8 -7
  80. package/esm2020/data-pager/src/data-pager-next-buttons.components.mjs +14 -13
  81. package/esm2020/data-pager/src/data-pager-numeric-selector.component.mjs +10 -10
  82. package/esm2020/data-pager/src/data-pager-pagesize-dropdown.component.mjs +3 -3
  83. package/esm2020/data-pager/src/data-pager-prev-buttons.component.mjs +14 -13
  84. package/esm2020/data-pager/src/data-pager.component.mjs +7 -6
  85. package/esm2020/data-pager/src/data-pager.module.mjs +4 -4
  86. package/esm2020/data-table/src/data-column-cell-template.directive.mjs +3 -3
  87. package/esm2020/data-table/src/data-column.directive.mjs +3 -3
  88. package/esm2020/data-table/src/data-table.component.mjs +5 -4
  89. package/esm2020/data-table/src/data-table.module.mjs +4 -4
  90. package/esm2020/date-picker/src/datepicker.component.mjs +4 -5
  91. package/esm2020/date-picker/src/datepicker.module.mjs +4 -4
  92. package/esm2020/decorators/public-api.mjs +2 -1
  93. package/esm2020/decorators/src/close-button.component.mjs +3 -3
  94. package/esm2020/decorators/src/content.component.mjs +3 -3
  95. package/esm2020/decorators/src/decorators.module.mjs +10 -6
  96. package/esm2020/decorators/src/footer.component.mjs +3 -3
  97. package/esm2020/decorators/src/header.component.mjs +3 -3
  98. package/esm2020/decorators/src/icon.component.mjs +3 -3
  99. package/esm2020/decorators/src/overlay.component.mjs +3 -3
  100. package/esm2020/decorators/src/placeholder.component.mjs +3 -3
  101. package/esm2020/decorators/src/prefix.component.mjs +3 -3
  102. package/esm2020/decorators/src/sub-title.component.mjs +27 -0
  103. package/esm2020/decorators/src/suffix.component.mjs +3 -3
  104. package/esm2020/decorators/src/text.component.mjs +3 -3
  105. package/esm2020/decorators/src/title.component.mjs +3 -3
  106. package/esm2020/dialog/src/dialog.component.mjs +3 -3
  107. package/esm2020/dialog/src/dialog.module.mjs +4 -4
  108. package/esm2020/dialog/src/dialog.service.mjs +3 -3
  109. package/esm2020/drawer/src/drawer-container.component.mjs +3 -3
  110. package/esm2020/drawer/src/drawer.component.mjs +3 -3
  111. package/esm2020/drawer/src/drawer.module.mjs +4 -4
  112. package/esm2020/dropdown/src/dropdown-panel.component.mjs +3 -3
  113. package/esm2020/dropdown/src/dropdown.module.mjs +4 -4
  114. package/esm2020/form/src/form-field.component.mjs +3 -3
  115. package/esm2020/form/src/form-hint.component.mjs +3 -3
  116. package/esm2020/form/src/form.component.mjs +3 -3
  117. package/esm2020/form/src/form.module.mjs +4 -4
  118. package/esm2020/form/src/validation-rule.widget.mjs +13 -8
  119. package/esm2020/form/src/validation-summary.component.mjs +25 -17
  120. package/esm2020/image/src/image.component.mjs +3 -3
  121. package/esm2020/image/src/image.module.mjs +4 -4
  122. package/esm2020/label/src/label.component.mjs +3 -3
  123. package/esm2020/label/src/label.module.mjs +4 -4
  124. package/esm2020/loading/src/loading-spinner.component.mjs +3 -3
  125. package/esm2020/loading/src/loading.component.mjs +3 -3
  126. package/esm2020/loading/src/loading.directive.mjs +3 -3
  127. package/esm2020/loading/src/loading.module.mjs +4 -4
  128. package/esm2020/loading/src/loading.service.mjs +3 -3
  129. package/esm2020/menu/src/menu.component.mjs +3 -3
  130. package/esm2020/menu/src/menu.module.mjs +4 -4
  131. package/esm2020/mixin/src/base-components.class.mjs +9 -4
  132. package/esm2020/mixin/src/textbox-mixin.class.mjs +52 -83
  133. package/esm2020/mixin/src/value-mixin.class.mjs +2 -1
  134. package/esm2020/number-box/src/number-box.component.mjs +5 -6
  135. package/esm2020/number-box/src/number-box.module.mjs +4 -4
  136. package/esm2020/page/src/base-page.class.mjs +3 -3
  137. package/esm2020/page/src/page.component.mjs +3 -3
  138. package/esm2020/page/src/page.module.mjs +4 -4
  139. package/esm2020/password-box/src/password-box.component.mjs +5 -5
  140. package/esm2020/password-box/src/password-box.module.mjs +4 -4
  141. package/esm2020/popover/src/popover.component.mjs +3 -3
  142. package/esm2020/popover/src/popover.module.mjs +4 -4
  143. package/esm2020/popup/src/popup.component.mjs +3 -3
  144. package/esm2020/popup/src/popup.module.mjs +4 -4
  145. package/esm2020/popup/src/popup.service.mjs +3 -3
  146. package/esm2020/progress-bar/src/progress-bar.component.mjs +3 -3
  147. package/esm2020/progress-bar/src/progress-bar.module.mjs +4 -4
  148. package/esm2020/radio/src/radio.component.mjs +3 -3
  149. package/esm2020/radio/src/radio.module.mjs +4 -4
  150. package/esm2020/range-slider/src/range-slider.component.mjs +3 -3
  151. package/esm2020/range-slider/src/range-slider.module.mjs +4 -4
  152. package/esm2020/rating/src/rating.component.mjs +3 -3
  153. package/esm2020/rating/src/rating.component.module.mjs +4 -4
  154. package/esm2020/result/src/result.component.mjs +3 -3
  155. package/esm2020/result/src/result.module.mjs +4 -4
  156. package/esm2020/search-box/src/search-box.component.mjs +6 -5
  157. package/esm2020/search-box/src/search-box.module.mjs +4 -4
  158. package/esm2020/select-box/src/selectbox.component.mjs +7 -7
  159. package/esm2020/select-box/src/selectbox.module.mjs +4 -4
  160. package/esm2020/selection-list/src/selection-list.component.mjs +21 -10
  161. package/esm2020/selection-list/src/selection-list.module.mjs +4 -4
  162. package/esm2020/switch/src/switch.component.mjs +3 -3
  163. package/esm2020/switch/src/switch.module.mjs +4 -4
  164. package/esm2020/tabs/src/tab-content.directive.mjs +3 -3
  165. package/esm2020/tabs/src/tab-item.component.mjs +3 -3
  166. package/esm2020/tabs/src/tabs.component.mjs +3 -3
  167. package/esm2020/tabs/src/tabs.module.mjs +4 -4
  168. package/esm2020/textarea/src/textarea.component.mjs +5 -5
  169. package/esm2020/textarea/src/textarea.module.mjs +4 -4
  170. package/esm2020/textbox/public-api.mjs +2 -2
  171. package/esm2020/textbox/src/mask-options.directive.mjs +22 -0
  172. package/esm2020/textbox/src/textbox.component.mjs +46 -26
  173. package/esm2020/textbox/src/textbox.module.mjs +14 -10
  174. package/esm2020/time-box/src/time-box.component.mjs +6 -6
  175. package/esm2020/time-box/src/time-box.module.mjs +4 -4
  176. package/esm2020/toast/src/toast.component.mjs +5 -5
  177. package/esm2020/toast/src/toast.module.mjs +4 -4
  178. package/esm2020/toast/src/toast.service.mjs +3 -3
  179. package/esm2020/tooltip/src/tooltip.component.mjs +3 -3
  180. package/esm2020/tooltip/src/tooltip.directive.mjs +3 -3
  181. package/esm2020/tooltip/src/tooltip.module.mjs +4 -4
  182. package/esm2020/tree-view/src/tree-view.component.mjs +3 -3
  183. package/esm2020/tree-view/src/tree-view.module.mjs +4 -4
  184. package/esm2020/uploader/src/uploader.component.mjs +3 -3
  185. package/esm2020/uploader/src/uploader.module.mjs +4 -4
  186. package/fesm2015/acorex-components-action-sheet.mjs +10 -10
  187. package/fesm2015/acorex-components-alert.mjs +106 -58
  188. package/fesm2015/acorex-components-alert.mjs.map +1 -1
  189. package/fesm2015/acorex-components-avatar.mjs +10 -10
  190. package/fesm2015/acorex-components-badge.mjs +7 -7
  191. package/fesm2015/acorex-components-breadcrumbs.mjs +10 -10
  192. package/fesm2015/acorex-components-button.mjs +13 -13
  193. package/fesm2015/acorex-components-calendar.mjs +17 -20
  194. package/fesm2015/acorex-components-calendar.mjs.map +1 -1
  195. package/fesm2015/acorex-components-carousel.mjs +19 -19
  196. package/fesm2015/acorex-components-checkbox.mjs +7 -7
  197. package/fesm2015/acorex-components-collapse.mjs +10 -10
  198. package/fesm2015/acorex-components-color-palette.mjs +26 -26
  199. package/fesm2015/acorex-components-color-palette.mjs.map +1 -1
  200. package/fesm2015/acorex-components-color-picker.mjs +8 -8
  201. package/fesm2015/acorex-components-color-picker.mjs.map +1 -1
  202. package/fesm2015/acorex-components-common.mjs +104 -55
  203. package/fesm2015/acorex-components-common.mjs.map +1 -1
  204. package/fesm2015/acorex-components-context-menu.mjs +7 -7
  205. package/fesm2015/acorex-components-data-pager.mjs +59 -57
  206. package/fesm2015/acorex-components-data-pager.mjs.map +1 -1
  207. package/fesm2015/acorex-components-data-table.mjs +14 -13
  208. package/fesm2015/acorex-components-data-table.mjs.map +1 -1
  209. package/fesm2015/acorex-components-date-picker.mjs +7 -8
  210. package/fesm2015/acorex-components-date-picker.mjs.map +1 -1
  211. package/fesm2015/acorex-components-decorators.mjs +65 -39
  212. package/fesm2015/acorex-components-decorators.mjs.map +1 -1
  213. package/fesm2015/acorex-components-dialog.mjs +10 -10
  214. package/fesm2015/acorex-components-drawer.mjs +10 -10
  215. package/fesm2015/acorex-components-dropdown.mjs +7 -7
  216. package/fesm2015/acorex-components-form.mjs +49 -36
  217. package/fesm2015/acorex-components-form.mjs.map +1 -1
  218. package/fesm2015/acorex-components-image.mjs +7 -7
  219. package/fesm2015/acorex-components-label.mjs +7 -7
  220. package/fesm2015/acorex-components-loading.mjs +16 -16
  221. package/fesm2015/acorex-components-menu.mjs +7 -7
  222. package/fesm2015/acorex-components-mixin.mjs +12 -36
  223. package/fesm2015/acorex-components-mixin.mjs.map +1 -1
  224. package/fesm2015/acorex-components-number-box.mjs +8 -9
  225. package/fesm2015/acorex-components-number-box.mjs.map +1 -1
  226. package/fesm2015/acorex-components-page.mjs +10 -10
  227. package/fesm2015/acorex-components-password-box.mjs +8 -8
  228. package/fesm2015/acorex-components-password-box.mjs.map +1 -1
  229. package/fesm2015/acorex-components-popover.mjs +7 -7
  230. package/fesm2015/acorex-components-popup.mjs +10 -10
  231. package/fesm2015/acorex-components-progress-bar.mjs +7 -7
  232. package/fesm2015/acorex-components-radio.mjs +7 -7
  233. package/fesm2015/acorex-components-range-slider.mjs +7 -7
  234. package/fesm2015/acorex-components-rating.mjs +7 -7
  235. package/fesm2015/acorex-components-result.mjs +7 -7
  236. package/fesm2015/acorex-components-search-box.mjs +9 -8
  237. package/fesm2015/acorex-components-search-box.mjs.map +1 -1
  238. package/fesm2015/acorex-components-select-box.mjs +10 -10
  239. package/fesm2015/acorex-components-select-box.mjs.map +1 -1
  240. package/fesm2015/acorex-components-selection-list.mjs +24 -13
  241. package/fesm2015/acorex-components-selection-list.mjs.map +1 -1
  242. package/fesm2015/acorex-components-switch.mjs +7 -7
  243. package/fesm2015/acorex-components-tabs.mjs +13 -13
  244. package/fesm2015/acorex-components-textarea.mjs +8 -8
  245. package/fesm2015/acorex-components-textarea.mjs.map +1 -1
  246. package/fesm2015/acorex-components-textbox.mjs +65 -42
  247. package/fesm2015/acorex-components-textbox.mjs.map +1 -1
  248. package/fesm2015/acorex-components-time-box.mjs +9 -9
  249. package/fesm2015/acorex-components-time-box.mjs.map +1 -1
  250. package/fesm2015/acorex-components-toast.mjs +11 -11
  251. package/fesm2015/acorex-components-toast.mjs.map +1 -1
  252. package/fesm2015/acorex-components-tooltip.mjs +10 -10
  253. package/fesm2015/acorex-components-tree-view.mjs +7 -7
  254. package/fesm2015/acorex-components-uploader.mjs +7 -7
  255. package/fesm2020/acorex-components-action-sheet.mjs +10 -10
  256. package/fesm2020/acorex-components-alert.mjs +104 -58
  257. package/fesm2020/acorex-components-alert.mjs.map +1 -1
  258. package/fesm2020/acorex-components-avatar.mjs +10 -10
  259. package/fesm2020/acorex-components-badge.mjs +7 -7
  260. package/fesm2020/acorex-components-breadcrumbs.mjs +10 -10
  261. package/fesm2020/acorex-components-button.mjs +13 -13
  262. package/fesm2020/acorex-components-calendar.mjs +17 -20
  263. package/fesm2020/acorex-components-calendar.mjs.map +1 -1
  264. package/fesm2020/acorex-components-carousel.mjs +19 -19
  265. package/fesm2020/acorex-components-checkbox.mjs +7 -7
  266. package/fesm2020/acorex-components-collapse.mjs +10 -10
  267. package/fesm2020/acorex-components-color-palette.mjs +26 -26
  268. package/fesm2020/acorex-components-color-palette.mjs.map +1 -1
  269. package/fesm2020/acorex-components-color-picker.mjs +8 -8
  270. package/fesm2020/acorex-components-color-picker.mjs.map +1 -1
  271. package/fesm2020/acorex-components-common.mjs +103 -55
  272. package/fesm2020/acorex-components-common.mjs.map +1 -1
  273. package/fesm2020/acorex-components-context-menu.mjs +7 -7
  274. package/fesm2020/acorex-components-data-pager.mjs +59 -57
  275. package/fesm2020/acorex-components-data-pager.mjs.map +1 -1
  276. package/fesm2020/acorex-components-data-table.mjs +14 -13
  277. package/fesm2020/acorex-components-data-table.mjs.map +1 -1
  278. package/fesm2020/acorex-components-date-picker.mjs +7 -8
  279. package/fesm2020/acorex-components-date-picker.mjs.map +1 -1
  280. package/fesm2020/acorex-components-decorators.mjs +65 -39
  281. package/fesm2020/acorex-components-decorators.mjs.map +1 -1
  282. package/fesm2020/acorex-components-dialog.mjs +10 -10
  283. package/fesm2020/acorex-components-drawer.mjs +10 -10
  284. package/fesm2020/acorex-components-dropdown.mjs +7 -7
  285. package/fesm2020/acorex-components-form.mjs +49 -36
  286. package/fesm2020/acorex-components-form.mjs.map +1 -1
  287. package/fesm2020/acorex-components-image.mjs +7 -7
  288. package/fesm2020/acorex-components-label.mjs +7 -7
  289. package/fesm2020/acorex-components-loading.mjs +16 -16
  290. package/fesm2020/acorex-components-menu.mjs +7 -7
  291. package/fesm2020/acorex-components-mixin.mjs +60 -84
  292. package/fesm2020/acorex-components-mixin.mjs.map +1 -1
  293. package/fesm2020/acorex-components-number-box.mjs +8 -9
  294. package/fesm2020/acorex-components-number-box.mjs.map +1 -1
  295. package/fesm2020/acorex-components-page.mjs +10 -10
  296. package/fesm2020/acorex-components-password-box.mjs +8 -8
  297. package/fesm2020/acorex-components-password-box.mjs.map +1 -1
  298. package/fesm2020/acorex-components-popover.mjs +7 -7
  299. package/fesm2020/acorex-components-popup.mjs +10 -10
  300. package/fesm2020/acorex-components-progress-bar.mjs +7 -7
  301. package/fesm2020/acorex-components-radio.mjs +7 -7
  302. package/fesm2020/acorex-components-range-slider.mjs +7 -7
  303. package/fesm2020/acorex-components-rating.mjs +7 -7
  304. package/fesm2020/acorex-components-result.mjs +7 -7
  305. package/fesm2020/acorex-components-search-box.mjs +9 -8
  306. package/fesm2020/acorex-components-search-box.mjs.map +1 -1
  307. package/fesm2020/acorex-components-select-box.mjs +10 -10
  308. package/fesm2020/acorex-components-select-box.mjs.map +1 -1
  309. package/fesm2020/acorex-components-selection-list.mjs +24 -13
  310. package/fesm2020/acorex-components-selection-list.mjs.map +1 -1
  311. package/fesm2020/acorex-components-switch.mjs +7 -7
  312. package/fesm2020/acorex-components-tabs.mjs +13 -13
  313. package/fesm2020/acorex-components-textarea.mjs +8 -8
  314. package/fesm2020/acorex-components-textarea.mjs.map +1 -1
  315. package/fesm2020/acorex-components-textbox.mjs +64 -42
  316. package/fesm2020/acorex-components-textbox.mjs.map +1 -1
  317. package/fesm2020/acorex-components-time-box.mjs +9 -9
  318. package/fesm2020/acorex-components-time-box.mjs.map +1 -1
  319. package/fesm2020/acorex-components-toast.mjs +11 -11
  320. package/fesm2020/acorex-components-toast.mjs.map +1 -1
  321. package/fesm2020/acorex-components-tooltip.mjs +10 -10
  322. package/fesm2020/acorex-components-tree-view.mjs +7 -7
  323. package/fesm2020/acorex-components-uploader.mjs +7 -7
  324. package/form/src/validation-rule.widget.d.ts +1 -0
  325. package/form/src/validation-summary.component.d.ts +4 -2
  326. package/mixin/src/base-components.class.d.ts +3 -1
  327. package/mixin/src/base-menu-mixin.class.d.ts +5 -4
  328. package/mixin/src/button-mixin.class.d.ts +2 -1
  329. package/mixin/src/clickable-mixin.class.d.ts +3 -4
  330. package/mixin/src/color-look-mixing.class.d.ts +2 -1
  331. package/mixin/src/datalist-component.class.d.ts +10 -9
  332. package/mixin/src/dropdown-mixin.class.d.ts +2 -1
  333. package/mixin/src/interactive-mixin.class.d.ts +5 -6
  334. package/mixin/src/loading-mixin.class.d.ts +2 -1
  335. package/mixin/src/mixin.class.d.ts +63 -47
  336. package/mixin/src/page-component.class.d.ts +2 -1
  337. package/mixin/src/selection-component.class.d.ts +3 -4
  338. package/mixin/src/sizable-mixin.class.d.ts +2 -1
  339. package/mixin/src/textbox-mixin.class.d.ts +5 -13
  340. package/mixin/src/value-mixin.class.d.ts +8 -7
  341. package/number-box/src/number-box.component.d.ts +1 -1
  342. package/package.json +4 -12
  343. package/password-box/src/password-box.component.d.ts +1 -1
  344. package/select-box/src/selectbox.component.d.ts +1 -1
  345. package/selection-list/src/selection-list.component.d.ts +5 -4
  346. package/tabs/src/tab-item.component.d.ts +2 -1
  347. package/textarea/src/textarea.component.d.ts +1 -1
  348. package/textbox/public-api.d.ts +1 -1
  349. package/textbox/src/mask-options.directive.d.ts +13 -0
  350. package/textbox/src/textbox.component.d.ts +12 -6
  351. package/textbox/src/textbox.module.d.ts +6 -5
  352. package/time-box/src/time-box.component.d.ts +2 -2
  353. package/esm2020/input-mask/acorex-components-input-mask.mjs +0 -5
  354. package/esm2020/input-mask/public-api.mjs +0 -3
  355. package/esm2020/input-mask/src/input-mask.component.mjs +0 -58
  356. package/esm2020/input-mask/src/input-mask.module.mjs +0 -24
  357. package/esm2020/textbox/src/mask-settings.directive.mjs +0 -23
  358. package/fesm2015/acorex-components-input-mask.mjs +0 -86
  359. package/fesm2015/acorex-components-input-mask.mjs.map +0 -1
  360. package/fesm2020/acorex-components-input-mask.mjs +0 -86
  361. package/fesm2020/acorex-components-input-mask.mjs.map +0 -1
  362. package/input-mask/index.d.ts +0 -5
  363. package/input-mask/public-api.d.ts +0 -2
  364. package/input-mask/src/input-mask.component.d.ts +0 -25
  365. package/input-mask/src/input-mask.module.d.ts +0 -10
  366. package/textbox/src/mask-settings.directive.d.ts +0 -8
@@ -31,14 +31,14 @@ export class AXButtonItemComponent extends AXBaseItemButtonMixin {
31
31
  .join(' ');
32
32
  }
33
33
  }
34
- AXButtonItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
- AXButtonItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXButtonItemComponent, selector: "ax-button-item", inputs: { text: "text", tooltip: "tooltip", selected: "selected", seperated: "seperated", name: "name", data: "data", color: "color" }, outputs: { onClick: "onClick" }, host: { attributes: { "tabindex": "0" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" }, classAttribute: "ax-button-item" }, usesInheritance: true, ngImport: i0, template: `
34
+ AXButtonItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
35
+ AXButtonItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXButtonItemComponent, selector: "ax-button-item", inputs: { text: "text", tooltip: "tooltip", selected: "selected", seperated: "seperated", name: "name", data: "data", color: "color" }, outputs: { onClick: "onClick" }, host: { attributes: { "tabindex": "0" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" }, classAttribute: "ax-button-item" }, usesInheritance: true, ngImport: i0, template: `
36
36
  <ng-content select="ax-prefix"> </ng-content>
37
37
  <ng-content select="ax-icon"> </ng-content>
38
38
  <span *ngIf="text">{{ text }}</span>
39
39
  <ng-content select="ax-suffix"> </ng-content>
40
40
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonItemComponent, decorators: [{
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonItemComponent, decorators: [{
42
42
  type: Component,
43
43
  args: [{
44
44
  selector: 'ax-button-item',
@@ -36,12 +36,12 @@ export class AXButtonComponent extends AXBaseButtonMixin {
36
36
  .map((c) => c[0]);
37
37
  }
38
38
  }
39
- AXButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
40
- AXButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXButtonComponent, selector: "ax-button", inputs: { disabled: "disabled", size: "size", tabIndex: "tabIndex", color: "color", look: "look", text: "text", toggleable: "toggleable", selected: "selected", type: "type" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange" }, host: { properties: { "class": "this.__hostClass" }, classAttribute: "ax-button" }, providers: [
39
+ AXButtonComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
40
+ AXButtonComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXButtonComponent, selector: "ax-button", inputs: { disabled: "disabled", size: "size", tabIndex: "tabIndex", color: "color", look: "look", text: "text", toggleable: "toggleable", selected: "selected", type: "type" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onClick: "onClick", selectedChange: "selectedChange", toggleableChange: "toggleableChange", lookChange: "lookChange", colorChange: "colorChange" }, host: { properties: { "class": "this.__hostClass" }, classAttribute: "ax-button" }, providers: [
41
41
  { provide: AXComponent, useExisting: AXButtonComponent },
42
42
  { provide: AXFocusableComponent, useExisting: AXButtonComponent },
43
43
  ], usesInheritance: true, ngImport: i0, template: "<button [disabled]=\"disabled\" [attr.tabindex]=\"tabIndex\" (click)=\"_emitOnClickEvent($event)\"\r\n (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\" [attr.type]=\"type\">\r\n <ng-content select=\"ax-prefix,ax-loading,ax-icon\">\r\n </ng-content>\r\n <span class=\"ax-button-text\" *ngIf=\"text\" >{{text}}</span>\r\n <ng-content select=\"ax-suffix\">\r\n </ng-content>\r\n <ng-content select=\"ax-dropdown-panel\">\r\n </ng-content>\r\n</button>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonComponent, decorators: [{
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonComponent, decorators: [{
45
45
  type: Component,
46
46
  args: [{ selector: 'ax-button', inputs: [
47
47
  'disabled',
@@ -13,14 +13,14 @@ const COMPONENT = [
13
13
  const MODULES = [CommonModule, AXDecoratorModule];
14
14
  export class AXButtonModule {
15
15
  }
16
- AXButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- AXButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXButtonModule, declarations: [AXButtonComponent,
16
+ AXButtonModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
+ AXButtonModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: AXButtonModule, declarations: [AXButtonComponent,
18
18
  AXButtonItemComponent,
19
19
  AXButtonGroupComponent], imports: [CommonModule, AXDecoratorModule], exports: [AXButtonComponent,
20
20
  AXButtonItemComponent,
21
21
  AXButtonGroupComponent] });
22
- AXButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonModule, imports: [MODULES] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXButtonModule, decorators: [{
22
+ AXButtonModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonModule, imports: [MODULES] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXButtonModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  imports: [MODULES],
@@ -77,9 +77,9 @@ export class AXCalendarBaseComponent extends AXBaseComponent {
77
77
  this._setOption({ name: 'holidayDates', value: v });
78
78
  }
79
79
  }
80
- AXCalendarBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
81
- AXCalendarBaseComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarBaseComponent });
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarBaseComponent, decorators: [{
80
+ AXCalendarBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarBaseComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Injectable });
81
+ AXCalendarBaseComponent.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarBaseComponent });
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarBaseComponent, decorators: [{
83
83
  type: Injectable
84
84
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { onSlotClick: [{
85
85
  type: Output
@@ -3,19 +3,18 @@ import { Component, ViewEncapsulation, ChangeDetectionStrategy, HostBinding, Inp
3
3
  import { AXDateTime, AXDateTimeRange } from '@acorex/core/dateTime';
4
4
  import { AXCalendarBaseComponent } from './calendar.class';
5
5
  import { _ClickableComponenetMixin, _InteractiveComponenetMixin, _ValueComponenetMixin, } from '@acorex/components/mixin';
6
- import { AXPlatform } from '@acorex/core/platform';
7
6
  import { AXConfig } from '@acorex/core/config';
7
+ import { AXTranslator } from '@acorex/core/translation';
8
8
  import * as i0 from "@angular/core";
9
9
  import * as i1 from "@angular/common";
10
- import * as i2 from "@acorex/components/button";
11
- import * as i3 from "@acorex/components/decorators";
10
+ import * as i2 from "@acorex/components/decorators";
12
11
  export const AXCalendarComponentMixin = _ClickableComponenetMixin(_InteractiveComponenetMixin(_ValueComponenetMixin(AXCalendarBaseComponent)));
13
12
  export class AXCalendarComponent extends AXCalendarComponentMixin {
14
13
  constructor(elementRef, cdr) {
15
14
  super(elementRef, cdr);
16
15
  this.cdr = cdr;
17
16
  this.interface = 'calendar';
18
- this.rtl = new AXPlatform().isRtl();
17
+ this.todayText = AXTranslator.get('dateTime.today');
19
18
  this._today = new AXDateTime(new Date(), this.type);
20
19
  this._navText = '';
21
20
  this._todayText = '';
@@ -161,12 +160,12 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
161
160
  this._todayText = this._today.format();
162
161
  }
163
162
  }
164
- _handlePrevClick(e) {
163
+ _handlePrevClick() {
165
164
  this._isUserInteraction = true;
166
165
  this.prev();
167
166
  this._isUserInteraction = false;
168
167
  }
169
- _handleNextClick(e) {
168
+ _handleNextClick() {
170
169
  this._isUserInteraction = true;
171
170
  this.next();
172
171
  this._isUserInteraction = false;
@@ -275,7 +274,6 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
275
274
  get __hostClass() {
276
275
  const _classes = {
277
276
  'ax-state-disabled': this.disabled,
278
- 'ax-rtl': this.rtl,
279
277
  };
280
278
  return Object.entries(_classes)
281
279
  .filter((c) => c[1])
@@ -347,9 +345,9 @@ export class AXCalendarComponent extends AXCalendarComponentMixin {
347
345
  }
348
346
  }
349
347
  }
350
- AXCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
351
- AXCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCalendarComponent, selector: "ax-calendar", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked", disabled: "disabled", tabIndex: "tabIndex", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", type: "type", holidayDates: "holidayDates", interface: "interface" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate" }, host: { properties: { "class": "this.__hostClass" }, classAttribute: "ax-calendar" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\r\n <div class=\"ax-calendar-header\">\r\n <div>\r\n <ng-container *ngIf=\"activeView=='days'; else elseTemplate\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText.split(' ')[1]\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText.split(' ')[0]\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n </ng-template>\r\n </div>\r\n <div class=\"ax-calendar-header-buttons\">\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\"\r\n [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\"\r\n [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron \"></ax-icon>\r\n\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-footer\">\r\n <ax-button class=\"dark:ax-text-danger\" [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\"\r\n (onClick)=\"_handleGoToday()\" [disabled]=\"disabled || isDisabled(_today)\"></ax-button>\r\n </div>\r\n</ng-container>\r\n<ng-template #pickerTemplate>\r\n <div class=\"ax-calendar-picker\">\r\n //TODO: picker\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i3.AXDecoratorPrefixComponent, selector: "ax-prefix" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
352
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarComponent, decorators: [{
348
+ AXCalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
349
+ AXCalendarComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCalendarComponent, selector: "ax-calendar", inputs: { readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked", disabled: "disabled", tabIndex: "tabIndex", depth: "depth", activeView: "activeView", min: "min", max: "max", disabledDates: "disabledDates", type: "type", holidayDates: "holidayDates", interface: "interface" }, outputs: { valueChange: "valueChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", depthChange: "depthChange", typeChange: "typeChange", disabledDatesChange: "disabledDatesChange", holidayDatesChange: "holidayDatesChange", onNavigate: "onNavigate" }, host: { properties: { "class": "this.__hostClass" }, classAttribute: "ax-calendar" }, usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\r\n <div class=\"ax-calendar-header\">\r\n <div class=\"ax-flex ax-items-center\">\r\n <ng-container *ngIf=\"activeView=='days'; else elseTemplate\">\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText.split(' ')[1]}}</button>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText.split(' ')[0]}}</button>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText}}</button>\r\n </ng-template>\r\n </div>\r\n <div class=\"ax-calendar-header-buttons\">\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\" (click)=\"_handlePrevClick()\">\r\n <ax-icon icon=\"ax-ic\" [ngClass]=\"{'ax-ic-chevron-left': !_isRtl(),'ax-ic-chevron-right': _isRtl()}\"></ax-icon>\r\n </button>\r\n <button [disabled]=\"disabled || isDisabled(_today)\" class=\"ax-button-control !ax-text-primary-500\" (click)=\"_handleGoToday()\">\r\n {{ todayText }}\r\n </button>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\" (click)=\"_handleNextClick()\">\r\n <ax-icon icon=\"ax-ic\" [ngClass]=\"{'ax-ic-chevron-left': _isRtl(),'ax-ic-chevron-right': !_isRtl()}\"></ax-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-container>\r\n<ng-template #pickerTemplate>\r\n <div class=\"ax-calendar-picker\">\r\n //TODO: picker\r\n </div>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i1.NgSwitchDefault, selector: "[ngSwitchDefault]" }, { kind: "component", type: i2.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
350
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarComponent, decorators: [{
353
351
  type: Component,
354
352
  args: [{ selector: 'ax-calendar', inputs: [
355
353
  'readonly',
@@ -376,11 +374,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
376
374
  'disabledDatesChange',
377
375
  'holidayDatesChange',
378
376
  'onNavigate',
379
- ], host: { class: 'ax-calendar' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\r\n <div class=\"ax-calendar-header\">\r\n <div>\r\n <ng-container *ngIf=\"activeView=='days'; else elseTemplate\">\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText.split(' ')[1]\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText.split(' ')[0]\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <ax-button class=\"ax-nav-button\" [text]=\"_navText\" color=\"light\" look=\"blank\"\r\n (onClick)=\"_handleNavClick($event)\" [disabled]=\"disabled\">\r\n </ax-button>\r\n </ng-template>\r\n </div>\r\n <div class=\"ax-calendar-header-buttons\">\r\n <ax-button class=\"ax-prev-button\" color=\"light\" look=\"blank\" (onClick)=\"_handlePrevClick($event)\"\r\n [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron\"></ax-icon>\r\n </ax-prefix>\r\n </ax-button>\r\n <ax-button class=\"ax-next-button\" color=\"light\" look=\"blank\" (onClick)=\"_handleNextClick($event)\"\r\n [disabled]=\"disabled\">\r\n <ax-prefix>\r\n <ax-icon icon=\"ax-ic ax-ic-chevron \"></ax-icon>\r\n\r\n </ax-prefix>\r\n </ax-button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-footer\">\r\n <ax-button class=\"dark:ax-text-danger\" [text]=\"_todayText\" color=\"dark\" look=\"blank\" size=\"sm\"\r\n (onClick)=\"_handleGoToday()\" [disabled]=\"disabled || isDisabled(_today)\"></ax-button>\r\n </div>\r\n</ng-container>\r\n<ng-template #pickerTemplate>\r\n <div class=\"ax-calendar-picker\">\r\n //TODO: picker\r\n </div>\r\n</ng-template>" }]
377
+ ], host: { class: 'ax-calendar' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container *ngIf=\"interface === 'calendar'; else pickerTemplate\">\r\n <div class=\"ax-calendar-header\">\r\n <div class=\"ax-flex ax-items-center\">\r\n <ng-container *ngIf=\"activeView=='days'; else elseTemplate\">\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText.split(' ')[1]}}</button>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText.split(' ')[0]}}</button>\r\n </ng-container>\r\n <ng-template #elseTemplate>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\"\r\n (click)=\"_handleNavClick($event)\">{{_navText}}</button>\r\n </ng-template>\r\n </div>\r\n <div class=\"ax-calendar-header-buttons\">\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\" (click)=\"_handlePrevClick()\">\r\n <ax-icon icon=\"ax-ic\" [ngClass]=\"{'ax-ic-chevron-left': !_isRtl(),'ax-ic-chevron-right': _isRtl()}\"></ax-icon>\r\n </button>\r\n <button [disabled]=\"disabled || isDisabled(_today)\" class=\"ax-button-control !ax-text-primary-500\" (click)=\"_handleGoToday()\">\r\n {{ todayText }}\r\n </button>\r\n <button [disabled]=\"disabled\" class=\"ax-button-control\" (click)=\"_handleNextClick()\">\r\n <ax-icon icon=\"ax-ic\" [ngClass]=\"{'ax-ic-chevron-left': _isRtl(),'ax-ic-chevron-right': !_isRtl()}\"></ax-icon>\r\n </button>\r\n </div>\r\n\r\n </div>\r\n <div class=\"ax-calendar-body\">\r\n <div [ngSwitch]=\"activeView\">\r\n <ng-container *ngSwitchCase=\"'years'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-year\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'months'\">\r\n <div class=\"ax-calendar-slots ax-calendar-slots-month\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchDefault>\r\n <div class=\"ax-calendar-week\">\r\n <div *ngFor=\"let d of _dayNames\">{{d}}</div>\r\n </div>\r\n <div class=\"ax-calendar-slots ax-calendar-slots-day\">\r\n <div tabindex=\"0\" *ngFor=\"let slot of _slots\" [title]=\"slot.tooltip\" [ngClass]=\"slot.cssClass\"\r\n (click)=\"_handleSlotClick($event,slot)\">{{slot.text}}</div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n</ng-container>\r\n<ng-template #pickerTemplate>\r\n <div class=\"ax-calendar-picker\">\r\n //TODO: picker\r\n </div>\r\n</ng-template>" }]
380
378
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { interface: [{
381
379
  type: Input
382
380
  }], __hostClass: [{
383
381
  type: HostBinding,
384
382
  args: ['class']
385
383
  }] } });
386
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixXQUFXLEVBQ1gsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUVMLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IscUJBQXFCLEdBQ3RCLE1BQU0sMEJBQTBCLENBQUM7QUFDbEMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQ25ELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7Ozs7QUFFL0MsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcseUJBQXlCLENBQy9ELDJCQUEyQixDQUN6QixxQkFBcUIsQ0FBTSx1QkFBdUIsQ0FBQyxDQUNwRCxDQUNGLENBQUM7QUFvQ0YsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHdCQUF3QjtJQW9EL0QsWUFBWSxVQUFzQixFQUFVLEdBQXNCO1FBQ2hFLEtBQUssQ0FBQyxVQUFVLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFEbUIsUUFBRyxHQUFILEdBQUcsQ0FBbUI7UUFqRGxFLGNBQVMsR0FBMEIsVUFB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SSxDQUFDLENBQUM7Z0JBQ3hELElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDakMsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDOztnSEFsWVUsbUJBQW1CO29HQUFuQixtQkFBbUIscXZCQy9EaEMsc2tIQXFFYzsyRkRORCxtQkFBbUI7a0JBbEMvQixTQUFTOytCQUNFLGFBQWEsVUFFZjt3QkFDTixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxNQUFNO3dCQUNOLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsZUFBZTt3QkFDZixNQUFNO3dCQUNOLGNBQWM7cUJBQ2YsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYixRQUNLLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxpQkFDZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lJQUsvQyxTQUFTO3NCQURSLEtBQUs7Z0JBdVNNLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGVUaW1lJztcclxuaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBBWENhbGVuZGFyQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCxcclxuICBfQ2xpY2thYmxlQ29tcG9uZW5ldE1peGluLFxyXG4gIF9JbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbixcclxuICBfVmFsdWVDb21wb25lbmV0TWl4aW4sXHJcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbmZpZyc7XHJcblxyXG5leHBvcnQgY29uc3QgQVhDYWxlbmRhckNvbXBvbmVudE1peGluID0gX0NsaWNrYWJsZUNvbXBvbmVuZXRNaXhpbihcclxuICBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4oXHJcbiAgICBfVmFsdWVDb21wb25lbmV0TWl4aW48YW55PihBWENhbGVuZGFyQmFzZUNvbXBvbmVudClcclxuICApXHJcbik7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICdhbGxvd051bGwnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgICduYW1lJyxcclxuICAgICdjaGVja2VkJyxcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ2RlcHRoJyxcclxuICAgICdhY3RpdmVWaWV3JyxcclxuICAgICdtaW4nLFxyXG4gICAgJ21heCcsXHJcbiAgICAnZGlzYWJsZWREYXRlcycsXHJcbiAgICAndHlwZScsXHJcbiAgICAnaG9saWRheURhdGVzJyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAnZGVwdGhDaGFuZ2UnLFxyXG4gICAgJ3R5cGVDaGFuZ2UnLFxyXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxyXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXHJcbiAgICAnb25OYXZpZ2F0ZScsXHJcbiAgXSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtY2FsZW5kYXInIH0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBBWENhbGVuZGFyQ29tcG9uZW50TWl4aW4ge1xyXG5cclxuICBASW5wdXQoKVxyXG4gIGludGVyZmFjZTogJ2NhbGVuZGFyJyB8ICdwaWNrZXInID0gJ2NhbGVuZGFyJztcclxuXHJcbiAgcnRsOiBib29sZWFuID0gbmV3IEFYUGxhdGZvcm0oKS5pc1J0bCgpO1xyXG5cclxuICBwcml2YXRlIGdldCBfdmlld1JhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fdmlld1N0YXJ0RGF0ZSB8fCB0aGlzLl90b2RheTtcclxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ3llYXJzJzpcclxuICAgICAgICBsZXQgeSA9IGN1cnJlbnQuc3RhcnRPZigneWVhcicpLnllYXI7XHJcbiAgICAgICAgbGV0IG1pbiA9IHkgLSAoeSAlIDEwKSAtIDE7XHJcbiAgICAgICAgbGV0IG1heCA9IG1pbiArIDExO1xyXG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICAgICAgQVhEYXRlVGltZS5mcm9tKHtcclxuICAgICAgICAgICAgeWVhcjogbWluLFxyXG4gICAgICAgICAgICBtb250aDogMSxcclxuICAgICAgICAgICAgZGF0ZTogMSxcclxuICAgICAgICAgICAgY2FsZW5kYXI6IHRoaXMuX3ZpZXdTdGFydERhdGUuY2FsZW5kYXIubmFtZSgpLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBBWERhdGVUaW1lLmZyb20oe1xyXG4gICAgICAgICAgICB5ZWFyOiBtYXgsXHJcbiAgICAgICAgICAgIG1vbnRoOiAxMixcclxuICAgICAgICAgICAgZGF0ZTogMjgsXHJcbiAgICAgICAgICAgIGNhbGVuZGFyOiB0aGlzLl92aWV3U3RhcnREYXRlLmNhbGVuZGFyLm5hbWUoKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgY2FzZSAnbW9udGhzJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZigneWVhcicpLFxyXG4gICAgICAgICAgY3VycmVudC5lbmRPZigneWVhcicpLmFkZCgnZGF5JywgLTEpXHJcbiAgICAgICAgKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZignbW9udGgnKSxcclxuICAgICAgICAgIGN1cnJlbnQuZW5kT2YoJ21vbnRoJylcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90b2RheSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgcHJpdmF0ZSBfdmlld1N0YXJ0RGF0ZSE6IEFYRGF0ZVRpbWU7XHJcblxyXG4gIHByb3RlY3RlZCBfbmF2VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHJvdGVjdGVkIF90b2RheVRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcm90ZWN0ZWQgX3Nsb3RzOiBhbnlbXSA9IFtdO1xyXG4gIHByb3RlY3RlZCBfZGF5TmFtZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2lzVXNlckludGVyYWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLl90b2RheSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLl9kYXlOYW1lcyA9IHRoaXMuX3RvZGF5LmNhbGVuZGFyLmRheVNob3J0TmFtZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWZyZXNoKCkge1xyXG4gICAgdGhpcy5faW5pdFZhbHVlcygpO1xyXG4gICAgdGhpcy5uYXZUbyh0aGlzLnZhbHVlIHx8IHRoaXMuX3RvZGF5KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkluaXQoKSB7XHJcbiAgICB0aGlzLl9pbml0VmFsdWVzKCk7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHRoaXMuZ29Ub2RheSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2VuZWFydGVTbG90cygpIHtcclxuICAgIGlmICghdGhpcy5fdmlld1N0YXJ0RGF0ZSkgcmV0dXJuO1xyXG4gICAgY29uc3QgdnIgPSB0aGlzLl92aWV3UmFuZ2U7XHJcbiAgICAvLyBqdXN0IGZvciB0YWlsd2luZFxyXG4gICAgLy8nYXgtY29sLXN0YXJ0LTEnLCdheC1jb2wtc3RhcnQtMicsJ2F4LWNvbC1zdGFydC0zJywnYXgtY29sLXN0YXJ0LTQnLCdheC1jb2wtc3RhcnQtNScsJ2F4LWNvbC1zdGFydC02JywnYXgtY29sLXN0YXJ0LTcnXHJcbiAgICAvLyB5ZWFyIHZpZXdcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJykge1xyXG4gICAgICBjb25zdCBhID0gdnIuZW51bXVyYXRlKCd5ZWFyJyk7XHJcbiAgICAgIHRoaXMuX3Nsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgICByLmRhdGUgPSBkLmRhdGU7XHJcbiAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgICByLmRpc2FibGVkID1cclxuICAgICAgICAgICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICd5ZWFyJykgPT0gLTEpIHx8XHJcbiAgICAgICAgICAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAneWVhcicpID09IDEpO1xyXG4gICAgICAgIGlmIChyLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiByLmRpc2FibGVkLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXRvZGF5JzogZC5lcXVhbCh0aGlzLl90b2RheSwgJ3llYXInKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5kZXB0aCA9PSAneWVhcnMnICYmXHJcbiAgICAgICAgICAgICAgZC5lcXVhbCh0aGlzLnZhbHVlLCAneWVhcicpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gci5jc3NDbGFzc1tgYXgtY29sLXN0YXJ0LTJgXSA9IGkgPT0gMDtcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLl9uYXZUZXh0ID0gYCR7dnIuc3RhcnRUaW1lLnllYXJ9IC0gJHt2ci5lbmRUaW1lLnllYXJ9YDtcclxuICAgICAgdGhpcy5fdG9kYXlUZXh0ID0gdGhpcy5fdG9kYXkuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICB9XHJcbiAgICAvLyBtb250aCB2aWV3XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycpIHtcclxuICAgICAgY29uc3QgYSA9IHZyLmVudW11cmF0ZSgnbW9udGgnKTtcclxuICAgICAgdGhpcy5fc2xvdHMgPSBhLm1hcCgoZCwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHI6IGFueSA9IHt9O1xyXG4gICAgICAgIHIuZGF0ZSA9IGQuZGF0ZTtcclxuICAgICAgICByLnRleHQgPSBkLmZvcm1hdCgnTU1NJyk7XHJcbiAgICAgICAgci50b29sdGlwID0gZC5mb3JtYXQoJ01NTU0gWVlZWScpO1xyXG4gICAgICAgIHIuZGlzYWJsZWQgPVxyXG4gICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ21vbnRoJykgPT0gLTEpIHx8XHJcbiAgICAgICAgICAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAnbW9udGgnKSA9PSAxKTtcclxuICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IGQuZXF1YWwodGhpcy5fdG9kYXksICdtb250aCcpLFxyXG4gICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcclxuICAgICAgICAgICAgICB0aGlzLmRlcHRoID09ICdtb250aHMnICYmXHJcbiAgICAgICAgICAgICAgZC5lcXVhbCh0aGlzLnZhbHVlLCAnbW9udGgnKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLW90aGVyJzogZC55ZWFyICE9IHRoaXMuX3ZpZXdTdGFydERhdGUueWVhcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fbmF2VGV4dCA9IHRoaXMuX3ZpZXdTdGFydERhdGUuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICB9XHJcbiAgICAvLyBkYXkgdmlld1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGEgPSB2ci5lbnVtdXJhdGUoJ2RheScpO1xyXG4gICAgICB0aGlzLl9zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcjogYW55ID0ge307XHJcbiAgICAgICAgci5kYXRlID0gZC5kYXRlO1xyXG4gICAgICAgIHIudGV4dCA9IGQuZGF5T2ZNb250aDtcclxuICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgpO1xyXG4gICAgICAgIHIuZGlzYWJsZWQgPVxyXG4gICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ2RheScpID09IC0xKSB8fFxyXG4gICAgICAgICAgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ2RheScpID09IDEpIHx8XHJcbiAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQoZCk7XHJcbiAgICAgICAgaWYgKHIuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiBkLmVxdWFsKHRoaXMuX3RvZGF5LCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHRoaXMudmFsdWUgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1ob2xpZGF5JzogdGhpcy5pc0hvbGlkYXkoZCkgfHwgdGhpcy5pc1dlZWtlbmQoZCksXHJcbiAgICAgICAgICAgIC8vICdheC1zdGF0ZS1ldmVudC1pbmZvJzogZC5kYXlPZk1vbnRoID09IDEyLFxyXG4gICAgICAgICAgICAvLyAnYXgtc3RhdGUtZXZlbnQnOiBkLmRheU9mTW9udGggPT0gMTIsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgci5jc3NDbGFzc1tgYXgtY29sLXN0YXJ0LSR7dnIuc3RhcnRUaW1lLmRheU9mV2Vla31gXSA9IGkgPT0gMDtcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX25hdlRleHQgPSB0aGlzLl92aWV3U3RhcnREYXRlLmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVQcmV2Q2xpY2soZTogQVhDbGlja0V2ZW50KSB7XHJcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnByZXYoKTtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZU5leHRDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gICAgdGhpcy5faXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlU2xvdENsaWNrKGU6IE1vdXNlRXZlbnQsIHNsb3QpIHtcclxuICAgIGlmIChzbG90LmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKSB7XHJcbiAgICAgIHRoaXMuX3NldERhdGUoc2xvdC5kYXRlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnICYmIHRoaXMuZGVwdGggPT0gJ2RheXMnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXlzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycgJiYgdGhpcy5kZXB0aCA9PSAnbW9udGhzJykge1xyXG4gICAgICB0aGlzLl9zZXREYXRlKHNsb3QuZGF0ZSk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJyAmJlxyXG4gICAgICAodGhpcy5kZXB0aCA9PSAnZGF5cycgfHwgdGhpcy5kZXB0aCA9PSAnbW9udGhzJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnbW9udGhzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJyAmJiB0aGlzLmRlcHRoID09ICd5ZWFycycpIHtcclxuICAgICAgdGhpcy5fc2V0RGF0ZShzbG90LmRhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblNsb3RDbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBpdGVtOiBzbG90LmRhdGUsXHJcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxyXG4gICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVOYXZDbGljayhlOiBBWENsaWNrRXZlbnQpIHtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKSB0aGlzLmFjdGl2ZVZpZXcgPSAnbW9udGhzJztcclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGhzJykgdGhpcy5hY3RpdmVWaWV3ID0gJ3llYXJzJztcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCkge1xyXG4gICAgaWYgKFxyXG4gICAgICBvcHRpb24ubmFtZSA9PSAnZGVwdGgnIHx8XHJcbiAgICAgIG9wdGlvbi5uYW1lID09ICdhY3RpdmVWaWV3JyB8fFxyXG4gICAgICBvcHRpb24ubmFtZSA9PSAnZGlzYWJsZWREYXRlcycgfHxcclxuICAgICAgb3B0aW9uLm5hbWUgPT0gJ2hvbGlkYXlEYXRlcydcclxuICAgICkge1xyXG4gICAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uLm5hbWUgPT0gJ3R5cGUnKSB7XHJcbiAgICAgIHRoaXMuX3JlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCAgX29uVmFsdWVDaGFuZ2VkKG9sZFZhbHVlLCBuZXdWYWx1ZSkge1xyXG4gICAgdGhpcy5fdmlld1N0YXJ0RGF0ZSA9IG5ldyBBWERhdGVUaW1lKG5ld1ZhbHVlLCB0aGlzLnR5cGUpO1xyXG4gICAgdGhpcy5fZ2VuZWFydGVTbG90cygpO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkICBfaGFuZGxlR29Ub2RheSgpIHtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMuX3NldERhdGUodGhpcy5fdG9kYXkuZGF0ZSk7XHJcbiAgICB0aGlzLmdvVG9kYXkoKTtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBuZXh0KCkge1xyXG4gICAgdGhpcy5fbmF2TmV4dFByZXYoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcHJldigpIHtcclxuICAgIHRoaXMuX25hdk5leHRQcmV2KHRydWUpO1xyXG4gIH1cclxuXHJcbiAgZm9jdXMoKSB7XHJcbiAgICBjb25zdCBmdW5jID0gKHM6IHN0cmluZykgPT5cclxuICAgICAgKHRoaXMuX2dldEhvc3RFbGVtZW50KCkgYXMgSFRNTERpdkVsZW1lbnQpLnF1ZXJ5U2VsZWN0b3I8SFRNTERpdkVsZW1lbnQ+KFxyXG4gICAgICAgIHNcclxuICAgICAgKTtcclxuICAgIGNvbnN0IGRpdiA9XHJcbiAgICAgIGZ1bmMoJy5heC1jYWxlbmRhci1zbG90cz5kaXYuYXgtc3RhdGUtc2VsZWN0ZWQnKSB8fFxyXG4gICAgICBmdW5jKCcuYXgtY2FsZW5kYXItc2xvdHM+ZGl2Jyk7XHJcbiAgICBkaXY/LmZvY3VzKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9uYXZOZXh0UHJldihwcmV2OiBib29sZWFuKSB7XHJcbiAgICBjb25zdCBzaWduID0gcHJldiA/IC0xIDogMTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKVxyXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCdtb250aCcsIHNpZ24gKiAxKSk7XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycpXHJcbiAgICAgIHRoaXMubmF2VG8odGhpcy5fdmlld1N0YXJ0RGF0ZS5hZGQoJ3llYXInLCBzaWduICogMSkpO1xyXG4gICAgZWxzZSB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEwKSk7XHJcbiAgfVxyXG5cclxuICBnb1RvZGF5KCkge1xyXG4gICAgdGhpcy5uYXZUbyh0aGlzLl90b2RheSk7XHJcbiAgfVxyXG5cclxuICBuYXZUbyhkYXRlOiBEYXRlIHwgQVhEYXRlVGltZSkge1xyXG4gICAgdGhpcy5fdmlld1N0YXJ0RGF0ZSA9IEFYRGF0ZVRpbWUuY29udmVydChcclxuICAgICAgZGF0ZSxcclxuICAgICAgdGhpcy5fdG9kYXkuY2FsZW5kYXIubmFtZSgpXHJcbiAgICApLnN0YXJ0T2YoKTtcclxuICAgIGNvbnN0IHZyID0gdGhpcy5fdmlld1JhbmdlO1xyXG4gICAgdGhpcy5vbk5hdmlnYXRlLmVtaXQoe1xyXG4gICAgICBjb21wb25lbnQ6IHRoaXMsXHJcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbixcclxuICAgICAgc3RhcnQ6IHZyLnN0YXJ0VGltZT8uZGF0ZSxcclxuICAgICAgZW5kOiB2ci5lbmRUaW1lPy5kYXRlLFxyXG4gICAgICBodG1sRWxlbWVudDogdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSxcclxuICAgIH0pO1xyXG4gICAgaWYgKHRoaXMuaW50ZXJmYWNlID09ICdjYWxlbmRhcicpIHRoaXMuX2dlbmVhcnRlU2xvdHMoKTtcclxuICAgIGVsc2Uge1xyXG4gICAgICB0aGlzLl9nZW5lcmF0ZVBpY2tlckl0ZW1zKCd5ZWFyJyk7XHJcbiAgICAgIHRoaXMuX2dlbmVyYXRlUGlja2VySXRlbXMoJ21vbnRoJyk7XHJcbiAgICB9XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5mb2N1cygpO1xyXG4gICAgfSwgNTApO1xyXG4gIH1cclxuXHJcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcycpXHJcbiAgcHJpdmF0ZSBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcclxuICAgIGNvbnN0IF9jbGFzc2VzID0ge1xyXG4gICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiB0aGlzLmRpc2FibGVkLFxyXG4gICAgICAnYXgtcnRsJzogdGhpcy5ydGwsXHJcbiAgICB9O1xyXG4gICAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKF9jbGFzc2VzKVxyXG4gICAgICAuZmlsdGVyKChjKSA9PiBjWzFdKVxyXG4gICAgICAubWFwKChjKSA9PiBjWzBdKVxyXG4gICAgICAuam9pbignICcpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfc2V0RGF0ZSh2YWx1ZTogRGF0ZSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IEFYRGF0ZVRpbWUuY29udmVydChcclxuICAgICAgdmFsdWUsXHJcbiAgICAgIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKVxyXG4gICAgKS5zdGFydE9mKCkuZGF0ZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpc0Rpc2FibGVkKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGlzYWJsZWREYXRlcykgJiYgdGhpcy5kaXNhYmxlZERhdGVzLmxlbmd0aCAhPSAwKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkRGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5kaXNhYmxlZERhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcyhkYXRlLmRhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzSG9saWRheShkYXRlOiBBWERhdGVUaW1lKTogYm9vbGVhbiB7XHJcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh0aGlzLmhvbGlkYXlEYXRlcykgJiYgdGhpcy5ob2xpZGF5RGF0ZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzLnNvbWUoKGQpID0+IGRhdGUuZXF1YWwoZCwgJ2RheScpKTtcclxuICAgIH0gZWxzZSBpZiAodHlwZW9mIHRoaXMuaG9saWRheURhdGVzID09ICdmdW5jdGlvbicpIHtcclxuICAgICAgcmV0dXJuIHRoaXMuaG9saWRheURhdGVzKGRhdGUuZGF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaXNXZWVrZW5kKGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcclxuICAgIC8vcmV0dXJuIGRhdGUuZGF5T2ZXZWVrID09IDcgfHwgZGF0ZS5kYXlPZldlZWsgPT0gMTtcclxuICAgIGNvbnN0IHdlZWtlbmQgPSBBWENvbmZpZy5nZXQoYGRhdGVUaW1lLmNhbGVuZGFycy4ke3RoaXMudHlwZX0ud2Vla2VuZGApIGFzIG51bWJlcltdO1xyXG4gICAgcmV0dXJuIHdlZWtlbmQuaW5jbHVkZXMoZGF0ZS5kYXlPZldlZWspO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9waWNrZXJEYXlzOiBudW1iZXJbXSA9IFtdO1xyXG4gIHByb3RlY3RlZCBfcGlja2VyTW9udGhzOiB7IHRleHQ6IHN0cmluZzsgdmFsdWU6IG51bWJlciB9W10gPSBbXTtcclxuICBwcm90ZWN0ZWQgX3BpY2tlclllYXJzOiBudW1iZXJbXSA9IFtdO1xyXG5cclxuICBwcml2YXRlIF9nZW5lcmF0ZVBpY2tlckl0ZW1zKHZpZXcpIHtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICd5ZWFyJzpcclxuICAgICAgICB0aGlzLl9waWNrZXJZZWFycyA9IHJhbmdlKDIwMDAsIDIwNTAsIDEpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb250aCc6XHJcbiAgICAgICAgdGhpcy5fcGlja2VyTW9udGhzID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIHRoaXMuX3ZpZXdSYW5nZS5zdGFydFRpbWUuc3RhcnRPZigneWVhcicpLFxyXG4gICAgICAgICAgdGhpcy5fdmlld1JhbmdlLnN0YXJ0VGltZS5lbmRPZigneWVhcicpXHJcbiAgICAgICAgKVxyXG4gICAgICAgICAgLmVudW11cmF0ZSgnbW9udGgnKVxyXG4gICAgICAgICAgLm1hcCgoYykgPT4gKHtcclxuICAgICAgICAgICAgdGV4dDogYy5mb3JtYXQoJ01NTScpLFxyXG4gICAgICAgICAgICB2YWx1ZTogYy5tb250aE9mWWVhcixcclxuICAgICAgICAgIH0pKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9waWNrZXJEYXlzID0gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIHRoaXMuX3ZpZXdSYW5nZS5zdGFydFRpbWUuc3RhcnRPZignbW9udGgnKSxcclxuICAgICAgICAgIHRoaXMuX3ZpZXdSYW5nZS5zdGFydFRpbWUuZW5kT2YoJ21vbnRoJylcclxuICAgICAgICApXHJcbiAgICAgICAgICAuZW51bXVyYXRlKCdkYXknKVxyXG4gICAgICAgICAgLm1hcCgoYykgPT4gYy5kYXlPZk1vbnRoKTtcclxuICAgICAgICB0aGlzLmNkci5kZXRlY3RDaGFuZ2VzKCk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZVBpY2tlckNoYW5nZShpdGVtOiBhbnksIHZpZXcpIHtcclxuICAgIGlmICghaXRlbSkgcmV0dXJuO1xyXG4gICAgY29uc3QgZGF0ZSA9IHRoaXMuX3ZpZXdSYW5nZS5zdGFydFRpbWU7XHJcbiAgICBzd2l0Y2ggKHZpZXcpIHtcclxuICAgICAgY2FzZSAneWVhcic6XHJcbiAgICAgICAgdGhpcy5fc2V0RGF0ZShkYXRlLnNldCgneWVhcicsIGl0ZW0udmFsdWUpLmRhdGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlICdtb250aCc6XHJcbiAgICAgICAgdGhpcy5fc2V0RGF0ZShkYXRlLnNldCgnbW9udGgnLCBpdGVtLnZhbHVlLnZhbHVlKS5kYXRlKTtcclxuICAgICAgICB0aGlzLl9nZW5lcmF0ZVBpY2tlckl0ZW1zKCdkYXknKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLl9zZXREYXRlKGRhdGUuc2V0KCdkYXknLCBpdGVtLnZhbHVlKS5kYXRlKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImludGVyZmFjZSA9PT0gJ2NhbGVuZGFyJzsgZWxzZSBwaWNrZXJUZW1wbGF0ZVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVWaWV3PT0nZGF5cyc7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmF2LWJ1dHRvblwiIFt0ZXh0XT1cIl9uYXZUZXh0LnNwbGl0KCcgJylbMV1cIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmF2LWJ1dHRvblwiIFt0ZXh0XT1cIl9uYXZUZXh0LnNwbGl0KCcgJylbMF1cIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1uYXYtYnV0dG9uXCIgW3RleHRdPVwiX25hdlRleHRcIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCJcclxuICAgICAgICAgICAgICAgICAgICAob25DbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50KVwiIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPC9heC1idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJheC1wcmV2LWJ1dHRvblwiIGNvbG9yPVwibGlnaHRcIiBsb29rPVwiYmxhbmtcIiAob25DbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICA8YXgtcHJlZml4PlxyXG4gICAgICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pYyBheC1pYy1jaGV2cm9uXCI+PC9heC1pY29uPlxyXG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgICAgICA8YXgtYnV0dG9uIGNsYXNzPVwiYXgtbmV4dC1idXR0b25cIiBjb2xvcj1cImxpZ2h0XCIgbG9vaz1cImJsYW5rXCIgKG9uQ2xpY2spPVwiX2hhbmRsZU5leHRDbGljaygkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiPlxyXG4gICAgICAgICAgICAgICAgPGF4LXByZWZpeD5cclxuICAgICAgICAgICAgICAgICAgICA8YXgtaWNvbiBpY29uPVwiYXgtaWMgYXgtaWMtY2hldnJvbiBcIj48L2F4LWljb24+XHJcblxyXG4gICAgICAgICAgICAgICAgPC9heC1wcmVmaXg+XHJcbiAgICAgICAgICAgIDwvYXgtYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWJvZHlcIj5cclxuICAgICAgICA8ZGl2IFtuZ1N3aXRjaF09XCJhY3RpdmVWaWV3XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoQ2FzZT1cIid5ZWFycydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy15ZWFyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LHNsb3QpXCI+e3tzbG90LnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCInbW9udGhzJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXNsb3RzIGF4LWNhbGVuZGFyLXNsb3RzLW1vbnRoXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCIgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlU2xvdENsaWNrKCRldmVudCxzbG90KVwiPnt7c2xvdC50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hEZWZhdWx0PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLXdlZWtcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkIG9mIF9kYXlOYW1lc1wiPnt7ZH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1kYXlcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IHRhYmluZGV4PVwiMFwiICpuZ0Zvcj1cImxldCBzbG90IG9mIF9zbG90c1wiIFt0aXRsZV09XCJzbG90LnRvb2x0aXBcIiBbbmdDbGFzc109XCJzbG90LmNzc0NsYXNzXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVTbG90Q2xpY2soJGV2ZW50LHNsb3QpXCI+e3tzbG90LnRleHR9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWZvb3RlclwiPlxyXG4gICAgICAgIDxheC1idXR0b24gY2xhc3M9XCJkYXJrOmF4LXRleHQtZGFuZ2VyXCIgW3RleHRdPVwiX3RvZGF5VGV4dFwiIGNvbG9yPVwiZGFya1wiIGxvb2s9XCJibGFua1wiIHNpemU9XCJzbVwiXHJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cIl9oYW5kbGVHb1RvZGF5KClcIiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXNEaXNhYmxlZChfdG9kYXkpXCI+PC9heC1idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjcGlja2VyVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGlja2VyXCI+XHJcbiAgICAgICAgLy9UT0RPOiBwaWNrZXJcclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
384
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Fjb3JleC9jb21wb25lbnRzL2NhbGVuZGFyL3NyYy9jYWxlbmRhci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ2xDLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLHVCQUF1QixFQUd2QixXQUFXLEVBQ1gsS0FBSyxHQUNOLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsZUFBZSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFHcEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDM0QsT0FBTyxFQUVMLHlCQUF5QixFQUN6QiwyQkFBMkIsRUFDM0IscUJBQXFCLEdBQ3RCLE1BQU0sMEJBQTBCLENBQUM7QUFFbEMsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7OztBQUV4RCxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyx5QkFBeUIsQ0FDL0QsMkJBQTJCLENBQ3pCLHFCQUFxQixDQUFNLHVCQUF1QixDQUFDLENBQ3BELENBQ0YsQ0FBQztBQW9DRixNQUFNLE9BQU8sbUJBQW9CLFNBQVEsd0JBQXdCO0lBbUQvRCxZQUFZLFVBQXNCLEVBQVUsR0FBc0I7UUFDaEUsS0FBSyxDQUFDLFVBQVUsRUFBRSxHQUFHLENBQUMsQ0FBQztRQURtQixRQUFHLEdBQUgsR0FBRyxDQUFtQjtRQWpEbEUsY0FBUyxHQUEwQixVQUFV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QUMsQ0FBQztnQkFDakMsTUFBTTtZQUNSO2dCQUNFLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO2dCQUNoRCxNQUFNO1NBQ1Q7SUFDSCxDQUFDOztnSEFsWVUsbUJBQW1CO29HQUFuQixtQkFBbUIscXZCQ2hFaEMscXVHQTBEYzsyRkRNRCxtQkFBbUI7a0JBbEMvQixTQUFTOytCQUNFLGFBQWEsVUFFZjt3QkFDTixVQUFVO3dCQUNWLFdBQVc7d0JBQ1gsT0FBTzt3QkFDUCxNQUFNO3dCQUNOLFNBQVM7d0JBQ1QsVUFBVTt3QkFDVixVQUFVO3dCQUNWLE9BQU87d0JBQ1AsWUFBWTt3QkFDWixLQUFLO3dCQUNMLEtBQUs7d0JBQ0wsZUFBZTt3QkFDZixNQUFNO3dCQUNOLGNBQWM7cUJBQ2YsV0FDUTt3QkFDUCxhQUFhO3dCQUNiLGdCQUFnQjt3QkFDaEIsUUFBUTt3QkFDUixTQUFTO3dCQUNULGFBQWE7d0JBQ2IsWUFBWTt3QkFDWixxQkFBcUI7d0JBQ3JCLG9CQUFvQjt3QkFDcEIsWUFBWTtxQkFDYixRQUNLLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRSxpQkFDZixpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2lJQUkvQyxTQUFTO3NCQURSLEtBQUs7Z0JBdVNNLFdBQVc7c0JBRHRCLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmdlIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgVmlld0VuY2Fwc3VsYXRpb24sXHJcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXHJcbiAgRWxlbWVudFJlZixcclxuICBDaGFuZ2VEZXRlY3RvclJlZixcclxuICBIb3N0QmluZGluZyxcclxuICBJbnB1dCxcclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZSwgQVhEYXRlVGltZVJhbmdlIH0gZnJvbSAnQGFjb3JleC9jb3JlL2RhdGVUaW1lJztcclxuaW1wb3J0IHsgQVhDbGlja0V2ZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XHJcblxyXG5pbXBvcnQgeyBBWENhbGVuZGFyQmFzZUNvbXBvbmVudCB9IGZyb20gJy4vY2FsZW5kYXIuY2xhc3MnO1xyXG5pbXBvcnQge1xyXG4gIEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCxcclxuICBfQ2xpY2thYmxlQ29tcG9uZW5ldE1peGluLFxyXG4gIF9JbnRlcmFjdGl2ZUNvbXBvbmVuZXRNaXhpbixcclxuICBfVmFsdWVDb21wb25lbmV0TWl4aW4sXHJcbn0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL21peGluJztcclxuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XHJcbmltcG9ydCB7IEFYQ29uZmlnIH0gZnJvbSAnQGFjb3JleC9jb3JlL2NvbmZpZyc7XHJcbmltcG9ydCB7IEFYVHJhbnNsYXRvciB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XHJcblxyXG5leHBvcnQgY29uc3QgQVhDYWxlbmRhckNvbXBvbmVudE1peGluID0gX0NsaWNrYWJsZUNvbXBvbmVuZXRNaXhpbihcclxuICBfSW50ZXJhY3RpdmVDb21wb25lbmV0TWl4aW4oXHJcbiAgICBfVmFsdWVDb21wb25lbmV0TWl4aW48YW55PihBWENhbGVuZGFyQmFzZUNvbXBvbmVudClcclxuICApXHJcbik7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2F4LWNhbGVuZGFyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY2FsZW5kYXIuY29tcG9uZW50Lmh0bWwnLFxyXG4gIGlucHV0czogW1xyXG4gICAgJ3JlYWRvbmx5JyxcclxuICAgICdhbGxvd051bGwnLFxyXG4gICAgJ3ZhbHVlJyxcclxuICAgICduYW1lJyxcclxuICAgICdjaGVja2VkJyxcclxuICAgICdkaXNhYmxlZCcsXHJcbiAgICAndGFiSW5kZXgnLFxyXG4gICAgJ2RlcHRoJyxcclxuICAgICdhY3RpdmVWaWV3JyxcclxuICAgICdtaW4nLFxyXG4gICAgJ21heCcsXHJcbiAgICAnZGlzYWJsZWREYXRlcycsXHJcbiAgICAndHlwZScsXHJcbiAgICAnaG9saWRheURhdGVzJyxcclxuICBdLFxyXG4gIG91dHB1dHM6IFtcclxuICAgICd2YWx1ZUNoYW5nZScsXHJcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxyXG4gICAgJ29uQmx1cicsXHJcbiAgICAnb25Gb2N1cycsXHJcbiAgICAnZGVwdGhDaGFuZ2UnLFxyXG4gICAgJ3R5cGVDaGFuZ2UnLFxyXG4gICAgJ2Rpc2FibGVkRGF0ZXNDaGFuZ2UnLFxyXG4gICAgJ2hvbGlkYXlEYXRlc0NoYW5nZScsXHJcbiAgICAnb25OYXZpZ2F0ZScsXHJcbiAgXSxcclxuICBob3N0OiB7IGNsYXNzOiAnYXgtY2FsZW5kYXInIH0sXHJcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcclxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFYQ2FsZW5kYXJDb21wb25lbnQgZXh0ZW5kcyBBWENhbGVuZGFyQ29tcG9uZW50TWl4aW4ge1xyXG4gIEBJbnB1dCgpXHJcbiAgaW50ZXJmYWNlOiAnY2FsZW5kYXInIHwgJ3BpY2tlcicgPSAnY2FsZW5kYXInO1xyXG5cclxuICB0b2RheVRleHQgPSBBWFRyYW5zbGF0b3IuZ2V0KCdkYXRlVGltZS50b2RheScpO1xyXG5cclxuICBwcml2YXRlIGdldCBfdmlld1JhbmdlKCk6IEFYRGF0ZVRpbWVSYW5nZSB7XHJcbiAgICBjb25zdCBjdXJyZW50ID0gdGhpcy5fdmlld1N0YXJ0RGF0ZSB8fCB0aGlzLl90b2RheTtcclxuICAgIHN3aXRjaCAodGhpcy5hY3RpdmVWaWV3KSB7XHJcbiAgICAgIGNhc2UgJ3llYXJzJzpcclxuICAgICAgICBsZXQgeSA9IGN1cnJlbnQuc3RhcnRPZigneWVhcicpLnllYXI7XHJcbiAgICAgICAgbGV0IG1pbiA9IHkgLSAoeSAlIDEwKSAtIDE7XHJcbiAgICAgICAgbGV0IG1heCA9IG1pbiArIDExO1xyXG4gICAgICAgIHJldHVybiBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICAgICAgQVhEYXRlVGltZS5mcm9tKHtcclxuICAgICAgICAgICAgeWVhcjogbWluLFxyXG4gICAgICAgICAgICBtb250aDogMSxcclxuICAgICAgICAgICAgZGF0ZTogMSxcclxuICAgICAgICAgICAgY2FsZW5kYXI6IHRoaXMuX3ZpZXdTdGFydERhdGUuY2FsZW5kYXIubmFtZSgpLFxyXG4gICAgICAgICAgfSksXHJcbiAgICAgICAgICBBWERhdGVUaW1lLmZyb20oe1xyXG4gICAgICAgICAgICB5ZWFyOiBtYXgsXHJcbiAgICAgICAgICAgIG1vbnRoOiAxMixcclxuICAgICAgICAgICAgZGF0ZTogMjgsXHJcbiAgICAgICAgICAgIGNhbGVuZGFyOiB0aGlzLl92aWV3U3RhcnREYXRlLmNhbGVuZGFyLm5hbWUoKSxcclxuICAgICAgICAgIH0pXHJcbiAgICAgICAgKTtcclxuICAgICAgY2FzZSAnbW9udGhzJzpcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZigneWVhcicpLFxyXG4gICAgICAgICAgY3VycmVudC5lbmRPZigneWVhcicpLmFkZCgnZGF5JywgLTEpXHJcbiAgICAgICAgKTtcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICByZXR1cm4gbmV3IEFYRGF0ZVRpbWVSYW5nZShcclxuICAgICAgICAgIGN1cnJlbnQuc3RhcnRPZignbW9udGgnKSxcclxuICAgICAgICAgIGN1cnJlbnQuZW5kT2YoJ21vbnRoJylcclxuICAgICAgICApO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF90b2RheSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgcHJpdmF0ZSBfdmlld1N0YXJ0RGF0ZSE6IEFYRGF0ZVRpbWU7XHJcblxyXG4gIHByb3RlY3RlZCBfbmF2VGV4dDogc3RyaW5nID0gJyc7XHJcbiAgcHJvdGVjdGVkIF90b2RheVRleHQ6IHN0cmluZyA9ICcnO1xyXG5cclxuICBwcm90ZWN0ZWQgX3Nsb3RzOiBhbnlbXSA9IFtdO1xyXG4gIHByb3RlY3RlZCBfZGF5TmFtZXM6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2lzVXNlckludGVyYWN0aW9uOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIGNvbnN0cnVjdG9yKGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgc3VwZXIoZWxlbWVudFJlZiwgY2RyKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX2luaXRWYWx1ZXMoKSB7XHJcbiAgICB0aGlzLl90b2RheSA9IG5ldyBBWERhdGVUaW1lKG5ldyBEYXRlKCksIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLl9kYXlOYW1lcyA9IHRoaXMuX3RvZGF5LmNhbGVuZGFyLmRheVNob3J0TmFtZXM7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9yZWZyZXNoKCkge1xyXG4gICAgdGhpcy5faW5pdFZhbHVlcygpO1xyXG4gICAgdGhpcy5uYXZUbyh0aGlzLnZhbHVlIHx8IHRoaXMuX3RvZGF5KTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBvbkluaXQoKSB7XHJcbiAgICB0aGlzLl9pbml0VmFsdWVzKCk7XHJcbiAgICBpZiAoIXRoaXMudmFsdWUpIHRoaXMuZ29Ub2RheSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfZ2VuZWFydGVTbG90cygpIHtcclxuICAgIGlmICghdGhpcy5fdmlld1N0YXJ0RGF0ZSkgcmV0dXJuO1xyXG4gICAgY29uc3QgdnIgPSB0aGlzLl92aWV3UmFuZ2U7XHJcbiAgICAvLyBqdXN0IGZvciB0YWlsd2luZFxyXG4gICAgLy8nYXgtY29sLXN0YXJ0LTEnLCdheC1jb2wtc3RhcnQtMicsJ2F4LWNvbC1zdGFydC0zJywnYXgtY29sLXN0YXJ0LTQnLCdheC1jb2wtc3RhcnQtNScsJ2F4LWNvbC1zdGFydC02JywnYXgtY29sLXN0YXJ0LTcnXHJcbiAgICAvLyB5ZWFyIHZpZXdcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJykge1xyXG4gICAgICBjb25zdCBhID0gdnIuZW51bXVyYXRlKCd5ZWFyJyk7XHJcbiAgICAgIHRoaXMuX3Nsb3RzID0gYS5tYXAoKGQsIGkpID0+IHtcclxuICAgICAgICBjb25zdCByOiBhbnkgPSB7fTtcclxuICAgICAgICByLmRhdGUgPSBkLmRhdGU7XHJcbiAgICAgICAgci50ZXh0ID0gZC5mb3JtYXQoJ1lZWVknKTtcclxuICAgICAgICByLmRpc2FibGVkID1cclxuICAgICAgICAgICh0aGlzLm1pbiAmJiBkLmNvbXBhcmUodGhpcy5taW4sICd5ZWFyJykgPT0gLTEpIHx8XHJcbiAgICAgICAgICAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAneWVhcicpID09IDEpO1xyXG4gICAgICAgIGlmIChyLmRpc2FibGVkKSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtZGlzYWJsZWQnOiByLmRpc2FibGVkLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXRvZGF5JzogZC5lcXVhbCh0aGlzLl90b2RheSwgJ3llYXInKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLXNlbGVjdGVkJzpcclxuICAgICAgICAgICAgICB0aGlzLnZhbHVlICYmXHJcbiAgICAgICAgICAgICAgdGhpcy5kZXB0aCA9PSAneWVhcnMnICYmXHJcbiAgICAgICAgICAgICAgZC5lcXVhbCh0aGlzLnZhbHVlLCAneWVhcicpLFxyXG4gICAgICAgICAgfTtcclxuICAgICAgICB9XHJcbiAgICAgICAgLy8gci5jc3NDbGFzc1tgYXgtY29sLXN0YXJ0LTJgXSA9IGkgPT0gMDtcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLl9uYXZUZXh0ID0gYCR7dnIuc3RhcnRUaW1lLnllYXJ9IC0gJHt2ci5lbmRUaW1lLnllYXJ9YDtcclxuICAgICAgdGhpcy5fdG9kYXlUZXh0ID0gdGhpcy5fdG9kYXkuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICB9XHJcbiAgICAvLyBtb250aCB2aWV3XHJcbiAgICBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycpIHtcclxuICAgICAgY29uc3QgYSA9IHZyLmVudW11cmF0ZSgnbW9udGgnKTtcclxuICAgICAgdGhpcy5fc2xvdHMgPSBhLm1hcCgoZCwgaSkgPT4ge1xyXG4gICAgICAgIGNvbnN0IHI6IGFueSA9IHt9O1xyXG4gICAgICAgIHIuZGF0ZSA9IGQuZGF0ZTtcclxuICAgICAgICByLnRleHQgPSBkLmZvcm1hdCgnTU1NJyk7XHJcbiAgICAgICAgci50b29sdGlwID0gZC5mb3JtYXQoJ01NTU0gWVlZWScpO1xyXG4gICAgICAgIHIuZGlzYWJsZWQgPVxyXG4gICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ21vbnRoJykgPT0gLTEpIHx8XHJcbiAgICAgICAgICAodGhpcy5tYXggJiYgZC5jb21wYXJlKHRoaXMubWF4LCAnbW9udGgnKSA9PSAxKTtcclxuICAgICAgICBpZiAoci5kaXNhYmxlZCkge1xyXG4gICAgICAgICAgci5jc3NDbGFzcyA9IHtcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogci5kaXNhYmxlZCxcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS10b2RheSc6IGQuZXF1YWwodGhpcy5fdG9kYXksICdtb250aCcpLFxyXG4gICAgICAgICAgICAnYXgtc3RhdGUtc2VsZWN0ZWQnOlxyXG4gICAgICAgICAgICAgIHRoaXMudmFsdWUgJiZcclxuICAgICAgICAgICAgICB0aGlzLmRlcHRoID09ICdtb250aHMnICYmXHJcbiAgICAgICAgICAgICAgZC5lcXVhbCh0aGlzLnZhbHVlLCAnbW9udGgnKSxcclxuICAgICAgICAgICAgJ2F4LXN0YXRlLW90aGVyJzogZC55ZWFyICE9IHRoaXMuX3ZpZXdTdGFydERhdGUueWVhcixcclxuICAgICAgICAgIH07XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiByO1xyXG4gICAgICB9KTtcclxuICAgICAgdGhpcy5fbmF2VGV4dCA9IHRoaXMuX3ZpZXdTdGFydERhdGUuZm9ybWF0KCdZWVlZJyk7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICB9XHJcbiAgICAvLyBkYXkgdmlld1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIGNvbnN0IGEgPSB2ci5lbnVtdXJhdGUoJ2RheScpO1xyXG4gICAgICB0aGlzLl9zbG90cyA9IGEubWFwKChkLCBpKSA9PiB7XHJcbiAgICAgICAgY29uc3QgcjogYW55ID0ge307XHJcbiAgICAgICAgci5kYXRlID0gZC5kYXRlO1xyXG4gICAgICAgIHIudGV4dCA9IGQuZGF5T2ZNb250aDtcclxuICAgICAgICByLnRvb2x0aXAgPSBkLmZvcm1hdCgpO1xyXG4gICAgICAgIHIuZGlzYWJsZWQgPVxyXG4gICAgICAgICAgKHRoaXMubWluICYmIGQuY29tcGFyZSh0aGlzLm1pbiwgJ2RheScpID09IC0xKSB8fFxyXG4gICAgICAgICAgKHRoaXMubWF4ICYmIGQuY29tcGFyZSh0aGlzLm1heCwgJ2RheScpID09IDEpIHx8XHJcbiAgICAgICAgICB0aGlzLmlzRGlzYWJsZWQoZCk7XHJcbiAgICAgICAgaWYgKHIuZGlzYWJsZWQpIHtcclxuICAgICAgICAgIHIuY3NzQ2xhc3MgPSB7XHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1kaXNhYmxlZCc6IHRydWUsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICByLmNzc0NsYXNzID0ge1xyXG4gICAgICAgICAgICAnYXgtc3RhdGUtdG9kYXknOiBkLmVxdWFsKHRoaXMuX3RvZGF5LCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1zZWxlY3RlZCc6IHRoaXMudmFsdWUgJiYgZC5lcXVhbCh0aGlzLnZhbHVlLCAnZGF5JyksXHJcbiAgICAgICAgICAgICdheC1zdGF0ZS1ob2xpZGF5JzogdGhpcy5pc0hvbGlkYXkoZCkgfHwgdGhpcy5pc1dlZWtlbmQoZCksXHJcbiAgICAgICAgICAgIC8vICdheC1zdGF0ZS1ldmVudC1pbmZvJzogZC5kYXlPZk1vbnRoID09IDEyLFxyXG4gICAgICAgICAgICAvLyAnYXgtc3RhdGUtZXZlbnQnOiBkLmRheU9mTW9udGggPT0gMTIsXHJcbiAgICAgICAgICB9O1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgci5jc3NDbGFzc1tgYXgtY29sLXN0YXJ0LSR7dnIuc3RhcnRUaW1lLmRheU9mV2Vla31gXSA9IGkgPT0gMDtcclxuICAgICAgICByZXR1cm4gcjtcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuX25hdlRleHQgPSB0aGlzLl92aWV3U3RhcnREYXRlLmZvcm1hdCgnTU1NTSBZWVlZJyk7XHJcbiAgICAgIHRoaXMuX3RvZGF5VGV4dCA9IHRoaXMuX3RvZGF5LmZvcm1hdCgpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVQcmV2Q2xpY2soKSB7XHJcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLnByZXYoKTtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZU5leHRDbGljaygpIHtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcclxuICAgIHRoaXMubmV4dCgpO1xyXG4gICAgdGhpcy5faXNVc2VySW50ZXJhY3Rpb24gPSBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlU2xvdENsaWNrKGU6IE1vdXNlRXZlbnQsIHNsb3QpIHtcclxuICAgIGlmIChzbG90LmRpc2FibGVkIHx8IHRoaXMuZGlzYWJsZWQpIHJldHVybjtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKSB7XHJcbiAgICAgIHRoaXMuX3NldERhdGUoc2xvdC5kYXRlKTtcclxuICAgIH0gZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnICYmIHRoaXMuZGVwdGggPT0gJ2RheXMnKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlVmlldyA9ICdkYXlzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ21vbnRocycgJiYgdGhpcy5kZXB0aCA9PSAnbW9udGhzJykge1xyXG4gICAgICB0aGlzLl9zZXREYXRlKHNsb3QuZGF0ZSk7XHJcbiAgICB9IGVsc2UgaWYgKFxyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJyAmJlxyXG4gICAgICAodGhpcy5kZXB0aCA9PSAnZGF5cycgfHwgdGhpcy5kZXB0aCA9PSAnbW9udGhzJylcclxuICAgICkge1xyXG4gICAgICB0aGlzLmFjdGl2ZVZpZXcgPSAnbW9udGhzJztcclxuICAgICAgdGhpcy5uYXZUbyhzbG90LmRhdGUpO1xyXG4gICAgfSBlbHNlIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ3llYXJzJyAmJiB0aGlzLmRlcHRoID09ICd5ZWFycycpIHtcclxuICAgICAgdGhpcy5fc2V0RGF0ZShzbG90LmRhdGUpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5vblNsb3RDbGljay5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBpdGVtOiBzbG90LmRhdGUsXHJcbiAgICAgIGlzVXNlckludGVyYWN0aW9uOiB0cnVlLFxyXG4gICAgICBuYXRpdmVFdmVudDogZSxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIF9oYW5kbGVOYXZDbGljayhlOiBBWENsaWNrRXZlbnQgfCBhbnkpIHtcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gdHJ1ZTtcclxuICAgIGlmICh0aGlzLmFjdGl2ZVZpZXcgPT0gJ2RheXMnKSB0aGlzLmFjdGl2ZVZpZXcgPSAnbW9udGhzJztcclxuICAgIGVsc2UgaWYgKHRoaXMuYWN0aXZlVmlldyA9PSAnbW9udGhzJykgdGhpcy5hY3RpdmVWaWV3ID0gJ3llYXJzJztcclxuICAgIHRoaXMuX2lzVXNlckludGVyYWN0aW9uID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCkge1xyXG4gICAgaWYgKFxyXG4gICAgICBvcHRpb24ubmFtZSA9PSAnZGVwdGgnIHx8XHJcbiAgICAgIG9wdGlvbi5uYW1lID09ICdhY3RpdmVWaWV3JyB8fFxyXG4gICAgICBvcHRpb24ubmFtZSA9PSAnZGlzYWJsZWREYXRlcycgfHxcclxuICAgICAgb3B0aW9uLm5hbWUgPT0gJ2hvbGlkYXlEYXRlcydcclxuICAgICkge1xyXG4gICAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgICB9XHJcbiAgICBpZiAob3B0aW9uLm5hbWUgPT0gJ3R5cGUnKSB7XHJcbiAgICAgIHRoaXMuX3JlZnJlc2goKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfb25WYWx1ZUNoYW5nZWQob2xkVmFsdWUsIG5ld1ZhbHVlKSB7XHJcbiAgICB0aGlzLl92aWV3U3RhcnREYXRlID0gbmV3IEFYRGF0ZVRpbWUobmV3VmFsdWUsIHRoaXMudHlwZSk7XHJcbiAgICB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX2hhbmRsZUdvVG9kYXkoKSB7XHJcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IHRydWU7XHJcbiAgICB0aGlzLl9zZXREYXRlKHRoaXMuX3RvZGF5LmRhdGUpO1xyXG4gICAgdGhpcy5nb1RvZGF5KCk7XHJcbiAgICB0aGlzLl9pc1VzZXJJbnRlcmFjdGlvbiA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgbmV4dCgpIHtcclxuICAgIHRoaXMuX25hdk5leHRQcmV2KGZhbHNlKTtcclxuICB9XHJcblxyXG4gIHByZXYoKSB7XHJcbiAgICB0aGlzLl9uYXZOZXh0UHJldih0cnVlKTtcclxuICB9XHJcblxyXG4gIGZvY3VzKCkge1xyXG4gICAgY29uc3QgZnVuYyA9IChzOiBzdHJpbmcpID0+XHJcbiAgICAgICh0aGlzLl9nZXRIb3N0RWxlbWVudCgpIGFzIEhUTUxEaXZFbGVtZW50KS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PihcclxuICAgICAgICBzXHJcbiAgICAgICk7XHJcbiAgICBjb25zdCBkaXYgPVxyXG4gICAgICBmdW5jKCcuYXgtY2FsZW5kYXItc2xvdHM+ZGl2LmF4LXN0YXRlLXNlbGVjdGVkJykgfHxcclxuICAgICAgZnVuYygnLmF4LWNhbGVuZGFyLXNsb3RzPmRpdicpO1xyXG4gICAgZGl2Py5mb2N1cygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBfbmF2TmV4dFByZXYocHJldjogYm9vbGVhbikge1xyXG4gICAgY29uc3Qgc2lnbiA9IHByZXYgPyAtMSA6IDE7XHJcbiAgICBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdkYXlzJylcclxuICAgICAgdGhpcy5uYXZUbyh0aGlzLl92aWV3U3RhcnREYXRlLmFkZCgnbW9udGgnLCBzaWduICogMSkpO1xyXG4gICAgZWxzZSBpZiAodGhpcy5hY3RpdmVWaWV3ID09ICdtb250aHMnKVxyXG4gICAgICB0aGlzLm5hdlRvKHRoaXMuX3ZpZXdTdGFydERhdGUuYWRkKCd5ZWFyJywgc2lnbiAqIDEpKTtcclxuICAgIGVsc2UgdGhpcy5uYXZUbyh0aGlzLl92aWV3U3RhcnREYXRlLmFkZCgneWVhcicsIHNpZ24gKiAxMCkpO1xyXG4gIH1cclxuXHJcbiAgZ29Ub2RheSgpIHtcclxuICAgIHRoaXMubmF2VG8odGhpcy5fdG9kYXkpO1xyXG4gIH1cclxuXHJcbiAgbmF2VG8oZGF0ZTogRGF0ZSB8IEFYRGF0ZVRpbWUpIHtcclxuICAgIHRoaXMuX3ZpZXdTdGFydERhdGUgPSBBWERhdGVUaW1lLmNvbnZlcnQoXHJcbiAgICAgIGRhdGUsXHJcbiAgICAgIHRoaXMuX3RvZGF5LmNhbGVuZGFyLm5hbWUoKVxyXG4gICAgKS5zdGFydE9mKCk7XHJcbiAgICBjb25zdCB2ciA9IHRoaXMuX3ZpZXdSYW5nZTtcclxuICAgIHRoaXMub25OYXZpZ2F0ZS5lbWl0KHtcclxuICAgICAgY29tcG9uZW50OiB0aGlzLFxyXG4gICAgICBpc1VzZXJJbnRlcmFjdGlvbjogdGhpcy5faXNVc2VySW50ZXJhY3Rpb24sXHJcbiAgICAgIHN0YXJ0OiB2ci5zdGFydFRpbWU/LmRhdGUsXHJcbiAgICAgIGVuZDogdnIuZW5kVGltZT8uZGF0ZSxcclxuICAgICAgaHRtbEVsZW1lbnQ6IHRoaXMuX2dldEhvc3RFbGVtZW50KCksXHJcbiAgICB9KTtcclxuICAgIGlmICh0aGlzLmludGVyZmFjZSA9PSAnY2FsZW5kYXInKSB0aGlzLl9nZW5lYXJ0ZVNsb3RzKCk7XHJcbiAgICBlbHNlIHtcclxuICAgICAgdGhpcy5fZ2VuZXJhdGVQaWNrZXJJdGVtcygneWVhcicpO1xyXG4gICAgICB0aGlzLl9nZW5lcmF0ZVBpY2tlckl0ZW1zKCdtb250aCcpO1xyXG4gICAgfVxyXG4gICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgIHRoaXMuZm9jdXMoKTtcclxuICAgIH0sIDUwKTtcclxuICB9XHJcblxyXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxyXG4gIHByaXZhdGUgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBfY2xhc3NlcyA9IHtcclxuICAgICAgJ2F4LXN0YXRlLWRpc2FibGVkJzogdGhpcy5kaXNhYmxlZCxcclxuICAgIH07XHJcbiAgICByZXR1cm4gT2JqZWN0LmVudHJpZXMoX2NsYXNzZXMpXHJcbiAgICAgIC5maWx0ZXIoKGMpID0+IGNbMV0pXHJcbiAgICAgIC5tYXAoKGMpID0+IGNbMF0pXHJcbiAgICAgIC5qb2luKCcgJyk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIF9zZXREYXRlKHZhbHVlOiBEYXRlKSB7XHJcbiAgICB0aGlzLnZhbHVlID0gQVhEYXRlVGltZS5jb252ZXJ0KFxyXG4gICAgICB2YWx1ZSxcclxuICAgICAgdGhpcy5fdG9kYXkuY2FsZW5kYXIubmFtZSgpXHJcbiAgICApLnN0YXJ0T2YoKS5kYXRlO1xyXG4gIH1cclxuXHJcbiAgcHJvdGVjdGVkIGlzRGlzYWJsZWQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xyXG4gICAgaWYgKEFycmF5LmlzQXJyYXkodGhpcy5kaXNhYmxlZERhdGVzKSAmJiB0aGlzLmRpc2FibGVkRGF0ZXMubGVuZ3RoICE9IDApIHtcclxuICAgICAgcmV0dXJuIHRoaXMuZGlzYWJsZWREYXRlcy5zb21lKChkKSA9PiBkYXRlLmVxdWFsKGQsICdkYXknKSk7XHJcbiAgICB9IGVsc2UgaWYgKHR5cGVvZiB0aGlzLmRpc2FibGVkRGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5kaXNhYmxlZERhdGVzKGRhdGUuZGF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgaXNIb2xpZGF5KGRhdGU6IEFYRGF0ZVRpbWUpOiBib29sZWFuIHtcclxuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuaG9saWRheURhdGVzKSAmJiB0aGlzLmhvbGlkYXlEYXRlcy5sZW5ndGggIT0gMCkge1xyXG4gICAgICByZXR1cm4gdGhpcy5ob2xpZGF5RGF0ZXMuc29tZSgoZCkgPT4gZGF0ZS5lcXVhbChkLCAnZGF5JykpO1xyXG4gICAgfSBlbHNlIGlmICh0eXBlb2YgdGhpcy5ob2xpZGF5RGF0ZXMgPT0gJ2Z1bmN0aW9uJykge1xyXG4gICAgICByZXR1cm4gdGhpcy5ob2xpZGF5RGF0ZXMoZGF0ZS5kYXRlKTtcclxuICAgIH1cclxuICAgIHJldHVybiBmYWxzZTtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBpc1dlZWtlbmQoZGF0ZTogQVhEYXRlVGltZSk6IGJvb2xlYW4ge1xyXG4gICAgLy9yZXR1cm4gZGF0ZS5kYXlPZldlZWsgPT0gNyB8fCBkYXRlLmRheU9mV2VlayA9PSAxO1xyXG4gICAgY29uc3Qgd2Vla2VuZCA9IEFYQ29uZmlnLmdldChcclxuICAgICAgYGRhdGVUaW1lLmNhbGVuZGFycy4ke3RoaXMudHlwZX0ud2Vla2VuZGBcclxuICAgICkgYXMgbnVtYmVyW107XHJcbiAgICByZXR1cm4gd2Vla2VuZC5pbmNsdWRlcyhkYXRlLmRheU9mV2Vlayk7XHJcbiAgfVxyXG5cclxuICBwcm90ZWN0ZWQgX3BpY2tlckRheXM6IG51bWJlcltdID0gW107XHJcbiAgcHJvdGVjdGVkIF9waWNrZXJNb250aHM6IHsgdGV4dDogc3RyaW5nOyB2YWx1ZTogbnVtYmVyIH1bXSA9IFtdO1xyXG4gIHByb3RlY3RlZCBfcGlja2VyWWVhcnM6IG51bWJlcltdID0gW107XHJcblxyXG4gIHByaXZhdGUgX2dlbmVyYXRlUGlja2VySXRlbXModmlldykge1xyXG4gICAgc3dpdGNoICh2aWV3KSB7XHJcbiAgICAgIGNhc2UgJ3llYXInOlxyXG4gICAgICAgIHRoaXMuX3BpY2tlclllYXJzID0gcmFuZ2UoMjAwMCwgMjA1MCwgMSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAgICAgICB0aGlzLl9waWNrZXJNb250aHMgPSBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICAgICAgdGhpcy5fdmlld1JhbmdlLnN0YXJ0VGltZS5zdGFydE9mKCd5ZWFyJyksXHJcbiAgICAgICAgICB0aGlzLl92aWV3UmFuZ2Uuc3RhcnRUaW1lLmVuZE9mKCd5ZWFyJylcclxuICAgICAgICApXHJcbiAgICAgICAgICAuZW51bXVyYXRlKCdtb250aCcpXHJcbiAgICAgICAgICAubWFwKChjKSA9PiAoe1xyXG4gICAgICAgICAgICB0ZXh0OiBjLmZvcm1hdCgnTU1NJyksXHJcbiAgICAgICAgICAgIHZhbHVlOiBjLm1vbnRoT2ZZZWFyLFxyXG4gICAgICAgICAgfSkpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX3BpY2tlckRheXMgPSBuZXcgQVhEYXRlVGltZVJhbmdlKFxyXG4gICAgICAgICAgdGhpcy5fdmlld1JhbmdlLnN0YXJ0VGltZS5zdGFydE9mKCdtb250aCcpLFxyXG4gICAgICAgICAgdGhpcy5fdmlld1JhbmdlLnN0YXJ0VGltZS5lbmRPZignbW9udGgnKVxyXG4gICAgICAgIClcclxuICAgICAgICAgIC5lbnVtdXJhdGUoJ2RheScpXHJcbiAgICAgICAgICAubWFwKChjKSA9PiBjLmRheU9mTW9udGgpO1xyXG4gICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgICBicmVhaztcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBfaGFuZGxlUGlja2VyQ2hhbmdlKGl0ZW06IGFueSwgdmlldykge1xyXG4gICAgaWYgKCFpdGVtKSByZXR1cm47XHJcbiAgICBjb25zdCBkYXRlID0gdGhpcy5fdmlld1JhbmdlLnN0YXJ0VGltZTtcclxuICAgIHN3aXRjaCAodmlldykge1xyXG4gICAgICBjYXNlICd5ZWFyJzpcclxuICAgICAgICB0aGlzLl9zZXREYXRlKGRhdGUuc2V0KCd5ZWFyJywgaXRlbS52YWx1ZSkuZGF0ZSk7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgJ21vbnRoJzpcclxuICAgICAgICB0aGlzLl9zZXREYXRlKGRhdGUuc2V0KCdtb250aCcsIGl0ZW0udmFsdWUudmFsdWUpLmRhdGUpO1xyXG4gICAgICAgIHRoaXMuX2dlbmVyYXRlUGlja2VySXRlbXMoJ2RheScpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMuX3NldERhdGUoZGF0ZS5zZXQoJ2RheScsIGl0ZW0udmFsdWUpLmRhdGUpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8bmctY29udGFpbmVyICpuZ0lmPVwiaW50ZXJmYWNlID09PSAnY2FsZW5kYXInOyBlbHNlIHBpY2tlclRlbXBsYXRlXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItaGVhZGVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyXCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJhY3RpdmVWaWV3PT0nZGF5cyc7IGVsc2UgZWxzZVRlbXBsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNsYXNzPVwiYXgtYnV0dG9uLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50KVwiPnt7X25hdlRleHQuc3BsaXQoJyAnKVsxXX19PC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiIGNsYXNzPVwiYXgtYnV0dG9uLWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlTmF2Q2xpY2soJGV2ZW50KVwiPnt7X25hdlRleHQuc3BsaXQoJyAnKVswXX19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VUZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgY2xhc3M9XCJheC1idXR0b24tY29udHJvbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgKGNsaWNrKT1cIl9oYW5kbGVOYXZDbGljaygkZXZlbnQpXCI+e3tfbmF2VGV4dH19PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LWNhbGVuZGFyLWhlYWRlci1idXR0b25zXCI+XHJcbiAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgY2xhc3M9XCJheC1idXR0b24tY29udHJvbFwiIChjbGljayk9XCJfaGFuZGxlUHJldkNsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY1wiIFtuZ0NsYXNzXT1cInsnYXgtaWMtY2hldnJvbi1sZWZ0JzogIV9pc1J0bCgpLCdheC1pYy1jaGV2cm9uLXJpZ2h0JzogX2lzUnRsKCl9XCI+PC9heC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgPGJ1dHRvbiBbZGlzYWJsZWRdPVwiZGlzYWJsZWQgfHwgaXNEaXNhYmxlZChfdG9kYXkpXCIgY2xhc3M9XCJheC1idXR0b24tY29udHJvbCAhYXgtdGV4dC1wcmltYXJ5LTUwMFwiIChjbGljayk9XCJfaGFuZGxlR29Ub2RheSgpXCI+XHJcbiAgICAgICAgICAgICAgICB7eyB0b2RheVRleHQgfX1cclxuICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgIDxidXR0b24gW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgY2xhc3M9XCJheC1idXR0b24tY29udHJvbFwiIChjbGljayk9XCJfaGFuZGxlTmV4dENsaWNrKClcIj5cclxuICAgICAgICAgICAgICAgIDxheC1pY29uIGljb249XCJheC1pY1wiIFtuZ0NsYXNzXT1cInsnYXgtaWMtY2hldnJvbi1sZWZ0JzogX2lzUnRsKCksJ2F4LWljLWNoZXZyb24tcmlnaHQnOiAhX2lzUnRsKCl9XCI+PC9heC1pY29uPlxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBbbmdTd2l0Y2hdPVwiYWN0aXZlVmlld1wiPlxyXG4gICAgICAgICAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIneWVhcnMnXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMteWVhclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgKm5nRm9yPVwibGV0IHNsb3Qgb2YgX3Nsb3RzXCIgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlU2xvdENsaWNrKCRldmVudCxzbG90KVwiPnt7c2xvdC50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdTd2l0Y2hDYXNlPVwiJ21vbnRocydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci1zbG90cyBheC1jYWxlbmRhci1zbG90cy1tb250aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgdGFiaW5kZXg9XCIwXCIgKm5nRm9yPVwibGV0IHNsb3Qgb2YgX3Nsb3RzXCIgW3RpdGxlXT1cInNsb3QudG9vbHRpcFwiIFtuZ0NsYXNzXT1cInNsb3QuY3NzQ2xhc3NcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiX2hhbmRsZVNsb3RDbGljaygkZXZlbnQsc2xvdClcIj57e3Nsb3QudGV4dH19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nU3dpdGNoRGVmYXVsdD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1jYWxlbmRhci13ZWVrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZCBvZiBfZGF5TmFtZXNcIj57e2R9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItc2xvdHMgYXgtY2FsZW5kYXItc2xvdHMtZGF5XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiB0YWJpbmRleD1cIjBcIiAqbmdGb3I9XCJsZXQgc2xvdCBvZiBfc2xvdHNcIiBbdGl0bGVdPVwic2xvdC50b29sdGlwXCIgW25nQ2xhc3NdPVwic2xvdC5jc3NDbGFzc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJfaGFuZGxlU2xvdENsaWNrKCRldmVudCxzbG90KVwiPnt7c2xvdC50ZXh0fX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICA8L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcbjxuZy10ZW1wbGF0ZSAjcGlja2VyVGVtcGxhdGU+XHJcbiAgICA8ZGl2IGNsYXNzPVwiYXgtY2FsZW5kYXItcGlja2VyXCI+XHJcbiAgICAgICAgLy9UT0RPOiBwaWNrZXJcclxuICAgIDwvZGl2PlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -1,18 +1,17 @@
1
1
  import { NgModule } from '@angular/core';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import { AXDateTimeModule } from '@acorex/core/dateTime';
4
- import { AXButtonModule } from '@acorex/components/button';
5
4
  import { AXDecoratorModule } from '@acorex/components/decorators';
6
5
  import { AXCalendarComponent } from './calendar.component';
7
6
  import * as i0 from "@angular/core";
8
7
  const COMPONENT = [AXCalendarComponent];
9
- const MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXDateTimeModule];
8
+ const MODULES = [CommonModule, AXDecoratorModule, AXDateTimeModule];
10
9
  export class AXCalendarModule {
11
10
  }
12
- AXCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- AXCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarModule, declarations: [AXCalendarComponent], imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDateTimeModule], exports: [AXCalendarComponent] });
14
- AXCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarModule, imports: [MODULES] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCalendarModule, decorators: [{
11
+ AXCalendarModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
+ AXCalendarModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarModule, declarations: [AXCalendarComponent], imports: [CommonModule, AXDecoratorModule, AXDateTimeModule], exports: [AXCalendarComponent] });
13
+ AXCalendarModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarModule, imports: [MODULES] });
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCalendarModule, decorators: [{
16
15
  type: NgModule,
17
16
  args: [{
18
17
  declarations: [...COMPONENT],
@@ -21,4 +20,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
21
20
  providers: [],
22
21
  }]
23
22
  }] });
24
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDbEUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7O0FBRTNELE1BQU0sU0FBUyxHQUFHLENBQUMsbUJBQW1CLENBQUMsQ0FBQztBQUN4QyxNQUFNLE9BQU8sR0FBRyxDQUFDLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQVFwRixNQUFNLE9BQU8sZ0JBQWdCOzs2R0FBaEIsZ0JBQWdCOzhHQUFoQixnQkFBZ0IsaUJBVFYsbUJBQW1CLGFBQ3JCLFlBQVksRUFBRSxjQUFjLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLGFBRC9ELG1CQUFtQjs4R0FTekIsZ0JBQWdCLFlBSlosT0FBTzsyRkFJWCxnQkFBZ0I7a0JBTjVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XHJcbmltcG9ydCB7IEFYQnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2J1dHRvbic7XHJcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBBWENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UID0gW0FYQ2FsZW5kYXJDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW0NvbW1vbk1vZHVsZSwgQVhCdXR0b25Nb2R1bGUsIEFYRGVjb3JhdG9yTW9kdWxlLCBBWERhdGVUaW1lTW9kdWxlXTtcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxyXG4gICAgaW1wb3J0czogWy4uLk1PRFVMRVNdLFxyXG4gICAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBwcm92aWRlcnM6IFtdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQVhDYWxlbmRhck1vZHVsZSB7IH1cclxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYWNvcmV4L2NvbXBvbmVudHMvY2FsZW5kYXIvc3JjL2NhbGVuZGFyLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNsRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQzs7QUFFM0QsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3hDLE1BQU0sT0FBTyxHQUFHLENBQUMsWUFBWSxFQUFFLGlCQUFpQixFQUFFLGdCQUFnQixDQUFDLENBQUM7QUFRcEUsTUFBTSxPQUFPLGdCQUFnQjs7NkdBQWhCLGdCQUFnQjs4R0FBaEIsZ0JBQWdCLGlCQVRWLG1CQUFtQixhQUNyQixZQUFZLEVBQUUsaUJBQWlCLEVBQUUsZ0JBQWdCLGFBRC9DLG1CQUFtQjs4R0FTekIsZ0JBQWdCLFlBSlosT0FBTzsyRkFJWCxnQkFBZ0I7a0JBTjVCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsR0FBRyxTQUFTLENBQUM7b0JBQzVCLE9BQU8sRUFBRSxDQUFDLEdBQUcsT0FBTyxDQUFDO29CQUNyQixPQUFPLEVBQUUsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDdkIsU0FBUyxFQUFFLEVBQUU7aUJBQ2hCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQVhEYXRlVGltZU1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS9kYXRlVGltZSc7XHJcbmltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xyXG5pbXBvcnQgeyBBWENhbGVuZGFyQ29tcG9uZW50IH0gZnJvbSAnLi9jYWxlbmRhci5jb21wb25lbnQnO1xyXG5cclxuY29uc3QgQ09NUE9ORU5UID0gW0FYQ2FsZW5kYXJDb21wb25lbnRdO1xyXG5jb25zdCBNT0RVTEVTID0gW0NvbW1vbk1vZHVsZSwgQVhEZWNvcmF0b3JNb2R1bGUsIEFYRGF0ZVRpbWVNb2R1bGVdO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuICAgIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXHJcbiAgICBpbXBvcnRzOiBbLi4uTU9EVUxFU10sXHJcbiAgICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcclxuICAgIHByb3ZpZGVyczogW10sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBBWENhbGVuZGFyTW9kdWxlIHsgfVxyXG4iXX0=
@@ -19,8 +19,8 @@ export class AXCarouselArrowsComponent extends AXBaseComponentMixin {
19
19
  this.parent.next();
20
20
  }
21
21
  }
22
- AXCarouselArrowsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselArrowsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
- AXCarouselArrowsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCarouselArrowsComponent, selector: "ax-carousel-arrows", inputs: { class: "class" }, outputs: { onNextClick: "onNextClick", onPrevClick: "onPrevClick" }, host: { classAttribute: "ax-carousel-arrows" }, usesInheritance: true, ngImport: i0, template: `
22
+ AXCarouselArrowsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselArrowsComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
23
+ AXCarouselArrowsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCarouselArrowsComponent, selector: "ax-carousel-arrows", inputs: { class: "class" }, outputs: { onNextClick: "onNextClick", onPrevClick: "onPrevClick" }, host: { classAttribute: "ax-carousel-arrows" }, usesInheritance: true, ngImport: i0, template: `
24
24
  <button
25
25
  class="ax-carousel-arrow-prev"
26
26
  [ngClass]="{ 'ax-vertical-arrow ax-top-arrow': this.parent.vertical }"
@@ -40,7 +40,7 @@ AXCarouselArrowsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.
40
40
  ></i>
41
41
  </button>
42
42
  `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
43
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselArrowsComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselArrowsComponent, decorators: [{
44
44
  type: Component,
45
45
  args: [{
46
46
  selector: 'ax-carousel-arrows',
@@ -6,9 +6,9 @@ export class AXCarouselItemComponent extends AXBaseComponentMixin {
6
6
  super(elementRef, cdr);
7
7
  }
8
8
  }
9
- AXCarouselItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10
- AXCarouselItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCarouselItemComponent, selector: "ax-carousel-item", host: { classAttribute: "ax-carousel-item" }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselItemComponent, decorators: [{
9
+ AXCarouselItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselItemComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
10
+ AXCarouselItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCarouselItemComponent, selector: "ax-carousel-item", host: { classAttribute: "ax-carousel-item" }, usesInheritance: true, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselItemComponent, decorators: [{
12
12
  type: Component,
13
13
  args: [{
14
14
  selector: 'ax-carousel-item',
@@ -53,12 +53,12 @@ export class AXCarouselPagerComponent extends AXBaseComponentMixin {
53
53
  });
54
54
  }
55
55
  }
56
- AXCarouselPagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselPagerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselComponent }], target: i0.ɵɵFactoryTarget.Component });
57
- AXCarouselPagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCarouselPagerComponent, selector: "ax-carousel-pager", host: { classAttribute: "ax-carousel-pager" }, usesInheritance: true, ngImport: i0, template: `
56
+ AXCarouselPagerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselPagerComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselComponent }], target: i0.ɵɵFactoryTarget.Component });
57
+ AXCarouselPagerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCarouselPagerComponent, selector: "ax-carousel-pager", host: { classAttribute: "ax-carousel-pager" }, usesInheritance: true, ngImport: i0, template: `
58
58
  <button *ngFor="let d of _dots;let i=index" [class.ax-state-active]="i==_pageIndex" (click)="_handleClick($event,i)">
59
59
  </button>
60
60
  `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
61
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselPagerComponent, decorators: [{
61
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselPagerComponent, decorators: [{
62
62
  type: Component,
63
63
  args: [{
64
64
  selector: 'ax-carousel-pager',
@@ -2,9 +2,9 @@ import { Injectable } from "@angular/core";
2
2
  import * as i0 from "@angular/core";
3
3
  export class AXCarouselCore {
4
4
  }
5
- AXCarouselCore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselCore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
- AXCarouselCore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselCore });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselCore, decorators: [{
5
+ AXCarouselCore.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselCore, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
6
+ AXCarouselCore.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselCore });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselCore, decorators: [{
8
8
  type: Injectable
9
9
  }] });
10
10
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2Fyb3VzZWwuY2xhc3MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hY29yZXgvY29tcG9uZW50cy9jYXJvdXNlbC9zcmMvY2Fyb3VzZWwuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS3pELE1BQU0sT0FBZ0IsY0FBYzs7MkdBQWQsY0FBYzsrR0FBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBFdmVudEVtaXR0ZXIsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBBWFZhbHVlQ2hhbmdlZEV2ZW50IH0gZnJvbSBcIkBhY29yZXgvY29tcG9uZW50cy9jb21tb25cIjtcclxuXHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBWENhcm91c2VsQ29yZSB7XHJcbiAgICBhYnN0cmFjdCBuZXh0KCk6IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCBsYXN0KCk6IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCBwcmV2KCk6IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCBmaXJzdCgpOiB2b2lkO1xyXG4gICAgYWJzdHJhY3QgZGVzdHJveSgpOiB2b2lkO1xyXG4gICAgYWJzdHJhY3QgZ29Ub1NsaWRlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xyXG4gICAgYWJzdHJhY3QgZ29Ub1BhZ2UoaW5kZXg6IG51bWJlcik6IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCBtb3VudChpbnN0YW5jZTogQVhDYXJvdXNlbCk6IHZvaWQ7XHJcbiAgICBhYnN0cmFjdCByZWJ1aWxkKCk6IHZvaWQ7XHJcbn1cclxuXHJcblxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBBWENhcm91c2VsIHtcclxuXHJcbiAgICBvblNsaWRlQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVDaGFuZ2VkRXZlbnQ8bnVtYmVyPj47XHJcbiAgICBvbk9wdGlvbnNDaGFuZ2VkOiBFdmVudEVtaXR0ZXI8dm9pZD47XHJcblxyXG4gICAgLy9cclxuICAgIGdhcDogbnVtYmVyO1xyXG4gICAgLy9cclxuICAgIGZvY3VzQ2hhbmdlOiBFdmVudEVtaXR0ZXI8bnVtYmVyPjtcclxuICAgIGZvY3VzOiBudW1iZXI7XHJcbiAgICAvL1xyXG4gICAgZHJhZ0NoYW5nZTogRXZlbnRFbWl0dGVyPGFueT47XHJcbiAgICBkcmFnOiBhbnk7XHJcbiAgICAvL1xyXG4gICAgd2hlZWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPjtcclxuICAgIHdoZWVsOiBib29sZWFuO1xyXG4gICAgLy9cclxuICAgIHdpZHRoQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuICAgIHdpZHRoOiBzdHJpbmc7XHJcbiAgICAvL1xyXG4gICAgZml4ZWRXaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPHN0cmluZz47XHJcbiAgICBmaXhlZFdpZHRoOiBzdHJpbmc7XHJcbiAgICAvL1xyXG4gICAgaGVpZ2h0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuICAgIGhlaWdodDogc3RyaW5nO1xyXG4gICAgLy9cclxuICAgIGZpeGVkSGVpZ2h0Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPjtcclxuICAgIGZpeGVkSGVpZ2h0OiBzdHJpbmc7XHJcbiAgICAvL1xyXG4gICAgcGVyUGFnZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcbiAgICBwZXJQYWdlOiBudW1iZXI7XHJcbiAgICAvL1xyXG4gICAgcGVyTW92ZUNoYW5nZTogRXZlbnRFbWl0dGVyPG51bWJlcj47XHJcbiAgICBwZXJNb3ZlOiBudW1iZXI7XHJcbiAgICAvL1xyXG4gICAgaGVpZ2h0UmF0aW9DaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+O1xyXG4gICAgaGVpZ2h0UmF0aW86IG51bWJlcjtcclxuICAgIC8vXHJcbiAgICBhdXRvcGxheUNoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+O1xyXG4gICAgYXV0b3BsYXk6IGJvb2xlYW47XHJcbiAgICAvL1xyXG4gICAgaW50ZXJ2YWxDaGFuZ2U6IEV2ZW50RW1pdHRlcjxudW1iZXI+XHJcbiAgICBpbnRlcnZhbDogbnVtYmVyO1xyXG4gICAgLy9cclxuICAgIGNlbnRlcmVkQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cclxuICAgIGNlbnRlcmVkOiBib29sZWFuO1xyXG4gICAgLy9cclxuICAgIHZlcnRpY2FsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj5cclxuICAgIHZlcnRpY2FsOiBib29sZWFuO1xyXG4gICAgLy9cclxuICAgIHBhZGRpbmdDaGFuZ2U6IEV2ZW50RW1pdHRlcjxzdHJpbmcgfCBudW1iZXI+XHJcbiAgICBwYWRkaW5nOiBzdHJpbmcgfCBudW1iZXI7XHJcbiAgICAvL1xyXG4gICAgbG9vcENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+XHJcbiAgICBsb29wOiBib29sZWFuO1xyXG4gICAgLy9cclxuICAgIHNuYXBDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPlxyXG4gICAgc25hcDogYm9vbGVhbjtcclxuICAgIC8vXHJcbiAgICByZXdpbmRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPlxyXG4gICAgcmV3aW5kOiBib29sZWFuO1xyXG4gICAgLy9cclxuICAgIGF1dG9XaWR0aENoYW5nZTogRXZlbnRFbWl0dGVyPGJvb2xlYW4+XHJcbiAgICBhdXRvV2lkdGg6IGJvb2xlYW47XHJcbiAgICAvL1xyXG4gICAgYnJlYWtwb2ludHM6IGFueTtcclxuICAgIC8vXHJcbiAgICB2aXNpYmxlSW5kZXg6IG51bWJlcjtcclxuICAgIC8vXHJcbiAgICBvbkl0ZW1zQ2hhbmdlZDogRXZlbnRFbWl0dGVyPEFYVmFsdWVDaGFuZ2VkRXZlbnQ8SFRNTERpdkVsZW1lbnRbXT4+XHJcbiAgICBpdGVtczogSFRNTERpdkVsZW1lbnRbXTtcclxuXHJcbiAgICBydGw6IGJvb2xlYW47XHJcblxyXG4gICAgbmV4dCgpOiB2b2lkO1xyXG4gICAgbGFzdCgpOiB2b2lkO1xyXG4gICAgcHJldigpOiB2b2lkO1xyXG4gICAgZmlyc3QoKTogdm9pZDtcclxuICAgIGdvVG9TbGlkZShpbmRleDogbnVtYmVyKTogdm9pZDtcclxuICAgIGdvVG9QYWdlKGluZGV4OiBudW1iZXIpOiB2b2lkO1xyXG5cclxuICAgIGhvc3Q6IEhUTUxEaXZFbGVtZW50O1xyXG59XHJcblxyXG4iXX0=
@@ -335,12 +335,12 @@ export class AXCarouselComponent extends AXBaseComponentMixin {
335
335
  this.core.destroy();
336
336
  }
337
337
  }
338
- AXCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselCore }], target: i0.ɵɵFactoryTarget.Component });
339
- AXCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCarouselComponent, selector: "ax-carousel", inputs: { perMove: "perMove", focus: "focus", breakpoints: "breakpoints", heightRatio: "heightRatio", height: "height", fixedHeight: "fixedHeight", width: "width", fixedWidth: "fixedWidth", perPage: "perPage", gap: "gap", autoplay: "autoplay", snap: "snap", autoWidth: "autoWidth", drag: "drag", wheel: "wheel", interval: "interval", padding: "padding", centered: "centered", vertical: "vertical", loop: "loop", rewind: "rewind" }, outputs: { onOptionsChanged: "onOptionsChanged", onSlideChanged: "onSlideChanged", perMoveChange: "perMoveChange", focusChange: "focusChange", breakpointsChange: "breakpointsChange", heightRatioChange: "heightRatioChange", heightChange: "heightChange", fixedHeightChange: "fixedHeightChange", widthChange: "widthChange", fixedWidthChange: "fixedWidthChange", perPageChange: "perPageChange", autoplayChange: "autoplayChange", snapChange: "snapChange", autoWidthChange: "autoWidthChange", dragChange: "dragChange", wheelChange: "wheelChange", intervalChange: "intervalChange", paddingChange: "paddingChange", centeredChange: "centeredChange", verticalChange: "verticalChange", loopChange: "loopChange", rewindChange: "rewindChange", onItemsChanged: "onItemsChanged" }, host: { classAttribute: "ax-carousel" }, providers: [{
338
+ AXCarouselComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselComponent, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }, { token: i1.AXCarouselCore }], target: i0.ɵɵFactoryTarget.Component });
339
+ AXCarouselComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCarouselComponent, selector: "ax-carousel", inputs: { perMove: "perMove", focus: "focus", breakpoints: "breakpoints", heightRatio: "heightRatio", height: "height", fixedHeight: "fixedHeight", width: "width", fixedWidth: "fixedWidth", perPage: "perPage", gap: "gap", autoplay: "autoplay", snap: "snap", autoWidth: "autoWidth", drag: "drag", wheel: "wheel", interval: "interval", padding: "padding", centered: "centered", vertical: "vertical", loop: "loop", rewind: "rewind" }, outputs: { onOptionsChanged: "onOptionsChanged", onSlideChanged: "onSlideChanged", perMoveChange: "perMoveChange", focusChange: "focusChange", breakpointsChange: "breakpointsChange", heightRatioChange: "heightRatioChange", heightChange: "heightChange", fixedHeightChange: "fixedHeightChange", widthChange: "widthChange", fixedWidthChange: "fixedWidthChange", perPageChange: "perPageChange", autoplayChange: "autoplayChange", snapChange: "snapChange", autoWidthChange: "autoWidthChange", dragChange: "dragChange", wheelChange: "wheelChange", intervalChange: "intervalChange", paddingChange: "paddingChange", centeredChange: "centeredChange", verticalChange: "verticalChange", loopChange: "loopChange", rewindChange: "rewindChange", onItemsChanged: "onItemsChanged" }, host: { classAttribute: "ax-carousel" }, providers: [{
340
340
  provide: AXCarouselCore,
341
341
  useClass: AXCarouselSplideJS
342
342
  }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-carousel-list-container\">\r\n <div class=\"ax-carousel-list\">\r\n <ng-content select=\"ax-carousel-item\">\r\n </ng-content>\r\n </div>\r\n <ng-content select=\"ax-carousel-arrows\">\r\n </ng-content>\r\n</div>\r\n\r\n<ng-content select=\"ax-carousel-pager\">\r\n</ng-content>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
343
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselComponent, decorators: [{
343
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselComponent, decorators: [{
344
344
  type: Component,
345
345
  args: [{ selector: 'ax-carousel', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-carousel' }, providers: [{
346
346
  provide: AXCarouselCore,
@@ -9,10 +9,10 @@ const COMPONENT = [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrow
9
9
  const MODULES = [CommonModule];
10
10
  export class AXCarouselModule {
11
11
  }
12
- AXCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
- AXCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselModule, declarations: [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent], imports: [CommonModule], exports: [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent] });
14
- AXCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselModule, imports: [MODULES] });
15
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCarouselModule, decorators: [{
12
+ AXCarouselModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
13
+ AXCarouselModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselModule, declarations: [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent], imports: [CommonModule], exports: [AXCarouselComponent, AXCarouselItemComponent, AXCarouselArrowsComponent, AXCarouselPagerComponent] });
14
+ AXCarouselModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselModule, imports: [MODULES] });
15
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCarouselModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  declarations: [...COMPONENT],
@@ -32,9 +32,9 @@ export class AXCheckBoxComponent extends AXBaseValueComponentMixin {
32
32
  return true;
33
33
  }
34
34
  }
35
- AXCheckBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCheckBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
- AXCheckBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: { disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { classAttribute: "ax-check-box" }, usesInheritance: true, ngImport: i0, template: "<label class=\"ax-flex ax-items-start ax-w-fit\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <input [id]=\"id\" class=\"ax-h-4 ax-w-4\" type=\"checkbox\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-state-disabled]=\"disabled\" [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\r\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-form-hint\"></ng-content>\r\n <span class=\"ax-error-container\"></span>\r\n </div>\r\n</label>\r\n<ng-content select=\"ax-validation-rule\"></ng-content>", dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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 });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
35
+ AXCheckBoxComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCheckBoxComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
36
+ AXCheckBoxComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.2", type: AXCheckBoxComponent, selector: "ax-check-box", inputs: { disabled: "disabled", tabIndex: "tabIndex", readonly: "readonly", allowNull: "allowNull", value: "value", name: "name", checked: "checked" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { classAttribute: "ax-check-box" }, usesInheritance: true, ngImport: i0, template: "<label class=\"ax-flex ax-items-start ax-w-fit\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <input [id]=\"id\" class=\"ax-h-4 ax-w-4\" type=\"checkbox\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-state-disabled]=\"disabled\" [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\r\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-form-hint\"></ng-content>\r\n <span class=\"ax-error-container\"></span>\r\n </div>\r\n</label>\r\n<ng-content select=\"ax-validation-rule\"></ng-content>", dependencies: [{ kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { 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 });
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.2", ngImport: i0, type: AXCheckBoxComponent, decorators: [{
38
38
  type: Component,
39
39
  args: [{ selector: 'ax-check-box', inputs: ['disabled', 'tabIndex', 'readonly', 'allowNull', 'value', 'name', 'checked'], outputs: ['onBlur', 'onFocus', 'valueChange', 'onValueChanged'], host: { class: 'ax-check-box' }, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<label class=\"ax-flex ax-items-start ax-w-fit\">\r\n <div class=\"ax-flex ax-items-center ax-h-5\">\r\n <input [id]=\"id\" class=\"ax-h-4 ax-w-4\" type=\"checkbox\" [class.ax-state-readonly]=\"readonly\"\r\n [class.ax-state-disabled]=\"disabled\" [indeterminate]=\"_stateIndeterminate\" [(ngModel)]=\"value\"\r\n [checked]=\"value\" [disabled]=\"disabled\" [readonly]=\"readonly\" [tabindex]=\"tabIndex\"\r\n (click)=\"_handleOnClickEvent($event)\" (focus)=\"_emitOnFocusEvent($event)\" (blur)=\"_emitOnBlurEvent($event)\">\r\n </div>\r\n <div class=\"ax-ms-3 ax-text-sm\">\r\n <ng-content></ng-content>\r\n <ng-content select=\"ax-form-hint\"></ng-content>\r\n <span class=\"ax-error-container\"></span>\r\n </div>\r\n</label>\r\n<ng-content select=\"ax-validation-rule\"></ng-content>" }]
40
40
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; } });