@acorex/components 7.5.0 → 7.8.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 (452) hide show
  1. package/action-sheet/index.d.ts +1 -1
  2. package/action-sheet/lib/action-sheet.component.d.ts +3 -3
  3. package/avatar/index.d.ts +1 -1
  4. package/badge/lib/badge.component.d.ts +3 -3
  5. package/breadcrumbs/index.d.ts +2 -2
  6. package/breadcrumbs/lib/breadcrumbs-item.component.d.ts +1 -1
  7. package/button/lib/button-item.class.d.ts +1 -1
  8. package/button/lib/button-item.component.d.ts +3 -1
  9. package/button/lib/button.component.d.ts +1 -1
  10. package/calendar/lib/calendar.class.d.ts +1 -1
  11. package/calendar/lib/calendar.component.d.ts +6 -4
  12. package/chips/lib/chips.component.d.ts +1 -1
  13. package/collapse/lib/collapse-group.component.d.ts +9 -6
  14. package/collapse/lib/collapse.component.d.ts +21 -8
  15. package/collapse/lib/collapse.module.d.ts +2 -1
  16. package/color-box/lib/color-box.component.d.ts +2 -2
  17. package/color-palette/lib/color-palette-input.component.d.ts +3 -3
  18. package/color-palette/lib/color-palette-picker.component.d.ts +1 -1
  19. package/color-palette/lib/color-palette.class.d.ts +4 -4
  20. package/common/index.d.ts +1 -1
  21. package/common/lib/classes/datasource.class.d.ts +55 -0
  22. package/common/lib/classes/styles.class.d.ts +2 -3
  23. package/common/lib/components/colorlook-component.class.d.ts +2 -2
  24. package/common/lib/components/input-base-value-component.class.d.ts +12 -12
  25. package/common/lib/components/interactive-component.class.d.ts +1 -7
  26. package/common/lib/components/selection-base.component.class.d.ts +5 -6
  27. package/common/lib/directives/delayed-value-changed.directive.d.ts +5 -5
  28. package/common/lib/directives/hotkey.directive.d.ts +2 -2
  29. package/common/lib/directives/responsive.directive.d.ts +1 -1
  30. package/common/lib/directives/ripple.directive.d.ts +2 -1
  31. package/data-table/lib/data-table.component.d.ts +2 -2
  32. package/datetime-box/lib/datetime-box.component.d.ts +4 -3
  33. package/datetime-input/lib/datetime-input.component.d.ts +2 -1
  34. package/datetime-picker/index.d.ts +1 -1
  35. package/datetime-picker/lib/datetime-picker.component.d.ts +1 -2
  36. package/dropdown/lib/dropdown-box.component.d.ts +5 -3
  37. package/dropdown/lib/dropdown-panel.component.d.ts +1 -0
  38. package/esm2022/action-sheet/index.mjs +2 -2
  39. package/esm2022/action-sheet/lib/action-sheet.class.mjs +1 -1
  40. package/esm2022/action-sheet/lib/action-sheet.component.mjs +22 -14
  41. package/esm2022/action-sheet/lib/action-sheet.module.mjs +3 -3
  42. package/esm2022/action-sheet/lib/action-sheet.service.mjs +5 -5
  43. package/esm2022/alert/lib/alert.component.mjs +4 -5
  44. package/esm2022/avatar/index.mjs +2 -2
  45. package/esm2022/avatar/lib/avatar-group.component.mjs +1 -1
  46. package/esm2022/avatar/lib/avatar.component.mjs +4 -4
  47. package/esm2022/badge/lib/badge.component.mjs +6 -6
  48. package/esm2022/badge/lib/badge.module.mjs +2 -2
  49. package/esm2022/breadcrumbs/index.mjs +3 -3
  50. package/esm2022/breadcrumbs/lib/breadcrumbs-item.class.mjs +1 -1
  51. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +2 -2
  52. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +1 -1
  53. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +3 -3
  54. package/esm2022/button/lib/button-item.class.mjs +1 -1
  55. package/esm2022/button/lib/button-item.component.mjs +12 -3
  56. package/esm2022/button/lib/button.component.mjs +3 -3
  57. package/esm2022/button-group/lib/button-group.component.mjs +3 -3
  58. package/esm2022/button-group/lib/button-group.module.mjs +2 -2
  59. package/esm2022/calendar/lib/calendar-range.component.mjs +4 -7
  60. package/esm2022/calendar/lib/calendar.class.mjs +3 -68
  61. package/esm2022/calendar/lib/calendar.component.mjs +53 -43
  62. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  63. package/esm2022/check-box/lib/check-box.component.mjs +9 -9
  64. package/esm2022/check-box/lib/check-box.module.mjs +3 -3
  65. package/esm2022/chips/lib/chips.component.mjs +6 -6
  66. package/esm2022/chips/lib/chips.module.mjs +2 -2
  67. package/esm2022/collapse/lib/collapse-group.component.mjs +23 -14
  68. package/esm2022/collapse/lib/collapse.component.mjs +68 -20
  69. package/esm2022/collapse/lib/collapse.module.mjs +7 -6
  70. package/esm2022/color-box/lib/color-box.component.mjs +7 -7
  71. package/esm2022/color-box/lib/color-box.module.mjs +4 -4
  72. package/esm2022/color-palette/lib/color-palette-input.component.mjs +10 -14
  73. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +29 -31
  74. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +8 -16
  75. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +5 -5
  76. package/esm2022/color-palette/lib/color-palette.class.mjs +2 -2
  77. package/esm2022/color-palette/lib/color-palette.component.mjs +14 -6
  78. package/esm2022/color-palette/lib/color-palette.module.mjs +12 -12
  79. package/esm2022/common/index.mjs +2 -2
  80. package/esm2022/common/lib/classes/components.class.mjs +1 -1
  81. package/esm2022/common/lib/classes/datalist.class.mjs +1 -53
  82. package/esm2022/common/lib/classes/datasource.class.mjs +106 -0
  83. package/esm2022/common/lib/classes/styles.class.mjs +2 -10
  84. package/esm2022/common/lib/common.module.mjs +4 -2
  85. package/esm2022/common/lib/components/button-base-component.class.mjs +4 -4
  86. package/esm2022/common/lib/components/color-component.class.mjs +2 -2
  87. package/esm2022/common/lib/components/colorlook-component.class.mjs +4 -4
  88. package/esm2022/common/lib/components/input-base-value-component.class.mjs +15 -15
  89. package/esm2022/common/lib/components/interactive-component.class.mjs +13 -13
  90. package/esm2022/common/lib/components/look-component.class.mjs +2 -2
  91. package/esm2022/common/lib/components/selection-base.component.class.mjs +63 -29
  92. package/esm2022/common/lib/components/value-component.class.mjs +3 -3
  93. package/esm2022/common/lib/directives/auto-focus.directive.mjs +4 -12
  94. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +16 -14
  95. package/esm2022/common/lib/directives/hotkey.directive.mjs +14 -15
  96. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +7 -9
  97. package/esm2022/common/lib/directives/responsive.directive.mjs +12 -10
  98. package/esm2022/common/lib/directives/ripple.directive.mjs +14 -8
  99. package/esm2022/common/lib/services/dom.service.mjs +2 -2
  100. package/esm2022/common/lib/services/hotkey.service.mjs +4 -5
  101. package/esm2022/common/lib/types/direction.mjs +1 -1
  102. package/esm2022/common/lib/types/orientation.mjs +1 -1
  103. package/esm2022/common/lib/types/placement.mjs +23 -23
  104. package/esm2022/common/lib/types/range.mjs +1 -1
  105. package/esm2022/data-pager/lib/data-pager-info.component.mjs +3 -3
  106. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +1 -1
  107. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +21 -8
  108. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +3 -3
  109. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +17 -5
  110. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +19 -7
  111. package/esm2022/data-pager/lib/data-pager.component.mjs +2 -2
  112. package/esm2022/data-pager/lib/data-pager.module.mjs +30 -16
  113. package/esm2022/data-table/lib/data-column.directive.mjs +2 -2
  114. package/esm2022/data-table/lib/data-table.component.mjs +2 -2
  115. package/esm2022/data-table/lib/data-table.module.mjs +7 -7
  116. package/esm2022/datetime-box/lib/datetime-box.component.mjs +10 -7
  117. package/esm2022/datetime-box/lib/datetime-box.module.mjs +7 -7
  118. package/esm2022/datetime-input/lib/datetime-input.component.mjs +144 -137
  119. package/esm2022/datetime-input/lib/datetime-input.module.mjs +4 -4
  120. package/esm2022/datetime-picker/index.mjs +2 -2
  121. package/esm2022/datetime-picker/lib/datetime-picker.component.mjs +4 -4
  122. package/esm2022/datetime-picker/lib/datetime-picker.config.mjs +4 -4
  123. package/esm2022/decorators/lib/components/clear-button.component.mjs +2 -2
  124. package/esm2022/decorators/lib/components/close-button.component.mjs +8 -4
  125. package/esm2022/decorators/lib/components/generic-content.component.mjs +1 -1
  126. package/esm2022/decorators/lib/components/icon.component.mjs +2 -2
  127. package/esm2022/dialog/lib/dialog.component.mjs +3 -3
  128. package/esm2022/dialog/lib/dialog.module.mjs +26 -10
  129. package/esm2022/drawer/lib/drawer-container.component.mjs +2 -2
  130. package/esm2022/drawer/lib/drawer.component.mjs +2 -2
  131. package/esm2022/drawer/lib/drawer.module.mjs +3 -3
  132. package/esm2022/dropdown/lib/dropdown-box.class.mjs +1 -1
  133. package/esm2022/dropdown/lib/dropdown-box.component.mjs +14 -11
  134. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +5 -4
  135. package/esm2022/dropdown/lib/dropdown.module.mjs +29 -9
  136. package/esm2022/form/index.mjs +2 -2
  137. package/esm2022/form/lib/form-field.component.mjs +4 -4
  138. package/esm2022/form/lib/form.component.mjs +3 -4
  139. package/esm2022/form/lib/form.config.mjs +6 -6
  140. package/esm2022/form/lib/form.module.mjs +3 -11
  141. package/esm2022/form/lib/validation-summary.component.mjs +40 -30
  142. package/esm2022/form/lib/validation.class.mjs +1 -1
  143. package/esm2022/image/lib/image.component.mjs +1 -1
  144. package/esm2022/image/lib/image.module.mjs +2 -2
  145. package/esm2022/label/lib/label.component.mjs +4 -8
  146. package/esm2022/label/lib/label.module.mjs +2 -2
  147. package/esm2022/list/lib/list.component.mjs +77 -80
  148. package/esm2022/list/lib/list.module.mjs +3 -3
  149. package/esm2022/loading/index.mjs +2 -2
  150. package/esm2022/loading/lib/loading-spinner.component.mjs +13 -7
  151. package/esm2022/loading/lib/loading.component.mjs +8 -16
  152. package/esm2022/loading/lib/loading.config.mjs +2 -2
  153. package/esm2022/loading/lib/loading.directive.mjs +2 -2
  154. package/esm2022/menu/index.mjs +1 -2
  155. package/esm2022/menu/lib/class/root-menu.class.mjs +1 -1
  156. package/esm2022/menu/lib/menu-item/menu-item.component.mjs +60 -19
  157. package/esm2022/menu/lib/menu.component.mjs +37 -342
  158. package/esm2022/menu/lib/menu.module.mjs +3 -4
  159. package/esm2022/mixin/lib/base-components.class.mjs +2 -3
  160. package/esm2022/mixin/lib/base-menu-mixin.class.mjs +1 -1
  161. package/esm2022/mixin/lib/button-mixin.class.mjs +1 -1
  162. package/esm2022/mixin/lib/clickable-mixin.class.mjs +8 -8
  163. package/esm2022/mixin/lib/color-look-mixing.class.mjs +3 -3
  164. package/esm2022/mixin/lib/constratctor.mjs +1 -1
  165. package/esm2022/mixin/lib/datalist-component.class.mjs +3 -5
  166. package/esm2022/mixin/lib/datalist.class.mjs +5 -6
  167. package/esm2022/mixin/lib/dropdown-mixin.class.mjs +2 -4
  168. package/esm2022/mixin/lib/interactive-mixin.class.mjs +29 -28
  169. package/esm2022/mixin/lib/mixin.class.mjs +13 -13
  170. package/esm2022/mixin/lib/page-component.class.mjs +3 -3
  171. package/esm2022/mixin/lib/selection-component.class.mjs +1 -1
  172. package/esm2022/mixin/lib/textbox-mixin.class.mjs +29 -20
  173. package/esm2022/mixin/lib/value-mixin.class.mjs +1 -1
  174. package/esm2022/notification/index.mjs +2 -2
  175. package/esm2022/notification/lib/notification.class.mjs +1 -1
  176. package/esm2022/notification/lib/notification.component.mjs +2 -2
  177. package/esm2022/notification/lib/notification.config.mjs +1 -1
  178. package/esm2022/notification/lib/notification.module.mjs +21 -9
  179. package/esm2022/notification/lib/notification.service.mjs +11 -11
  180. package/esm2022/number-box/lib/number-box.component.mjs +6 -6
  181. package/esm2022/number-box/lib/number-box.module.mjs +6 -16
  182. package/esm2022/otp/lib/otp.component.mjs +6 -5
  183. package/esm2022/otp/lib/otp.module.mjs +5 -4
  184. package/esm2022/page/lib/base-page.class.mjs +6 -4
  185. package/esm2022/page/lib/page.component.mjs +3 -3
  186. package/esm2022/page/lib/page.module.mjs +1 -1
  187. package/esm2022/password-box/lib/password-box.component.mjs +6 -6
  188. package/esm2022/password-box/lib/password-box.module.mjs +7 -15
  189. package/esm2022/picker/lib/picker-column.directive.mjs +9 -16
  190. package/esm2022/picker/lib/picker.component.mjs +2 -2
  191. package/esm2022/picker/lib/picker.module.mjs +3 -3
  192. package/esm2022/popover/lib/popover.component.mjs +1 -1
  193. package/esm2022/popover/lib/popover.module.mjs +2 -2
  194. package/esm2022/popup/index.mjs +2 -2
  195. package/esm2022/popup/lib/popup.interface.mjs +1 -1
  196. package/esm2022/popup/lib/popup.module.mjs +2 -2
  197. package/esm2022/progress-bar/lib/progress-bar.component.mjs +5 -5
  198. package/esm2022/progress-bar/lib/progress-bar.module.mjs +2 -2
  199. package/esm2022/radio/lib/radio.component.mjs +8 -8
  200. package/esm2022/radio/lib/radio.module.mjs +2 -2
  201. package/esm2022/range-slider/lib/range-slider.component.mjs +9 -9
  202. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  203. package/esm2022/result/lib/result.component.mjs +4 -4
  204. package/esm2022/result/lib/result.module.mjs +2 -2
  205. package/esm2022/routing-progress/acorex-components-routing-progress.mjs +5 -0
  206. package/esm2022/routing-progress/index.mjs +3 -0
  207. package/esm2022/routing-progress/lib/routing-progress.component.mjs +58 -0
  208. package/esm2022/routing-progress/lib/routing-progress.module.mjs +21 -0
  209. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +4 -2
  210. package/esm2022/scheduler/lib/scheduler.component.mjs +1 -1
  211. package/esm2022/search-box/lib/search-box.component.mjs +45 -20
  212. package/esm2022/search-box/lib/search-box.module.mjs +8 -8
  213. package/esm2022/select-box/index.mjs +2 -2
  214. package/esm2022/select-box/lib/select-box.component.mjs +168 -308
  215. package/esm2022/select-box/lib/select-box.module.mjs +12 -13
  216. package/esm2022/selection-list/lib/selection-list.component.mjs +20 -10
  217. package/esm2022/selection-list/lib/selection-list.module.mjs +6 -6
  218. package/esm2022/side-menu/acorex-components-side-menu.mjs +5 -0
  219. package/esm2022/side-menu/index.mjs +4 -0
  220. package/esm2022/side-menu/lib/side-menu-item/side-menu-item.compoent.mjs +116 -0
  221. package/esm2022/side-menu/lib/side-menu.component.mjs +15 -0
  222. package/esm2022/side-menu/lib/side-menu.module.mjs +23 -0
  223. package/esm2022/skeleton/acorex-components-skeleton.mjs +5 -0
  224. package/esm2022/skeleton/index.mjs +3 -0
  225. package/esm2022/skeleton/lib/skeleton.component.mjs +24 -0
  226. package/esm2022/skeleton/lib/skeleton.module.mjs +18 -0
  227. package/esm2022/switch/lib/switch-content.component.mjs +1 -1
  228. package/esm2022/switch/lib/switch.component.mjs +11 -18
  229. package/esm2022/switch/lib/switch.module.mjs +4 -4
  230. package/esm2022/tabs/lib/tab-content.directive.mjs +1 -1
  231. package/esm2022/tabs/lib/tab-item.component.mjs +9 -2
  232. package/esm2022/tabs/lib/tabs.component.mjs +2 -2
  233. package/esm2022/tabs/lib/tabs.module.mjs +5 -5
  234. package/esm2022/tag/lib/tag.component.mjs +7 -13
  235. package/esm2022/tag/lib/tag.module.mjs +2 -2
  236. package/esm2022/text-area/lib/text-area.component.mjs +14 -16
  237. package/esm2022/text-area/lib/text-area.module.mjs +2 -2
  238. package/esm2022/text-box/lib/text-box.component.mjs +6 -6
  239. package/esm2022/text-box/lib/text-box.module.mjs +4 -18
  240. package/esm2022/toast/index.mjs +2 -2
  241. package/esm2022/toast/lib/toast.class.mjs +1 -1
  242. package/esm2022/toast/lib/toast.component.mjs +4 -4
  243. package/esm2022/toast/lib/toast.config.mjs +3 -3
  244. package/esm2022/toast/lib/toast.module.mjs +6 -10
  245. package/esm2022/toast/lib/toast.service.mjs +16 -14
  246. package/esm2022/tooltip/lib/tooltip.component.mjs +2 -2
  247. package/esm2022/tooltip/lib/tooltip.directive.mjs +4 -4
  248. package/esm2022/tooltip/lib/tooltip.module.mjs +3 -3
  249. package/esm2022/uploader/index.mjs +3 -1
  250. package/esm2022/uploader/lib/uploader-drop-zone.component.mjs +3 -3
  251. package/esm2022/uploader/lib/uploader-list.component.mjs +41 -7
  252. package/esm2022/uploader/lib/uploader-overlay.component.mjs +2 -2
  253. package/esm2022/uploader/lib/uploader-zone.directive.mjs +53 -0
  254. package/esm2022/uploader/lib/uploader.module.mjs +26 -7
  255. package/esm2022/uploader/lib/uploader.service.mjs +30 -0
  256. package/fesm2022/acorex-components-action-sheet.mjs +23 -15
  257. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  258. package/fesm2022/acorex-components-alert.mjs +3 -4
  259. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  260. package/fesm2022/acorex-components-avatar.mjs +16 -16
  261. package/fesm2022/acorex-components-avatar.mjs.map +1 -1
  262. package/fesm2022/acorex-components-badge.mjs +5 -5
  263. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  264. package/fesm2022/acorex-components-breadcrumbs.mjs.map +1 -1
  265. package/fesm2022/acorex-components-button-group.mjs +2 -2
  266. package/fesm2022/acorex-components-button-group.mjs.map +1 -1
  267. package/fesm2022/acorex-components-button.mjs +13 -4
  268. package/fesm2022/acorex-components-button.mjs.map +1 -1
  269. package/fesm2022/acorex-components-calendar.mjs +52 -110
  270. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  271. package/fesm2022/acorex-components-check-box.mjs +9 -9
  272. package/fesm2022/acorex-components-check-box.mjs.map +1 -1
  273. package/fesm2022/acorex-components-chips.mjs +5 -5
  274. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  275. package/fesm2022/acorex-components-collapse.mjs +92 -34
  276. package/fesm2022/acorex-components-collapse.mjs.map +1 -1
  277. package/fesm2022/acorex-components-color-box.mjs +6 -6
  278. package/fesm2022/acorex-components-color-box.mjs.map +1 -1
  279. package/fesm2022/acorex-components-color-palette.mjs +53 -59
  280. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  281. package/fesm2022/acorex-components-common.mjs +277 -223
  282. package/fesm2022/acorex-components-common.mjs.map +1 -1
  283. package/fesm2022/acorex-components-data-pager.mjs +70 -19
  284. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  285. package/fesm2022/acorex-components-data-table.mjs +1 -1
  286. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  287. package/fesm2022/acorex-components-datetime-box.mjs +10 -7
  288. package/fesm2022/acorex-components-datetime-box.mjs.map +1 -1
  289. package/fesm2022/acorex-components-datetime-input.mjs +143 -136
  290. package/fesm2022/acorex-components-datetime-input.mjs.map +1 -1
  291. package/fesm2022/acorex-components-datetime-picker.mjs +9 -9
  292. package/fesm2022/acorex-components-datetime-picker.mjs.map +1 -1
  293. package/fesm2022/acorex-components-decorators.mjs +8 -4
  294. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  295. package/fesm2022/acorex-components-dialog.mjs +20 -4
  296. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  297. package/fesm2022/acorex-components-drawer.mjs +1 -1
  298. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  299. package/fesm2022/acorex-components-dropdown.mjs +43 -19
  300. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  301. package/fesm2022/acorex-components-form.mjs +76 -75
  302. package/fesm2022/acorex-components-form.mjs.map +1 -1
  303. package/fesm2022/acorex-components-image.mjs.map +1 -1
  304. package/fesm2022/acorex-components-label.mjs +2 -6
  305. package/fesm2022/acorex-components-label.mjs.map +1 -1
  306. package/fesm2022/acorex-components-list.mjs +77 -80
  307. package/fesm2022/acorex-components-list.mjs.map +1 -1
  308. package/fesm2022/acorex-components-loading.mjs +19 -21
  309. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  310. package/fesm2022/acorex-components-menu.mjs +78 -382
  311. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  312. package/fesm2022/acorex-components-mixin.mjs +70 -66
  313. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  314. package/fesm2022/acorex-components-notification.mjs +45 -33
  315. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  316. package/fesm2022/acorex-components-number-box.mjs +7 -17
  317. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  318. package/fesm2022/acorex-components-otp.mjs +8 -6
  319. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  320. package/fesm2022/acorex-components-page.mjs +6 -4
  321. package/fesm2022/acorex-components-page.mjs.map +1 -1
  322. package/fesm2022/acorex-components-password-box.mjs +7 -15
  323. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  324. package/fesm2022/acorex-components-picker.mjs +10 -17
  325. package/fesm2022/acorex-components-picker.mjs.map +1 -1
  326. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  327. package/fesm2022/acorex-components-popup.mjs +1 -1
  328. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  329. package/fesm2022/acorex-components-progress-bar.mjs +3 -3
  330. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  331. package/fesm2022/acorex-components-radio.mjs +6 -6
  332. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  333. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  334. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  335. package/fesm2022/acorex-components-result.mjs +2 -2
  336. package/fesm2022/acorex-components-result.mjs.map +1 -1
  337. package/fesm2022/acorex-components-routing-progress.mjs +83 -0
  338. package/fesm2022/acorex-components-routing-progress.mjs.map +1 -0
  339. package/fesm2022/acorex-components-scheduler.mjs +3 -1
  340. package/fesm2022/acorex-components-scheduler.mjs.map +1 -1
  341. package/fesm2022/acorex-components-search-box.mjs +48 -25
  342. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  343. package/fesm2022/acorex-components-select-box.mjs +171 -401
  344. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  345. package/fesm2022/acorex-components-selection-list.mjs +22 -12
  346. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  347. package/fesm2022/acorex-components-side-menu.mjs +153 -0
  348. package/fesm2022/acorex-components-side-menu.mjs.map +1 -0
  349. package/fesm2022/acorex-components-skeleton.mjs +46 -0
  350. package/fesm2022/acorex-components-skeleton.mjs.map +1 -0
  351. package/fesm2022/acorex-components-switch.mjs +9 -16
  352. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  353. package/fesm2022/acorex-components-tabs.mjs +11 -4
  354. package/fesm2022/acorex-components-tabs.mjs.map +1 -1
  355. package/fesm2022/acorex-components-tag.mjs +5 -11
  356. package/fesm2022/acorex-components-tag.mjs.map +1 -1
  357. package/fesm2022/acorex-components-text-area.mjs +13 -15
  358. package/fesm2022/acorex-components-text-area.mjs.map +1 -1
  359. package/fesm2022/acorex-components-text-box.mjs +8 -22
  360. package/fesm2022/acorex-components-text-box.mjs.map +1 -1
  361. package/fesm2022/acorex-components-toast.mjs +43 -45
  362. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  363. package/fesm2022/acorex-components-tooltip.mjs +2 -2
  364. package/fesm2022/acorex-components-tooltip.mjs.map +1 -1
  365. package/fesm2022/acorex-components-uploader.mjs +146 -18
  366. package/fesm2022/acorex-components-uploader.mjs.map +1 -1
  367. package/form/index.d.ts +1 -1
  368. package/form/lib/form.component.d.ts +2 -2
  369. package/form/lib/validation-summary.component.d.ts +3 -3
  370. package/list/lib/list.component.d.ts +26 -27
  371. package/loading/index.d.ts +1 -1
  372. package/loading/lib/loading.component.d.ts +1 -1
  373. package/menu/index.d.ts +0 -1
  374. package/menu/lib/class/root-menu.class.d.ts +2 -0
  375. package/menu/lib/menu-item/menu-item.component.d.ts +19 -6
  376. package/menu/lib/menu.component.d.ts +10 -40
  377. package/menu/lib/menu.module.d.ts +7 -8
  378. package/mixin/lib/base-components.class.d.ts +2 -2
  379. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  380. package/mixin/lib/button-mixin.class.d.ts +2 -2
  381. package/mixin/lib/clickable-mixin.class.d.ts +9 -9
  382. package/mixin/lib/color-look-mixing.class.d.ts +2 -2
  383. package/mixin/lib/datalist-component.class.d.ts +10 -10
  384. package/mixin/lib/datalist.class.d.ts +1 -1
  385. package/mixin/lib/dropdown-mixin.class.d.ts +3 -3
  386. package/mixin/lib/interactive-mixin.class.d.ts +25 -22
  387. package/mixin/lib/mixin.class.d.ts +62 -62
  388. package/mixin/lib/page-component.class.d.ts +4 -4
  389. package/mixin/lib/selection-component.class.d.ts +3 -3
  390. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  391. package/mixin/lib/textbox-mixin.class.d.ts +20 -20
  392. package/mixin/lib/value-mixin.class.d.ts +9 -9
  393. package/notification/index.d.ts +1 -1
  394. package/notification/lib/notification.class.d.ts +3 -3
  395. package/notification/lib/notification.config.d.ts +1 -1
  396. package/number-box/lib/number-box.component.d.ts +3 -3
  397. package/otp/lib/otp.component.d.ts +3 -3
  398. package/otp/lib/otp.module.d.ts +2 -1
  399. package/package.json +19 -7
  400. package/page/lib/base-page.class.d.ts +1 -1
  401. package/page/lib/page.component.d.ts +1 -1
  402. package/password-box/lib/password-box.component.d.ts +4 -4
  403. package/popup/index.d.ts +1 -1
  404. package/popup/lib/popup.interface.d.ts +2 -2
  405. package/routing-progress/README.md +3 -0
  406. package/routing-progress/index.d.ts +2 -0
  407. package/routing-progress/lib/routing-progress.component.d.ts +14 -0
  408. package/routing-progress/lib/routing-progress.module.d.ts +8 -0
  409. package/search-box/lib/search-box.component.d.ts +11 -4
  410. package/select-box/index.d.ts +1 -1
  411. package/select-box/lib/select-box.component.d.ts +37 -59
  412. package/select-box/lib/select-box.module.d.ts +14 -15
  413. package/selection-list/lib/selection-list.component.d.ts +6 -3
  414. package/side-menu/README.md +3 -0
  415. package/side-menu/index.d.ts +3 -0
  416. package/side-menu/lib/side-menu-item/side-menu-item.compoent.d.ts +37 -0
  417. package/side-menu/lib/side-menu.component.d.ts +8 -0
  418. package/side-menu/lib/side-menu.module.d.ts +10 -0
  419. package/skeleton/README.md +3 -0
  420. package/skeleton/index.d.ts +2 -0
  421. package/skeleton/lib/skeleton.component.d.ts +8 -0
  422. package/skeleton/lib/skeleton.module.d.ts +8 -0
  423. package/tabs/lib/tab-item.component.d.ts +2 -1
  424. package/tag/lib/tag.component.d.ts +3 -4
  425. package/text-area/lib/text-area.component.d.ts +3 -3
  426. package/text-box/lib/text-box.component.d.ts +3 -3
  427. package/toast/index.d.ts +1 -1
  428. package/toast/lib/toast.class.d.ts +1 -1
  429. package/toast/lib/toast.component.d.ts +2 -1
  430. package/toast/lib/toast.config.d.ts +1 -1
  431. package/tooltip/lib/tooltip.directive.d.ts +1 -1
  432. package/uploader/index.d.ts +2 -0
  433. package/uploader/lib/uploader-list.component.d.ts +14 -1
  434. package/uploader/lib/uploader-zone.directive.d.ts +18 -0
  435. package/uploader/lib/uploader.module.d.ts +6 -4
  436. package/uploader/lib/uploader.service.d.ts +10 -0
  437. package/common/lib/components/appearance-component.class.d.ts +0 -12
  438. package/context-menu/README.md +0 -3
  439. package/context-menu/index.d.ts +0 -2
  440. package/context-menu/lib/context-menu.component.d.ts +0 -34
  441. package/context-menu/lib/context-menu.module.d.ts +0 -13
  442. package/esm2022/common/lib/components/appearance-component.class.mjs +0 -25
  443. package/esm2022/context-menu/acorex-components-context-menu.mjs +0 -5
  444. package/esm2022/context-menu/index.mjs +0 -3
  445. package/esm2022/context-menu/lib/context-menu.component.mjs +0 -262
  446. package/esm2022/context-menu/lib/context-menu.module.mjs +0 -36
  447. package/esm2022/menu/lib/menu2.component.mjs +0 -45
  448. package/esm2022/select-box/lib/select-box2.component.mjs +0 -97
  449. package/fesm2022/acorex-components-context-menu.mjs +0 -300
  450. package/fesm2022/acorex-components-context-menu.mjs.map +0 -1
  451. package/menu/lib/menu2.component.d.ts +0 -12
  452. package/select-box/lib/select-box2.component.d.ts +0 -25
