@acorex/components 7.20.0 → 7.21.0

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 (309) hide show
  1. package/button/lib/button-item-list.component.d.ts +3 -3
  2. package/check-box/lib/check-box.component.d.ts +1 -0
  3. package/common/lib/components/value-component.class.d.ts +3 -3
  4. package/data-pager/lib/data-pager.module.d.ts +2 -1
  5. package/dropdown/lib/dropdown-panel.component.d.ts +4 -2
  6. package/dropdown-button/README.md +3 -0
  7. package/dropdown-button/index.d.ts +2 -0
  8. package/dropdown-button/lib/dropdown-button.component.d.ts +28 -0
  9. package/dropdown-button/lib/dropdown-button.module.d.ts +13 -0
  10. package/esm2022/action-sheet/lib/action-sheet.component.mjs +3 -3
  11. package/esm2022/action-sheet/lib/action-sheet.module.mjs +4 -4
  12. package/esm2022/action-sheet/lib/action-sheet.service.mjs +3 -3
  13. package/esm2022/alert/lib/alert.component.mjs +3 -3
  14. package/esm2022/alert/lib/alert.module.mjs +4 -4
  15. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  16. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  17. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  18. package/esm2022/badge/lib/badge.component.mjs +3 -3
  19. package/esm2022/badge/lib/badge.module.mjs +4 -4
  20. package/esm2022/bottom-navigation/lib/bottom-navigation-item/bottom-navigation-item.component.mjs +3 -3
  21. package/esm2022/bottom-navigation/lib/bottom-navigation.component.mjs +3 -3
  22. package/esm2022/bottom-navigation/lib/bottom-navigation.module.mjs +4 -4
  23. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  24. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  25. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  26. package/esm2022/button/lib/button-item-list.component.mjs +8 -6
  27. package/esm2022/button/lib/button-item.component.mjs +3 -3
  28. package/esm2022/button/lib/button.component.mjs +3 -3
  29. package/esm2022/button/lib/button.module.mjs +4 -4
  30. package/esm2022/button-group/lib/button-group.component.mjs +3 -3
  31. package/esm2022/button-group/lib/button-group.module.mjs +4 -4
  32. package/esm2022/calendar/lib/calendar-range.component.mjs +3 -3
  33. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  34. package/esm2022/calendar/lib/calendar.component.mjs +3 -3
  35. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  36. package/esm2022/check-box/lib/check-box.component.mjs +9 -4
  37. package/esm2022/check-box/lib/check-box.module.mjs +4 -4
  38. package/esm2022/chips/lib/chips.component.mjs +3 -3
  39. package/esm2022/chips/lib/chips.module.mjs +4 -4
  40. package/esm2022/circular-progress/lib/circular-progress.component.mjs +3 -3
  41. package/esm2022/circular-progress/lib/circular-progress.module.mjs +4 -4
  42. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  43. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  44. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  45. package/esm2022/color-box/lib/color-box.component.mjs +3 -3
  46. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  47. package/esm2022/color-palette/lib/color-palette-input.component.mjs +3 -3
  48. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +3 -3
  49. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  50. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  51. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  52. package/esm2022/color-palette/lib/color-palette.component.mjs +3 -3
  53. package/esm2022/color-palette/lib/color-palette.module.mjs +4 -4
  54. package/esm2022/common/lib/classes/components.class.mjs +21 -21
  55. package/esm2022/common/lib/common.module.mjs +4 -4
  56. package/esm2022/common/lib/components/base-component.class.mjs +3 -3
  57. package/esm2022/common/lib/components/input-base-value-component.class.mjs +3 -3
  58. package/esm2022/common/lib/components/look-component.class.mjs +3 -3
  59. package/esm2022/common/lib/components/selection-base.component.class.mjs +6 -6
  60. package/esm2022/common/lib/components/value-component.class.mjs +14 -12
  61. package/esm2022/common/lib/directives/auto-focus.directive.mjs +3 -3
  62. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +3 -3
  63. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  64. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  65. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  66. package/esm2022/common/lib/directives/ripple.directive.mjs +3 -3
  67. package/esm2022/common/lib/services/dom.service.mjs +3 -3
  68. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  69. package/esm2022/data-pager/lib/data-pager-base.component.mjs +6 -6
  70. package/esm2022/data-pager/lib/data-pager-info.component.mjs +14 -14
  71. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +3 -3
  72. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +3 -3
  73. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  74. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +4 -4
  75. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +3 -3
  76. package/esm2022/data-pager/lib/data-pager.component.mjs +3 -3
  77. package/esm2022/data-pager/lib/data-pager.module.mjs +9 -6
  78. package/esm2022/data-table/lib/columns/data-table-column-resizable.directive.mjs +3 -3
  79. package/esm2022/data-table/lib/columns/data-table-column.mjs +3 -3
  80. package/esm2022/data-table/lib/columns/data-text-column.component.mjs +3 -3
  81. package/esm2022/data-table/lib/columns/row-command-column.component.mjs +7 -7
  82. package/esm2022/data-table/lib/columns/row-index-column.component.mjs +3 -3
  83. package/esm2022/data-table/lib/columns/row-select-column.component.mjs +3 -3
  84. package/esm2022/data-table/lib/data-table.component.mjs +3 -3
  85. package/esm2022/data-table/lib/data-table.module.mjs +4 -4
  86. package/esm2022/datetime-box/lib/datetime-box.component.mjs +3 -3
  87. package/esm2022/datetime-box/lib/datetime-box.module.mjs +4 -4
  88. package/esm2022/datetime-input/lib/datetime-input.component.mjs +3 -3
  89. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  90. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +3 -3
  91. package/esm2022/datetime-picker/lib/datetime-picker.module.mjs +4 -4
  92. package/esm2022/decorators/lib/components/clear-button.component.mjs +3 -3
  93. package/esm2022/decorators/lib/components/close-button.component.mjs +3 -3
  94. package/esm2022/decorators/lib/components/generic-content.component.mjs +3 -3
  95. package/esm2022/decorators/lib/components/icon.component.mjs +3 -3
  96. package/esm2022/decorators/lib/decorators.module.mjs +4 -4
  97. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  98. package/esm2022/dialog/lib/dialog.module.mjs +4 -4
  99. package/esm2022/dialog/lib/dialog.service.mjs +3 -3
  100. package/esm2022/drawer/lib/drawer-container.component.mjs +3 -3
  101. package/esm2022/drawer/lib/drawer.component.mjs +3 -3
  102. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  103. package/esm2022/dropdown/lib/dropdown-box.class.mjs +3 -3
  104. package/esm2022/dropdown/lib/dropdown-box.component.mjs +3 -3
  105. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +17 -7
  106. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  107. package/esm2022/dropdown-button/acorex-components-dropdown-button.mjs +5 -0
  108. package/esm2022/dropdown-button/index.mjs +3 -0
  109. package/esm2022/dropdown-button/lib/dropdown-button.component.mjs +89 -0
  110. package/esm2022/dropdown-button/lib/dropdown-button.module.mjs +45 -0
  111. package/esm2022/form/lib/form-field.component.mjs +3 -3
  112. package/esm2022/form/lib/form.component.mjs +9 -8
  113. package/esm2022/form/lib/form.module.mjs +4 -4
  114. package/esm2022/form/lib/validation-rule.directive.mjs +3 -3
  115. package/esm2022/form/lib/validation-summary.component.mjs +3 -3
  116. package/esm2022/image/lib/image.component.mjs +4 -4
  117. package/esm2022/image/lib/image.module.mjs +4 -4
  118. package/esm2022/label/lib/label.component.mjs +3 -3
  119. package/esm2022/label/lib/label.module.mjs +4 -4
  120. package/esm2022/list/lib/list.component.mjs +3 -3
  121. package/esm2022/list/lib/list.module.mjs +4 -4
  122. package/esm2022/loading/lib/loading-spinner.component.mjs +3 -3
  123. package/esm2022/loading/lib/loading.component.mjs +3 -3
  124. package/esm2022/loading/lib/loading.directive.mjs +3 -3
  125. package/esm2022/loading/lib/loading.module.mjs +4 -4
  126. package/esm2022/loading/lib/loading.service.mjs +3 -3
  127. package/esm2022/loading-dialog/acorex-components-loading-dialog.mjs +5 -0
  128. package/esm2022/loading-dialog/index.mjs +5 -0
  129. package/esm2022/loading-dialog/lib/loading-dialog.class.mjs +2 -0
  130. package/esm2022/loading-dialog/lib/loading-dialog.component.mjs +44 -0
  131. package/esm2022/loading-dialog/lib/loading-dialog.module.mjs +46 -0
  132. package/esm2022/loading-dialog/lib/loading-dialog.service.mjs +34 -0
  133. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +3 -3
  134. package/esm2022/menu/lib/menu.component.mjs +3 -3
  135. package/esm2022/menu/lib/menu.module.mjs +4 -4
  136. package/esm2022/nav/lib/nav-item/nav-item.component.mjs +3 -3
  137. package/esm2022/nav/lib/nav.component.mjs +3 -3
  138. package/esm2022/nav/lib/nav.module.mjs +4 -4
  139. package/esm2022/navbar/lib/navbar.component.mjs +3 -3
  140. package/esm2022/navbar/lib/navbar.module.mjs +4 -4
  141. package/esm2022/notification/lib/notification.component.mjs +3 -3
  142. package/esm2022/notification/lib/notification.module.mjs +4 -4
  143. package/esm2022/notification/lib/notification.service.mjs +3 -3
  144. package/esm2022/number-box/lib/number-box.component.mjs +5 -5
  145. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  146. package/esm2022/otp/lib/otp.component.mjs +3 -3
  147. package/esm2022/otp/lib/otp.module.mjs +4 -4
  148. package/esm2022/page/lib/base-page.class.mjs +3 -3
  149. package/esm2022/page/lib/page.component.mjs +3 -3
  150. package/esm2022/page/lib/page.module.mjs +4 -4
  151. package/esm2022/password-box/lib/password-box.component.mjs +5 -5
  152. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  153. package/esm2022/phone-box/lib/phone-box.component.mjs +3 -3
  154. package/esm2022/phone-box/lib/phone-box.module.mjs +4 -4
  155. package/esm2022/picker/lib/picker-column.directive.mjs +3 -3
  156. package/esm2022/picker/lib/picker.component.mjs +3 -3
  157. package/esm2022/picker/lib/picker.module.mjs +4 -4
  158. package/esm2022/popover/lib/popover.component.mjs +5 -5
  159. package/esm2022/popover/lib/popover.module.mjs +4 -4
  160. package/esm2022/popup/lib/popup.component.mjs +4 -4
  161. package/esm2022/popup/lib/popup.module.mjs +4 -4
  162. package/esm2022/popup/lib/popup.service.mjs +3 -3
  163. package/esm2022/progress-bar/lib/progress-bar.component.mjs +8 -5
  164. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  165. package/esm2022/radio/lib/radio.component.mjs +3 -3
  166. package/esm2022/radio/lib/radio.module.mjs +4 -4
  167. package/esm2022/range-slider/lib/range-slider.component.mjs +3 -3
  168. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  169. package/esm2022/result/lib/result.component.mjs +4 -4
  170. package/esm2022/result/lib/result.module.mjs +4 -4
  171. package/esm2022/routing-progress/lib/routing-progress.component.mjs +3 -3
  172. package/esm2022/routing-progress/lib/routing-progress.module.mjs +4 -4
  173. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +3 -3
  174. package/esm2022/scheduler/lib/scheduler-week-view.component.mjs +3 -3
  175. package/esm2022/scheduler/lib/scheduler.component.mjs +3 -3
  176. package/esm2022/scheduler/lib/scheduler.module.mjs +4 -4
  177. package/esm2022/search-box/lib/search-box.component.mjs +3 -3
  178. package/esm2022/search-box/lib/search-box.module.mjs +4 -4
  179. package/esm2022/select-box/lib/select-box.component.mjs +16 -8
  180. package/esm2022/select-box/lib/select-box.module.mjs +4 -4
  181. package/esm2022/selection-list/lib/selection-list.component.mjs +10 -7
  182. package/esm2022/selection-list/lib/selection-list.module.mjs +4 -4
  183. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +3 -3
  184. package/esm2022/side-menu/lib/side-menu.component.mjs +3 -3
  185. package/esm2022/side-menu/lib/side-menu.module.mjs +4 -4
  186. package/esm2022/skeleton/lib/skeleton.component.mjs +3 -3
  187. package/esm2022/skeleton/lib/skeleton.module.mjs +4 -4
  188. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  189. package/esm2022/switch/lib/switch.component.mjs +7 -7
  190. package/esm2022/switch/lib/switch.module.mjs +4 -4
  191. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  192. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  193. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  194. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  195. package/esm2022/tag/lib/tag.component.mjs +3 -3
  196. package/esm2022/tag/lib/tag.module.mjs +4 -4
  197. package/esm2022/text-area/lib/text-area.component.mjs +3 -3
  198. package/esm2022/text-area/lib/text-area.module.mjs +4 -4
  199. package/esm2022/text-box/lib/mask-options.directive.mjs +3 -3
  200. package/esm2022/text-box/lib/text-box.component.mjs +3 -3
  201. package/esm2022/text-box/lib/text-box.module.mjs +4 -4
  202. package/esm2022/toast/lib/toast.component.mjs +3 -3
  203. package/esm2022/toast/lib/toast.module.mjs +4 -4
  204. package/esm2022/toast/lib/toast.service.mjs +3 -3
  205. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  206. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  207. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  208. package/esm2022/uploader/lib/uploader-browse-handle.directive.mjs +3 -3
  209. package/esm2022/uploader/lib/uploader-dialog-container.component.mjs +3 -3
  210. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +3 -3
  211. package/esm2022/uploader/lib/uploader-list.component.mjs +3 -3
  212. package/esm2022/uploader/lib/uploader-zone.directive.mjs +3 -3
  213. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  214. package/esm2022/uploader/lib/uploader.service.mjs +3 -3
  215. package/fesm2022/acorex-components-action-sheet.mjs +10 -10
  216. package/fesm2022/acorex-components-alert.mjs +7 -7
  217. package/fesm2022/acorex-components-avatar.mjs +10 -10
  218. package/fesm2022/acorex-components-badge.mjs +7 -7
  219. package/fesm2022/acorex-components-bottom-navigation.mjs +10 -10
  220. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  221. package/fesm2022/acorex-components-button-group.mjs +7 -7
  222. package/fesm2022/acorex-components-button.mjs +17 -15
  223. package/fesm2022/acorex-components-button.mjs.map +1 -1
  224. package/fesm2022/acorex-components-calendar.mjs +13 -13
  225. package/fesm2022/acorex-components-check-box.mjs +12 -7
  226. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  227. package/fesm2022/acorex-components-chips.mjs +7 -7
  228. package/fesm2022/acorex-components-circular-progress.mjs +7 -7
  229. package/fesm2022/acorex-components-collapse.mjs +10 -10
  230. package/fesm2022/acorex-components-color-box.mjs +7 -7
  231. package/fesm2022/acorex-components-color-palette.mjs +25 -25
  232. package/fesm2022/acorex-components-common.mjs +76 -74
  233. package/fesm2022/acorex-components-common.mjs.map +1 -1
  234. package/fesm2022/acorex-components-data-pager.mjs +54 -53
  235. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  236. package/fesm2022/acorex-components-data-table.mjs +29 -29
  237. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  238. package/fesm2022/acorex-components-datetime-box.mjs +7 -7
  239. package/fesm2022/acorex-components-datetime-input.mjs +7 -7
  240. package/fesm2022/acorex-components-datetime-picker.mjs +7 -7
  241. package/fesm2022/acorex-components-decorators.mjs +16 -16
  242. package/fesm2022/acorex-components-dialog.mjs +10 -10
  243. package/fesm2022/acorex-components-drawer.mjs +10 -10
  244. package/fesm2022/acorex-components-dropdown-button.mjs +137 -0
  245. package/fesm2022/acorex-components-dropdown-button.mjs.map +1 -0
  246. package/fesm2022/acorex-components-dropdown.mjs +26 -16
  247. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  248. package/fesm2022/acorex-components-form.mjs +21 -20
  249. package/fesm2022/acorex-components-form.mjs.map +1 -1
  250. package/fesm2022/acorex-components-image.mjs +7 -7
  251. package/fesm2022/acorex-components-image.mjs.map +1 -1
  252. package/fesm2022/acorex-components-label.mjs +7 -7
  253. package/fesm2022/acorex-components-list.mjs +7 -7
  254. package/fesm2022/acorex-components-loading-dialog.mjs +122 -0
  255. package/fesm2022/acorex-components-loading-dialog.mjs.map +1 -0
  256. package/fesm2022/acorex-components-loading.mjs +16 -16
  257. package/fesm2022/acorex-components-menu.mjs +10 -10
  258. package/fesm2022/acorex-components-nav.mjs +10 -10
  259. package/fesm2022/acorex-components-navbar.mjs +7 -7
  260. package/fesm2022/acorex-components-notification.mjs +10 -10
  261. package/fesm2022/acorex-components-number-box.mjs +9 -9
  262. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  263. package/fesm2022/acorex-components-otp.mjs +7 -7
  264. package/fesm2022/acorex-components-page.mjs +10 -10
  265. package/fesm2022/acorex-components-password-box.mjs +8 -8
  266. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  267. package/fesm2022/acorex-components-phone-box.mjs +7 -7
  268. package/fesm2022/acorex-components-picker.mjs +10 -10
  269. package/fesm2022/acorex-components-popover.mjs +8 -8
  270. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  271. package/fesm2022/acorex-components-popup.mjs +11 -11
  272. package/fesm2022/acorex-components-progress-bar.mjs +11 -8
  273. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  274. package/fesm2022/acorex-components-radio.mjs +7 -7
  275. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  276. package/fesm2022/acorex-components-result.mjs +8 -8
  277. package/fesm2022/acorex-components-result.mjs.map +1 -1
  278. package/fesm2022/acorex-components-routing-progress.mjs +7 -7
  279. package/fesm2022/acorex-components-scheduler.mjs +13 -13
  280. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  281. package/fesm2022/acorex-components-search-box.mjs +7 -7
  282. package/fesm2022/acorex-components-select-box.mjs +19 -11
  283. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  284. package/fesm2022/acorex-components-selection-list.mjs +12 -9
  285. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  286. package/fesm2022/acorex-components-side-menu.mjs +10 -10
  287. package/fesm2022/acorex-components-skeleton.mjs +7 -7
  288. package/fesm2022/acorex-components-switch.mjs +13 -13
  289. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  290. package/fesm2022/acorex-components-tabs.mjs +13 -13
  291. package/fesm2022/acorex-components-tag.mjs +7 -7
  292. package/fesm2022/acorex-components-text-area.mjs +7 -7
  293. package/fesm2022/acorex-components-text-box.mjs +10 -10
  294. package/fesm2022/acorex-components-toast.mjs +10 -10
  295. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  296. package/fesm2022/acorex-components-uploader.mjs +22 -22
  297. package/image/lib/image.component.d.ts +1 -1
  298. package/loading-dialog/README.md +3 -0
  299. package/loading-dialog/index.d.ts +4 -0
  300. package/loading-dialog/lib/loading-dialog.class.d.ts +31 -0
  301. package/loading-dialog/lib/loading-dialog.component.d.ts +16 -0
  302. package/loading-dialog/lib/loading-dialog.module.d.ts +14 -0
  303. package/loading-dialog/lib/loading-dialog.service.d.ts +8 -0
  304. package/package.json +19 -7
  305. package/password-box/lib/password-box.component.d.ts +1 -1
  306. package/progress-bar/lib/progress-bar.component.d.ts +3 -1
  307. package/select-box/lib/select-box.component.d.ts +3 -2
  308. package/selection-list/lib/selection-list.component.d.ts +3 -1
  309. package/switch/lib/switch.component.d.ts +2 -2
@@ -47,10 +47,10 @@ export class AXRoutingProgressComponent extends MXBaseComponent {
47
47
  ngOnDestroy() {
48
48
  this.subscription?.unsubscribe();
49
49
  }
50
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
51
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: AXRoutingProgressComponent, selector: "ax-routing-progress", usesInheritance: true, ngImport: i0, template: "@if(loading){\n<div [style.width.%]=\"width\"></div>\n}", styles: ["ax-routing-progress{position:fixed;inset-inline-start:0px;top:0;z-index:2147483647;display:block;height:.25rem;width:100%}ax-routing-progress>div{transition:width .3s ease-out,opacity .15s .15s ease-in;transform:translateZ(0);height:100%;background-color:rgba(var(--ax-color-primary-500))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
50
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressComponent, deps: [{ token: i1.Router }], target: i0.ɵɵFactoryTarget.Component }); }
51
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: AXRoutingProgressComponent, selector: "ax-routing-progress", usesInheritance: true, ngImport: i0, template: "@if(loading){\n<div [style.width.%]=\"width\"></div>\n}", styles: ["ax-routing-progress{position:fixed;inset-inline-start:0px;top:0;z-index:2147483647;display:block;height:.25rem;width:100%}ax-routing-progress>div{transition:width .3s ease-out,opacity .15s .15s ease-in;transform:translateZ(0);height:100%;background-color:rgba(var(--ax-color-primary-500))}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
52
52
  }
53
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressComponent, decorators: [{
53
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressComponent, decorators: [{
54
54
  type: Component,
55
55
  args: [{ selector: 'ax-routing-progress', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "@if(loading){\n<div [style.width.%]=\"width\"></div>\n}", styles: ["ax-routing-progress{position:fixed;inset-inline-start:0px;top:0;z-index:2147483647;display:block;height:.25rem;width:100%}ax-routing-progress>div{transition:width .3s ease-out,opacity .15s .15s ease-in;transform:translateZ(0);height:100%;background-color:rgba(var(--ax-color-primary-500))}\n"] }]
56
56
  }], ctorParameters: () => [{ type: i1.Router }] });
@@ -5,11 +5,11 @@ import * as i0 from "@angular/core";
5
5
  const COMPONENT = [AXRoutingProgressComponent];
6
6
  const MODULES = [CommonModule];
7
7
  export class AXRoutingProgressModule {
8
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressModule, declarations: [AXRoutingProgressComponent], imports: [CommonModule], exports: [AXRoutingProgressComponent] }); }
10
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressModule, imports: [MODULES] }); }
8
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
9
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressModule, declarations: [AXRoutingProgressComponent], imports: [CommonModule], exports: [AXRoutingProgressComponent] }); }
10
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressModule, imports: [MODULES] }); }
11
11
  }