@@ -1,353 +1,48 @@
1
- import { Overlay } from '@angular/cdk/overlay';
2
- import { ComponentPortal } from '@angular/cdk/portal';
3
- import { AXBaseMenuMixin } from '@acorex/components/mixin';
4
- import { AXPlatform } from '@acorex/core/platform';
5
- import { AXTranslator } from '@acorex/core/translation';
6
- import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ContentChild, ElementRef, Input, TemplateRef, ViewEncapsulation, } from '@angular/core';
1
+ import { MXBaseComponent } from '@acorex/components/common';
2
+ import { Component, ContentChildren, HostBinding, Input, QueryList, ViewEncapsulation, } from '@angular/core';
3
+ import { AXRootMenu } from './class/root-menu.class';
4
+ import { AXMenuItemComponent } from './menu-item/menu-item.component';
7
5
  import * as i0 from "@angular/core";
8
- import * as i1 from "@angular/cdk/overlay";
9
- import * as i2 from "@acorex/core/platform";
10
- import * as i3 from "@angular/common";
11
- import * as i4 from "@acorex/components/loading";
12
- import * as i5 from "@acorex/core/translation";
13
- /**
14
- * The Button is a component which detects user interaction and triggers a corresponding event
15
- *
16
- * @category Components
17
- */
18
- export class AXMenuComponent extends AXBaseMenuMixin {
19
- get emptyTemplate() {
20
- return this._contentEmptyTemplate;
21
- }
22
- get itemTemplate() {
23
- return this._contentItemTemplate;
24
- }
25
- constructor(_elementRef, cdr, _overlay, _platform) {
26
- super(_elementRef, cdr);
27
- this._elementRef = _elementRef;
28
- this.cdr = cdr;
29
- this._overlay = _overlay;
30
- this._platform = _platform;
31
- this.isRtl = new AXPlatform().isRtl();
32
- this._levelCount = 0;
33
- this._loadingOptions = {
34
- text: AXTranslator.get('layout.loading.text'),
35
- };
36
- }
37
- onInit() {
38
- super.onInit();
6
+ export class AXMenuComponent extends MXBaseComponent {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.oriatation = 'horizontal';
10
+ this.openOn = 'click';
39
11
  }
40
12
  ngAfterViewInit() {
41
- super.onViewInit();
42
- }
43
- _onMenuMouseEnter(e, item) {
44
- const targetElement = e.target;
45
- if (this.isLoading || targetElement.tagName === 'UL') {
46
- return;
47
- }
48
- if (this.openMode === 'hover') {
49
- this._handelMenuLogic(e, item);
50
- }
51
- e.stopPropagation();
52
- e.preventDefault();
53
- }
54
- _onMenuClick(e, item) {
55
- const targetElement = e.target;
56
- if (this.isLoading || targetElement.tagName === 'UL') {
57
- return;
58
- }
59
- if (this.openMode === 'click') {
60
- this._handelMenuLogic(e, item);
61
- }
62
- this.onMenuItemClick.emit({
63
- component: this,
64
- item: item,
65
- nativeEvent: e,
66
- });
67
- e.stopPropagation();
68
- e.preventDefault();
69
- }
70
- _getDirection() {
71
- if (this.displayMode === 'horizontal' && this._levelCount === 0) {
72
- return 'ax-horizontal';
73
- }
74
- else if (this._levelCount > 0) {
75
- return 'ax-vertical ax-submenu-ul';
76
- }
77
- else if (this.displayMode === 'sidemenu') {
78
- return 'ax-side-menu';
79
- }
80
- else {
81
- return 'ax-vertical';
82
- }
83
- }
84
- // private _removeActive(items: any): void {
85
- // items.forEach((element) => {
86
- // element.active = false;
87
- // if (element?.children?.length > 0) {
88
- // this._removeActive(element.children);
89
- // }
90
- // });
91
- // }
92
- _closeOpenChild(items) {
93
- items.forEach((element) => {
94
- element.opened = false;
95
- if (element?.children?.length > 0) {
96
- this._closeOpenChild(element.children);
97
- }
98
- });
99
- }
100
- _initParent(items, parentId) {
101
- items.forEach((element) => {
102
- element.parentId = parentId;
103
- });
104
- }
105
- _handelMenuLogic(e, item) {
106
- if (!item[this.disableField] || item[this.dividerField] === false) {
107
- const targetElement = e.target;
108
- if ((targetElement.closest('li') && this.openMode === 'click') ||
109
- (targetElement.closest('li') && this.openMode === 'hover')) {
110
- if (this._overlayRef && this._oldItem !== item) {
111
- this._overlayRef.detach();
112
- }
113
- if (this.displayMode === 'horizontal') {
114
- this.displayItems.forEach((element) => {
115
- if (!item.parentId && item[this.valueField] !== element[this.valueField]) {
116
- element.opened = false;
117
- }
118
- });
119
- }
120
- if (item?.children?.length > 0) {
121
- if (this.displayMode === 'horizontal') {
122
- this._initParent(item.children, item[this.valueField]);
123
- }
124
- if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {
125
- if (this._oldItem !== item) {
126
- this._openAsOverlay(targetElement.closest('li'), item.children);
127
- }
128
- }
129
- this._closeOpenChild(item.children);
130
- if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {
131
- item.opened = true;
132
- }
133
- else {
134
- item.opened = !item.opened;
135
- }
136
- }
137
- if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {
138
- if (this._oldItem &&
139
- this._oldItem?.opened &&
140
- item[this.valueField] !== this._oldItem[this.valueField]) {
141
- this._oldItem.opened = false;
142
- }
143
- this._oldItem = item;
144
- }
145
- }
146
- }
147
- }
148
- _openAsOverlay(targetRef, overlayItems) {
149
- let positions = [];
150
- if (this.displayMode === 'vertical') {
151
- if (this._levelCount >= 1) {
152
- positions = [
153
- {
154
- originX: 'end',
155
- originY: 'center',
156
- overlayX: 'start',
157
- overlayY: 'top',
158
- },
159
- {
160
- originX: 'end',
161
- originY: 'center',
162
- overlayX: 'start',
163
- overlayY: 'bottom',
164
- },
165
- {
166
- originX: 'center',
167
- originY: 'center',
168
- overlayX: 'center',
169
- overlayY: 'center',
170
- },
171
- ];
172
- }
173
- else {
174
- positions = [
175
- {
176
- originX: 'end',
177
- originY: 'center',
178
- overlayX: 'start',
179
- overlayY: 'top',
180
- },
181
- {
182
- originX: 'end',
183
- originY: 'top',
184
- overlayX: 'start',
185
- overlayY: 'bottom',
186
- },
187
- {
188
- originX: 'center',
189
- originY: 'center',
190
- overlayX: 'center',
191
- overlayY: 'center',
192
- },
193
- ];
194
- }
195
- }
196
- else {
197
- if (this._levelCount >= 1) {
198
- positions = [
199
- {
200
- originX: 'end',
201
- originY: 'top',
202
- overlayX: 'start',
203
- overlayY: 'top',
204
- },
205
- {
206
- originX: 'end',
207
- originY: 'center',
208
- overlayX: 'start',
209
- overlayY: 'bottom',
210
- },
211
- {
212
- originX: 'end',
213
- originY: 'top',
214
- overlayX: 'center',
215
- overlayY: 'top',
216
- },
217
- {
218
- originX: 'center',
219
- originY: 'top',
220
- overlayX: 'center',
221
- overlayY: 'top',
222
- },
223
- ];
224
- }
225
- else {
226
- positions = [
227
- {
228
- originX: 'start',
229
- originY: 'bottom',
230
- overlayX: 'start',
231
- overlayY: 'top',
232
- },
233
- {
234
- originX: 'end',
235
- originY: 'center',
236
- overlayX: 'start',
237
- overlayY: 'bottom',
238
- },
239
- {
240
- originX: 'end',
241
- originY: 'top',
242
- overlayX: 'center',
243
- overlayY: 'top',
244
- },
245
- {
246
- originX: 'center',
247
- originY: 'top',
248
- overlayX: 'center',
249
- overlayY: 'top',
250
- },
251
- ];
252
- }
253
- }
254
- this._overlayRef = this._overlay.create({
255
- scrollStrategy: this._overlay.scrollStrategies.close(),
256
- positionStrategy: this._overlay
257
- .position()
258
- .flexibleConnectedTo(targetRef)
259
- .withPositions([...positions])
260
- .withPush(false)
261
- .withDefaultOffsetX(12),
262
- direction: this._platform.isRtl() ? 'rtl' : 'ltr',
263
- disposeOnNavigation: true,
264
- panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', 'ax-overlay-menu'],
265
- maxHeight: 'unset',
266
- hasBackdrop: false,
267
- backdropClass: ['cdk-overlay-transparent-backdrop'],
268
- });
269
- const ref = this._overlayRef.attach(new ComponentPortal(AXMenuComponent));
270
- ref.instance.items = overlayItems;
271
- ref.instance.displayMode = this.displayMode;
272
- ref.instance.openMode = 'hover';
273
- ref.instance._levelCount = this._levelCount + 1;
274
- ref.instance.disableField = this.disableField;
275
- ref.instance.visibleField = this.visibleField;
276
- ref.instance.valueField = this.valueField;
277
- ref.instance.textField = this.textField;
278
- ref.instance.iconField = this.iconField;
279
- ref.instance.dividerField = this.dividerField;
280
- ref.onDestroy(() => {
281
- ref.instance?._overlayRef?.dispose();
282
- });
283
- this._overlayRef.outsidePointerEvents().subscribe((e) => {
284
- if (this._overlayRef && this.openMode === 'click') {
285
- this._close();
286
- e.stopPropagation();
287
- }
288
- });
289
- this._platform.scroll.subscribe(() => {
290
- if (this._overlayRef) {
291
- this._close();
292
- }
293
- });
294
- this._platform.resize.subscribe(() => {
295
- if (this._overlayRef) {
296
- this._close();
297
- }
13
+ this.children.forEach((c) => {
14
+ c.isRoot = true;
15
+ c.parent = this;
298
16
  });
299
17
  }
300
- _close() {
301
- this._overlayRef.detach();
302
- this._oldItem = null;
303
- this.displayItems.forEach((element) => {
304
- element.opened = false;
305
- element.active = false;
306
- });
307
- this.cdr.detectChanges();
308
- }
309
- onDestroy() {
310
- this._overlayRef?.detach();
311
- }
312
- isActive(item) {
313
- if (typeof this.activeCallback == 'function') {
314
- return this.activeCallback(item);
315
- }
316
- return false;
18
+ get __hostClass() {
19
+ return `ax-oriatation-${this.oriatation}`;
317
20
  }
318
- refresh() {
319
- this.cdr.markForCheck();
320
- }
321
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component }); }
322
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal", activeCallback: "activeCallback" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
21
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
22
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXMenuComponent, selector: "ax-menu", inputs: { oriatation: "oriatation", openOn: "openOn" }, host: { properties: { "class": "this.__hostClass" } }, providers: [
23
+ {
24
+ provide: AXRootMenu,
25
+ useExisting: AXMenuComponent,
26
+ },
27
+ ], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content select="ax-menu-item,ng-container"></ng-content>`, isInline: true, styles: ["ax-menu{font-size:.875em;width:100%;color:inherit}ax-menu.ax-oriatation-horizontal{display:flex}ax-menu.ax-oriatation-horizontal ax-menu-item:not(ax-menu.ax-oriatation-horizontal ax-menu-item:last-child){margin-inline-end:1.75rem}ax-menu.ax-oriatation-vertical{display:flex;flex-direction:column}ax-menu.ax-oriatation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-oriatation-vertical ax-menu-item:not(ax-menu.ax-oriatation-vertical ax-menu-item:last-child){margin-block-end:1.75rem}ax-menu.ax-oriatation-vertical ax-menu-item ax-popover{position:absolute}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{font-weight:500;transition:color .3s;position:relative;display:flex;align-items:center}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{font-size:1.25rem}.ax-menu-item-children{padding:.5rem 0}.ax-menu-item-children:not(.ax-menu-item-children:empty){background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);min-width:12rem;display:flex;flex-direction:column}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface),.5)}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.5}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix{margin-inline-end:.75rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1}html[dir=rtl] ax-menu.ax-oriatation-horizontal .ax-menu-item-child-icon{transform:scaleX(-1);-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
323
28
  }
324
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuComponent, decorators: [{
325
30
  type: Component,
326
- args: [{ selector: 'ax-menu', inputs: [
327
- 'disabled',
328
- 'tabIndex',
329
- 'textField',
330
- 'valueField',
331
- 'items',
332
- 'parentId',
333
- 'iconField',
334
- 'tooltip',
335
- 'opened',
336
- 'visibleField',
337
- 'disableField',
338
- 'hasChildField',
339
- 'dividerField',
340
- 'openMode',
341
- 'displayMode',
342
- 'showModal',
343
- ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container\n *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"\n ></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li\n *ngIf=\"item[visibleField] !== false\"\n [class.ax-state-disabled]=\"item[disableField]\"\n (click)=\"_onMenuClick($event, item)\"\n >\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.isActive\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\"\n >\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"\n ></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul\n *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\"\n [class.ax-state-disabled]=\"item[disableField]\"\n >\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\">\n </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [context]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-default))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-default));color:rgba(var(--ax-color-default-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-default));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding-inline-start:.75rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer;font-size:1rem}ax-menu .ax-side-menu li:not(.ax-menu-item-divider) .ax-is-child{font-size:.875rem}\n"] }]
344
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { activeCallback: [{
31
+ args: [{ selector: 'ax-menu', template: `<ng-content select="ax-menu-item,ng-container"></ng-content>`, encapsulation: ViewEncapsulation.None, providers: [
32
+ {
33
+ provide: AXRootMenu,
34
+ useExisting: AXMenuComponent,
35
+ },
36
+ ], styles: ["ax-menu{font-size:.875em;width:100%;color:inherit}ax-menu.ax-oriatation-horizontal{display:flex}ax-menu.ax-oriatation-horizontal ax-menu-item:not(ax-menu.ax-oriatation-horizontal ax-menu-item:last-child){margin-inline-end:1.75rem}ax-menu.ax-oriatation-vertical{display:flex;flex-direction:column}ax-menu.ax-oriatation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-oriatation-vertical ax-menu-item:not(ax-menu.ax-oriatation-vertical ax-menu-item:last-child){margin-block-end:1.75rem}ax-menu.ax-oriatation-vertical ax-menu-item ax-popover{position:absolute}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{font-weight:500;transition:color .3s;position:relative;display:flex;align-items:center}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item.ax-state-disabled{opacity:.5;cursor:not-allowed}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{font-size:1.25rem}.ax-menu-item-children{padding:.5rem 0}.ax-menu-item-children:not(.ax-menu-item-children:empty){background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);min-width:12rem;display:flex;flex-direction:column}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface),.5)}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.5}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix{margin-inline-end:.75rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1}html[dir=rtl] ax-menu.ax-oriatation-horizontal .ax-menu-item-child-icon{transform:scaleX(-1);-moz-transform:scaleX(-1);-webkit-transform:scaleX(-1);-ms-transform:scaleX(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
37
+ }], propDecorators: { oriatation: [{
38
+ type: Input
39
+ }], openOn: [{
345
40
  type: Input
346
- }], _contentEmptyTemplate: [{
347
- type: ContentChild,
348
- args: ['emptyTemplate']
349
- }], _contentItemTemplate: [{
350
- type: ContentChild,
351
- args: ['itemTemplate']
41
+ }], children: [{
42
+ type: ContentChildren,
43
+ args: [AXMenuItemComponent]
44
+ }], __hostClass: [{
45
+ type: HostBinding,
46
+ args: ['class']
352
47
  }] } });
353
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMzRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUVMLHVCQUF1QixFQUN2QixpQkFBaUIsRUFDakIsU0FBUyxFQUNULFlBQVksRUFDWixVQUFVLEVBQ1YsS0FBSyxFQUVMLFdBQVcsRUFDWCxpQkFBaUIsR0FDbEIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7QUFFdkI7Ozs7R0FJRztBQTJCSCxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBWWxELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLHFCQUFxQixDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxvQkFBb0IsQ0FBQztJQUNuQyxDQUFDO0lBWUQsWUFDVSxXQUF1QixFQUN2QixHQUFzQixFQUN0QixRQUFpQixFQUNqQixTQUFxQjtRQUU3QixLQUFLLENBQUMsV0FBVyxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBTGhCLGdCQUFXLEdBQVgsV0FBVyxDQUFZO1FBQ3ZCLFFBQUcsR0FBSCxHQUFHLENBQW1CO1FBQ3RCLGFBQVEsR0FBUixRQUFRLENB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bmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7IENvbXBvbmVudFBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuXG5pbXBvcnQgeyBBWEJhc2VNZW51TWl4aW4gfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvbWl4aW4nO1xuaW1wb3J0IHsgQVhQbGF0Zm9ybSB9IGZyb20gJ0BhY29yZXgvY29yZS9wbGF0Zm9ybSc7XG5pbXBvcnQgeyBBWFRyYW5zbGF0b3IgfSBmcm9tICdAYWNvcmV4L2NvcmUvdHJhbnNsYXRpb24nO1xuaW1wb3J0IHtcbiAgQWZ0ZXJWaWV3SW5pdCxcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbnRlbnRDaGlsZCxcbiAgRWxlbWVudFJlZixcbiAgSW5wdXQsXG4gIE9uSW5pdCxcbiAgVGVtcGxhdGVSZWYsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBUaGUgQnV0dG9uIGlzIGEgY29tcG9uZW50IHdoaWNoIGRldGVjdHMgdXNlciBpbnRlcmFjdGlvbiBhbmQgdHJpZ2dlcnMgYSBjb3JyZXNwb25kaW5nIGV2ZW50XG4gKlxuICogQGNhdGVnb3J5IENvbXBvbmVudHNcbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBpbnB1dHM6IFtcbiAgICAnZGlzYWJsZWQnLFxuICAgICd0YWJJbmRleCcsXG4gICAgJ3RleHRGaWVsZCcsXG4gICAgJ3ZhbHVlRmllbGQnLFxuICAgICdpdGVtcycsXG4gICAgJ3BhcmVudElkJyxcbiAgICAnaWNvbkZpZWxkJyxcbiAgICAndG9vbHRpcCcsXG4gICAgJ29wZW5lZCcsXG4gICAgJ3Zpc2libGVGaWVsZCcsXG4gICAgJ2Rpc2FibGVGaWVsZCcsXG4gICAgJ2hhc0NoaWxkRmllbGQnLFxuICAgICdkaXZpZGVyRmllbGQnLFxuICAgICdvcGVuTW9kZScsXG4gICAgJ2Rpc3BsYXlNb2RlJyxcbiAgICAnc2hvd01vZGFsJyxcbiAgXSxcbiAgb3V0cHV0czogWydvbkJsdXInLCAnb25Gb2N1cycsICdvbk1lbnVJdGVtQ2xpY2snXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIEFYQmFzZU1lbnVNaXhpbiBpbXBsZW1lbnRzIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIEBJbnB1dCgpXG4gIGFjdGl2ZUNhbGxiYWNrPzogKGl0ZW06IGFueSkgPT4gYm9vbGVhbjtcblxuICBAQ29udGVudENoaWxkKCdlbXB0eVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEVtcHR5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQENvbnRlbnRDaGlsZCgnaXRlbVRlbXBsYXRlJylcbiAgcHJpdmF0ZSBfY29udGVudEl0ZW1UZW1wbGF0ZTogVGVtcGxhdGVSZWY8YW55PjtcblxuICBwdWJsaWMgX292ZXJsYXlSZWY6IE92ZXJsYXlSZWY7XG5cbiAgZ2V0IGVtcHR5VGVtcGxhdGUoKTogVGVtcGxhdGVSZWY8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuX2NvbnRlbnRFbXB0eVRlbXBsYXRlO1xuICB9XG5cbiAgZ2V0IGl0ZW1UZW1wbGF0ZSgpOiBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5fY29udGVudEl0ZW1UZW1wbGF0ZTtcbiAgfVxuXG4gIGlzUnRsOiBib29sZWFuID0gbmV3IEFYUGxhdGZvcm0oKS5pc1J0bCgpO1xuXG4gIHByaXZhdGUgX2xldmVsQ291bnQgPSAwO1xuXG4gIHByaXZhdGUgX29sZEl0ZW06IGFueTtcblxuICBwcm90ZWN0ZWQgX2xvYWRpbmdPcHRpb25zID0ge1xuICAgIHRleHQ6IEFYVHJhbnNsYXRvci5nZXQoJ2xheW91dC5sb2FkaW5nLnRleHQnKSxcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIF9vdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgX3BsYXRmb3JtOiBBWFBsYXRmb3JtLFxuICApIHtcbiAgICBzdXBlcihfZWxlbWVudFJlZiwgY2RyKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG9uSW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vbkluaXQoKTtcbiAgfVxuXG4gIG92ZXJyaWRlIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBzdXBlci5vblZpZXdJbml0KCk7XG4gIH1cblxuICBfb25NZW51TW91c2VFbnRlcihlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICBlLnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIGUucHJldmVudERlZmF1bHQoKTtcbiAgfVxuXG4gIF9vbk1lbnVDbGljayhlOiBNb3VzZUV2ZW50LCBpdGVtOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCB0YXJnZXRFbGVtZW50ID0gZS50YXJnZXQgYXMgSFRNTERpdkVsZW1lbnQ7XG5cbiAgICBpZiAodGhpcy5pc0xvYWRpbmcgfHwgdGFyZ2V0RWxlbWVudC50YWdOYW1lID09PSAnVUwnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgIHRoaXMuX2hhbmRlbE1lbnVMb2dpYyhlLCBpdGVtKTtcbiAgICB9XG5cbiAgICB0aGlzLm9uTWVudUl0ZW1DbGljay5lbWl0KHtcbiAgICAgIGNvbXBvbmVudDogdGhpcyxcbiAgICAgIGl0ZW06IGl0ZW0sXG4gICAgICBuYXRpdmVFdmVudDogZSxcbiAgICB9KTtcblxuICAgIGUuc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZS5wcmV2ZW50RGVmYXVsdCgpO1xuICB9XG5cbiAgX2dldERpcmVjdGlvbigpOiBzdHJpbmcge1xuICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgJiYgdGhpcy5fbGV2ZWxDb3VudCA9PT0gMCkge1xuICAgICAgcmV0dXJuICdheC1ob3Jpem9udGFsJztcbiAgICB9IGVsc2UgaWYgKHRoaXMuX2xldmVsQ291bnQgPiAwKSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsIGF4LXN1Ym1lbnUtdWwnO1xuICAgIH0gZWxzZSBpZiAodGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3NpZGVtZW51Jykge1xuICAgICAgcmV0dXJuICdheC1zaWRlLW1lbnUnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2F4LXZlcnRpY2FsJztcbiAgICB9XG4gIH1cblxuICAvLyBwcml2YXRlIF9yZW1vdmVBY3RpdmUoaXRlbXM6IGFueSk6IHZvaWQge1xuICAvLyAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgLy8gICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gIC8vICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgLy8gICAgICAgdGhpcy5fcmVtb3ZlQWN0aXZlKGVsZW1lbnQuY2hpbGRyZW4pO1xuICAvLyAgICAgfVxuICAvLyAgIH0pO1xuICAvLyB9XG5cbiAgcHJpdmF0ZSBfY2xvc2VPcGVuQ2hpbGQoaXRlbXM6IGFueSk6IHZvaWQge1xuICAgIGl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgIGVsZW1lbnQub3BlbmVkID0gZmFsc2U7XG4gICAgICBpZiAoZWxlbWVudD8uY2hpbGRyZW4/Lmxlbmd0aCA+IDApIHtcbiAgICAgICAgdGhpcy5fY2xvc2VPcGVuQ2hpbGQoZWxlbWVudC5jaGlsZHJlbik7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9pbml0UGFyZW50KGl0ZW1zOiBhbnksIHBhcmVudElkOiBhbnkpOiB2b2lkIHtcbiAgICBpdGVtcy5mb3JFYWNoKChlbGVtZW50KSA9PiB7XG4gICAgICBlbGVtZW50LnBhcmVudElkID0gcGFyZW50SWQ7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIF9oYW5kZWxNZW51TG9naWMoZTogTW91c2VFdmVudCwgaXRlbTogYW55KTogdm9pZCB7XG4gICAgaWYgKCFpdGVtW3RoaXMuZGlzYWJsZUZpZWxkXSB8fCBpdGVtW3RoaXMuZGl2aWRlckZpZWxkXSA9PT0gZmFsc2UpIHtcbiAgICAgIGNvbnN0IHRhcmdldEVsZW1lbnQgPSBlLnRhcmdldCBhcyBIVE1MRGl2RWxlbWVudDtcbiAgICAgIGlmIChcbiAgICAgICAgKHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSAmJiB0aGlzLm9wZW5Nb2RlID09PSAnY2xpY2snKSB8fFxuICAgICAgICAodGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdsaScpICYmIHRoaXMub3Blbk1vZGUgPT09ICdob3ZlcicpXG4gICAgICApIHtcbiAgICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYgJiYgdGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgIHRoaXMuZGlzcGxheUl0ZW1zLmZvckVhY2goKGVsZW1lbnQpID0+IHtcbiAgICAgICAgICAgIGlmICghaXRlbS5wYXJlbnRJZCAmJiBpdGVtW3RoaXMudmFsdWVGaWVsZF0gIT09IGVsZW1lbnRbdGhpcy52YWx1ZUZpZWxkXSkge1xuICAgICAgICAgICAgICBlbGVtZW50Lm9wZW5lZCA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgICAgIGlmIChpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCkge1xuICAgICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMuX2luaXRQYXJlbnQoaXRlbS5jaGlsZHJlbiwgaXRlbVt0aGlzLnZhbHVlRmllbGRdKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpZiAodGhpcy5fb2xkSXRlbSAhPT0gaXRlbSkge1xuICAgICAgICAgICAgICB0aGlzLl9vcGVuQXNPdmVybGF5KHRhcmdldEVsZW1lbnQuY2xvc2VzdCgnbGknKSwgaXRlbS5jaGlsZHJlbik7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX2Nsb3NlT3BlbkNoaWxkKGl0ZW0uY2hpbGRyZW4pO1xuXG4gICAgICAgICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICdob3Jpem9udGFsJyB8fCB0aGlzLmRpc3BsYXlNb2RlID09PSAndmVydGljYWwnKSB7XG4gICAgICAgICAgICBpdGVtLm9wZW5lZCA9IHRydWU7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW0ub3BlbmVkID0gIWl0ZW0ub3BlbmVkO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmRpc3BsYXlNb2RlID09PSAnaG9yaXpvbnRhbCcgfHwgdGhpcy5kaXNwbGF5TW9kZSA9PT0gJ3ZlcnRpY2FsJykge1xuICAgICAgICAgIGlmIChcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0gJiZcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0/Lm9wZW5lZCAmJlxuICAgICAgICAgICAgaXRlbVt0aGlzLnZhbHVlRmllbGRdICE9PSB0aGlzLl9vbGRJdGVtW3RoaXMudmFsdWVGaWVsZF1cbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHRoaXMuX29sZEl0ZW0ub3BlbmVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuX29sZEl0ZW0gPSBpdGVtO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBfb3BlbkFzT3ZlcmxheSh0YXJnZXRSZWYsIG92ZXJsYXlJdGVtczogYW55W10pOiB2b2lkIHtcbiAgICBsZXQgcG9zaXRpb25zID0gW107XG4gICAgaWYgKHRoaXMuZGlzcGxheU1vZGUgPT09ICd2ZXJ0aWNhbCcpIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2NlbnRlcicsXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHBvc2l0aW9ucyA9IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICdjZW50ZXInLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIGlmICh0aGlzLl9sZXZlbENvdW50ID49IDEpIHtcbiAgICAgICAgcG9zaXRpb25zID0gW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAnYm90dG9tJyxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG9yaWdpblg6ICdlbmQnLFxuICAgICAgICAgICAgb3JpZ2luWTogJ3RvcCcsXG4gICAgICAgICAgICBvdmVybGF5WDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF07XG4gICAgICB9IGVsc2Uge1xuICAgICAgICBwb3NpdGlvbnMgPSBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ3N0YXJ0JyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdib3R0b20nLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ3RvcCcsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdzdGFydCcsXG4gICAgICAgICAgICBvdmVybGF5WTogJ2JvdHRvbScsXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBvcmlnaW5YOiAnZW5kJyxcbiAgICAgICAgICAgIG9yaWdpblk6ICd0b3AnLFxuICAgICAgICAgICAgb3ZlcmxheVg6ICdjZW50ZXInLFxuICAgICAgICAgICAgb3ZlcmxheVk6ICd0b3AnLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgb3JpZ2luWDogJ2NlbnRlcicsXG4gICAgICAgICAgICBvcmlnaW5ZOiAndG9wJyxcbiAgICAgICAgICAgIG92ZXJsYXlYOiAnY2VudGVyJyxcbiAgICAgICAgICAgIG92ZXJsYXlZOiAndG9wJyxcbiAgICAgICAgICB9LFxuICAgICAgICBdO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuX292ZXJsYXlSZWYgPSB0aGlzLl9vdmVybGF5LmNyZWF0ZSh7XG4gICAgICBzY3JvbGxTdHJhdGVneTogdGhpcy5fb3ZlcmxheS5zY3JvbGxTdHJhdGVnaWVzLmNsb3NlKCksXG4gICAgICBwb3NpdGlvblN0cmF0ZWd5OiB0aGlzLl9vdmVybGF5XG4gICAgICAgIC5wb3NpdGlvbigpXG4gICAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRhcmdldFJlZilcbiAgICAgICAgLndpdGhQb3NpdGlvbnMoWy4uLnBvc2l0aW9uc10pXG4gICAgICAgIC53aXRoUHVzaChmYWxzZSlcbiAgICAgICAgLndpdGhEZWZhdWx0T2Zmc2V0WCgxMiksXG5cbiAgICAgIGRpcmVjdGlvbjogdGhpcy5fcGxhdGZvcm0uaXNSdGwoKSA/ICdydGwnIDogJ2x0cicsXG4gICAgICBkaXNwb3NlT25OYXZpZ2F0aW9uOiB0cnVlLFxuICAgICAgcGFuZWxDbGFzczogWydheC1hbmltYXRlLWZhZGVJbicsICdheC1hbmltYXRlLWZhc3RlcicsICdheC1vdmVybGF5LW1lbnUnXSxcbiAgICAgIG1heEhlaWdodDogJ3Vuc2V0JyxcbiAgICAgIGhhc0JhY2tkcm9wOiBmYWxzZSxcbiAgICAgIGJhY2tkcm9wQ2xhc3M6IFsnY2RrLW92ZXJsYXktdHJhbnNwYXJlbnQtYmFja2Ryb3AnXSxcbiAgICB9KTtcblxuICAgIGNvbnN0IHJlZiA9IHRoaXMuX292ZXJsYXlSZWYuYXR0YWNoKG5ldyBDb21wb25lbnRQb3J0YWwoQVhNZW51Q29tcG9uZW50KSk7XG5cbiAgICByZWYuaW5zdGFuY2UuaXRlbXMgPSBvdmVybGF5SXRlbXM7XG5cbiAgICByZWYuaW5zdGFuY2UuZGlzcGxheU1vZGUgPSB0aGlzLmRpc3BsYXlNb2RlO1xuXG4gICAgcmVmLmluc3RhbmNlLm9wZW5Nb2RlID0gJ2hvdmVyJztcblxuICAgIHJlZi5pbnN0YW5jZS5fbGV2ZWxDb3VudCA9IHRoaXMuX2xldmVsQ291bnQgKyAxO1xuXG4gICAgcmVmLmluc3RhbmNlLmRpc2FibGVGaWVsZCA9IHRoaXMuZGlzYWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZpc2libGVGaWVsZCA9IHRoaXMudmlzaWJsZUZpZWxkO1xuXG4gICAgcmVmLmluc3RhbmNlLnZhbHVlRmllbGQgPSB0aGlzLnZhbHVlRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UudGV4dEZpZWxkID0gdGhpcy50ZXh0RmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuaWNvbkZpZWxkID0gdGhpcy5pY29uRmllbGQ7XG5cbiAgICByZWYuaW5zdGFuY2UuZGl2aWRlckZpZWxkID0gdGhpcy5kaXZpZGVyRmllbGQ7XG5cbiAgICByZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgIHJlZi5pbnN0YW5jZT8uX292ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMuX292ZXJsYXlSZWYub3V0c2lkZVBvaW50ZXJFdmVudHMoKS5zdWJzY3JpYmUoKGUpID0+IHtcbiAgICAgIGlmICh0aGlzLl9vdmVybGF5UmVmICYmIHRoaXMub3Blbk1vZGUgPT09ICdjbGljaycpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgICAgZS5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnNjcm9sbC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIHRoaXMuX3BsYXRmb3JtLnJlc2l6ZS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgaWYgKHRoaXMuX292ZXJsYXlSZWYpIHtcbiAgICAgICAgdGhpcy5fY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgX2Nsb3NlKCkge1xuICAgIHRoaXMuX292ZXJsYXlSZWYuZGV0YWNoKCk7XG4gICAgdGhpcy5fb2xkSXRlbSA9IG51bGw7XG4gICAgdGhpcy5kaXNwbGF5SXRlbXMuZm9yRWFjaCgoZWxlbWVudCkgPT4ge1xuICAgICAgZWxlbWVudC5vcGVuZWQgPSBmYWxzZTtcbiAgICAgIGVsZW1lbnQuYWN0aXZlID0gZmFsc2U7XG4gICAgfSk7XG4gICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpO1xuICB9XG5cbiAgb3ZlcnJpZGUgb25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuX292ZXJsYXlSZWY/LmRldGFjaCgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGlzQWN0aXZlKGl0ZW06IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICh0eXBlb2YgdGhpcy5hY3RpdmVDYWxsYmFjayA9PSAnZnVuY3Rpb24nKSB7XG4gICAgICByZXR1cm4gdGhpcy5hY3RpdmVDYWxsYmFjayhpdGVtKTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIHJlZnJlc2goKTogdm9pZCB7XG4gICAgdGhpcy5jZHIubWFya0ZvckNoZWNrKCk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nSWY9XCJkaXNwbGF5SXRlbXMubGVuZ3RoOyBlbHNlIHRtcEVtcHR5XCI+XG4gIDx1bCBbbmdDbGFzc109XCJfZ2V0RGlyZWN0aW9uKClcIiBbY2xhc3MuYXgtcnRsXT1cInJ0bFwiPlxuICAgIDxuZy1jb250YWluZXJcbiAgICAgICpuZ1RlbXBsYXRlT3V0bGV0PVwicmVjdXJzaXZlTGlzdFRtcGw7IGNvbnRleHQ6IHsgbGlzdDogZGlzcGxheUl0ZW1zLCBpc1Jvb3Q6IHRydWUgfVwiXG4gICAgPjwvbmctY29udGFpbmVyPlxuICA8L3VsPlxuICA8bmctdGVtcGxhdGUgI3JlY3Vyc2l2ZUxpc3RUbXBsIGxldC1saXN0PVwibGlzdFwiIGxldC1pc1Jvb3Q9XCJpc1Jvb3RcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBpdGVtIG9mIGxpc3RcIj5cbiAgICAgIDxsaVxuICAgICAgICAqbmdJZj1cIml0ZW1bdmlzaWJsZUZpZWxkXSAhPT0gZmFsc2VcIlxuICAgICAgICBbY2xhc3MuYXgtc3RhdGUtZGlzYWJsZWRdPVwiaXRlbVtkaXNhYmxlRmllbGRdXCJcbiAgICAgICAgKGNsaWNrKT1cIl9vbk1lbnVDbGljaygkZXZlbnQsIGl0ZW0pXCJcbiAgICAgID5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwiYXgtbWVudS1pdGVtXCJcbiAgICAgICAgICBbbmdDbGFzc109XCJ7XG4gICAgICAgICAgICAnYXgtaXMtcGFyZW50JzogaXRlbS5jaGlsZHJlbj8ubGVuZ3RoLFxuICAgICAgICAgICAgJ2F4LWlzLWNoaWxkJzogIWlzUm9vdCxcbiAgICAgICAgICAgICdheC1zdGF0ZS1hY3RpdmUgJzogaXRlbS5pc0FjdGl2ZVxuICAgICAgICAgIH1cIlxuICAgICAgICAgICpuZ0lmPVwiaXRlbVRlbXBsYXRlID09IG51bGw7IGVsc2UgdG1wSXRlbVwiXG4gICAgICAgID5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXByZWZpeFwiPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJheC1tZW51LWl0ZW0taWNvblwiICpuZ0lmPVwiaXRlbVtpY29uRmllbGRdXCIgW2NsYXNzXT1cIml0ZW1baWNvbkZpZWxkXVwiPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuPnt7IF9nZXRJdGVtRGlzcGxheVRleHRUZW1wbHRlKGl0ZW0pIH19PC9zcGFuPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tc3VmZml4XCI+XG4gICAgICAgICAgICA8c3BhblxuICAgICAgICAgICAgICBjbGFzcz1cImF4LW1lbnUtaXRlbS1pY29uIGF4LWljb24gYXgtbWVudS1pdGVtLWljb24tY2hldnJvblwiXG4gICAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgICAnYXgtaWNvbi1jaGV2cm9uLWRvd24nOiBpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCxcbiAgICAgICAgICAgICAgICAnYXgtbWVudS1hY3RpdmUtaWNvbic6IGl0ZW0ub3BlbmVkXG4gICAgICAgICAgICAgIH1cIlxuICAgICAgICAgICAgICAqbmdJZj1cIiFpdGVtLmlzTG9hZGluZ1wiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPGF4LWxvYWRpbmcgKm5nSWY9XCJpdGVtLmlzTG9hZGluZ1wiPiA8L2F4LWxvYWRpbmc+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8IS0tLS0tLS0tLS0tLS0tLSBjaGVjayBmb3IgY3VzdG9tICBpdGVtIHRlbXBsYXRlICAtLS0tLS0tLS0tLS0tLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjdG1wSXRlbT5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIml0ZW1UZW1wbGF0ZTsgY29udGV4dDogeyAkaW1wbGljaXQ6IGl0ZW0gfVwiPiA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPHVsXG4gICAgICAgICAgKm5nSWY9XCJpdGVtPy5jaGlsZHJlbj8ubGVuZ3RoID4gMCAmJiBpdGVtLm9wZW5lZCAmJiAhX292ZXJsYXlSZWZcIlxuICAgICAgICAgIFtjbGFzcy5heC1zdGF0ZS1kaXNhYmxlZF09XCJpdGVtW2Rpc2FibGVGaWVsZF1cIlxuICAgICAgICA+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInJlY3Vyc2l2ZUxpc3RUbXBsOyBjb250ZXh0OiB7IGxpc3Q6IGl0ZW0uY2hpbGRyZW4gfVwiPlxuICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8L3VsPlxuICAgICAgPC9saT5cbiAgICAgIDxsaSBjbGFzcz1cImF4LW1lbnUtaXRlbS1kaXZpZGVyXCIgKm5nSWY9XCJpdGVtW3RoaXMuZGl2aWRlckZpZWxkXVwiPjwvbGk+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvbmctdGVtcGxhdGU+XG48L25nLWNvbnRhaW5lcj5cbjxuZy1jb250YWluZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj5cbiAgPG5nLXRlbXBsYXRlPlxuICAgIDxkaXYgY2xhc3M9XCJheC1mbGV4IGF4LWl0ZW1zLWNlbnRlciBheC1qdXN0aWZ5LWNlbnRlciBheC1wLTRcIj5cbiAgICAgIDxheC1sb2FkaW5nIFtjb250ZXh0XT1cIl9sb2FkaW5nT3B0aW9uc1wiPjwvYXgtbG9hZGluZz5cbiAgICA8L2Rpdj5cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI3RtcEVtcHR5PlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxuICAgIDwhLS0tLS0tLS0tLS0tLS0tIGNoZWNrIGZvciBjdXN0b20gdGVtcGxhdGUgIC0tLS0tLS0tLS0tLS0tLT5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZW1wdHlUZW1wbGF0ZTsgZWxzZSBlbHNlRW1wdHlUZW1wbGF0ZVwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cImVtcHR5VGVtcGxhdGVcIj4gPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gICAgPG5nLXRlbXBsYXRlICNlbHNlRW1wdHlUZW1wbGF0ZT5cbiAgICAgIHt7ICdjb21tb24ubm8tcmVzdWx0LWZvdW5kJyB8IHRyYW5zIH19XG4gICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9uZy1jb250YWluZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
48
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFM0UsT0FBTyxFQUVMLFNBQVMsRUFDVCxlQUFlLEVBQ2YsV0FBVyxFQUNYLEtBQUssRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEdBQ2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7QUFjdEUsTUFBTSxPQUFPLGVBQWdCLFNBQVEsZUFBZTtJQVpwRDs7UUFhVyxlQUFVLEdBQWtCLFlBQVksQ0FBQztRQUN6QyxXQUFNLEdBQXlCLE9BQU8sQ0FBQztLQWdCakQ7SUFYQyxlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUMxQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztZQUNoQixDQUFDLENBQUMsTUFBTSxHQUFHLElBQXNDLENBQUM7UUFDcEQsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsSUFDSSxXQUFXO1FBQ2IsT0FBTyxpQkFBaUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQzVDLENBQUM7OEdBakJVLGVBQWU7a0dBQWYsZUFBZSxpSkFQZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsZUFBZTthQUM3QjtTQUNGLG1EQU1nQixtQkFBbUIsb0RBZDFCLDhEQUE4RDs7MkZBVTdELGVBQWU7a0JBWjNCLFNBQVM7K0JBQ0UsU0FBUyxZQUNULDhEQUE4RCxpQkFFekQsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxpQkFBaUI7eUJBQzdCO3FCQUNGOzhCQUdRLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUdOLFFBQVE7c0JBRFAsZUFBZTt1QkFBQyxtQkFBbUI7Z0JBV2hDLFdBQVc7c0JBRGQsV0FBVzt1QkFBQyxPQUFPIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhPcmllbnRhdGlvbiwgTVhCYXNlQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBBWFBvcG92ZXJPcGVuVHJpZ2dlciB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBIb3N0QmluZGluZyxcbiAgSW5wdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhSb290TWVudSB9IGZyb20gJy4vY2xhc3Mvcm9vdC1tZW51LmNsYXNzJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXgtbWVudScsXG4gIHRlbXBsYXRlOiBgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtbWVudS1pdGVtLG5nLWNvbnRhaW5lclwiPjwvbmctY29udGVudD5gLFxuICBzdHlsZVVybHM6IFsnLi9tZW51LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYUm9vdE1lbnUsXG4gICAgICB1c2VFeGlzdGluZzogQVhNZW51Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudUNvbXBvbmVudCBleHRlbmRzIE1YQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBASW5wdXQoKSBvcmlhdGF0aW9uOiBBWE9yaWVudGF0aW9uID0gJ2hvcml6b250YWwnO1xuICBASW5wdXQoKSBvcGVuT246IEFYUG9wb3Zlck9wZW5UcmlnZ2VyID0gJ2NsaWNrJztcblxuICBAQ29udGVudENoaWxkcmVuKEFYTWVudUl0ZW1Db21wb25lbnQpXG4gIGNoaWxkcmVuOiBRdWVyeUxpc3Q8QVhNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgYy5pc1Jvb3QgPSB0cnVlO1xuICAgICAgYy5wYXJlbnQgPSB0aGlzIGFzIHVua25vd24gYXMgQVhNZW51SXRlbUNvbXBvbmVudDtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LW9yaWF0YXRpb24tJHt0aGlzLm9yaWF0YXRpb259YDtcbiAgfVxufVxuIl19
@@ -7,13 +7,12 @@ import { CommonModule } from '@angular/common';
7
7
  import { NgModule } from '@angular/core';
8
8
  import { AXMenuItemComponent } from './menu-item/menu-item.component';
9
9
  import { AXMenuComponent } from './menu.component';
10
- import { AXMenu2Component } from './menu2.component';
11
10
  import * as i0 from "@angular/core";
12
- const COMPONENT = [AXMenuItemComponent, AXMenuComponent, AXMenu2Component];
11
+ const COMPONENT = [AXMenuItemComponent, AXMenuComponent];
13
12
  const MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];
14
13
  export class AXMenuModule {
15
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
16
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent, AXMenu2Component], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent, AXMenu2Component] }); }
15
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
17
16
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES] }); }
18
17
  }
19
18
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXMenuModule, decorators: [{
@@ -25,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
25
24
  providers: [],
26
25
  }]
27
26
  }] });
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUFFckQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztBQUMzRSxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFRMUcsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLGlCQVROLG1CQUFtQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsYUFLN0QsWUFBWSxFQUpQLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQURyRixtQkFBbUIsRUFBRSxlQUFlLEVBQUUsZ0JBQWdCOytHQVM1RCxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU87OzJGQUl2QixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcbmltcG9ydCB7IEFYTWVudTJDb21wb25lbnQgfSBmcm9tICcuL21lbnUyLmNvbXBvbmVudCc7XG5cbmNvbnN0IENPTVBPTkVOVCA9IFtBWE1lbnVJdGVtQ29tcG9uZW50LCBBWE1lbnVDb21wb25lbnQsIEFYTWVudTJDb21wb25lbnRdO1xuY29uc3QgTU9EVUxFUyA9IFtBWERlY29yYXRvck1vZHVsZSwgQVhMb2FkaW5nTW9kdWxlLCBBWFRyYW5zbGF0aW9uTW9kdWxlLCBPdmVybGF5TW9kdWxlLCBBWFBvcG92ZXJNb2R1bGVdO1xuXG5ATmdNb2R1bGUoe1xuICBkZWNsYXJhdGlvbnM6IFsuLi5DT01QT05FTlRdLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCAuLi5NT0RVTEVTXSxcbiAgZXhwb3J0czogWy4uLkNPTVBPTkVOVF0sXG4gIHByb3ZpZGVyczogW10sXG59KVxuZXhwb3J0IGNsYXNzIEFYTWVudU1vZHVsZSB7fVxuIl19
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFbkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUN6RCxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFRMUcsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLGlCQVROLG1CQUFtQixFQUFFLGVBQWUsYUFLM0MsWUFBWSxFQUpQLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQURyRixtQkFBbUIsRUFBRSxlQUFlOytHQVMxQyxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU87OzJGQUl2QixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYTWVudUl0ZW1Db21wb25lbnQsIEFYTWVudUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW0FYRGVjb3JhdG9yTW9kdWxlLCBBWExvYWRpbmdNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEFYUG9wb3Zlck1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLk1PRFVMRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51TW9kdWxlIHt9XG4iXX0=
@@ -11,8 +11,7 @@ export class AXBaseComponent {
11
11
  return this.#rtl;
12
12
  else
13
13
  return (this._getHostElement()?.classList?.contains('ax-rtl') ||
14
- window.getComputedStyle(this._getHostElement(), null)?.getPropertyValue('direction') ===
15
- 'rtl');
14
+ window.getComputedStyle(this._getHostElement(), null)?.getPropertyValue('direction') === 'rtl');
16
15
  }
17
16
  set rtl(value) {
18
17
  this.#rtl = value;
@@ -108,4 +107,4 @@ export function _BaseComponenetMixin(Base) {
108
107
  }
109
108
  export const BASE_INPUTS = ['rtl'];
110
109
  export const BASE_OUTPUT = [];
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21peGluL3NyYy9saWIvYmFzZS1jb21wb25lbnRzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUMsTUFBTSxFQUFFLFVBQVUsRUFBYyxNQUFNLGVBQWUsQ0FBQzs7QUF3QmhHLE1BQU0sT0FBTyxlQUFlO0lBRzFCOztPQUVHO0lBQ0gsZUFBZTtJQUVmLElBQUksQ0FBVTtJQUVkLElBQUksR0FBRztRQUNMLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7O1lBRTlCLE9BQU8sQ0FDTCxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDO29CQUNsRixLQUFLLENBQ1IsQ0FBQztJQUNOLENBQUM7SUFFRCxJQUFJLEdBQUcsQ0FBQyxLQUFjO1FBQ3BCLElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxXQUFXLENBQWE7SUFNeEI7O09BRUc7SUFDSCxZQUEyQixHQUFHLElBQVc7UUFoQ3pDLE9BQUUsR0FBVyxLQUFLLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQWlDL0QsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDdEIs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U0FBUSxJQUFJO1FBQ3ZCLFlBQVksR0FBRyxJQUFXO1lBQ3hCLEtBQUssQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQ2pCLENBQUM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ25DLE1BQU0sQ0FBQyxNQUFNLFdBQVcsR0FBRyxFQUFFLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgRXZlbnRFbWl0dGVyLCBJbmplY3QsIEluamVjdGFibGUsIEVsZW1lbnRSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnN0cnVjdG9yIH0gZnJvbSAnLi9jb25zdHJhdGN0b3InO1xuXG4vKipcbiAqIEEgdG9rZW4gdGhhdCBzcGVjaWZpZXMgdGhlIHNpemUgb2YgY29tcG9uZW50LlxuICovXG5leHBvcnQgdHlwZSBBWEVsZW1lbnRTaXplID0gJ3hzJyB8ICdzbScgfCAnbWQnIHwgJ2xnJyB8ICd4bCc7XG5cbmV4cG9ydCB0eXBlIEFYQ29tcG9uZW50U3RhdGUgPSAnY2xlYXInIHwgJ3N1Y2Nlc3MnIHwgJ2Vycm9yJztcblxuZXhwb3J0IHR5cGUgQVhDb21wb25lbnRPcHRpb25DaGFuZ2luZyA9IHsgbmFtZTogc3RyaW5nOyB2YWx1ZT86IGFueSB9O1xuZXhwb3J0IHR5cGUgQVhDb21wb25lbnRPcHRpb25DaGFuZ2VkID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIG5ld1ZhbHVlPzogYW55O1xuICBvbGRWYWx1ZT86IGFueTtcbn07XG5leHBvcnQgdHlwZSBBWENvbXBvbmVudFNldE9wdGlvbiA9IHtcbiAgbmFtZTogc3RyaW5nO1xuICB2YWx1ZT86IGFueTtcbiAgYWZ0ZXJDYWxsYmFjaz86IChvbGRWYWx1ZT86IGFueSwgbmV3VmFsdWU/OiBhbnkpID0+IHZvaWQ7XG4gIGJlZm9yZUNhbGxiYWNrPzogKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkgPT4gdm9pZDtcbn07XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBBWEJhc2VDb21wb25lbnQge1xuICBpZDogc3RyaW5nID0gYEFYJHtNYXRoLnJvdW5kKE1hdGgucmFuZG9tKCkgKiBNYXRoLnBvdygxMCwgMTApKX1gO1xuXG4gIC8qKlxuICAgKiBBIHRva2VuIHRoYXQgc3BlY2lmaWVzIHRoZSBsYXlvdXQgZGlyZWN0aW9uIG9mIGNvbXBvbmVudC5cbiAgICovXG4gIC8vcnRsOiBib29sZWFuO1xuXG4gICNydGw6IGJvb2xlYW47XG5cbiAgZ2V0IHJ0bCgpOiBib29sZWFuIHtcbiAgICBpZiAodGhpcy4jcnRsKSByZXR1cm4gdGhpcy4jcnRsO1xuICAgIGVsc2VcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCk/LmNsYXNzTGlzdD8uY29udGFpbnMoJ2F4LXJ0bCcpIHx8XG4gICAgICAgIHdpbmRvdy5nZXRDb21wdXRlZFN0eWxlKHRoaXMuX2dldEhvc3RFbGVtZW50KCksIG51bGwpPy5nZXRQcm9wZXJ0eVZhbHVlKCdkaXJlY3Rpb24nKSA9PT1cbiAgICAgICAgICAncnRsJ1xuICAgICAgKTtcbiAgfVxuXG4gIHNldCBydGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNydGwgPSB2YWx1ZTtcbiAgfVxuXG4gICNlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBfaXNJbml0ZWQ6IGJvb2xlYW47XG4gIF9pc1JlbmRlcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQEluamVjdChBcnJheSkgLi4uYXJnczogYW55W10pIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gYXJnc1swXTtcbiAgICB0aGlzLl9jZHIgPSBhcmdzWzFdO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5faXNJbml0ZWQgPSB0cnVlO1xuICAgIHRoaXMuX29uSW50ZXJuYWxJbml0KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5faXNSZW5kZXJlZCA9IHRydWU7XG4gICAgdGhpcy5fb25JbnRlcm5hbFZpZXdJbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkludGVybmFsRGVzdHJveSgpO1xuICB9XG5cbiAgLy9UT0RPOiBjaGVjayB3aHkgZXZlcnkgdGltZSBjYWxsZWQgX2dldEhvc3RFbGVtZW50IGZ1bmN0aW9uXG4gIF9nZXRIb3N0RWxlbWVudDxUID0gSFRNTEVsZW1lbnQ+KCk6IFQge1xuICAgIC8vVE9ETzogY2hlY2sgZWxlbWVudFJlZiByZXRydW4gMFxuICAgIHJldHVybiB0aGlzLiNlbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIFQ7XG4gIH1cblxuICBfZ2V0SW5uZXJFbGVtZW50PFQgPSBIVE1MRWxlbWVudD4oKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuZmlyc3RFbGVtZW50Q2hpbGQgYXMgdW5rbm93biBhcyBUO1xuICB9XG5cbiAgX29uSW50ZXJuYWxJbml0KCkge1xuICAgIC8vVE9ETzogY2hlY2sgQ2Fubm90IHNldCBwcm9wZXJ0aWVzIG9mIHVuZGVmaW5lZCAoc2V0dGluZyAnX19heENvbnRleHRfXycpXG5cbiAgICBpZiAodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSkge1xuICAgICAgKHRoaXMuX2dldEhvc3RFbGVtZW50KCkgYXMgYW55KS5fX2F4Q29udGV4dF9fID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy5fYXBwbHlSdGwoKTtcbiAgICB0aGlzLm9uSW5pdCgpO1xuICB9XG5cbiAgX29uSW50ZXJuYWxWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm9uVmlld0luaXQoKTtcbiAgfVxuXG4gIF9vbkludGVybmFsRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgb25Jbml0KCkge31cblxuICBvblZpZXdJbml0KCkge31cblxuICBvbkRlc3Ryb3koKSB7fVxuXG4gIF9hcHBseVJ0bCgpIHtcbiAgICBpZiAodGhpcy5ydGwpIHtcbiAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYXgtcnRsJyk7XG4gICAgfVxuICB9XG5cbiAgX29uT3B0aW9uQ2hhbmdpbmcob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5naW5nKSB7XG4gICAgcmV0dXJuIG9wdGlvbj8udmFsdWU7XG4gIH1cbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge31cblxuICBfc2V0T3B0aW9uKG9wdGlvbjogQVhDb21wb25lbnRTZXRPcHRpb24pIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNbb3B0aW9uLm5hbWVdO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5fb25PcHRpb25DaGFuZ2luZyh7XG4gICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgfSk7XG4gICAgLy9UT0RPIDogY2hlY2sgcmVhbCBjaGFuZ2VzXG4gICAgaWYgKG9wdGlvbi5iZWZvcmVDYWxsYmFjaykgb3B0aW9uLmJlZm9yZUNhbGxiYWNrKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgaWYgKG9sZFZhbHVlICE9IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzW2BfJHtvcHRpb24ubmFtZX1gXSA9IG9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMuX29uT3B0aW9uQ2hhbmdlZCh7IG5hbWU6IG9wdGlvbi5uYW1lLCBuZXdWYWx1ZSwgb2xkVmFsdWUgfSk7XG4gICAgICBjb25zdCBlbWl0dGVyID0gdGhpc1tgJHtvcHRpb24ubmFtZX1DaGFuZ2VgXSBhcyBFdmVudEVtaXR0ZXI8YW55PjtcbiAgICAgIGlmIChlbWl0dGVyKSBlbWl0dGVyLmVtaXQobmV3VmFsdWUpO1xuICAgIH1cbiAgICBpZiAob3B0aW9uLmFmdGVyQ2FsbGJhY2spIG9wdGlvbi5hZnRlckNhbGxiYWNrKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9CYXNlQ29tcG9uZW5ldE1peGluPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I8QVhCYXNlQ29tcG9uZW50Pj4oQmFzZTogVEJhc2UpIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEJBU0VfSU5QVVRTID0gWydydGwnXTtcbmV4cG9ydCBjb25zdCBCQVNFX09VVFBVVCA9IFtdO1xuIl19
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS1jb21wb25lbnRzLmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21peGluL3NyYy9saWIvYmFzZS1jb21wb25lbnRzLmNsYXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBK0MsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUF3QmhHLE1BQU0sT0FBTyxlQUFlO0lBRzFCOztPQUVHO0lBQ0gsZUFBZTtJQUVmLElBQUksQ0FBVTtJQUVkLElBQUksR0FBRztRQUNMLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7O1lBRTlCLE9BQU8sQ0FDTCxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsU0FBUyxFQUFFLFFBQVEsQ0FBQyxRQUFRLENBQUM7Z0JBQ3JELE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsZ0JBQWdCLENBQUMsV0FBVyxDQUFDLEtBQUssS0FBSyxDQUMvRixDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksR0FBRyxDQUFDLEtBQWM7UUFDcEIsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVELFdBQVcsQ0FBYTtJQU14Qjs7T0FFRztJQUNILFlBQTJCLEdBQUcsSUFBVztRQS9CekMsT0FBRSxHQUFXLEtBQUssSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDO1FBZ0MvRCxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN0QixD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QUFRLElBQUk7UUFDdkIsWUFBWSxHQUFHLElBQVc7WUFDeEIsS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUM7UUFDakIsQ0FBQztLQUNGLENBQUM7QUFDSixDQUFDO0FBRUQsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDbkMsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0b3IgfSBmcm9tICcuL2NvbnN0cmF0Y3Rvcic7XG5cbi8qKlxuICogQSB0b2tlbiB0aGF0IHNwZWNpZmllcyB0aGUgc2l6ZSBvZiBjb21wb25lbnQuXG4gKi9cbmV4cG9ydCB0eXBlIEFYRWxlbWVudFNpemUgPSAneHMnIHwgJ3NtJyB8ICdtZCcgfCAnbGcnIHwgJ3hsJztcblxuZXhwb3J0IHR5cGUgQVhDb21wb25lbnRTdGF0ZSA9ICdjbGVhcicgfCAnc3VjY2VzcycgfCAnZXJyb3InO1xuXG5leHBvcnQgdHlwZSBBWENvbXBvbmVudE9wdGlvbkNoYW5naW5nID0geyBuYW1lOiBzdHJpbmc7IHZhbHVlPzogYW55IH07XG5leHBvcnQgdHlwZSBBWENvbXBvbmVudE9wdGlvbkNoYW5nZWQgPSB7XG4gIG5hbWU6IHN0cmluZztcbiAgbmV3VmFsdWU/OiBhbnk7XG4gIG9sZFZhbHVlPzogYW55O1xufTtcbmV4cG9ydCB0eXBlIEFYQ29tcG9uZW50U2V0T3B0aW9uID0ge1xuICBuYW1lOiBzdHJpbmc7XG4gIHZhbHVlPzogYW55O1xuICBhZnRlckNhbGxiYWNrPzogKG9sZFZhbHVlPzogYW55LCBuZXdWYWx1ZT86IGFueSkgPT4gdm9pZDtcbiAgYmVmb3JlQ2FsbGJhY2s/OiAob2xkVmFsdWU/OiBhbnksIG5ld1ZhbHVlPzogYW55KSA9PiB2b2lkO1xufTtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIEFYQmFzZUNvbXBvbmVudCB7XG4gIGlkOiBzdHJpbmcgPSBgQVgke01hdGgucm91bmQoTWF0aC5yYW5kb20oKSAqIE1hdGgucG93KDEwLCAxMCkpfWA7XG5cbiAgLyoqXG4gICAqIEEgdG9rZW4gdGhhdCBzcGVjaWZpZXMgdGhlIGxheW91dCBkaXJlY3Rpb24gb2YgY29tcG9uZW50LlxuICAgKi9cbiAgLy9ydGw6IGJvb2xlYW47XG5cbiAgI3J0bDogYm9vbGVhbjtcblxuICBnZXQgcnRsKCk6IGJvb2xlYW4ge1xuICAgIGlmICh0aGlzLiNydGwpIHJldHVybiB0aGlzLiNydGw7XG4gICAgZWxzZVxuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy5fZ2V0SG9zdEVsZW1lbnQoKT8uY2xhc3NMaXN0Py5jb250YWlucygnYXgtcnRsJykgfHxcbiAgICAgICAgd2luZG93LmdldENvbXB1dGVkU3R5bGUodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSwgbnVsbCk/LmdldFByb3BlcnR5VmFsdWUoJ2RpcmVjdGlvbicpID09PSAncnRsJ1xuICAgICAgKTtcbiAgfVxuXG4gIHNldCBydGwodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLiNydGwgPSB2YWx1ZTtcbiAgfVxuXG4gICNlbGVtZW50UmVmOiBFbGVtZW50UmVmO1xuICBfY2RyOiBDaGFuZ2VEZXRlY3RvclJlZjtcblxuICBfaXNJbml0ZWQ6IGJvb2xlYW47XG4gIF9pc1JlbmRlcmVkOiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiAgQGlnbm9yZVxuICAgKi9cbiAgY29uc3RydWN0b3IoQEluamVjdChBcnJheSkgLi4uYXJnczogYW55W10pIHtcbiAgICB0aGlzLiNlbGVtZW50UmVmID0gYXJnc1swXTtcbiAgICB0aGlzLl9jZHIgPSBhcmdzWzFdO1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5faXNJbml0ZWQgPSB0cnVlO1xuICAgIHRoaXMuX29uSW50ZXJuYWxJbml0KCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5faXNSZW5kZXJlZCA9IHRydWU7XG4gICAgdGhpcy5fb25JbnRlcm5hbFZpZXdJbml0KCk7XG4gIH1cblxuICBuZ09uRGVzdHJveSgpIHtcbiAgICB0aGlzLl9vbkludGVybmFsRGVzdHJveSgpO1xuICB9XG5cbiAgLy9UT0RPOiBjaGVjayB3aHkgZXZlcnkgdGltZSBjYWxsZWQgX2dldEhvc3RFbGVtZW50IGZ1bmN0aW9uXG4gIF9nZXRIb3N0RWxlbWVudDxUID0gSFRNTEVsZW1lbnQ+KCk6IFQge1xuICAgIC8vVE9ETzogY2hlY2sgZWxlbWVudFJlZiByZXRydW4gMFxuICAgIHJldHVybiB0aGlzLiNlbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50IGFzIFQ7XG4gIH1cblxuICBfZ2V0SW5uZXJFbGVtZW50PFQgPSBIVE1MRWxlbWVudD4oKTogVCB7XG4gICAgcmV0dXJuIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuZmlyc3RFbGVtZW50Q2hpbGQgYXMgdW5rbm93biBhcyBUO1xuICB9XG5cbiAgX29uSW50ZXJuYWxJbml0KCkge1xuICAgIC8vVE9ETzogY2hlY2sgQ2Fubm90IHNldCBwcm9wZXJ0aWVzIG9mIHVuZGVmaW5lZCAoc2V0dGluZyAnX19heENvbnRleHRfXycpXG5cbiAgICBpZiAodGhpcy5fZ2V0SG9zdEVsZW1lbnQoKSkge1xuICAgICAgKHRoaXMuX2dldEhvc3RFbGVtZW50KCkgYXMgYW55KS5fX2F4Q29udGV4dF9fID0gdGhpcztcbiAgICB9XG4gICAgdGhpcy5fYXBwbHlSdGwoKTtcbiAgICB0aGlzLm9uSW5pdCgpO1xuICB9XG5cbiAgX29uSW50ZXJuYWxWaWV3SW5pdCgpIHtcbiAgICB0aGlzLm9uVmlld0luaXQoKTtcbiAgfVxuXG4gIF9vbkludGVybmFsRGVzdHJveSgpIHtcbiAgICB0aGlzLm9uRGVzdHJveSgpO1xuICB9XG5cbiAgb25Jbml0KCkge31cblxuICBvblZpZXdJbml0KCkge31cblxuICBvbkRlc3Ryb3koKSB7fVxuXG4gIF9hcHBseVJ0bCgpIHtcbiAgICBpZiAodGhpcy5ydGwpIHtcbiAgICAgIHRoaXMuX2dldEhvc3RFbGVtZW50KCkuY2xhc3NMaXN0LmFkZCgnYXgtcnRsJyk7XG4gICAgfVxuICB9XG5cbiAgX29uT3B0aW9uQ2hhbmdpbmcob3B0aW9uOiBBWENvbXBvbmVudE9wdGlvbkNoYW5naW5nKSB7XG4gICAgcmV0dXJuIG9wdGlvbj8udmFsdWU7XG4gIH1cbiAgX29uT3B0aW9uQ2hhbmdlZChvcHRpb246IEFYQ29tcG9uZW50T3B0aW9uQ2hhbmdlZCk6IHZvaWQge31cblxuICBfc2V0T3B0aW9uKG9wdGlvbjogQVhDb21wb25lbnRTZXRPcHRpb24pIHtcbiAgICBjb25zdCBvbGRWYWx1ZSA9IHRoaXNbb3B0aW9uLm5hbWVdO1xuICAgIGNvbnN0IG5ld1ZhbHVlID0gdGhpcy5fb25PcHRpb25DaGFuZ2luZyh7XG4gICAgICBuYW1lOiBvcHRpb24ubmFtZSxcbiAgICAgIHZhbHVlOiBvcHRpb24udmFsdWUsXG4gICAgfSk7XG4gICAgLy9UT0RPIDogY2hlY2sgcmVhbCBjaGFuZ2VzXG4gICAgaWYgKG9wdGlvbi5iZWZvcmVDYWxsYmFjaykgb3B0aW9uLmJlZm9yZUNhbGxiYWNrKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gICAgaWYgKG9sZFZhbHVlICE9IG5ld1ZhbHVlKSB7XG4gICAgICB0aGlzW2BfJHtvcHRpb24ubmFtZX1gXSA9IG9wdGlvbi52YWx1ZTtcbiAgICAgIHRoaXMuX29uT3B0aW9uQ2hhbmdlZCh7IG5hbWU6IG9wdGlvbi5uYW1lLCBuZXdWYWx1ZSwgb2xkVmFsdWUgfSk7XG4gICAgICBjb25zdCBlbWl0dGVyID0gdGhpc1tgJHtvcHRpb24ubmFtZX1DaGFuZ2VgXSBhcyBFdmVudEVtaXR0ZXI8YW55PjtcbiAgICAgIGlmIChlbWl0dGVyKSBlbWl0dGVyLmVtaXQobmV3VmFsdWUpO1xuICAgIH1cbiAgICBpZiAob3B0aW9uLmFmdGVyQ2FsbGJhY2spIG9wdGlvbi5hZnRlckNhbGxiYWNrKG9sZFZhbHVlLCBuZXdWYWx1ZSk7XG4gIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIF9CYXNlQ29tcG9uZW5ldE1peGluPFRCYXNlIGV4dGVuZHMgQ29uc3RydWN0b3I8QVhCYXNlQ29tcG9uZW50Pj4oQmFzZTogVEJhc2UpIHtcbiAgcmV0dXJuIGNsYXNzIGV4dGVuZHMgQmFzZSB7XG4gICAgY29uc3RydWN0b3IoLi4uYXJnczogYW55W10pIHtcbiAgICAgIHN1cGVyKC4uLmFyZ3MpO1xuICAgIH1cbiAgfTtcbn1cblxuZXhwb3J0IGNvbnN0IEJBU0VfSU5QVVRTID0gWydydGwnXTtcbmV4cG9ydCBjb25zdCBCQVNFX09VVFBVVCA9IFtdO1xuIl19