12
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXRoutingProgressModule, decorators: [{
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXRoutingProgressModule, decorators: [{
13
13
  type: NgModule,
14
14
  args: [{
15
15
  declarations: [...COMPONENT],
@@ -43,10 +43,10 @@ export class AXSchedulerMonthViewComponent extends MXBaseComponent {
43
43
  isToday: c.dayOfYear == this.date.dayOfYear,
44
44
  }));
45
45
  }
46
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: { date: "date" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"ax-flex ax-flex-col ax-flex-auto ax-shadow-md\"> -->\n<div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full ax-bg-neutral-200 ax-border-b\">\n <ng-container *ngFor=\"let item of dayNames\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-2 ax-bg-white ax-font-medium\">\n {{item}}\n </div>\n </ng-container>\n</div>\n<div class=\"ax-flex ax-flex-auto ax-bg-neutral-200\">\n <div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full\">\n <ng-container *ngFor=\"let item of _slots\">\n <div class=\"ax-py-2 ax-px-3 ax-bg-white ax-cursor-pointer hover:ax-bg-neutral-100\n ax-flex ax-flex-col ax-justify-between\" [ngClass]=\"item.cssClass\">\n <time class=\"ax-text-sm ax-flex ax-items-center ax-justify-center ax-rounded-full ax-w-6 ax-h-6\"\n [class.ax-bg-primary-500]=\"item.isToday\" [class.ax-text-white]=\"item.isToday\"\n datetime=\"item.date.format('dd')\">{{item.date.format('d')}}</time>\n <ol class=\"ax-mt-2 ax-hidden lg:ax-flex ax-flex-col ax-gap-1\">\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-primary-500 ax-py-1 ax-px-2 ax-rounded ax-text-primary-fore\">\n <p class=\"ax-text-sm\">Launch Time</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-success-500 ax-py-1 ax-px-2 ax-rounded ax-text-success-fore\">\n <p class=\"ax-text-sm\">Daily meeting</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n </ol>\n <ol class=\"ax-flex ax-gap-1 ax-self-center md:ax-hidden\">\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-primary-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-danger-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 8 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-warning-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 3 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-success-500 lg:ax-hidden\"></span>\n </li>\n </ol>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- </div> -->\n<div class=\"ax-p-4 lg:ax-hidden\">\n <ol\n class=\"ax-flex ax-flex-col ax-rounded-lg ax-border ax-bg-surface ax-divide-y ax-overflow-hidden ax-cursor-pointer\">\n <li class=\"ax-flex ax-items-start ax-justify-between ax-p-4 hover:ax-bg-neutral-100 mobile-task\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <p class=\"ax-font-medium\">Daily Meeting at the Office</p>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-icon class=\"fa-solid fa-clock ax-text-neutral-400\"></ax-icon>\n <p class=\"ax-text-sm\">3 PM</p>\n </div>\n </div>\n <ax-button text=\"Edit\" class=\"!ax-bg-surface ax-border ax-sm ax-opacity-0\"></ax-button>\n </li>\n </ol>\n</div>", 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: "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", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
46
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerMonthViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
47
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: { date: "date" }, usesInheritance: true, ngImport: i0, template: "<!-- <div class=\"ax-flex ax-flex-col ax-flex-auto ax-shadow-md\"> -->\n<div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full ax-bg-neutral-200 ax-border-b\">\n <ng-container *ngFor=\"let item of dayNames\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-2 ax-bg-white ax-font-medium\">\n {{item}}\n </div>\n </ng-container>\n</div>\n<div class=\"ax-flex ax-flex-auto ax-bg-neutral-200\">\n <div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full\">\n <ng-container *ngFor=\"let item of _slots\">\n <div class=\"ax-py-2 ax-px-3 ax-bg-white ax-cursor-pointer hover:ax-bg-neutral-100\n ax-flex ax-flex-col ax-justify-between\" [ngClass]=\"item.cssClass\">\n <time class=\"ax-text-sm ax-flex ax-items-center ax-justify-center ax-rounded-full ax-w-6 ax-h-6\"\n [class.ax-bg-primary-500]=\"item.isToday\" [class.ax-text-white]=\"item.isToday\"\n datetime=\"item.date.format('dd')\">{{item.date.format('d')}}</time>\n <ol class=\"ax-mt-2 ax-hidden lg:ax-flex ax-flex-col ax-gap-1\">\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-primary-500 ax-py-1 ax-px-2 ax-rounded ax-text-primary-fore\">\n <p class=\"ax-text-sm\">Launch Time</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-success-500 ax-py-1 ax-px-2 ax-rounded ax-text-success-fore\">\n <p class=\"ax-text-sm\">Daily meeting</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n </ol>\n <ol class=\"ax-flex ax-gap-1 ax-self-center md:ax-hidden\">\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-primary-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-danger-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 8 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-warning-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 3 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-success-500 lg:ax-hidden\"></span>\n </li>\n </ol>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- </div> -->\n<div class=\"ax-p-4 lg:ax-hidden\">\n <ol\n class=\"ax-flex ax-flex-col ax-rounded-lg ax-border ax-bg-surface ax-divide-y ax-overflow-hidden ax-cursor-pointer\">\n <li class=\"ax-flex ax-items-start ax-justify-between ax-p-4 hover:ax-bg-neutral-100 mobile-task\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <p class=\"ax-font-medium\">Daily Meeting at the Office</p>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-icon class=\"fa-solid fa-clock ax-text-neutral-400\"></ax-icon>\n <p class=\"ax-text-sm\">3 PM</p>\n </div>\n </div>\n <ax-button text=\"Edit\" class=\"!ax-bg-surface ax-border ax-sm ax-opacity-0\"></ax-button>\n </li>\n </ol>\n</div>", 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: "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", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
48
48
  }
49
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerMonthViewComponent, decorators: [{
50
50
  type: Component,
51
51
  args: [{ selector: 'ax-scheduler-month-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<!-- <div class=\"ax-flex ax-flex-col ax-flex-auto ax-shadow-md\"> -->\n<div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full ax-bg-neutral-200 ax-border-b\">\n <ng-container *ngFor=\"let item of dayNames\">\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-2 ax-bg-white ax-font-medium\">\n {{item}}\n </div>\n </ng-container>\n</div>\n<div class=\"ax-flex ax-flex-auto ax-bg-neutral-200\">\n <div class=\"ax-grid ax-grid-cols-7 ax-gap-[1px] ax-w-full\">\n <ng-container *ngFor=\"let item of _slots\">\n <div class=\"ax-py-2 ax-px-3 ax-bg-white ax-cursor-pointer hover:ax-bg-neutral-100\n ax-flex ax-flex-col ax-justify-between\" [ngClass]=\"item.cssClass\">\n <time class=\"ax-text-sm ax-flex ax-items-center ax-justify-center ax-rounded-full ax-w-6 ax-h-6\"\n [class.ax-bg-primary-500]=\"item.isToday\" [class.ax-text-white]=\"item.isToday\"\n datetime=\"item.date.format('dd')\">{{item.date.format('d')}}</time>\n <ol class=\"ax-mt-2 ax-hidden lg:ax-flex ax-flex-col ax-gap-1\">\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-primary-500 ax-py-1 ax-px-2 ax-rounded ax-text-primary-fore\">\n <p class=\"ax-text-sm\">Launch Time</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <a href=\"#\"\n class=\"ax-flex ax-justify-between ax-text-sm ax-bg-success-500 ax-py-1 ax-px-2 ax-rounded ax-text-success-fore\">\n <p class=\"ax-text-sm\">Daily meeting</p>\n <time class=\"ax-ms-3\" datetime=\"item.date.format('HH A')\">\n {{item.date.format('hh A')}}\n </time>\n </a>\n </li>\n </ol>\n <ol class=\"ax-flex ax-gap-1 ax-self-center md:ax-hidden\">\n <li *ngIf=\"item.date.dayOfMonth % 5 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-primary-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 6 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-danger-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 8 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-warning-500 lg:ax-hidden\"></span>\n </li>\n <li *ngIf=\"item.date.dayOfMonth % 3 === 0\">\n <span class=\"ax-flex ax-w-1.5 ax-h-1.5 ax-rounded-full ax-bg-success-500 lg:ax-hidden\"></span>\n </li>\n </ol>\n </div>\n </ng-container>\n </div>\n</div>\n<!-- </div> -->\n<div class=\"ax-p-4 lg:ax-hidden\">\n <ol\n class=\"ax-flex ax-flex-col ax-rounded-lg ax-border ax-bg-surface ax-divide-y ax-overflow-hidden ax-cursor-pointer\">\n <li class=\"ax-flex ax-items-start ax-justify-between ax-p-4 hover:ax-bg-neutral-100 mobile-task\">\n <div class=\"ax-flex ax-flex-col ax-gap-2\">\n <p class=\"ax-font-medium\">Daily Meeting at the Office</p>\n <div class=\"ax-flex ax-gap-2 ax-items-center\">\n <ax-icon class=\"fa-solid fa-clock ax-text-neutral-400\"></ax-icon>\n <p class=\"ax-text-sm\">3 PM</p>\n </div>\n </div>\n <ax-button text=\"Edit\" class=\"!ax-bg-surface ax-border ax-sm ax-opacity-0\"></ax-button>\n </li>\n </ol>\n</div>" }]
52
52
  }], propDecorators: { date: [{
@@ -2,10 +2,10 @@ import { MXBaseComponent } from '@acorex/components/common';
2
2
  import { ChangeDetectionStrategy, Component, ViewEncapsulation } from '@angular/core';
3
3
  import * as i0 from "@angular/core";
4
4
  export class AXSchedulerWeekViewComponent extends MXBaseComponent {
5
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerWeekViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: AXSchedulerWeekViewComponent, selector: "ax-scheduler-week-view", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-flex-auto ax-isolate ax-overflow-auto ax-bg-white\">\n <div class=\"ax-flex ax-flex-col ax-max-w-full\">\n <div class=\"ax-shadow-md ax-pr-8 ax-z-30 ax-sticky ax-top-0\">\n <div class=\"ax-grid ax-leading-6 ax-border-r ax-grid-cols-7\">\n <div class=\"ax-w-14 ax-col-end-1\"></div>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-l ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium\">\n Mon 10\n </div>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-auto\">\n <div class=\"ax-w-14 ax-z-10 ax-sticky ax-left-0 ax-bg-white ax-shadow\"></div>\n <div class=\"ax-grid ax-flex-auto ax-grid-cols-1 ax-grid-rows-1\">\n <div class=\"ax-grid ax-col-start-1 ax-col-end-2 ax-row-start-1\"\n style=\"grid-template-rows: repeat(45, minmax(3.5rem, 1fr))\">\n <div class=\"ax-row-end-1 ax-h-7\"></div>\n <div class=\"ax-border-t ax-border-b\">\n <div class=\"ax-leading-5 ax-text-right ax-w-14 -ax-mt-[0.625rem] -ax-ml-14 ax-sticky ax-left-0\">\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-rows-1 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-1\">\n <div class=\"ax-col-start-1 ax-row-start-1 ax-row-end-[-1]\"></div>\n <div class=\"ax-col-start-2 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-3 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-4 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-5 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-6 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-7 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-8 ax-row-start-1 ax-row-end-[-1] ax-border-l ax-w-8\"></div>\n </div>\n <ol class=\"ax-grid ax-pr-8 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-2\"\n style=\"grid-template-rows: 1.75rem repeat(288, minmax(0px, 1fr)) auto\"></ol>\n </div>\n </div>\n </div>\n</div>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerWeekViewComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
6
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: AXSchedulerWeekViewComponent, selector: "ax-scheduler-week-view", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-flex-auto ax-isolate ax-overflow-auto ax-bg-white\">\n <div class=\"ax-flex ax-flex-col ax-max-w-full\">\n <div class=\"ax-shadow-md ax-pr-8 ax-z-30 ax-sticky ax-top-0\">\n <div class=\"ax-grid ax-leading-6 ax-border-r ax-grid-cols-7\">\n <div class=\"ax-w-14 ax-col-end-1\"></div>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-l ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium\">\n Mon 10\n </div>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-auto\">\n <div class=\"ax-w-14 ax-z-10 ax-sticky ax-left-0 ax-bg-white ax-shadow\"></div>\n <div class=\"ax-grid ax-flex-auto ax-grid-cols-1 ax-grid-rows-1\">\n <div class=\"ax-grid ax-col-start-1 ax-col-end-2 ax-row-start-1\"\n style=\"grid-template-rows: repeat(45, minmax(3.5rem, 1fr))\">\n <div class=\"ax-row-end-1 ax-h-7\"></div>\n <div class=\"ax-border-t ax-border-b\">\n <div class=\"ax-leading-5 ax-text-right ax-w-14 -ax-mt-[0.625rem] -ax-ml-14 ax-sticky ax-left-0\">\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-rows-1 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-1\">\n <div class=\"ax-col-start-1 ax-row-start-1 ax-row-end-[-1]\"></div>\n <div class=\"ax-col-start-2 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-3 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-4 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-5 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-6 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-7 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-8 ax-row-start-1 ax-row-end-[-1] ax-border-l ax-w-8\"></div>\n </div>\n <ol class=\"ax-grid ax-pr-8 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-2\"\n style=\"grid-template-rows: 1.75rem repeat(288, minmax(0px, 1fr)) auto\"></ol>\n </div>\n </div>\n </div>\n</div>", changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
7
7
  }
8
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerWeekViewComponent, decorators: [{
8
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerWeekViewComponent, decorators: [{
9
9
  type: Component,
10
10
  args: [{ selector: 'ax-scheduler-week-view', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col ax-flex-auto ax-isolate ax-overflow-auto ax-bg-white\">\n <div class=\"ax-flex ax-flex-col ax-max-w-full\">\n <div class=\"ax-shadow-md ax-pr-8 ax-z-30 ax-sticky ax-top-0\">\n <div class=\"ax-grid ax-leading-6 ax-border-r ax-grid-cols-7\">\n <div class=\"ax-w-14 ax-col-end-1\"></div>\n <div\n class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-l ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium ax-border-r\">\n Mon 10\n </div>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-py-3 ax-bg-white ax-font-medium\">\n Mon 10\n </div>\n </div>\n </div>\n <div class=\"ax-flex ax-flex-auto\">\n <div class=\"ax-w-14 ax-z-10 ax-sticky ax-left-0 ax-bg-white ax-shadow\"></div>\n <div class=\"ax-grid ax-flex-auto ax-grid-cols-1 ax-grid-rows-1\">\n <div class=\"ax-grid ax-col-start-1 ax-col-end-2 ax-row-start-1\"\n style=\"grid-template-rows: repeat(45, minmax(3.5rem, 1fr))\">\n <div class=\"ax-row-end-1 ax-h-7\"></div>\n <div class=\"ax-border-t ax-border-b\">\n <div class=\"ax-leading-5 ax-text-right ax-w-14 -ax-mt-[0.625rem] -ax-ml-14 ax-sticky ax-left-0\">\n </div>\n </div>\n </div>\n <div class=\"ax-grid ax-grid-rows-1 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-1\">\n <div class=\"ax-col-start-1 ax-row-start-1 ax-row-end-[-1]\"></div>\n <div class=\"ax-col-start-2 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-3 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-4 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-5 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-6 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-7 ax-row-start-1 ax-row-end-[-1] ax-border-l\"></div>\n <div class=\"ax-col-start-8 ax-row-start-1 ax-row-end-[-1] ax-border-l ax-w-8\"></div>\n </div>\n <ol class=\"ax-grid ax-pr-8 ax-grid-cols-7 ax-row-start-1 ax-col-end-2 ax-col-start-2\"\n style=\"grid-template-rows: 1.75rem repeat(288, minmax(0px, 1fr)) auto\"></ol>\n </div>\n </div>\n </div>\n</div>" }]
11
11
  }] });
@@ -33,10 +33,10 @@ export class AXSchedulerComponent extends MXBaseComponent {
33
33
  _handlePrevClick() {
34
34
  this.current = this.current.add('month', -1);
35
35
  }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.0", type: AXSchedulerComponent, selector: "ax-scheduler", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-h-full\">\n <div class=\"scheduler-header\">\n <p>\n {{ current.format('MMMM yyyy') }}\n </p>\n <div class=\"scheduler-actions\">\n <div class=\"ax-flex ax-border ax-rounded-md ax-items-center ax-px-1 ax-gap-0.5 ax-bg-surface\">\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handlePrevClick()\">\n <ax-icon class=\"fa-solid fa-chevron-left\"> </ax-icon>\n </button>\n <ng-container *ngIf=\"_size === 'SM'; else elseTemplate\">\n <span class=\"ax-text-neutral-200\">|</span>\n </ng-container>\n <ng-template #elseTemplate>\n <ax-button look=\"blank\" class=\"ax-sm\" text=\"Today\"> </ax-button>\n </ng-template>\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handleNextClick()\">\n <ax-icon class=\"fa-solid fa-chevron-right\"> </ax-icon>\n </button>\n </div>\n <ax-button [text]=\"_size === 'SM' ? '' : 'Week View'\" class=\"!ax-bg-surface ax-border\">\n <ax-suffix>\n <ax-icon [class]=\"\n _size === 'SM'\n ? 'fa-solid fa-ellipsis-vertical'\n : 'fa-solid fa-chevron-down ax-text-neutral-400'\n \">\n </ax-icon>\n </ax-suffix>\n <ax-dropdown-panel (onItemClick)=\"handleOnItemClick()\" [adaptivityEnabled]=\"true\">\n <ax-button-item *ngIf=\"_size === 'SM' || _size === 'MD'\" text=\"Add Event\" name=\"text\" [divided]=\"true\"\n color=\"primary\">\n </ax-button-item>\n <ax-button-item *ngIf=\"_size === 'SM'\" text=\"Go to Today\" name=\"text\" [divided]=\"true\">\n </ax-button-item>\n <ax-button-item text=\"Day View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Week View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Month View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Year View\" name=\"text\"> </ax-button-item>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"\"></ax-icon>\n </ax-suffix>\n </ax-button>\n <ax-button color=\"primary\" text=\"Add Event\" class=\"ax-hidden lg:ax-block\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n <ax-scheduler-month-view [date]=\"current\"></ax-scheduler-month-view>\n <!-- <ax-scheduler-week-view></ax-scheduler-week-view> -->\n</div>", styles: ["ax-scheduler{height:100%;display:block;border-width:1px;border-radius:.75rem;background-color:rgba(var(--ax-color-neutral-100));overflow:hidden}ax-scheduler .scheduler-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom-width:1px}ax-scheduler .scheduler-header p{margin:0;font-size:1rem;font-weight:500}ax-scheduler .scheduler-actions{display:flex;gap:.75rem}ax-scheduler ax-scheduler-month-view{display:flex;flex-direction:column;flex:1 1 auto}ax-scheduler ax-scheduler-month-view .mobile-task:hover ax-button{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: ["date"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
36
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
37
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.1.1", type: AXSchedulerComponent, selector: "ax-scheduler", usesInheritance: true, ngImport: i0, template: "<div class=\"ax-flex ax-flex-col ax-h-full\">\n <div class=\"scheduler-header\">\n <p>\n {{ current.format('MMMM yyyy') }}\n </p>\n <div class=\"scheduler-actions\">\n <div class=\"ax-flex ax-border ax-rounded-md ax-items-center ax-px-1 ax-gap-0.5 ax-bg-surface\">\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handlePrevClick()\">\n <ax-icon class=\"fa-solid fa-chevron-left\"> </ax-icon>\n </button>\n <ng-container *ngIf=\"_size === 'SM'; else elseTemplate\">\n <span class=\"ax-text-neutral-200\">|</span>\n </ng-container>\n <ng-template #elseTemplate>\n <ax-button look=\"blank\" class=\"ax-sm\" text=\"Today\"> </ax-button>\n </ng-template>\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handleNextClick()\">\n <ax-icon class=\"fa-solid fa-chevron-right\"> </ax-icon>\n </button>\n </div>\n <ax-button [text]=\"_size === 'SM' ? '' : 'Week View'\" class=\"!ax-bg-surface ax-border\">\n <ax-suffix>\n <ax-icon [class]=\"\n _size === 'SM'\n ? 'fa-solid fa-ellipsis-vertical'\n : 'fa-solid fa-chevron-down ax-text-neutral-400'\n \">\n </ax-icon>\n </ax-suffix>\n <ax-dropdown-panel (onItemClick)=\"handleOnItemClick()\" [adaptivityEnabled]=\"true\">\n <ax-button-item *ngIf=\"_size === 'SM' || _size === 'MD'\" text=\"Add Event\" name=\"text\" [divided]=\"true\"\n color=\"primary\">\n </ax-button-item>\n <ax-button-item *ngIf=\"_size === 'SM'\" text=\"Go to Today\" name=\"text\" [divided]=\"true\">\n </ax-button-item>\n <ax-button-item text=\"Day View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Week View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Month View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Year View\" name=\"text\"> </ax-button-item>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"\"></ax-icon>\n </ax-suffix>\n </ax-button>\n <ax-button color=\"primary\" text=\"Add Event\" class=\"ax-hidden lg:ax-block\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n <ax-scheduler-month-view [date]=\"current\"></ax-scheduler-month-view>\n <!-- <ax-scheduler-week-view></ax-scheduler-week-view> -->\n</div>", styles: ["ax-scheduler{height:100%;display:block;border-width:1px;border-radius:.75rem;background-color:rgba(var(--ax-color-neutral-100));overflow:hidden}ax-scheduler .scheduler-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom-width:1px}ax-scheduler .scheduler-header p{margin:0;font-size:1rem;font-weight:500}ax-scheduler .scheduler-actions{display:flex;gap:.75rem}ax-scheduler ax-scheduler-month-view{display:flex;flex-direction:column;flex:1 1 auto}ax-scheduler ax-scheduler-month-view .mobile-task:hover ax-button{opacity:1}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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", "disabledChange"] }, { kind: "component", type: i2.AXButtonItemComponent, selector: "ax-button-item", inputs: ["color", "disabled", "text", "selected", "divided", "data", "name"], outputs: ["onClick", "onFocus", "onBlur", "disabledChange"] }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: ["isOpen", "fitParent", "dropdownWidth", "position", "_target", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }, { kind: "component", type: i5.AXSchedulerMonthViewComponent, selector: "ax-scheduler-month-view", inputs: ["date"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
38
38
  }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerComponent, decorators: [{
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerComponent, decorators: [{
40
40
  type: Component,
41
41
  args: [{ selector: 'ax-scheduler', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<div class=\"ax-flex ax-flex-col ax-h-full\">\n <div class=\"scheduler-header\">\n <p>\n {{ current.format('MMMM yyyy') }}\n </p>\n <div class=\"scheduler-actions\">\n <div class=\"ax-flex ax-border ax-rounded-md ax-items-center ax-px-1 ax-gap-0.5 ax-bg-surface\">\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handlePrevClick()\">\n <ax-icon class=\"fa-solid fa-chevron-left\"> </ax-icon>\n </button>\n <ng-container *ngIf=\"_size === 'SM'; else elseTemplate\">\n <span class=\"ax-text-neutral-200\">|</span>\n </ng-container>\n <ng-template #elseTemplate>\n <ax-button look=\"blank\" class=\"ax-sm\" text=\"Today\"> </ax-button>\n </ng-template>\n <button class=\"ax-w-8 ax-h-8 ax-rounded-md hover:ax-bg-neutral-100\" (click)=\"_handleNextClick()\">\n <ax-icon class=\"fa-solid fa-chevron-right\"> </ax-icon>\n </button>\n </div>\n <ax-button [text]=\"_size === 'SM' ? '' : 'Week View'\" class=\"!ax-bg-surface ax-border\">\n <ax-suffix>\n <ax-icon [class]=\"\n _size === 'SM'\n ? 'fa-solid fa-ellipsis-vertical'\n : 'fa-solid fa-chevron-down ax-text-neutral-400'\n \">\n </ax-icon>\n </ax-suffix>\n <ax-dropdown-panel (onItemClick)=\"handleOnItemClick()\" [adaptivityEnabled]=\"true\">\n <ax-button-item *ngIf=\"_size === 'SM' || _size === 'MD'\" text=\"Add Event\" name=\"text\" [divided]=\"true\"\n color=\"primary\">\n </ax-button-item>\n <ax-button-item *ngIf=\"_size === 'SM'\" text=\"Go to Today\" name=\"text\" [divided]=\"true\">\n </ax-button-item>\n <ax-button-item text=\"Day View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Week View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Month View\" name=\"text\"> </ax-button-item>\n <ax-button-item text=\"Year View\" name=\"text\"> </ax-button-item>\n </ax-dropdown-panel>\n <ax-suffix>\n <ax-icon icon=\"\"></ax-icon>\n </ax-suffix>\n </ax-button>\n <ax-button color=\"primary\" text=\"Add Event\" class=\"ax-hidden lg:ax-block\">\n <ax-prefix>\n <ax-icon class=\"fa-solid fa-plus\"></ax-icon>\n </ax-prefix>\n </ax-button>\n </div>\n </div>\n <ax-scheduler-month-view [date]=\"current\"></ax-scheduler-month-view>\n <!-- <ax-scheduler-week-view></ax-scheduler-week-view> -->\n</div>", styles: ["ax-scheduler{height:100%;display:block;border-width:1px;border-radius:.75rem;background-color:rgba(var(--ax-color-neutral-100));overflow:hidden}ax-scheduler .scheduler-header{display:flex;align-items:center;justify-content:space-between;padding:1rem;border-bottom-width:1px}ax-scheduler .scheduler-header p{margin:0;font-size:1rem;font-weight:500}ax-scheduler .scheduler-actions{display:flex;gap:.75rem}ax-scheduler ax-scheduler-month-view{display:flex;flex-direction:column;flex:1 1 auto}ax-scheduler ax-scheduler-month-view .mobile-task:hover ax-button{opacity:1}\n"] }]
42
42
  }] });
@@ -11,11 +11,11 @@ import * as i0 from "@angular/core";
11
11
  const COMPONENT = [AXSchedulerComponent, AXSchedulerMonthViewComponent, AXSchedulerWeekViewComponent];
12
12
  const MODULES = [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXDateTimeModule];
13
13
  export class AXSchedulerModule {
14
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerModule, declarations: [AXSchedulerComponent, AXSchedulerMonthViewComponent, AXSchedulerWeekViewComponent], imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXDateTimeModule], exports: [AXSchedulerComponent, AXSchedulerMonthViewComponent, AXSchedulerWeekViewComponent] }); }
16
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerModule, imports: [MODULES] }); }
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerModule, declarations: [AXSchedulerComponent, AXSchedulerMonthViewComponent, AXSchedulerWeekViewComponent], imports: [CommonModule, AXButtonModule, AXDecoratorModule, AXDropdownModule, AXDateTimeModule], exports: [AXSchedulerComponent, AXSchedulerMonthViewComponent, AXSchedulerWeekViewComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerModule, imports: [MODULES] }); }
17
17
  }
18
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSchedulerModule, decorators: [{
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSchedulerModule, decorators: [{
19
19
  type: NgModule,
20
20
  args: [{
21
21
  declarations: [...COMPONENT],
@@ -22,8 +22,8 @@ export class AXSearchBoxComponent extends classes((MXInputBaseValueComponent), M
22
22
  get __hostClass() {
23
23
  return ['ax-editor-container', `ax-look-${this.look}`, `${this.disabled ? 'ax-state-disabled' : ''}`];
24
24
  }
25
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxComponent, deps: [{ token: AXSearchableComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
26
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", delayTime: "delayTime" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
25
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxComponent, deps: [{ token: AXSearchableComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
26
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: AXSearchBoxComponent, selector: "ax-search-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", value: "value", state: "state", name: "name", id: "id", look: "look", delayTime: "delayTime" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange", onKeyDown: "onKeyDown", onKeyUp: "onKeyUp", onKeyPress: "onKeyPress" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
27
27
  { provide: AXComponent, useExisting: AXSearchBoxComponent },
28
28
  { provide: AXFocusableComponent, useExisting: AXSearchBoxComponent },
29
29
  { provide: AXClearableComponent, useExisting: AXSearchBoxComponent },
@@ -35,7 +35,7 @@ export class AXSearchBoxComponent extends classes((MXInputBaseValueComponent), M
35
35
  },
36
36
  ], usesInheritance: true, ngImport: i0, template: "<ng-content select=\"ax-prefix\"> </ng-content>\n<span class=\"ax-icon ax-icon-search ax-editor-control\"></span>\n<input #input class=\"ax-input\" [attr.name]=\"name\" [attr.placeholder]=\"(placeholder ?? 'search') | translate | async \"\n [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\" [disabled]=\"disabled\" [readonly]=\"readonly\"\n [tabindex]=\"tabIndex\" [ngModel]=\"value\" [delayTime]=\"delayTime\" (axDelayedValueChanged)=\"_handleModelChange($event)\"\n (keydown)=\"emitOnKeydownEvent($event)\" (keyup)=\"emitOnKeyupEvent($event)\" (keypress)=\"emitOnKeypressEvent($event)\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" />\n\n@if(input.value && !disabled && !readonly){\n<ng-content select=\"ax-clear-button\"></ng-content>\n}\n<ng-content select=\"ax-suffix\"> </ng-content>", dependencies: [{ kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i2.AXNgModelDelayedValueChangedDirective, selector: "[axDelayedValueChanged]", inputs: ["delayTime"], outputs: ["axDelayedValueChanged", "axDelayTimeChange"] }, { kind: "pipe", type: i3.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
37
37
  }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxComponent, decorators: [{
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxComponent, decorators: [{
39
39
  type: Component,
40
40
  args: [{ selector: 'ax-search-box', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, inputs: ['disabled', 'readonly', 'tabIndex', 'placeholder', 'value', 'state', 'name', 'id', 'look'], outputs: [
41
41
  'valueChange',
@@ -19,22 +19,22 @@ const MODULES = [
19
19
  AXNgModelDelayedValueChangedDirective,
20
20
  ];
21
21
  export class AXSearchBoxModule {
22
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxModule, declarations: [AXSearchBoxComponent], imports: [CommonModule,
22
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
23
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxModule, declarations: [AXSearchBoxComponent], imports: [CommonModule,
24
24
  FormsModule,
25
25
  AXTranslationModule,
26
26
  AXDecoratorModule,
27
27
  AXTextBoxModule,
28
28
  AXButtonModule,
29
29
  AXNgModelDelayedValueChangedDirective], exports: [AXSearchBoxComponent] }); }
30
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxModule, imports: [CommonModule,
30
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxModule, imports: [CommonModule,
31
31
  FormsModule,
32
32
  AXTranslationModule,
33
33
  AXDecoratorModule,
34
34
  AXTextBoxModule,
35
35
  AXButtonModule] }); }
36
36
  }
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSearchBoxModule, decorators: [{
37
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSearchBoxModule, decorators: [{
38
38
  type: NgModule,
39
39
  args: [{
40
40
  declarations: [...COMPONENT],
@@ -3,7 +3,7 @@ import { AXDropdownBoxComponent, MXDropdownBoxBaseComponent } from '@acorex/comp
3
3
  import { AXListComponent } from '@acorex/components/list';
4
4
  import { AXSearchBoxComponent } from '@acorex/components/search-box';
5
5
  import { AXUnsubscriber } from '@acorex/core/utils';
6
- import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, inject, } from '@angular/core';
6
+ import { ChangeDetectionStrategy, Component, ContentChild, ElementRef, HostListener, Input, TemplateRef, ViewChild, ViewEncapsulation, forwardRef, inject, signal, } from '@angular/core';
7
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
8
8
  import { findLastIndex, last, nth } from 'lodash-es';
9
9
  import { classes } from 'polytype';
@@ -24,7 +24,7 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
24
24
  constructor() {
25
25
  super(...arguments);
26
26
  this.hotKeyService = inject(AXHotkeysService);
27
- this.isLoading = false;
27
+ this.isLoading = signal(false);
28
28
  this.renderList = false;
29
29
  this.dropdownSizes = { width: '100%', height: 'auto' };
30
30
  this._listDataSource = convertArrayToDataSource([], {
@@ -49,6 +49,14 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
49
49
  this._listDataSource.onChanged.subscribe((data) => {
50
50
  this.setDropdownSize(data.totalCount);
51
51
  });
52
+ this._listDataSource.onLoadingChanged.subscribe((loading) => {
53
+ this.isLoading.set(loading);
54
+ });
55
+ }
56
+ ngOnInit() {
57
+ super.ngOnInit();
58
+ //
59
+ this.registerValidation();
52
60
  }
53
61
  ngAfterViewInit() {
54
62
  this.setDropdownSize();
@@ -191,8 +199,8 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
191
199
  this.list?.refresh();
192
200
  this.close();
193
201
  }
194
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
195
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.0", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", minValue: "minValue", maxValue: "maxValue", value: "value", state: "state", name: "name", id: "id", type: "type", look: "look", multiple: "multiple", valueField: "valueField", textField: "textField", dataSource: "dataSource", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { listeners: { "keydown": "_handleKeydown($event)" } }, providers: [
202
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
203
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.1.1", type: AXSelectBoxComponent, selector: "ax-select-box", inputs: { disabled: "disabled", readonly: "readonly", tabIndex: "tabIndex", placeholder: "placeholder", minValue: "minValue", maxValue: "maxValue", value: "value", state: "state", name: "name", id: "id", type: "type", look: "look", multiple: "multiple", valueField: "valueField", textField: "textField", dataSource: "dataSource", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate" }, outputs: { valueChange: "valueChange", stateChange: "stateChange", onValueChanged: "onValueChanged", onBlur: "onBlur", onFocus: "onFocus", readonlyChange: "readonlyChange", disabledChange: "disabledChange" }, host: { listeners: { "keydown": "_handleKeydown($event)" } }, providers: [
196
204
  { provide: AXComponent, useExisting: AXSelectBoxComponent },
197
205
  { provide: AXFocusableComponent, useExisting: AXSelectBoxComponent },
198
206
  { provide: AXValuableComponent, useExisting: AXSelectBoxComponent },
@@ -209,9 +217,9 @@ export class AXSelectBoxComponent extends classes(MXDropdownBoxBaseComponent, MX
209
217
  useClass: MXSelectionBridgeService,
210
218
  },
211
219
  AXUnsubscriber,
212
- ], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\" [class.ax-auto-height]=\"autoHeight\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" (click)=\"toggle()\">\n\n @if(selectedItems.length === 0){\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for(item of selectedItems; track $index){\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if(!disabled && !readonly && multiple)\n {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\">\n </span>\n }\n </div>\n }\n\n </div>\n @if(selectedItems?.length && !disabled && !readonly)\n {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n @if(isLoading && !isOpen){\n <ax-loading type=\"spinner\"></ax-loading>\n }@else{\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n }\n\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n\n @if(dropdown.isActionsheetStyle){\n <ax-header class=\"ax-solid\">\n <ax-title>{{ placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if(searchBox){\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if(renderList){\n <ax-list [dataSource]=\"_listDataSource\" [multiple]=\"multiple\" [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\" [textField]=\"textField\" [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\" [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\">\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{background-color:rgba(var(--ax-color-surface))}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;color:rgb(var(--ax-color-text-default))}ax-select-box .ax-selected-token .ax-icon-close{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px;height:100%}ax-select-box .ax-select-box-selection>span{white-space:nowrap;-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{background-color:rgba(var(--ax-color-on-surface))}ax-select-box .ax-placeholder{-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{transform:rotate(-90deg)}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{transform:rotate(90deg)}.ax-select-box-panel{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: i6.AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "disabledField", "multiple", "selectionMode", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readOnlyChange", "onBlur", "onFocus", "onScrolledIndexChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
220
+ ], queries: [{ propertyName: "searchBox", first: true, predicate: AXSearchBoxComponent, descendants: true, static: true }], viewQueries: [{ propertyName: "panel", first: true, predicate: ["panel"], descendants: true }, { propertyName: "list", first: true, predicate: AXListComponent, descendants: true }, { propertyName: "dropdown", first: true, predicate: AXDropdownBoxComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-dropdown-box\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent()\"\n (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\"\n [class.ax-auto-height]=\"autoHeight\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-select-box-selection\"\n [class.ax-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"toggle()\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\"\n >\n <!-- @if (isLoading() && !isOpen) {\n <ax-loading type=\"spinner\"></ax-loading>\n } @else { -->\n <span\n class=\"ax-icon ax-icon-chevron-left ax-arrow-button\"\n [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"\n ></span>\n <!-- } -->\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"\n ></ax-close-button>\n </ax-header>\n }\n @if (searchBox) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n [selectionMode]=\"'item'\"\n >\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading></ax-loading>\n </div>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{background-color:rgba(var(--ax-color-surface))}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;color:rgb(var(--ax-color-text-default))}ax-select-box .ax-selected-token .ax-icon-close{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px;height:100%}ax-select-box .ax-select-box-selection>span{white-space:nowrap;-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{background-color:rgba(var(--ax-color-on-surface))}ax-select-box .ax-placeholder{-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{transform:rotate(-90deg)}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{transform:rotate(90deg)}.ax-select-box-panel{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorGenericComponent, selector: "ax-footer, ax-header, ax-content, ax-divider, ax-form-hint, ax-prefix, ax-suffix, ax-text, ax-title , ax-sub-title, ax-placeholder, ax-overlay" }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i5.AXDropdownBoxComponent, selector: "ax-dropdown-box", inputs: ["disabled", "look"], outputs: ["disabledChange", "onBlur", "onFocus", "onClick", "onOpened", "onClosed"] }, { kind: "component", type: i6.AXListComponent, selector: "ax-list", inputs: ["id", "name", "disabled", "readonly", "valueField", "textField", "disabledField", "multiple", "selectionMode", "dataSource", "itemHeight", "itemTemplate", "emptyTemplate", "loadingTemplate", "checkbox"], outputs: ["onValueChanged", "disabledChange", "readOnlyChange", "onBlur", "onFocus", "onScrolledIndexChanged"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }, { kind: "pipe", type: i7.AXTranslatorPipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
213
221
  }
214
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
222
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxComponent, decorators: [{
215
223
  type: Component,
216
224
  args: [{ selector: 'ax-select-box', inputs: [
217
225
  'disabled',
@@ -254,7 +262,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
254
262
  useClass: MXSelectionBridgeService,
255
263
  },
256
264
  AXUnsubscriber,
257
- ], template: "<ax-dropdown-box [disabled]=\"disabled\" (onOpened)=\"_handleOnOpenedEvent()\" (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\" [class.ax-auto-height]=\"autoHeight\">\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div class=\"ax-select-box-selection\" [class.ax-multiple]=\"multiple\" [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\" (blur)=\"emitOnBlurEvent($event)\" (click)=\"toggle()\">\n\n @if(selectedItems.length === 0){\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for(item of selectedItems; track $index){\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if(!disabled && !readonly && multiple)\n {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\">\n </span>\n }\n </div>\n }\n\n </div>\n @if(selectedItems?.length && !disabled && !readonly)\n {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button type=\"button\" [disabled]=\"disabled\" [tabIndex]=\"-1\" class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\">\n @if(isLoading && !isOpen){\n <ax-loading type=\"spinner\"></ax-loading>\n }@else{\n <span class=\"ax-icon ax-icon-chevron-left ax-arrow-button\" [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"></span>\n }\n\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n\n @if(dropdown.isActionsheetStyle){\n <ax-header class=\"ax-solid\">\n <ax-title>{{ placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"></ax-close-button>\n </ax-header>\n }\n @if(searchBox){\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if(renderList){\n <ax-list [dataSource]=\"_listDataSource\" [multiple]=\"multiple\" [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\" [textField]=\"textField\" [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\" [loadingTemplate]=\"loadingTemplate\" [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\" [selectionMode]=\"'item'\">\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{background-color:rgba(var(--ax-color-surface))}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;color:rgb(var(--ax-color-text-default))}ax-select-box .ax-selected-token .ax-icon-close{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px;height:100%}ax-select-box .ax-select-box-selection>span{white-space:nowrap;-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{background-color:rgba(var(--ax-color-on-surface))}ax-select-box .ax-placeholder{-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{transform:rotate(-90deg)}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{transform:rotate(90deg)}.ax-select-box-panel{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"] }]
265
+ ], template: "<ax-dropdown-box\n [disabled]=\"disabled\"\n (onOpened)=\"_handleOnOpenedEvent()\"\n (onClosed)=\"_handleOnClosedEvent()\"\n [look]=\"look\"\n [class.ax-auto-height]=\"autoHeight\"\n>\n <ng-container input>\n <ng-content select=\"ax-prefix\"> </ng-content>\n <div\n class=\"ax-select-box-selection\"\n [class.ax-multiple]=\"multiple\"\n [tabindex]=\"tabIndex\"\n (focus)=\"emitOnFocusEvent($event)\"\n (blur)=\"emitOnBlurEvent($event)\"\n (click)=\"toggle()\"\n >\n @if (selectedItems.length === 0) {\n <div class=\"ax-placeholder\" role=\"textbox\" area-readonly=\"true\">\n {{ placeholder }}\n </div>\n }\n @for (item of selectedItems; track $index) {\n <div class=\"ax-selected-token\">\n {{ getDisplayText(item) }}\n @if (!disabled && !readonly && multiple) {\n <span class=\"ax-icon ax-icon-close\" (click)=\"_handleBadgeRemove($event, item)\"> </span>\n }\n </div>\n }\n </div>\n @if (selectedItems?.length && !disabled && !readonly) {\n <ng-content select=\"ax-clear-button\"></ng-content>\n }\n <button\n type=\"button\"\n [disabled]=\"disabled\"\n [tabIndex]=\"-1\"\n class=\"ax-general-button ax-button-icon\"\n (click)=\"toggle()\"\n >\n <!-- @if (isLoading() && !isOpen) {\n <ax-loading type=\"spinner\"></ax-loading>\n } @else { -->\n <span\n class=\"ax-icon ax-icon-chevron-left ax-arrow-button\"\n [ngClass]=\"{\n '-rotation-90': !isOpen,\n 'rotation-90': isOpen\n }\"\n ></span>\n <!-- } -->\n </button>\n <ng-content select=\"ax-suffix\"> </ng-content>\n <ng-template #search>\n <ng-content select=\"ax-search-box\"> </ng-content>\n </ng-template>\n </ng-container>\n <ng-container panel>\n <div #panel class=\"ax-select-box-panel\" [style.min-width]=\"dropdownSizes.width\">\n @if (dropdown.isActionsheetStyle) {\n <ax-header class=\"ax-solid\">\n <ax-title>{{ placeholder || 'selectbox.popover.title' | translate | async }}</ax-title>\n <ax-close-button\n [icon]=\"multiple ? 'ax-icon ax-icon-done !ax-text-primary-500' : 'ax-icon ax-icon-close'\"\n ></ax-close-button>\n </ax-header>\n }\n @if (searchBox) {\n <div class=\"ax-search-container\">\n <ng-template [ngTemplateOutlet]=\"search\"></ng-template>\n </div>\n }\n @if (renderList) {\n <ax-list\n [dataSource]=\"_listDataSource\"\n [multiple]=\"multiple\"\n [style.height]=\"dropdownSizes.height\"\n [valueField]=\"valueField\"\n [textField]=\"textField\"\n [emptyTemplate]=\"emptyTemplate ?? empty\"\n [itemTemplate]=\"itemTemplate\"\n [loadingTemplate]=\"loadingTemplate\"\n [ngModel]=\"value\"\n (onValueChanged)=\"_handleValueChanged($event)\"\n [selectionMode]=\"'item'\"\n >\n <ng-template #empty> No Items! </ng-template>\n </ax-list>\n }\n\n @if (isLoading()) {\n @if (loadingTemplate) {\n <ng-template *ngTemplateOutlet=\"loadingTemplate\"></ng-template>\n } @else {\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading></ax-loading>\n </div>\n }\n }\n\n <ng-content select=\"ax-footer\"> </ng-content>\n </div>\n </ng-container>\n</ax-dropdown-box>\n<ng-content select=\"ax-validation-rule\"> </ng-content>\n", styles: ["ax-select-box{display:block;width:100%}ax-select-box ax-dropdown-box.ax-auto-height{height:auto!important}ax-select-box .ax-editor-container.ax-look-fill .ax-selected-token{background-color:rgba(var(--ax-color-surface))}ax-select-box .ax-selected-token{display:flex;align-items:center;border-radius:var(--ax-rounded-border-default);padding:.25rem .5rem;color:rgb(var(--ax-color-text-default))}ax-select-box .ax-selected-token .ax-icon-close{-webkit-margin-start:.5rem;margin-inline-start:.5rem;cursor:pointer}ax-select-box .ax-select-box-selection{display:flex;flex:1 1 0%;cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-wrap:wrap;align-items:center;justify-content:flex-start;gap:.25rem;padding:.25rem;outline:2px solid transparent;outline-offset:2px;height:100%}ax-select-box .ax-select-box-selection>span{white-space:nowrap;-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-select-box-selection .ax-selectbox-input{width:0px;opacity:0}ax-select-box .ax-select-box-selection.ax-multiple .ax-selected-token{background-color:rgba(var(--ax-color-on-surface))}ax-select-box .ax-placeholder{-webkit-padding-end:.75rem;padding-inline-end:.75rem;-webkit-padding-start:1rem;padding-inline-start:1rem}ax-select-box .ax-general-button .ax-arrow-button{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-select-box .ax-general-button .ax-arrow-button.-rotation-90{transform:rotate(-90deg)}ax-select-box .ax-general-button .ax-arrow-button.rotation-90{transform:rotate(90deg)}.ax-select-box-panel{height:-webkit-fit-content;height:-moz-fit-content;height:fit-content}.ax-select-box-panel>ax-header.ax-solid{border-bottom-width:1px;border-color:rgba(var(--ax-color-border-default))}.ax-select-box-panel .ax-search-container{padding:.5rem}\n"] }]
258
266
  }], propDecorators: { dataSource: [{
259
267
  type: Input
260
268
  }], placeholder: [{
@@ -281,4 +289,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImpor
281
289
  type: HostListener,
282
290
  args: ['keydown', ['$event']]
283
291
  }] } });
284
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbkQsT0FBTyxFQUFFLGFBQWEsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBQ3JELE9BQU8sRUFBRSxPQUFP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QUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkE2R25ELGNBQWM7c0JBRGIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBWENsZWFyYWJsZUNvbXBvbmVudCxcbiAgQVhDbG9zYmFsZUNvbXBvbmVudCxcbiAgQVhDb21wb25lbnQsXG4gIEFYRGF0YVNvdXJjZSxcbiAgQVhGb2N1c2FibGVDb21wb25lbnQsXG4gIEFYSG90a2V5c1NlcnZpY2UsXG4gIEFYU2VhcmNoYWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1YWJsZUNvbXBvbmVudCxcbiAgQVhWYWx1ZUNoYW5nZWRFdmVudCxcbiAgQVhfU0VMRUNUSU9OX0RBVEFfVE9LRU4sXG4gIE1YTG9va0NvbXBvbmVudCxcbiAgTVhTZWxlY3Rpb25CcmlkZ2VTZXJ2aWNlLFxuICBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LFxuICBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UsXG59IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhEcm9wZG93bkJveENvbXBvbmVudCwgTVhEcm9wZG93bkJveEJhc2VDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvZHJvcGRvd24nO1xuaW1wb3J0IHsgQVhMaXN0Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xpc3QnO1xuaW1wb3J0IHsgQVhTZWFyY2hCb3hDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvc2VhcmNoLWJveCc7XG5pbXBvcnQgeyBBWFVuc3Vic2NyaWJlciB9IGZyb20gJ0BhY29yZXgvY29yZS91dGlscyc7XG5pbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGQsXG4gIEVsZW1lbnRSZWYsXG4gIEhvc3RMaXN0ZW5lcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGZvcndhcmRSZWYsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGZpbmRMYXN0SW5kZXgsIGxhc3QsIG50aCB9IGZyb20gJ2xvZGFzaC1lcyc7XG5pbXBvcnQgeyBjbGFzc2VzIH0gZnJvbSAncG9seXR5cGUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG4vKipcbiAqIFRoZSBCdXR0b24gaXMgYSBjb21wb25lbnQgd2hpY2ggZGV0ZWN0cyB1c2VyIGludGVyYWN0aW9uIGFuZCB0cmlnZ2VycyBhIGNvcnJlc3BvbmRpbmcgZXZlbnRcbiAqXG4gKiBAY2F0ZWdvcnkgQ29tcG9uZW50c1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdheC1zZWxlY3QtYm94JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NlbGVjdC1ib3guY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5zY3NzJ10sXG4gIGlucHV0czogW1xuICAgICdkaXNhYmxlZCcsXG4gICAgJ3JlYWRvbmx5JyxcbiAgICAndGFiSW5kZXgnLFxuICAgICdwbGFjZWhvbGRlcicsXG4gICAgJ21pblZhbHVlJyxcbiAgICAnbWF4VmFsdWUnLFxuICAgICd2YWx1ZScsXG4gICAgJ3N0YXRlJyxcbiAgICAnbmFtZScsXG4gICAgJ2lkJyxcbiAgICAndHlwZScsXG4gICAgJ2xvb2snLFxuICAgICdtdWx0aXBsZScsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICd0ZXh0RmllbGQnLFxuICBdLFxuICBvdXRwdXRzOiBbXG4gICAgJ3ZhbHVlQ2hhbmdlJyxcbiAgICAnc3RhdGVDaGFuZ2UnLFxuICAgICdvblZhbHVlQ2hhbmdlZCcsXG4gICAgJ29uQmx1cicsXG4gICAgJ29uRm9jdXMnLFxuICAgICdyZWFkb25seUNoYW5nZScsXG4gICAgJ2Rpc2FibGVkQ2hhbmdlJyxcbiAgXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHsgcHJvdmlkZTogQVhDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhGb2N1c2FibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhWYWx1YWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsZWFyYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWENsb3NiYWxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYU2VhcmNoYWJsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBBWFNlbGVjdEJveENvbXBvbmVudCksXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICAgICAgdXNlQ2xhc3M6IE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgICB9LFxuICAgIEFYVW5zdWJzY3JpYmVyLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBBWFNlbGVjdEJveENvbXBvbmVudFxuICBleHRlbmRzIGNsYXNzZXMoTVhEcm9wZG93bkJveEJhc2VDb21wb25lbnQsIE1YU2VsZWN0aW9uVmFsdWVDb21wb25lbnQsIE1YTG9va0NvbXBvbmVudClcbiAgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIGhvdEtleVNlcnZpY2U6IEFYSG90a2V5c1NlcnZpY2UgPSBpbmplY3QoQVhIb3RrZXlzU2VydmljZSk7XG4gIGlzTG9hZGluZyA9IGZhbHNlO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBkcm9wZG93blNpemVzOiB7IHdpZHRoOiBzdHJpbmc7IGhlaWdodDogc3RyaW5nIH0gPSB7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIH07XG5cbiAgcHJvdGVjdGVkIF9saXN0RGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdLCB7XG4gICAga2V5OiB0aGlzLnZhbHVlRmllbGQsXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW107XG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZSh2OiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW10pIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UodiwgeyBrZXk6IHRoaXMudmFsdWVGaWVsZCwgcGFnZVNpemU6IDEwIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBBWERhdGFTb3VyY2U8dW5rbm93bj47XG4gICAgfVxuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKGRhdGEudG90YWxDb3VudCk7XG4gICAgfSk7XG4gIH1cblxuICBASW5wdXQoKVxuICBwbGFjZWhvbGRlcjogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIGl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgZW1wdHlUZW1wbGF0ZTogVGVtcGxhdGVSZWY8dW5rbm93bj47XG5cbiAgQElucHV0KClcbiAgbG9hZGluZ1RlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBAVmlld0NoaWxkKCdwYW5lbCcpIHBhbmVsITogRWxlbWVudFJlZjxIVE1MRGl2RWxlbWVudD47XG5cbiAgQFZpZXdDaGlsZChBWExpc3RDb21wb25lbnQpXG4gIGxpc3Q6IEFYTGlzdENvbXBvbmVudDtcblxuICBAQ29udGVudENoaWxkKEFYU2VhcmNoQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBzZWFyY2hCb3g6IEFYU2VhcmNoQm94Q29tcG9uZW50O1xuXG4gIEBWaWV3Q2hpbGQoQVhEcm9wZG93bkJveENvbXBvbmVudCwgeyBzdGF0aWM6IHRydWUgfSlcbiAgcHJvdGVjdGVkIGRyb3Bkb3duOiBBWERyb3Bkb3duQm94Q29tcG9uZW50O1xuXG4gIHByb3RlY3RlZCBhdXRvSGVpZ2h0ID0gZmFsc2U7XG5cblxuICBwdWJsaWMgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChBWF9TRUxFQ1RJT05fREFUQV9UT0tFTik7XG5cbiAgc2VhcmNoRXZlbnQ6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXREcm9wZG93blNpemUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoQm94Py5vbktleURvd24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgdGhpcy5faGFuZGxlRm9jdXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbG9zZWRFdmVudCgpIHtcbiAgICAvL3RoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlRm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWFyY2hCb3gpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hCb3guZm9jdXMoKTtcbiAgICAgICAgLy9UT0RPOiB1bnN1YnNjcmliZVxuICAgICAgICB0aGlzLmhvdEtleVNlcnZpY2VcbiAgICAgICAgICAuYWRkU2hvcnRjdXQoeyBrZXlzOiAnQ29udHJvbC5mJywgZWxlbWVudDogdGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50IH0pXG4gICAgICAgICAgLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlYXJjaEJveC5vbktleURvd24ucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUubmF0aXZlRXZlbnQuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5uYXRpdmVFdmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgICAgICAgICBlLm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQmFkZ2VSZW1vdmUoZTogTW91c2VFdmVudCwgaXRlbSkge1xuICAgIHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKGUuY29tcG9uZW50LnNlbGVjdGVkSXRlbXMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgdGhpcy5jbG9zZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RBdXRvSGVpZ2h0KCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0QXV0b0hlaWdodCgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aDogbnVtYmVyID1cbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uJykuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaXRlbXNXaWR0aDogbnVtYmVyID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdGVkLXRva2VuJyksXG4gICAgKS5yZWR1Y2UoKGEsIGkpID0+IGEgKyBpLmNsaWVudFdpZHRoLCAwKTtcbiAgICB0aGlzLmF1dG9IZWlnaHQgPSBjb250YWluZXJXaWR0aCAtIGl0ZW1zV2lkdGggPD0gODtcbiAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERyb3Bkb3duU2l6ZShjb3VudCA9IDApIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiBbJ2F1dG8nLCAnMHB4J10uaW5jbHVkZXModGhpcy5kcm9wZG93blNpemVzLmhlaWdodClcbiAgICAgICAgICA/IGAke01hdGgubWluKDE1LCBjb3VudCkgKiA0MH1weGBcbiAgICAgICAgICA6IHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvL1RPRE86IGNhbGMgbWluLXdpdGggZnJvbSBmb3JtdWxhIG9yIGNvbmZpZ1xuICAgICAgY29uc3QgaG9zdFdpZHRoID0gTWF0aC5tYXgodGhpcy5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFdpZHRoLCAyMDApO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogYCR7aG9zdFdpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBjb3VudCA9PSAwID8gJ2F1dG8nIDogYCR7TWF0aC5taW4oNSwgY291bnQpICogNDB9cHhgLFxuICAgICAgfTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW1CeU5hdihlLmNvZGUgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICAvLyBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgIC8vICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXQ/LmlkO1xuICAgIC8vICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbUJ5TmF2KHNpZ246IDEgfCAtMSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QodGhpcy5kYXRhU291cmNlKTtcbiAgICAgIGNvbnN0IF9sYXN0OiB1bmtub3duID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgbGV0IGkgPSAtMTtcbiAgICAgIGlmIChfbGFzdCkge1xuICAgICAgICBpID0gZmluZExhc3RJbmRleChpdGVtcywgW3RoaXMudmFsdWVGaWVsZCwgX2xhc3RbdGhpcy52YWx1ZUZpZWxkXV0pO1xuICAgICAgfVxuICAgICAgaSArPSBzaWduO1xuICAgICAgaWYgKGkgPCAwIHx8IGkgPj0gaXRlbXMubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0ID0gbnRoPHVua25vd24+KGl0ZW1zLCBpKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbXMobmV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuZmlsdGVyKHsgZmllbGQ6IHRoaXMudGV4dEZpZWxkLCB2YWx1ZTogdGVybSwgb3BlcmF0b3I6IHsgdHlwZTogJ2NvbnRhaW5zJyB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveCBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIiAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoKVwiIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgpXCJcbiAgW2xvb2tdPVwibG9va1wiIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCI+XG4gIDxuZy1jb250YWluZXIgaW5wdXQ+XG4gICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+IDwvbmctY29udGVudD5cbiAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIiBbY2xhc3MuYXgtbXVsdGlwbGVdPVwibXVsdGlwbGVcIiBbdGFiaW5kZXhdPVwidGFiSW5kZXhcIlxuICAgICAgKGZvY3VzKT1cImVtaXRPbkZvY3VzRXZlbnQoJGV2ZW50KVwiIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCIgKGNsaWNrKT1cInRvZ2dsZSgpXCI+XG5cbiAgICAgIEBpZihzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCl7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCI+XG4gICAgICAgIHt7IHBsYWNlaG9sZGVyIH19XG4gICAgICA8L2Rpdj5cbiAgICAgIH1cbiAgICAgIEBmb3IoaXRlbSBvZiBzZWxlY3RlZEl0ZW1zOyB0cmFjayAkaW5kZXgpe1xuICAgICAgPGRpdiBjbGFzcz1cImF4LXNlbGVjdGVkLXRva2VuXCI+XG4gICAgICAgIHt7IGdldERpc3BsYXlUZXh0KGl0ZW0pIH19XG4gICAgICAgIEBpZighZGlzYWJsZWQgJiYgIXJlYWRvbmx5ICYmIG11bHRpcGxlKVxuICAgICAgICB7XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNsb3NlXCIgKGNsaWNrKT1cIl9oYW5kbGVCYWRnZVJlbW92ZSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgICAgIDwvc3Bhbj5cbiAgICAgICAgfVxuICAgICAgPC9kaXY+XG4gICAgICB9XG5cbiAgICA8L2Rpdj5cbiAgICBAaWYoc2VsZWN0ZWRJdGVtcz8ubGVuZ3RoICYmICFkaXNhYmxlZCAmJiAhcmVhZG9ubHkpXG4gICAge1xuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWNsZWFyLWJ1dHRvblwiPjwvbmctY29udGVudD5cbiAgICB9XG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgW3RhYkluZGV4XT1cIi0xXCIgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIj5cbiAgICAgIEBpZihpc0xvYWRpbmcgJiYgIWlzT3Blbil7XG4gICAgICA8YXgtbG9hZGluZyB0eXBlPVwic3Bpbm5lclwiPjwvYXgtbG9hZGluZz5cbiAgICAgIH1AZWxzZXtcbiAgICAgIDxzcGFuIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLWNoZXZyb24tbGVmdCBheC1hcnJvdy1idXR0b25cIiBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgJy1yb3RhdGlvbi05MCc6ICFpc09wZW4sXG4gICAgICAgICAgJ3JvdGF0aW9uLTkwJzogaXNPcGVuXG4gICAgICAgIH1cIj48L3NwYW4+XG4gICAgICB9XG5cbiAgICA8L2J1dHRvbj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj4gPC9uZy1jb250ZW50PlxuICAgIDxuZy10ZW1wbGF0ZSAjc2VhcmNoPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtc2VhcmNoLWJveFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG4gIDxuZy1jb250YWluZXIgcGFuZWw+XG4gICAgPGRpdiAjcGFuZWwgY2xhc3M9XCJheC1zZWxlY3QtYm94LXBhbmVsXCIgW3N0eWxlLm1pbi13aWR0aF09XCJkcm9wZG93blNpemVzLndpZHRoXCI+XG5cbiAgICAgIEBpZihkcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpe1xuICAgICAgPGF4LWhlYWRlciBjbGFzcz1cImF4LXNvbGlkXCI+XG4gICAgICAgIDxheC10aXRsZT57eyBwbGFjZWhvbGRlciB8fCAnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICA8YXgtY2xvc2UtYnV0dG9uXG4gICAgICAgICAgW2ljb25dPVwibXVsdGlwbGUgPyAnYXgtaWNvbiBheC1pY29uLWRvbmUgIWF4LXRleHQtcHJpbWFyeS01MDAnIDogJ2F4LWljb24gYXgtaWNvbi1jbG9zZSdcIj48L2F4LWNsb3NlLWJ1dHRvbj5cbiAgICAgIDwvYXgtaGVhZGVyPlxuICAgICAgfVxuICAgICAgQGlmKHNlYXJjaEJveCl7XG4gICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VhcmNoLWNvbnRhaW5lclwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvZGl2PlxuICAgICAgfVxuICAgICAgQGlmKHJlbmRlckxpc3Qpe1xuICAgICAgPGF4LWxpc3QgW2RhdGFTb3VyY2VdPVwiX2xpc3REYXRhU291cmNlXCIgW211bHRpcGxlXT1cIm11bHRpcGxlXCIgW3N0eWxlLmhlaWdodF09XCJkcm9wZG93blNpemVzLmhlaWdodFwiXG4gICAgICAgIFt2YWx1ZUZpZWxkXT1cInZhbHVlRmllbGRcIiBbdGV4dEZpZWxkXT1cInRleHRGaWVsZFwiIFtlbXB0eVRlbXBsYXRlXT1cImVtcHR5VGVtcGxhdGUgPz8gZW1wdHlcIlxuICAgICAgICBbaXRlbVRlbXBsYXRlXT1cIml0ZW1UZW1wbGF0ZVwiIFtsb2FkaW5nVGVtcGxhdGVdPVwibG9hZGluZ1RlbXBsYXRlXCIgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAob25WYWx1ZUNoYW5nZWQpPVwiX2hhbmRsZVZhbHVlQ2hhbmdlZCgkZXZlbnQpXCIgW3NlbGVjdGlvbk1vZGVdPVwiJ2l0ZW0nXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHk+IE5vIEl0ZW1zISA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9heC1saXN0PlxuICAgICAgfVxuXG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1mb290ZXJcIj4gPC9uZy1jb250ZW50PlxuICAgIDwvZGl2PlxuICA8L25nLWNvbnRhaW5lcj5cbjwvYXgtZHJvcGRvd24tYm94PlxuPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtdmFsaWRhdGlvbi1ydWxlXCI+IDwvbmctY29udGVudD4iXX0=
292
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWJveC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvc2VsZWN0LWJveC9zcmMvbGliL3NlbGVjdC1ib3guY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL3NlbGVjdC1ib3gvc3JjL2xpYi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxvQkFBb0IsRUFDcEIsbUJBQW1CLEVBQ25CLFdBQVcsRUFFWCxvQkFBb0IsRUFDcEIsZ0JBQWdCLEVBQ2hCLHFCQUFxQixFQUNyQixtQkFBbUIsRUFFbkIsdUJBQXVCLEVBQ3ZCLGVBQWUsRUFDZix3QkFBd0IsRUFDeEIseUJBQXlCLEVBQ3pCLHdCQUF3QixHQUN6QixNQUFNLDJCQUEyQixDQUFDO0FBQ25DLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ2pHLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUNyRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sb0JBQW9CLENBQUM7QUFDcEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixTQUFTLEVBQ1QsWUFBWSxFQUNaLFVBQVUsRUFDVixZQUFZLEVBQ1osS0FBSyxFQUVMLFdBQVcsRUFDWCxTQUFTLEVBQ1QsaUJBQWlCLEVBRWpCLFVBQVUsRUFDVixNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUNyRCxPQUFP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QUFXO3NCQURWLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLO2dCQUlOLGFBQWE7c0JBRFosS0FBSztnQkFJTixlQUFlO3NCQURkLEtBQUs7Z0JBR2MsS0FBSztzQkFBeEIsU0FBUzt1QkFBQyxPQUFPO2dCQUdsQixJQUFJO3NCQURILFNBQVM7dUJBQUMsZUFBZTtnQkFJMUIsU0FBUztzQkFEUixZQUFZO3VCQUFDLG9CQUFvQixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJMUMsUUFBUTtzQkFEakIsU0FBUzt1QkFBQyxzQkFBc0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBa0huRCxjQUFjO3NCQURiLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQVhDbGVhcmFibGVDb21wb25lbnQsXG4gIEFYQ2xvc2JhbGVDb21wb25lbnQsXG4gIEFYQ29tcG9uZW50LFxuICBBWERhdGFTb3VyY2UsXG4gIEFYRm9jdXNhYmxlQ29tcG9uZW50LFxuICBBWEhvdGtleXNTZXJ2aWNlLFxuICBBWFNlYXJjaGFibGVDb21wb25lbnQsXG4gIEFYVmFsdWFibGVDb21wb25lbnQsXG4gIEFYVmFsdWVDaGFuZ2VkRXZlbnQsXG4gIEFYX1NFTEVDVElPTl9EQVRBX1RPS0VOLFxuICBNWExvb2tDb21wb25lbnQsXG4gIE1YU2VsZWN0aW9uQnJpZGdlU2VydmljZSxcbiAgTVhTZWxlY3Rpb25WYWx1ZUNvbXBvbmVudCxcbiAgY29udmVydEFycmF5VG9EYXRhU291cmNlLFxufSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYRHJvcGRvd25Cb3hDb21wb25lbnQsIE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2Ryb3Bkb3duJztcbmltcG9ydCB7IEFYTGlzdENvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9saXN0JztcbmltcG9ydCB7IEFYU2VhcmNoQm94Q29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3NlYXJjaC1ib3gnO1xuaW1wb3J0IHsgQVhVbnN1YnNjcmliZXIgfSBmcm9tICdAYWNvcmV4L2NvcmUvdXRpbHMnO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkLFxuICBFbGVtZW50UmVmLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBXcml0YWJsZVNpZ25hbCxcbiAgZm9yd2FyZFJlZixcbiAgaW5qZWN0LFxuICBzaWduYWwsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBmaW5kTGFzdEluZGV4LCBsYXN0LCBudGggfSBmcm9tICdsb2Rhc2gtZXMnO1xuaW1wb3J0IHsgY2xhc3NlcyB9IGZyb20gJ3BvbHl0eXBlJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtc2VsZWN0LWJveCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtYm94LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWJveC5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICdyZWFkb25seScsXG4gICAgJ3RhYkluZGV4JyxcbiAgICAncGxhY2Vob2xkZXInLFxuICAgICdtaW5WYWx1ZScsXG4gICAgJ21heFZhbHVlJyxcbiAgICAndmFsdWUnLFxuICAgICdzdGF0ZScsXG4gICAgJ25hbWUnLFxuICAgICdpZCcsXG4gICAgJ3R5cGUnLFxuICAgICdsb29rJyxcbiAgICAnbXVsdGlwbGUnLFxuICAgICd2YWx1ZUZpZWxkJyxcbiAgICAndGV4dEZpZWxkJyxcbiAgXSxcbiAgb3V0cHV0czogW1xuICAgICd2YWx1ZUNoYW5nZScsXG4gICAgJ3N0YXRlQ2hhbmdlJyxcbiAgICAnb25WYWx1ZUNoYW5nZWQnLFxuICAgICdvbkJsdXInLFxuICAgICdvbkZvY3VzJyxcbiAgICAncmVhZG9ubHlDaGFuZ2UnLFxuICAgICdkaXNhYmxlZENoYW5nZScsXG4gIF0sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7IHByb3ZpZGU6IEFYQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYRm9jdXNhYmxlQ29tcG9uZW50LCB1c2VFeGlzdGluZzogQVhTZWxlY3RCb3hDb21wb25lbnQgfSxcbiAgICB7IHByb3ZpZGU6IEFYVmFsdWFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbGVhcmFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHsgcHJvdmlkZTogQVhDbG9zYmFsZUNvbXBvbmVudCwgdXNlRXhpc3Rpbmc6IEFYU2VsZWN0Qm94Q29tcG9uZW50IH0sXG4gICAgeyBwcm92aWRlOiBBWFNlYXJjaGFibGVDb21wb25lbnQsIHVzZUV4aXN0aW5nOiBBWFNlbGVjdEJveENvbXBvbmVudCB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gQVhTZWxlY3RCb3hDb21wb25lbnQpLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWF9TRUxFQ1RJT05fREFUQV9UT0tFTixcbiAgICAgIHVzZUNsYXNzOiBNWFNlbGVjdGlvbkJyaWRnZVNlcnZpY2UsXG4gICAgfSxcbiAgICBBWFVuc3Vic2NyaWJlcixcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhTZWxlY3RCb3hDb21wb25lbnRcbiAgZXh0ZW5kcyBjbGFzc2VzKE1YRHJvcGRvd25Cb3hCYXNlQ29tcG9uZW50LCBNWFNlbGVjdGlvblZhbHVlQ29tcG9uZW50LCBNWExvb2tDb21wb25lbnQpXG4gIGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCwgT25EZXN0cm95XG57XG4gIHByaXZhdGUgaG90S2V5U2VydmljZTogQVhIb3RrZXlzU2VydmljZSA9IGluamVjdChBWEhvdGtleXNTZXJ2aWNlKTtcbiAgcHJvdGVjdGVkIGlzTG9hZGluZzogV3JpdGFibGVTaWduYWw8Ym9vbGVhbj4gPSBzaWduYWwoZmFsc2UpO1xuICBwcm90ZWN0ZWQgcmVuZGVyTGlzdCA9IGZhbHNlO1xuXG4gIHByb3RlY3RlZCBkcm9wZG93blNpemVzOiB7IHdpZHRoOiBzdHJpbmc7IGhlaWdodDogc3RyaW5nIH0gPSB7IHdpZHRoOiAnMTAwJScsIGhlaWdodDogJ2F1dG8nIH07XG5cbiAgcHJvdGVjdGVkIF9saXN0RGF0YVNvdXJjZTogQVhEYXRhU291cmNlPHVua25vd24+ID0gY29udmVydEFycmF5VG9EYXRhU291cmNlKFtdLCB7XG4gICAga2V5OiB0aGlzLnZhbHVlRmllbGQsXG4gICAgcGFnZVNpemU6IDEwLFxuICB9KTtcblxuICBwcml2YXRlIF9kYXRhU291cmNlOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW107XG4gIHB1YmxpYyBnZXQgZGF0YVNvdXJjZSgpOiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW10ge1xuICAgIHJldHVybiB0aGlzLl9kYXRhU291cmNlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgZGF0YVNvdXJjZSh2OiBBWERhdGFTb3VyY2U8dW5rbm93bj4gfCB1bmtub3duW10pIHtcbiAgICB0aGlzLl9kYXRhU291cmNlID0gdjtcbiAgICBpZiAoQXJyYXkuaXNBcnJheSh2KSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UgPSBjb252ZXJ0QXJyYXlUb0RhdGFTb3VyY2UodiwgeyBrZXk6IHRoaXMudmFsdWVGaWVsZCwgcGFnZVNpemU6IDEwIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZSA9IHRoaXMuZGF0YVNvdXJjZSBhcyBBWERhdGFTb3VyY2U8dW5rbm93bj47XG4gICAgfVxuICAgIHRoaXMuX2xpc3REYXRhU291cmNlLm9uQ2hhbmdlZC5zdWJzY3JpYmUoKGRhdGEpID0+IHtcbiAgICAgIHRoaXMuc2V0RHJvcGRvd25TaXplKGRhdGEudG90YWxDb3VudCk7XG4gICAgfSk7XG4gICAgdGhpcy5fbGlzdERhdGFTb3VyY2Uub25Mb2FkaW5nQ2hhbmdlZC5zdWJzY3JpYmUoKGxvYWRpbmcpID0+IHtcbiAgICAgIHRoaXMuaXNMb2FkaW5nLnNldChsb2FkaW5nKTtcbiAgICB9KTtcbiAgfVxuXG4gIEBJbnB1dCgpXG4gIHBsYWNlaG9sZGVyOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgaXRlbVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBlbXB0eVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPjtcblxuICBASW5wdXQoKVxuICBsb2FkaW5nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+O1xuXG4gIEBWaWV3Q2hpbGQoJ3BhbmVsJykgcGFuZWwhOiBFbGVtZW50UmVmPEhUTUxEaXZFbGVtZW50PjtcblxuICBAVmlld0NoaWxkKEFYTGlzdENvbXBvbmVudClcbiAgbGlzdDogQVhMaXN0Q29tcG9uZW50O1xuXG4gIEBDb250ZW50Q2hpbGQoQVhTZWFyY2hCb3hDb21wb25lbnQsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHNlYXJjaEJveDogQVhTZWFyY2hCb3hDb21wb25lbnQ7XG5cbiAgQFZpZXdDaGlsZChBWERyb3Bkb3duQm94Q29tcG9uZW50LCB7IHN0YXRpYzogdHJ1ZSB9KVxuICBwcm90ZWN0ZWQgZHJvcGRvd246IEFYRHJvcGRvd25Cb3hDb21wb25lbnQ7XG5cbiAgcHJvdGVjdGVkIGF1dG9IZWlnaHQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0aW9uU2VydmljZSA9IGluamVjdChBWF9TRUxFQ1RJT05fREFUQV9UT0tFTik7XG5cbiAgc2VhcmNoRXZlbnQ6IE9ic2VydmFibGU8dW5rbm93bj47XG5cbiAgcHJpdmF0ZSBfdW5zdWJzY3JpYmVyID0gaW5qZWN0KEFYVW5zdWJzY3JpYmVyKTtcblxuICBwcm90ZWN0ZWQgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgICAvL1xuICAgIHRoaXMucmVnaXN0ZXJWYWxpZGF0aW9uKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5zZXREcm9wZG93blNpemUoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuc2VhcmNoQm94Py5vbktleURvd24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGdldEl0ZW1CeUtleShrZXk6IHVua25vd24pOiBQcm9taXNlPHVua25vd24+IHwgdW5rbm93biB7XG4gICAgcmV0dXJuIHRoaXMuX2xpc3REYXRhU291cmNlLmZpbmQoa2V5KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25PcGVuZWRFdmVudCgpIHtcbiAgICB0aGlzLnJlbmRlckxpc3QgPSB0cnVlO1xuICAgIHRoaXMubGlzdD8ucmVuZGVyKCk7XG4gICAgdGhpcy5faGFuZGxlRm9jdXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlT25DbG9zZWRFdmVudCgpIHtcbiAgICAvL3RoaXMuaW5wdXQuZm9jdXMoKTtcbiAgICB0aGlzLl91bnN1YnNjcmliZXIudW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlRm9jdXMoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAodGhpcy5zZWFyY2hCb3gpIHtcbiAgICAgICAgdGhpcy5zZWFyY2hCb3guZm9jdXMoKTtcbiAgICAgICAgLy9UT0RPOiB1bnN1YnNjcmliZVxuICAgICAgICB0aGlzLmhvdEtleVNlcnZpY2VcbiAgICAgICAgICAuYWRkU2hvcnRjdXQoeyBrZXlzOiAnQ29udHJvbC5mJywgZWxlbWVudDogdGhpcy5wYW5lbC5uYXRpdmVFbGVtZW50IH0pXG4gICAgICAgICAgLnBpcGUodGhpcy5fdW5zdWJzY3JpYmVyLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLnNlYXJjaEJveC5mb2N1cygpO1xuICAgICAgICAgIH0pO1xuICAgICAgICB0aGlzLnNlYXJjaEJveC5vbktleURvd24ucGlwZSh0aGlzLl91bnN1YnNjcmliZXIudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKChlKSA9PiB7XG4gICAgICAgICAgaWYgKGUubmF0aXZlRXZlbnQuY29kZSA9PT0gJ0Fycm93RG93bicgfHwgZS5uYXRpdmVFdmVudC5rZXkgPT09ICdBcnJvd0Rvd24nKSB7XG4gICAgICAgICAgICB0aGlzLmxpc3Q/LmZvY3VzKCk7XG4gICAgICAgICAgICBlLm5hdGl2ZUV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubGlzdD8uZm9jdXMoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByb3RlY3RlZCBfaGFuZGxlQmFkZ2VSZW1vdmUoZTogTW91c2VFdmVudCwgaXRlbSkge1xuICAgIHRoaXMudW5zZWxlY3RJdGVtcyhpdGVtKTtcbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICB9XG5cbiAgcHJvdGVjdGVkIF9oYW5kbGVWYWx1ZUNoYW5nZWQoZTogQVhWYWx1ZUNoYW5nZWRFdmVudCkge1xuICAgIGlmIChlLmlzVXNlckludGVyYWN0aW9uKSB7XG4gICAgICB0aGlzLmNvbW1pdFZhbHVlKGUuY29tcG9uZW50LnNlbGVjdGVkSXRlbXMsIHRydWUpO1xuICAgIH1cbiAgfVxuXG4gIG92ZXJyaWRlIGludGVybmFsVmFsdWVDaGFuZ2VkKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdWx0aXBsZSkgdGhpcy5jbG9zZSgpO1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5kZXRlY3RBdXRvSGVpZ2h0KCk7XG4gICAgfSwgMTAwKTtcbiAgfVxuXG4gIHByaXZhdGUgZGV0ZWN0QXV0b0hlaWdodCgpIHtcbiAgICBjb25zdCBjb250YWluZXJXaWR0aDogbnVtYmVyID1cbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdC1ib3gtc2VsZWN0aW9uJykuY2xpZW50V2lkdGg7XG4gICAgY29uc3QgaXRlbXNXaWR0aDogbnVtYmVyID0gQXJyYXkuZnJvbShcbiAgICAgIHRoaXMuZ2V0SG9zdEVsZW1lbnQoKS5xdWVyeVNlbGVjdG9yQWxsPEhUTUxEaXZFbGVtZW50PignLmF4LXNlbGVjdGVkLXRva2VuJyksXG4gICAgKS5yZWR1Y2UoKGEsIGkpID0+IGEgKyBpLmNsaWVudFdpZHRoLCAwKTtcbiAgICB0aGlzLmF1dG9IZWlnaHQgPSBjb250YWluZXJXaWR0aCAtIGl0ZW1zV2lkdGggPD0gODtcbiAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cblxuICBwcml2YXRlIHNldERyb3Bkb3duU2l6ZShjb3VudCA9IDApIHtcbiAgICBpZiAodGhpcy5kcm9wZG93bi5pc0FjdGlvbnNoZWV0U3R5bGUpIHtcbiAgICAgIHRoaXMuZHJvcGRvd25TaXplcyA9IHtcbiAgICAgICAgd2lkdGg6ICcxMDAlJyxcbiAgICAgICAgaGVpZ2h0OiBbJ2F1dG8nLCAnMHB4J10uaW5jbHVkZXModGhpcy5kcm9wZG93blNpemVzLmhlaWdodClcbiAgICAgICAgICA/IGAke01hdGgubWluKDE1LCBjb3VudCkgKiA0MH1weGBcbiAgICAgICAgICA6IHRoaXMuZHJvcGRvd25TaXplcy5oZWlnaHQsXG4gICAgICB9O1xuICAgIH0gZWxzZSB7XG4gICAgICAvL1RPRE86IGNhbGMgbWluLXdpdGggZnJvbSBmb3JtdWxhIG9yIGNvbmZpZ1xuICAgICAgY29uc3QgaG9zdFdpZHRoID0gTWF0aC5tYXgodGhpcy5nZXRIb3N0RWxlbWVudCgpLm9mZnNldFdpZHRoLCAyMDApO1xuICAgICAgdGhpcy5kcm9wZG93blNpemVzID0ge1xuICAgICAgICB3aWR0aDogYCR7aG9zdFdpZHRofXB4YCxcbiAgICAgICAgaGVpZ2h0OiBjb3VudCA9PSAwID8gJ2F1dG8nIDogYCR7TWF0aC5taW4oNSwgY291bnQpICogNDB9cHhgLFxuICAgICAgfTtcbiAgICB9XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLmRyb3Bkb3duLnVwZGF0ZVBvc2l0aW9uKCk7XG4gICAgfSk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgX2hhbmRsZUtleWRvd24oZTogS2V5Ym9hcmRFdmVudCkge1xuICAgIGlmIChlLmNvZGUgPT09ICdBcnJvd0Rvd24nIHx8IGUuY29kZSA9PT0gJ0Fycm93VXAnKSB7XG4gICAgICB0aGlzLnNlbGVjdEl0ZW1CeU5hdihlLmNvZGUgPT09ICdBcnJvd0Rvd24nID8gMSA6IC0xKTtcbiAgICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICB9IGVsc2UgaWYgKGUuY29kZSA9PT0gJ0JhY2tzcGFjZScpIHtcbiAgICAgIHRoaXMudW5zZWxlY3RJdGVtcyh0aGlzLnNlbGVjdGVkSXRlbXMucG9wKCkpO1xuICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIH1cbiAgICAvLyBpZiAoKGUuY29kZSA9PT0gJ1NwYWNlJyB8fCBlLmNvZGUgPT09ICdFbnRlcicpICYmIHRoaXMuaGFzSXRlbXMpIHtcbiAgICAvLyAgICAgaWYgKHRoaXMucmVhZG9ubHkgfHwgdGhpcy5kaXNhYmxlZCkge1xuICAgIC8vICAgICAgICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICAgIC8vICAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAvLyAgICAgICAgIHJldHVybjtcbiAgICAvLyAgICAgfVxuICAgIC8vICAgICBjb25zdCBpZCA9IGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQ/LmNsb3Nlc3QoJ2xpJyk/LmRhdGFzZXQ/LmlkO1xuICAgIC8vICAgICB0aGlzLnRvZ2dsZVNlbGVjdChpZCk7XG4gICAgLy8gICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgICAvLyAgICAgZS5zdG9wUHJvcGFnYXRpb24oKVxuICAgIC8vIH1cbiAgfVxuXG4gIHByaXZhdGUgc2VsZWN0SXRlbUJ5TmF2KHNpZ246IDEgfCAtMSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KHRoaXMuZGF0YVNvdXJjZSkgJiYgIXRoaXMubXVsdGlwbGUpIHtcbiAgICAgIGNvbnN0IGl0ZW1zID0gdGhpcy5ub3JtYWxpemVJdGVtc0xpc3QodGhpcy5kYXRhU291cmNlKTtcbiAgICAgIGNvbnN0IF9sYXN0OiB1bmtub3duID0gbGFzdCh0aGlzLnNlbGVjdGVkSXRlbXMpO1xuICAgICAgbGV0IGkgPSAtMTtcbiAgICAgIGlmIChfbGFzdCkge1xuICAgICAgICBpID0gZmluZExhc3RJbmRleChpdGVtcywgW3RoaXMudmFsdWVGaWVsZCwgX2xhc3RbdGhpcy52YWx1ZUZpZWxkXV0pO1xuICAgICAgfVxuICAgICAgaSArPSBzaWduO1xuICAgICAgaWYgKGkgPCAwIHx8IGkgPj0gaXRlbXMubGVuZ3RoKSByZXR1cm47XG4gICAgICBjb25zdCBuZXh0ID0gbnRoPHVua25vd24+KGl0ZW1zLCBpKTtcbiAgICAgIGlmIChuZXh0KSB7XG4gICAgICAgIHRoaXMuc2VsZWN0SXRlbXMobmV4dCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMub3BlbigpO1xuICAgIH1cbiAgfVxuXG4gIHNlYXJjaCh0ZXJtOiBzdHJpbmcpIHtcbiAgICBpZiAodGVybSkge1xuICAgICAgdGhpcy5fbGlzdERhdGFTb3VyY2UuZmlsdGVyKHsgZmllbGQ6IHRoaXMudGV4dEZpZWxkLCB2YWx1ZTogdGVybSwgb3BlcmF0b3I6IHsgdHlwZTogJ2NvbnRhaW5zJyB9IH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5jbGVhckZpbHRlcigpO1xuICAgIH1cbiAgICB0aGlzLl9saXN0RGF0YVNvdXJjZS5yZWZyZXNoKCk7XG4gIH1cblxuICByZWZyZXNoKCkge1xuICAgIHRoaXMuY2xlYXIoZmFsc2UpO1xuICAgIHRoaXMuY2xlYXJTZWxlY3Rpb25DYWNoZSgpO1xuICAgIHRoaXMubGlzdD8ucmVmcmVzaCgpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxufVxuIiwiPGF4LWRyb3Bkb3duLWJveFxuICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAob25PcGVuZWQpPVwiX2hhbmRsZU9uT3BlbmVkRXZlbnQoKVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWRFdmVudCgpXCJcbiAgW2xvb2tdPVwibG9va1wiXG4gIFtjbGFzcy5heC1hdXRvLWhlaWdodF09XCJhdXRvSGVpZ2h0XCJcbj5cbiAgPG5nLWNvbnRhaW5lciBpbnB1dD5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj4gPC9uZy1jb250ZW50PlxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwiYXgtc2VsZWN0LWJveC1zZWxlY3Rpb25cIlxuICAgICAgW2NsYXNzLmF4LW11bHRpcGxlXT1cIm11bHRpcGxlXCJcbiAgICAgIFt0YWJpbmRleF09XCJ0YWJJbmRleFwiXG4gICAgICAoZm9jdXMpPVwiZW1pdE9uRm9jdXNFdmVudCgkZXZlbnQpXCJcbiAgICAgIChibHVyKT1cImVtaXRPbkJsdXJFdmVudCgkZXZlbnQpXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGUoKVwiXG4gICAgPlxuICAgICAgQGlmIChzZWxlY3RlZEl0ZW1zLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtcGxhY2Vob2xkZXJcIiByb2xlPVwidGV4dGJveFwiIGFyZWEtcmVhZG9ubHk9XCJ0cnVlXCI+XG4gICAgICAgICAge3sgcGxhY2Vob2xkZXIgfX1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAZm9yIChpdGVtIG9mIHNlbGVjdGVkSXRlbXM7IHRyYWNrICRpbmRleCkge1xuICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtc2VsZWN0ZWQtdG9rZW5cIj5cbiAgICAgICAgICB7eyBnZXREaXNwbGF5VGV4dChpdGVtKSB9fVxuICAgICAgICAgIEBpZiAoIWRpc2FibGVkICYmICFyZWFkb25seSAmJiBtdWx0aXBsZSkge1xuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2xvc2VcIiAoY2xpY2spPVwiX2hhbmRsZUJhZGdlUmVtb3ZlKCRldmVudCwgaXRlbSlcIj4gPC9zcGFuPlxuICAgICAgICAgIH1cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgPC9kaXY+XG4gICAgQGlmIChzZWxlY3RlZEl0ZW1zPy5sZW5ndGggJiYgIWRpc2FibGVkICYmICFyZWFkb25seSkge1xuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtY2xlYXItYnV0dG9uXCI+PC9uZy1jb250ZW50PlxuICAgIH1cbiAgICA8YnV0dG9uXG4gICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgICBbdGFiSW5kZXhdPVwiLTFcIlxuICAgICAgY2xhc3M9XCJheC1nZW5lcmFsLWJ1dHRvbiBheC1idXR0b24taWNvblwiXG4gICAgICAoY2xpY2spPVwidG9nZ2xlKClcIlxuICAgID5cbiAgICAgIDwhLS0gQGlmIChpc0xvYWRpbmcoKSAmJiAhaXNPcGVuKSB7XG4gICAgICAgIDxheC1sb2FkaW5nIHR5cGU9XCJzcGlubmVyXCI+PC9heC1sb2FkaW5nPlxuICAgICAgfSBAZWxzZSB7IC0tPlxuICAgICAgPHNwYW5cbiAgICAgICAgY2xhc3M9XCJheC1pY29uIGF4LWljb24tY2hldnJvbi1sZWZ0IGF4LWFycm93LWJ1dHRvblwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnLXJvdGF0aW9uLTkwJzogIWlzT3BlbixcbiAgICAgICAgICAncm90YXRpb24tOTAnOiBpc09wZW5cbiAgICAgICAgfVwiXG4gICAgICA+PC9zcGFuPlxuICAgICAgPCEtLSB9IC0tPlxuICAgIDwvYnV0dG9uPlxuICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPG5nLXRlbXBsYXRlICNzZWFyY2g+XG4gICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1zZWFyY2gtYm94XCI+IDwvbmctY29udGVudD5cbiAgICA8L25nLXRlbXBsYXRlPlxuICA8L25nLWNvbnRhaW5lcj5cbiAgPG5nLWNvbnRhaW5lciBwYW5lbD5cbiAgICA8ZGl2ICNwYW5lbCBjbGFzcz1cImF4LXNlbGVjdC1ib3gtcGFuZWxcIiBbc3R5bGUubWluLXdpZHRoXT1cImRyb3Bkb3duU2l6ZXMud2lkdGhcIj5cbiAgICAgIEBpZiAoZHJvcGRvd24uaXNBY3Rpb25zaGVldFN0eWxlKSB7XG4gICAgICAgIDxheC1oZWFkZXIgY2xhc3M9XCJheC1zb2xpZFwiPlxuICAgICAgICAgIDxheC10aXRsZT57eyBwbGFjZWhvbGRlciB8fCAnc2VsZWN0Ym94LnBvcG92ZXIudGl0bGUnIHwgdHJhbnNsYXRlIHwgYXN5bmMgfX08L2F4LXRpdGxlPlxuICAgICAgICAgIDxheC1jbG9zZS1idXR0b25cbiAgICAgICAgICAgIFtpY29uXT1cIm11bHRpcGxlID8gJ2F4LWljb24gYXgtaWNvbi1kb25lICFheC10ZXh0LXByaW1hcnktNTAwJyA6ICdheC1pY29uIGF4LWljb24tY2xvc2UnXCJcbiAgICAgICAgICA+PC9heC1jbG9zZS1idXR0b24+XG4gICAgICAgIDwvYXgtaGVhZGVyPlxuICAgICAgfVxuICAgICAgQGlmIChzZWFyY2hCb3gpIHtcbiAgICAgICAgPGRpdiBjbGFzcz1cImF4LXNlYXJjaC1jb250YWluZXJcIj5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgW25nVGVtcGxhdGVPdXRsZXRdPVwic2VhcmNoXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG4gICAgICB9XG4gICAgICBAaWYgKHJlbmRlckxpc3QpIHtcbiAgICAgICAgPGF4LWxpc3RcbiAgICAgICAgICBbZGF0YVNvdXJjZV09XCJfbGlzdERhdGFTb3VyY2VcIlxuICAgICAgICAgIFttdWx0aXBsZV09XCJtdWx0aXBsZVwiXG4gICAgICAgICAgW3N0eWxlLmhlaWdodF09XCJkcm9wZG93blNpemVzLmhlaWdodFwiXG4gICAgICAgICAgW3ZhbHVlRmllbGRdPVwidmFsdWVGaWVsZFwiXG4gICAgICAgICAgW3RleHRGaWVsZF09XCJ0ZXh0RmllbGRcIlxuICAgICAgICAgIFtlbXB0eVRlbXBsYXRlXT1cImVtcHR5VGVtcGxhdGUgPz8gZW1wdHlcIlxuICAgICAgICAgIFtpdGVtVGVtcGxhdGVdPVwiaXRlbVRlbXBsYXRlXCJcbiAgICAgICAgICBbbG9hZGluZ1RlbXBsYXRlXT1cImxvYWRpbmdUZW1wbGF0ZVwiXG4gICAgICAgICAgW25nTW9kZWxdPVwidmFsdWVcIlxuICAgICAgICAgIChvblZhbHVlQ2hhbmdlZCk9XCJfaGFuZGxlVmFsdWVDaGFuZ2VkKCRldmVudClcIlxuICAgICAgICAgIFtzZWxlY3Rpb25Nb2RlXT1cIidpdGVtJ1wiXG4gICAgICAgID5cbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2VtcHR5PiBObyBJdGVtcyEgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9heC1saXN0PlxuICAgICAgfVxuXG4gICAgICBAaWYgKGlzTG9hZGluZygpKSB7XG4gICAgICAgIEBpZiAobG9hZGluZ1RlbXBsYXRlKSB7XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICpuZ1RlbXBsYXRlT3V0bGV0PVwibG9hZGluZ1RlbXBsYXRlXCI+PC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgfSBAZWxzZSB7XG4gICAgICAgICAgPGRpdiBjbGFzcz1cImF4LWZsZXggYXgtaXRlbXMtY2VudGVyIGF4LWp1c3RpZnktY2VudGVyIGF4LXAtNFwiPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmc+PC9heC1sb2FkaW5nPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICB9XG4gICAgICB9XG5cbiAgICAgIDxuZy1jb250ZW50IHNlbGVjdD1cImF4LWZvb3RlclwiPiA8L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gIDwvbmctY29udGFpbmVyPlxuPC9heC1kcm9wZG93bi1ib3g+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC12YWxpZGF0aW9uLXJ1bGVcIj4gPC9uZy1jb250ZW50PlxuIl19
@@ -15,8 +15,8 @@ import { AXTextBoxModule } from '@acorex/components/text-box';
15
15
  import { AXSelectBoxComponent } from './select-box.component';
16
16
  import * as i0 from "@angular/core";
17
17
  export class AXSelectBoxModule {
18
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule,
18
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
19
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxModule, declarations: [AXSelectBoxComponent], imports: [CommonModule,
20
20
  AXCommonModule,
21
21
  FormsModule,
22
22
  AXCheckBoxModule,
@@ -29,7 +29,7 @@ export class AXSelectBoxModule {
29
29
  AXTextBoxModule,
30
30
  AXDropdownModule,
31
31
  AXListModule], exports: [AXSelectBoxComponent] }); }
32
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
32
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxModule, imports: [CommonModule,
33
33
  AXCommonModule,
34
34
  FormsModule,
35
35
  AXCheckBoxModule,
@@ -43,7 +43,7 @@ export class AXSelectBoxModule {
43
43
  AXDropdownModule,
44
44
  AXListModule] }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.0", ngImport: i0, type: AXSelectBoxModule, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.1.1", ngImport: i0, type: AXSelectBoxModule, decorators: [{
47
47
  type: NgModule,
48
48
  args: [{
49
49
  imports: [