@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,47 +1,42 @@
1
- import * as i0 from '@angular/core';
2
- import { forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostListener, HostBinding, NgModule } from '@angular/core';
3
- import { MXSelectionValueComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/components/common';
4
- import { Subscription, BehaviorSubject, debounceTime, distinctUntilChanged } from 'rxjs';
1
+ import { MXSelectionValueComponent, convertArrayToDataSource, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/components/common';
5
2
  import { DataSource } from '@angular/cdk/collections';
6
- import * as i1 from '@angular/cdk/scrolling';
7
- import { CdkVirtualScrollableElement, ScrollingModule } from '@angular/cdk/scrolling';
3
+ import * as i2 from '@angular/cdk/scrolling';
4
+ import { CdkVirtualScrollViewport, ScrollingModule } from '@angular/cdk/scrolling';
5
+ import * as i0 from '@angular/core';
6
+ import { EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, Output, ViewChild, HostListener, HostBinding, NgModule } from '@angular/core';
8
7
  import { NG_VALUE_ACCESSOR } from '@angular/forms';
9
- import * as i2 from '@angular/common';
8
+ import { Subscription, BehaviorSubject, debounceTime, distinctUntilChanged } from 'rxjs';
9
+ import * as i1 from '@angular/common';
10
10
  import { CommonModule } from '@angular/common';
11
11
 
12
12
  class AXListDataSource extends DataSource {
13
- get cachedItems() {
14
- return this._cachedData || [];
15
- }
16
13
  /**
17
14
  * @ignore
18
15
  */
19
16
  constructor(config) {
20
17
  super();
21
18
  this.config = config;
22
- this.pageSize = 20;
23
19
  this.debounceTime = 300;
24
- this._cachedData = new Array(this.config.pageSize);
25
- this.fetchedPages = new Set();
26
20
  this.subscription = new Subscription();
27
- this.initiated = false;
28
- this.dataStream = new BehaviorSubject(this._cachedData);
29
- this.loadingState = new BehaviorSubject(true);
30
21
  this.source = config.source;
31
- if (config.pageSize)
32
- this.pageSize = config.pageSize;
33
22
  if (config.debounceTime)
34
23
  this.debounceTime = config.debounceTime;
24
+ //
25
+ console.log(this.config.source.cachedItems);
26
+ this.dataStream = new BehaviorSubject(this.config.source.cachedItems);
27
+ this.source.onChanged.subscribe((data) => {
28
+ this.dataStream.next(data.cachedItems);
29
+ });
35
30
  }
36
31
  connect(collectionViewer) {
37
32
  this.subscription.add(collectionViewer.viewChange
38
33
  .pipe(debounceTime(this.debounceTime))
39
34
  .pipe(distinctUntilChanged())
40
- .subscribe(range => {
35
+ .subscribe((range) => {
41
36
  const startPage = this.getPageForIndex(range.start);
42
37
  const endPage = this.getPageForIndex(range.end - 1);
43
38
  for (let i = startPage; i <= endPage; i++) {
44
- this.fetchPage(i);
39
+ this.source.setPage(i);
45
40
  }
46
41
  }));
47
42
  return this.dataStream;
@@ -50,64 +45,41 @@ class AXListDataSource extends DataSource {
50
45
  this.subscription.unsubscribe();
51
46
  }
52
47
  getPageForIndex(index) {
53
- return Math.floor(index / this.pageSize);
54
- }
55
- fetchPage(page) {
56
- if (this.fetchedPages.has(page)) {
57
- return;
58
- }
59
- this.loadingState.next(true);
60
- this.fetchedPages.add(page);
61
- if (Array.isArray(this.source)) {
62
- this._cachedData = this.source;
63
- this.dataStream.next(this._cachedData);
64
- this.loadingState.next(false);
65
- }
66
- else if (typeof this.source == 'function') {
67
- const promise = this.source({
68
- take: this.pageSize,
69
- skip: this.pageSize * page
70
- });
71
- promise.then(result => {
72
- if (!this.initiated) {
73
- this._cachedData = new Array(result.total);
74
- this.initiated = true;
75
- }
76
- this._cachedData.splice(page * this.pageSize, this.pageSize, ...result.items);
77
- this.dataStream.next(this._cachedData);
78
- }).finally(() => {
79
- this.loadingState.next(false);
80
- });
81
- }
48
+ return Math.floor(index / this.source.config.pageSize);
82
49
  }
83
50
  }
84
51
  class AXListComponent extends MXSelectionValueComponent {
85
52
  constructor() {
86
53
  super(...arguments);
87
- this.source = [];
54
+ this.dataSource = convertArrayToDataSource([]);
88
55
  this.itemHeight = 40;
56
+ this.onDataLoad = new EventEmitter();
57
+ this.onScrolledIndexChanged = new EventEmitter();
89
58
  this.checkbox = true;
90
59
  this.isLoading = true;
91
60
  this.hasItems = false;
61
+ this.lastIndex = 0;
62
+ this.postponeFocus = false;
92
63
  }
93
64
  trackByIdx(i) {
94
65
  return i;
95
66
  }
96
67
  ngOnInit() {
97
68
  super.ngOnInit();
98
- this.dataSource = new AXListDataSource({
99
- source: this.source
69
+ this.listDataSource = new AXListDataSource({
70
+ source: this.dataSource,
100
71
  });
101
- this.dataSource.loadingState.subscribe(data => {
72
+ this.listDataSource.source.onLoadingChanged.subscribe((data) => {
102
73
  this.isLoading = data;
103
74
  });
104
- this.dataSource.dataStream.subscribe(data => {
105
- this.hasItems = data.length > 0;
75
+ this.listDataSource.source.onChanged.subscribe((data) => {
76
+ this.hasItems = data.totalCount > 0;
77
+ this.onDataLoad.emit(data.items);
78
+ setTimeout(() => {
79
+ this.render();
80
+ }, 100);
106
81
  });
107
82
  }
108
- ngAfterViewInit() {
109
- super.ngAfterViewInit();
110
- }
111
83
  _handleOnItemClick(e, item) {
112
84
  if (this.readonly || this.disabled) {
113
85
  e.preventDefault();
@@ -139,27 +111,54 @@ class AXListComponent extends MXSelectionValueComponent {
139
111
  focusItemByNav(sign) {
140
112
  const list = this.getHostElement().querySelector('ul');
141
113
  const fn = (s) => list.querySelector(s);
142
- const itemDiv = document.activeElement?.closest('li') ||
143
- fn(`li.ax-state-selected`) ||
144
- fn(`li`);
114
+ const itemDiv = document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);
145
115
  const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling);
146
116
  if (next) {
147
117
  next.focus();
148
118
  }
149
119
  }
120
+ _handleOnscrolledIndexChange(e) {
121
+ this.lastIndex = e;
122
+ this.onScrolledIndexChanged.emit({
123
+ component: this,
124
+ index: this.lastIndex,
125
+ isUserInteraction: true,
126
+ });
127
+ }
150
128
  /**
151
129
  * @ignore
152
130
  */
153
131
  get __hostClass() {
154
- const _class = `ax-default`;
132
+ const _class = `ax-solid`;
155
133
  return this.itemTemplate ? '' : _class;
156
134
  }
157
135
  getItemByKey(key) {
158
- const cachedItem = this.dataSource.cachedItems.find(c => c && c[this.valueField] == key);
159
- return cachedItem || { [this.valueField]: key, [this.textField]: key };
136
+ return this.dataSource.find(key);
137
+ }
138
+ render() {
139
+ this.viewport.checkViewportSize();
140
+ this.viewport.scrollToIndex(this.lastIndex);
141
+ if (this.postponeFocus) {
142
+ this.postponeFocus = false;
143
+ this.focus();
144
+ }
145
+ }
146
+ scrollToIndex(index) {
147
+ this.viewport.scrollToIndex(index);
148
+ }
149
+ focus() {
150
+ const list = this.getHostElement().querySelector('ul');
151
+ const focusable = list.querySelector('li.ax-state-selected') ??
152
+ list.querySelector('li.list-item');
153
+ if (focusable) {
154
+ focusable.focus();
155
+ }
156
+ else {
157
+ this.postponeFocus = true;
158
+ }
160
159
  }
161
160
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXListComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
162
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXListComponent, selector: "ax-list", inputs: { id: "id", name: "name", disabled: "disabled", readonly: "readonly", valueField: "valueField", textField: "textField", disabledField: "disabledField", multiple: "multiple", source: "source", itemHeight: "itemHeight", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate", checkbox: "checkbox" }, outputs: { onValueChanged: "onValueChanged", disabledChange: "disabledChange", readOnlyChange: "readOnlyChange", onBlur: "onBlur", onFocus: "onFocus" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
161
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXListComponent, selector: "ax-list", inputs: { id: "id", name: "name", disabled: "disabled", readonly: "readonly", valueField: "valueField", textField: "textField", disabledField: "disabledField", multiple: "multiple", selectionMode: "selectionMode", dataSource: "dataSource", itemHeight: "itemHeight", itemTemplate: "itemTemplate", emptyTemplate: "emptyTemplate", loadingTemplate: "loadingTemplate", checkbox: "checkbox" }, outputs: { onValueChanged: "onValueChanged", disabledChange: "disabledChange", readOnlyChange: "readOnlyChange", onBlur: "onBlur", onFocus: "onFocus", onDataLoad: "onDataLoad", onScrolledIndexChanged: "onScrolledIndexChanged" }, host: { listeners: { "keydown": "_handleKeydown($event)" }, properties: { "class": "this.__hostClass" } }, providers: [
163
162
  { provide: AXComponent, useExisting: AXListComponent },
164
163
  { provide: AXFocusableComponent, useExisting: AXListComponent },
165
164
  { provide: AXValuableComponent, useExisting: AXListComponent },
@@ -168,7 +167,7 @@ class AXListComponent extends MXSelectionValueComponent {
168
167
  useExisting: forwardRef(() => AXListComponent),
169
168
  multi: true,
170
169
  },
171
- ], usesInheritance: true, hostDirectives: [{ directive: i1.CdkVirtualScrollableElement }], ngImport: i0, template: "<ng-content select=\"ax-header\"></ng-content>\n<cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of dataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" tabindex=\"0\" />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</cdk-virtual-scroll-viewport>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && !hasItems && isLoading===false\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n</ng-container>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<ng-content select=\"ax-footer\"></ng-content>", styles: ["ax-list{width:100%;height:100%;display:flex;flex-direction:column}ax-list.ax-default .cdk-virtual-scroll-viewport li{padding-inline-start:.75rem;padding-inline-end:1rem;position:relative;height:var(--ax-size-default);display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;cursor:pointer}ax-list.ax-default .cdk-virtual-scroll-viewport li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-visible{outline:transparent;background-color:rgba(var(--ax-color-primary-100))}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-selected-icon{color:rgba(var(--ax-color-primary-500));font-size:1.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport li.ax-state-selected:not(ax-list.ax-default .cdk-virtual-scroll-viewport li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-visible){background-color:rgba(var(--ax-color-default))!important;color:rgba(var(--ax-color-default-fore))!important}ax-list.ax-default .cdk-virtual-scroll-viewport li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i1.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i1.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i1.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
170
+ ], viewQueries: [{ propertyName: "viewport", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\" (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && hasItems===false && isLoading===false\">\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n</ng-container>", styles: [".ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus,.ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus-within,.ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus-visible{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-lighten))}ax-list{width:100%;height:100%;display:block;font-style:.875rem}ax-list .list-container{display:flex;flex-direction:column;height:100%}ax-list .empty-container{width:100%;min-height:var(--ax-size-default);display:flex;align-items:center;padding-inline:.75rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li{font-size:.875rem;padding-inline-start:.75rem;padding-inline-end:1rem;position:relative;height:var(--ax-size-default);display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:var(--ax-rounded-border-default)}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-visible{outline:2px solid;outline-color:rgba(var(--ax-color-primary-500));outline-offset:-4px}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-selected-icon{color:rgba(var(--ax-color-primary-500));font-size:1.5rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li.ax-state-selected:not(ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-visible){background-color:rgba(var(--ax-color-primary-100))!important;color:rgba(var(--ax-color-primary-fore-lighten))!important}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: i2.CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: i2.CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "directive", type: i2.CdkVirtualScrollableElement, selector: "[cdkVirtualScrollingElement]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
172
171
  }
173
172
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXListComponent, decorators: [{
174
173
  type: Component,
@@ -180,18 +179,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
180
179
  'valueField',
181
180
  'textField',
182
181
  'disabledField',
183
- 'multiple'
184
- ], outputs: [
185
- 'onValueChanged',
186
- 'disabledChange',
187
- 'readOnlyChange',
188
- 'onBlur',
189
- 'onFocus'
190
- ], hostDirectives: [
191
- {
192
- directive: CdkVirtualScrollableElement
193
- }
194
- ], providers: [
182
+ 'multiple',
183
+ 'selectionMode',
184
+ ], outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'], providers: [
195
185
  { provide: AXComponent, useExisting: AXListComponent },
196
186
  { provide: AXFocusableComponent, useExisting: AXListComponent },
197
187
  { provide: AXValuableComponent, useExisting: AXListComponent },
@@ -200,8 +190,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
200
190
  useExisting: forwardRef(() => AXListComponent),
201
191
  multi: true,
202
192
  },
203
- ], template: "<ng-content select=\"ax-header\"></ng-content>\n<cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of dataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" tabindex=\"0\" />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</cdk-virtual-scroll-viewport>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && !hasItems && isLoading===false\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n</ng-container>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<ng-content select=\"ax-footer\"></ng-content>", styles: ["ax-list{width:100%;height:100%;display:flex;flex-direction:column}ax-list.ax-default .cdk-virtual-scroll-viewport li{padding-inline-start:.75rem;padding-inline-end:1rem;position:relative;height:var(--ax-size-default);display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;cursor:pointer}ax-list.ax-default .cdk-virtual-scroll-viewport li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-visible{outline:transparent;background-color:rgba(var(--ax-color-primary-100))}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-label-container{display:flex;align-items:center}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport li .ax-selected-icon{color:rgba(var(--ax-color-primary-500));font-size:1.5rem}ax-list.ax-default .cdk-virtual-scroll-viewport li.ax-state-selected:not(ax-list.ax-default .cdk-virtual-scroll-viewport li:focus,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-within,ax-list.ax-default .cdk-virtual-scroll-viewport li:focus-visible){background-color:rgba(var(--ax-color-default))!important;color:rgba(var(--ax-color-default-fore))!important}ax-list.ax-default .cdk-virtual-scroll-viewport li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"] }]
204
- }], propDecorators: { source: [{
193
+ ], template: "<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\" (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && hasItems===false && isLoading===false\">\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n</ng-container>", styles: [".ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus,.ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus-within,.ax-dark ax-list.ax-solid .cdk-virtual-scroll-viewport li:focus-visible{background-color:rgba(var(--ax-color-primary-200));color:rgba(var(--ax-color-primary-fore-lighten))}ax-list{width:100%;height:100%;display:block;font-style:.875rem}ax-list .list-container{display:flex;flex-direction:column;height:100%}ax-list .empty-container{width:100%;min-height:var(--ax-size-default);display:flex;align-items:center;padding-inline:.75rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li{font-size:.875rem;padding-inline-start:.75rem;padding-inline-end:1rem;position:relative;height:var(--ax-size-default);display:flex;justify-content:space-between;align-items:center;-webkit-user-select:none;user-select:none;cursor:pointer;border-radius:var(--ax-rounded-border-default)}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-visible{outline:2px solid;outline-color:rgba(var(--ax-color-primary-500));outline-offset:-4px}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-label-container{display:flex;align-items:center}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-checkbox-label{margin-inline-start:.5rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li .ax-selected-icon{color:rgba(var(--ax-color-primary-500));font-size:1.5rem}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li.ax-state-selected:not(ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-within,ax-list.ax-solid .cdk-virtual-scroll-viewport ul li:focus-visible){background-color:rgba(var(--ax-color-primary-100))!important;color:rgba(var(--ax-color-primary-fore-lighten))!important}ax-list.ax-solid .cdk-virtual-scroll-viewport ul li.ax-state-disabled{cursor:not-allowed;opacity:.5}\n"] }]
194
+ }], propDecorators: { dataSource: [{
205
195
  type: Input
206
196
  }], itemHeight: [{
207
197
  type: Input
@@ -211,8 +201,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
211
201
  type: Input
212
202
  }], loadingTemplate: [{
213
203
  type: Input
204
+ }], onDataLoad: [{
205
+ type: Output
206
+ }], onScrolledIndexChanged: [{
207
+ type: Output
214
208
  }], checkbox: [{
215
209
  type: Input
210
+ }], viewport: [{
211
+ type: ViewChild,
212
+ args: [CdkVirtualScrollViewport]
216
213
  }], _handleKeydown: [{
217
214
  type: HostListener,
218
215
  args: ['keydown', ['$event']]
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-list.mjs","sources":["../../../../libs/components/list/src/lib/list.component.ts","../../../../libs/components/list/src/lib/list.component.html","../../../../libs/components/list/src/lib/list.module.ts","../../../../libs/components/list/src/acorex-components-list.ts"],"sourcesContent":["import { Component, ViewEncapsulation, ChangeDetectionStrategy, OnInit, AfterViewInit, Input, TemplateRef, HostBinding, HostListener, forwardRef } from '@angular/core';\nimport { AXDataListFetchCallbackResult, AXDataListItems, MXSelectionValueComponent, AXComponent, AXFocusableComponent, AXValuableComponent } from '@acorex/components/common';\nimport { BehaviorSubject, Observable, Subscription, debounceTime, distinctUntilChanged, of } from 'rxjs';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { CdkVirtualScrollableElement } from '@angular/cdk/scrolling';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\n\nexport class AXListDataSource<T = any> extends DataSource<T> {\n private pageSize = 20;\n private debounceTime = 300;\n private _cachedData: T[] = new Array(this.config.pageSize);\n private fetchedPages = new Set<number>();\n private subscription = new Subscription();\n private initiated = false;\n private source: AXDataListItems;\n\n public dataStream = new BehaviorSubject<T[]>(this._cachedData);\n public loadingState = new BehaviorSubject<boolean>(true);\n public get cachedItems(): T[] {\n return this._cachedData || [];\n }\n\n\n\n /**\n * @ignore\n */\n constructor(public config: { source: AXDataListItems, pageSize?: number, debounceTime?: number }) {\n super();\n this.source = config.source;\n if (config.pageSize)\n this.pageSize = config.pageSize;\n if (config.debounceTime)\n this.debounceTime = config.debounceTime;\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n this.subscription.add(\n collectionViewer.viewChange\n .pipe(debounceTime(this.debounceTime))\n .pipe(distinctUntilChanged())\n .subscribe(range => {\n const startPage = this.getPageForIndex(range.start);\n const endPage = this.getPageForIndex(range.end - 1);\n for (let i = startPage; i <= endPage; i++) {\n this.fetchPage(i);\n }\n }));\n return this.dataStream;\n }\n\n disconnect(): void {\n this.subscription.unsubscribe();\n }\n\n private getPageForIndex(index: number): number {\n return Math.floor(index / this.pageSize);\n }\n\n private fetchPage(page: number) {\n if (this.fetchedPages.has(page)) {\n return;\n }\n this.loadingState.next(true);\n this.fetchedPages.add(page);\n if (Array.isArray(this.source)) {\n this._cachedData = this.source;\n this.dataStream.next(this._cachedData);\n this.loadingState.next(false);\n }\n else if (typeof this.source == 'function') {\n const promise = this.source({\n take: this.pageSize,\n skip: this.pageSize * page\n }) as Promise<AXDataListFetchCallbackResult>;\n promise.then(result => {\n if (!this.initiated) {\n this._cachedData = new Array(result.total);\n this.initiated = true;\n }\n this._cachedData.splice(page * this.pageSize, this.pageSize,\n ...result.items);\n this.dataStream.next(this._cachedData);\n }).finally(() => {\n this.loadingState.next(false);\n });\n }\n }\n}\n\n\n@Component({\n selector: 'ax-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'id',\n 'name',\n 'disabled',\n 'readonly',\n 'valueField',\n 'textField',\n 'disabledField',\n 'multiple'\n ],\n outputs: [\n 'onValueChanged',\n 'disabledChange',\n 'readOnlyChange',\n 'onBlur',\n 'onFocus'\n ],\n hostDirectives: [\n {\n directive: CdkVirtualScrollableElement\n }\n ],\n providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n ],\n})\nexport class AXListComponent extends MXSelectionValueComponent implements OnInit, AfterViewInit {\n\n @Input()\n source: AXDataListItems = [];\n\n @Input()\n itemHeight: number | 'auto' = 40;\n\n @Input()\n itemTemplate: TemplateRef<unknown>\n\n @Input()\n emptyTemplate: TemplateRef<unknown>\n\n @Input()\n loadingTemplate: TemplateRef<unknown>\n\n\n @Input()\n checkbox = true;\n\n protected dataSource: AXListDataSource<unknown>;\n protected isLoading = true;\n protected hasItems = false;\n\n trackByIdx(i) {\n return i;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.dataSource = new AXListDataSource<unknown>({\n source: this.source\n });\n this.dataSource.loadingState.subscribe(data => {\n this.isLoading = data;\n });\n this.dataSource.dataStream.subscribe(data => {\n this.hasItems = data.length > 0;\n });\n }\n\n ngAfterViewInit() {\n super.ngAfterViewInit();\n }\n\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.toggleSelect(item);\n }\n\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n const id = document.activeElement?.closest('li')?.dataset?.id;\n this.toggleSelect(id);\n e.preventDefault();\n e.stopPropagation()\n }\n }\n\n\n private focusItemByNav(sign: -1 | 1): void {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector<HTMLDivElement>(s);\n const itemDiv: HTMLElement =\n document.activeElement?.closest('li') ||\n fn(`li.ax-state-selected`) ||\n fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\n if (next) {\n next.focus();\n }\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string {\n const _class = `ax-default`;\n return this.itemTemplate ? '' : _class;\n }\n\n getItemByKey(key: unknown): unknown {\n const cachedItem = this.dataSource.cachedItems.find(c => c && c[this.valueField] == key);\n return cachedItem || { [this.valueField]: key, [this.textField]: key };\n }\n\n}\n","<ng-content select=\"ax-header\"></ng-content>\n<cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of dataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" [class.ax-state-disabled]=\"isItemDisabled(item)\"\n [attr.tabindex]=\"i\" (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"item\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\" tabindex=\"0\" />\n <span [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n</cdk-virtual-scroll-viewport>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && !hasItems && isLoading===false\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n</ng-container>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<ng-content select=\"ax-footer\"></ng-content>","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXListComponent } from './list.component';\nimport { ScrollingModule } from '@angular/cdk/scrolling';\n\nconst COMPONENT = [AXListComponent];\nconst MODULES = [CommonModule, ScrollingModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXListModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-list.mjs","sources":["../../../../libs/components/list/src/lib/list.component.ts","../../../../libs/components/list/src/lib/list.component.html","../../../../libs/components/list/src/lib/list.module.ts","../../../../libs/components/list/src/acorex-components-list.ts"],"sourcesContent":["import {\n AXComponent,\n AXDateSource,\n AXEvent,\n AXFocusableComponent,\n AXValuableComponent,\n MXSelectionValueComponent,\n convertArrayToDataSource,\n} from '@acorex/components/common';\nimport { CollectionViewer, DataSource } from '@angular/cdk/collections';\nimport { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';\nimport {\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n OnInit,\n Output,\n TemplateRef,\n ViewChild,\n ViewEncapsulation,\n forwardRef,\n} from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { BehaviorSubject, Observable, Subscription, debounceTime, distinctUntilChanged } from 'rxjs';\n\nexport class AXListDataSource<T = unknown> extends DataSource<T> {\n private debounceTime = 300;\n private subscription = new Subscription();\n public source: AXDateSource<T>;\n private dataStream: BehaviorSubject<T[]>;\n\n /**\n * @ignore\n */\n constructor(private config: { source: AXDateSource<T>; debounceTime?: number }) {\n super();\n this.source = config.source;\n if (config.debounceTime) this.debounceTime = config.debounceTime;\n //\n console.log(this.config.source.cachedItems);\n this.dataStream = new BehaviorSubject<T[]>(this.config.source.cachedItems);\n this.source.onChanged.subscribe((data) => {\n this.dataStream.next(data.cachedItems);\n });\n }\n\n connect(collectionViewer: CollectionViewer): Observable<T[]> {\n this.subscription.add(\n collectionViewer.viewChange\n .pipe(debounceTime(this.debounceTime))\n .pipe(distinctUntilChanged())\n .subscribe((range) => {\n const startPage = this.getPageForIndex(range.start);\n const endPage = this.getPageForIndex(range.end - 1);\n for (let i = startPage; i <= endPage; i++) {\n this.source.setPage(i);\n }\n }),\n );\n return this.dataStream;\n }\n\n disconnect(): void {\n this.subscription.unsubscribe();\n }\n\n private getPageForIndex(index: number): number {\n return Math.floor(index / this.source.config.pageSize);\n }\n}\n\nexport interface AXListScrollIndexChanged extends AXEvent {\n index: number;\n}\n\n@Component({\n selector: 'ax-list',\n templateUrl: './list.component.html',\n styleUrls: ['./list.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n inputs: [\n 'id',\n 'name',\n 'disabled',\n 'readonly',\n 'valueField',\n 'textField',\n 'disabledField',\n 'multiple',\n 'selectionMode',\n ],\n outputs: ['onValueChanged', 'disabledChange', 'readOnlyChange', 'onBlur', 'onFocus'],\n providers: [\n { provide: AXComponent, useExisting: AXListComponent },\n { provide: AXFocusableComponent, useExisting: AXListComponent },\n { provide: AXValuableComponent, useExisting: AXListComponent },\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => AXListComponent),\n multi: true,\n },\n ],\n})\nexport class AXListComponent extends MXSelectionValueComponent implements OnInit {\n @Input()\n dataSource: AXDateSource<unknown> = convertArrayToDataSource([]);\n\n @Input()\n itemHeight: number | 'auto' = 40;\n\n @Input()\n itemTemplate: TemplateRef<unknown>;\n\n @Input()\n emptyTemplate: TemplateRef<unknown>;\n\n @Input()\n loadingTemplate: TemplateRef<unknown>;\n\n @Output()\n onDataLoad: EventEmitter<unknown[]> = new EventEmitter<unknown[]>();\n\n @Output()\n onScrolledIndexChanged: EventEmitter<AXListScrollIndexChanged> =\n new EventEmitter<AXListScrollIndexChanged>();\n\n @Input()\n checkbox = true;\n\n protected listDataSource: AXListDataSource<unknown>;\n protected isLoading = true;\n protected hasItems = false;\n private lastIndex = 0;\n private postponeFocus = false;\n\n @ViewChild(CdkVirtualScrollViewport)\n viewport: CdkVirtualScrollViewport;\n\n trackByIdx(i) {\n return i;\n }\n\n ngOnInit() {\n super.ngOnInit();\n this.listDataSource = new AXListDataSource<unknown>({\n source: this.dataSource,\n });\n this.listDataSource.source.onLoadingChanged.subscribe((data) => {\n this.isLoading = data;\n });\n this.listDataSource.source.onChanged.subscribe((data) => {\n this.hasItems = data.totalCount > 0;\n this.onDataLoad.emit(data.items);\n setTimeout(() => {\n this.render();\n }, 100);\n });\n }\n\n _handleOnItemClick(e: MouseEvent, item: any) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n if (this.isItemDisabled(item)) {\n return;\n }\n this.toggleSelect(item);\n }\n\n @HostListener('keydown', ['$event'])\n _handleKeydown(e: KeyboardEvent) {\n if ((e.code === 'ArrowDown' || e.code === 'ArrowUp') && this.hasItems) {\n this.focusItemByNav(e.key === 'ArrowDown' ? 1 : -1);\n e.preventDefault();\n }\n if ((e.code === 'Space' || e.code === 'Enter') && this.hasItems) {\n if (this.readonly || this.disabled) {\n e.preventDefault();\n e.stopPropagation();\n return;\n }\n const id = document.activeElement?.closest('li')?.dataset?.id;\n this.toggleSelect(id);\n e.preventDefault();\n e.stopPropagation();\n }\n }\n\n private focusItemByNav(sign: -1 | 1): void {\n const list = this.getHostElement().querySelector('ul');\n const fn = (s) => list.querySelector<HTMLDivElement>(s);\n const itemDiv: HTMLElement =\n document.activeElement?.closest('li') || fn(`li.ax-state-selected`) || fn(`li`);\n const next = (sign == 1 ? itemDiv.nextElementSibling : itemDiv.previousElementSibling) as HTMLElement;\n if (next) {\n next.focus();\n }\n }\n\n protected _handleOnscrolledIndexChange(e: number) {\n this.lastIndex = e;\n this.onScrolledIndexChanged.emit({\n component: this,\n index: this.lastIndex,\n isUserInteraction: true,\n });\n }\n\n /**\n * @ignore\n */\n @HostBinding('class')\n get __hostClass(): string {\n const _class = `ax-solid`;\n return this.itemTemplate ? '' : _class;\n }\n\n getItemByKey(key: unknown): Promise<unknown> | unknown {\n return this.dataSource.find(key);\n }\n\n public render() {\n this.viewport.checkViewportSize();\n this.viewport.scrollToIndex(this.lastIndex);\n if (this.postponeFocus) {\n this.postponeFocus = false;\n this.focus();\n }\n }\n\n public scrollToIndex(index: number) {\n this.viewport.scrollToIndex(index);\n }\n\n override focus(): void {\n const list = this.getHostElement().querySelector('ul');\n const focusable =\n list.querySelector<HTMLElement>('li.ax-state-selected') ??\n list.querySelector<HTMLElement>('li.list-item');\n if (focusable) {\n focusable.focus();\n } else {\n this.postponeFocus = true;\n }\n }\n}\n","<div class=\"list-container\" cdkVirtualScrollingElement>\n <ng-content select=\"ax-header\"></ng-content>\n <cdk-virtual-scroll-viewport [itemSize]=\"itemHeight\" [style.--item-height]=\"itemHeight+'px'\"\n class=\"ax-list-items-container\" (scrolledIndexChange)=\"_handleOnscrolledIndexChange($event)\">\n <ul>\n <!-- Item Template -->\n <ng-container *cdkVirtualFor=\"let item of listDataSource;let i = index; trackBy: trackByIdx\">\n <ng-container *ngIf=\"item;else loadingTpl\">\n <li [class.ax-state-selected]=\"isItemSelected(item)\" class=\"list-item\"\n [class.ax-state-disabled]=\"isItemDisabled(item)\" [attr.tabindex]=\"i\"\n (click)=\"_handleOnItemClick($event, item)\" [attr.data-id]=\"getValue(item)\">\n <!-- Custom Item Template -->\n <ng-container *ngIf=\"itemTemplate;else defaultItemTpl\">\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: { data:item } }\">\n </ng-container>\n </ng-container>\n <!-- Default Item Template -->\n <ng-template #defaultItemTpl>\n <ng-container *ngIf=\"item;else loadingTpl\">\n <div class=\"ax-label-container\">\n <input class=\"ax-checkbox\" *ngIf=\"multiple && checkbox\" type=\"checkbox\"\n [checked]=\"isItemSelected(item)\" [disabled]=\"isItemDisabled(item)\"\n tabindex=\"0\" />\n <span\n [class.ax-checkbox-label]=\"multiple && checkbox\">{{getDisplayText(item)}}</span>\n </div>\n <i class=\"ax-icon ax-icon-done ax-selected-icon\" *ngIf=\"isItemSelected(item) \"></i>\n </ng-container>\n </ng-template>\n </li>\n </ng-container>\n </ng-container>\n </ul>\n </cdk-virtual-scroll-viewport>\n <ng-content select=\"ax-footer\"></ng-content>\n</div>\n<!-- Loading Template -->\n<ng-template #loadingTpl>\n <!-- Custom Loading Template -->\n <ng-container *ngIf=\"loadingTemplate;else defaultLoadingTpl\">\n <ng-container *ngTemplateOutlet=\"loadingTemplate\">\n </ng-container>\n </ng-container>\n <!-- Default Loading Template -->\n <ng-template #defaultLoadingTpl>\n <li>Loading...</li>\n </ng-template>\n</ng-template>\n<!-- Empty Template -->\n<ng-container *ngIf=\"emptyTemplate && hasItems===false && isLoading===false\">\n <div class=\"empty-container\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"></ng-container>\n </div>\n</ng-container>","import { ScrollingModule } from '@angular/cdk/scrolling';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXListComponent } from './list.component';\n\nconst COMPONENT = [AXListComponent];\nconst MODULES = [CommonModule, ScrollingModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXListModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;;AA4BM,MAAO,gBAA8B,SAAQ,UAAa,CAAA;AAM9D;;AAEG;AACH,IAAA,WAAA,CAAoB,MAA0D,EAAA;AAC5E,QAAA,KAAK,EAAE,CAAC;QADU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAoD;QARtE,IAAY,CAAA,YAAA,GAAG,GAAG,CAAC;AACnB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAE,CAAC;AASxC,QAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;QAC5B,IAAI,MAAM,CAAC,YAAY;AAAE,YAAA,IAAI,CAAC,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;;QAEjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;AAC5C,QAAA,IAAI,CAAC,UAAU,GAAG,IAAI,eAAe,CAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC;QAC3E,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YACvC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AACzC,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,OAAO,CAAC,gBAAkC,EAAA;AACxC,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,CACnB,gBAAgB,CAAC,UAAU;AACxB,aAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;aACrC,IAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,aAAA,SAAS,CAAC,CAAC,KAAK,KAAI;YACnB,MAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;AACpD,YAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACpD,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,IAAI,OAAO,EAAE,CAAC,EAAE,EAAE;AACzC,gBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACxB,aAAA;SACF,CAAC,CACL,CAAC;QACF,OAAO,IAAI,CAAC,UAAU,CAAC;KACxB;IAED,UAAU,GAAA;AACR,QAAA,IAAI,CAAC,YAAY,CAAC,WAAW,EAAE,CAAC;KACjC;AAEO,IAAA,eAAe,CAAC,KAAa,EAAA;AACnC,QAAA,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KACxD;AACF,CAAA;AAmCK,MAAO,eAAgB,SAAQ,yBAAyB,CAAA;AA7B9D,IAAA,WAAA,GAAA;;AA+BE,QAAA,IAAA,CAAA,UAAU,GAA0B,wBAAwB,CAAC,EAAE,CAAC,CAAC;QAGjE,IAAU,CAAA,UAAA,GAAoB,EAAE,CAAC;AAYjC,QAAA,IAAA,CAAA,UAAU,GAA4B,IAAI,YAAY,EAAa,CAAC;AAGpE,QAAA,IAAA,CAAA,sBAAsB,GACpB,IAAI,YAAY,EAA4B,CAAC;QAG/C,IAAQ,CAAA,QAAA,GAAG,IAAI,CAAC;QAGN,IAAS,CAAA,SAAA,GAAG,IAAI,CAAC;QACjB,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;QACnB,IAAS,CAAA,SAAA,GAAG,CAAC,CAAC;QACd,IAAa,CAAA,aAAA,GAAG,KAAK,CAAC;AAkH/B,KAAA;AA7GC,IAAA,UAAU,CAAC,CAAC,EAAA;AACV,QAAA,OAAO,CAAC,CAAC;KACV;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;AACjB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,gBAAgB,CAAU;YAClD,MAAM,EAAE,IAAI,CAAC,UAAU;AACxB,SAAA,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;AAC7D,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACxB,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,IAAI,KAAI;YACtD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC;YACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACjC,UAAU,CAAC,MAAK;gBACd,IAAI,CAAC,MAAM,EAAE,CAAC;aACf,EAAE,GAAG,CAAC,CAAC;AACV,SAAC,CAAC,CAAC;KACJ;IAED,kBAAkB,CAAC,CAAa,EAAE,IAAS,EAAA;AACzC,QAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;YACpB,OAAO;AACR,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;YAC7B,OAAO;AACR,SAAA;AACD,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;KACzB;AAGD,IAAA,cAAc,CAAC,CAAgB,EAAA;AAC7B,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,CAAC,CAAC,IAAI,KAAK,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE;AACrE,YAAA,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,GAAG,KAAK,WAAW,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;YACpD,CAAC,CAAC,cAAc,EAAE,CAAC;AACpB,SAAA;AACD,QAAA,IAAI,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,IAAI,KAAK,OAAO,KAAK,IAAI,CAAC,QAAQ,EAAE;AAC/D,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,EAAE;gBAClC,CAAC,CAAC,cAAc,EAAE,CAAC;gBACnB,CAAC,CAAC,eAAe,EAAE,CAAC;gBACpB,OAAO;AACR,aAAA;AACD,YAAA,MAAM,EAAE,GAAG,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC;AAC9D,YAAA,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;YACtB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,CAAC,CAAC,eAAe,EAAE,CAAC;AACrB,SAAA;KACF;AAEO,IAAA,cAAc,CAAC,IAAY,EAAA;QACjC,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,IAAI,CAAC,aAAa,CAAiB,CAAC,CAAC,CAAC;QACxD,MAAM,OAAO,GACX,QAAQ,CAAC,aAAa,EAAE,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,CAAC,CAAA,EAAA,CAAI,CAAC,CAAC;AAClF,QAAA,MAAM,IAAI,IAAI,IAAI,IAAI,CAAC,GAAG,OAAO,CAAC,kBAAkB,GAAG,OAAO,CAAC,sBAAsB,CAAgB,CAAC;AACtG,QAAA,IAAI,IAAI,EAAE;YACR,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAES,IAAA,4BAA4B,CAAC,CAAS,EAAA;AAC9C,QAAA,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC;AACnB,QAAA,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC;AAC/B,YAAA,SAAS,EAAE,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,SAAS;AACrB,YAAA,iBAAiB,EAAE,IAAI;AACxB,SAAA,CAAC,CAAC;KACJ;AAED;;AAEG;AACH,IAAA,IACI,WAAW,GAAA;QACb,MAAM,MAAM,GAAG,CAAA,QAAA,CAAU,CAAC;QAC1B,OAAO,IAAI,CAAC,YAAY,GAAG,EAAE,GAAG,MAAM,CAAC;KACxC;AAED,IAAA,YAAY,CAAC,GAAY,EAAA;QACvB,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAClC;IAEM,MAAM,GAAA;AACX,QAAA,IAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,CAAC;QAClC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,IAAI,CAAC,aAAa,EAAE;AACtB,YAAA,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;YAC3B,IAAI,CAAC,KAAK,EAAE,CAAC;AACd,SAAA;KACF;AAEM,IAAA,aAAa,CAAC,KAAa,EAAA;AAChC,QAAA,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;KACpC;IAEQ,KAAK,GAAA;QACZ,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,EAAE,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AACvD,QAAA,MAAM,SAAS,GACb,IAAI,CAAC,aAAa,CAAc,sBAAsB,CAAC;AACvD,YAAA,IAAI,CAAC,aAAa,CAAc,cAAc,CAAC,CAAC;AAClD,QAAA,IAAI,SAAS,EAAE;YACb,SAAS,CAAC,KAAK,EAAE,CAAC;AACnB,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC3B,SAAA;KACF;8GA/IU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAXf,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,EAAA,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,aAAA,EAAA,eAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,UAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,aAAA,EAAA,eAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,SAAA,EAAA,wBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,eAAe,EAAE;AACtD,YAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,eAAe,EAAE;AAC/D,YAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,eAAe,EAAE;AAC9D,YAAA;AACE,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,eAAe,CAAC;AAC9C,gBAAA,KAAK,EAAE,IAAI;AACZ,aAAA;SACF,EAkCU,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,wBAAwB,uEC3IrC,+7FAqDe,EAAA,MAAA,EAAA,CAAA,y8DAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,uCAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,aAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,MAAA,EAAA,CAAA,iBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,gCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,6BAAA,EAAA,MAAA,EAAA,CAAA,aAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,8BAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FDsDF,eAAe,EAAA,UAAA,EAAA,CAAA;kBA7B3B,SAAS;+BACE,SAAS,EAAA,eAAA,EAGF,uBAAuB,CAAC,MAAM,iBAChC,iBAAiB,CAAC,IAAI,EAC7B,MAAA,EAAA;wBACN,IAAI;wBACJ,MAAM;wBACN,UAAU;wBACV,UAAU;wBACV,YAAY;wBACZ,WAAW;wBACX,eAAe;wBACf,UAAU;wBACV,eAAe;qBAChB,EACQ,OAAA,EAAA,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,QAAQ,EAAE,SAAS,CAAC,EACzE,SAAA,EAAA;AACT,wBAAA,EAAE,OAAO,EAAE,WAAW,EAAE,WAAW,iBAAiB,EAAE;AACtD,wBAAA,EAAE,OAAO,EAAE,oBAAoB,EAAE,WAAW,iBAAiB,EAAE;AAC/D,wBAAA,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,iBAAiB,EAAE;AAC9D,wBAAA;AACE,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,qBAAqB,CAAC;AAC9C,4BAAA,KAAK,EAAE,IAAI;AACZ,yBAAA;AACF,qBAAA,EAAA,QAAA,EAAA,+7FAAA,EAAA,MAAA,EAAA,CAAA,y8DAAA,CAAA,EAAA,CAAA;8BAID,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,KAAK;gBAIN,YAAY,EAAA,CAAA;sBADX,KAAK;gBAIN,aAAa,EAAA,CAAA;sBADZ,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,KAAK;gBAIN,UAAU,EAAA,CAAA;sBADT,MAAM;gBAIP,sBAAsB,EAAA,CAAA;sBADrB,MAAM;gBAKP,QAAQ,EAAA,CAAA;sBADP,KAAK;gBAUN,QAAQ,EAAA,CAAA;sBADP,SAAS;uBAAC,wBAAwB,CAAA;gBAqCnC,cAAc,EAAA,CAAA;sBADb,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAA;gBA2C/B,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;AEpNtB,MAAM,SAAS,GAAG,CAAC,eAAe,CAAC,CAAC;AACpC,MAAM,OAAO,GAAG,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC;MAQnC,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBATN,eAAe,CAAA,EAAA,OAAA,EAAA,CACjB,YAAY,EAAE,eAAe,aAD3B,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;AASrB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAJV,OAAO,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIT,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,GAAG,OAAO,CAAC;AACrB,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;ACbD;;AAEG;;;;"}
@@ -2,9 +2,9 @@ import * as i0 from '@angular/core';
2
2
  import { Component, InjectionToken, inject, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, Injectable, Directive, NgModule } from '@angular/core';
3
3
  import * as i1 from '@angular/common';
4
4
  import { CommonModule } from '@angular/common';
5
+ import { MXBaseComponent } from '@acorex/components/common';
5
6
  import * as i1$1 from '@angular/cdk/portal';
6
7
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
7
- import { MXBaseComponent } from '@acorex/components/common';
8
8
  import { Dialog, DialogModule } from '@angular/cdk/dialog';
9
9
  import { asyncScheduler, BehaviorSubject } from 'rxjs';
10
10
  import { observeOn, finalize } from 'rxjs/operators';
@@ -23,10 +23,12 @@ class AXLoadingSpinnerComponent {
23
23
  x="0px"
24
24
  y="0px"
25
25
  viewBox="0 0 50 50"
26
- xml:space="preserve">
26
+ xml:space="preserve"
27
+ >
27
28
  <path
28
29
  fill="current"
29
- d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z">
30
+ d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z"
31
+ >
30
32
  <animateTransform
31
33
  attributeType="xml"
32
34
  attributeName="transform"
@@ -34,7 +36,8 @@ class AXLoadingSpinnerComponent {
34
36
  from="0 25 25"
35
37
  to="360 25 25"
36
38
  dur="0.6s"
37
- repeatCount="indefinite" />
39
+ repeatCount="indefinite"
40
+ />
38
41
  </path>
39
42
  </svg>
40
43
  <span *ngIf="text"> {{ text }} </span>
@@ -55,10 +58,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
55
58
  x="0px"
56
59
  y="0px"
57
60
  viewBox="0 0 50 50"
58
- xml:space="preserve">
61
+ xml:space="preserve"
62
+ >
59
63
  <path
60
64
  fill="current"
61
- d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z">
65
+ d="M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z"
66
+ >
62
67
  <animateTransform
63
68
  attributeType="xml"
64
69
  attributeName="transform"
@@ -66,7 +71,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImpor
66
71
  from="0 25 25"
67
72
  to="360 25 25"
68
73
  dur="0.6s"
69
- repeatCount="indefinite" />
74
+ repeatCount="indefinite"
75
+ />
70
76
  </path>
71
77
  </svg>
72
78
  <span *ngIf="text"> {{ text }} </span>
@@ -79,7 +85,7 @@ const AX_LOADING_CONFIG = new InjectionToken('AX_LOADING_CONFIG', {
79
85
  factory: () => AXLoadingDefaultConfig,
80
86
  });
81
87
  const AXLoadingDefaultConfig = {
82
- spinner: AXLoadingSpinnerComponent
88
+ spinner: AXLoadingSpinnerComponent,
83
89
  };
84
90
  function loadingConfig(config = {}) {
85
91
  const result = {
@@ -102,9 +108,7 @@ class AXLoadingComponent extends MXBaseComponent {
102
108
  set visible(v) {
103
109
  if (v != this._visible) {
104
110
  this._visible = v;
105
- v
106
- ? this.getHostElement().classList.remove('ax-hide')
107
- : this.getHostElement().classList.add('ax-hide');
111
+ v ? this.getHostElement().classList.remove('ax-hide') : this.getHostElement().classList.add('ax-hide');
108
112
  this.visibleChange.emit(v);
109
113
  }
110
114
  }
@@ -121,20 +125,14 @@ class AXLoadingComponent extends MXBaseComponent {
121
125
  }
122
126
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
123
127
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.9", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: `
124
- <ng-template
125
- [cdkPortalOutlet]="_selectedPortal"
126
- (attached)="_handleAttched($event)"
127
- ></ng-template>
128
- `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background:rgba(var(--ax-color-default));opacity:.85!important}.ax-loading-pane{width:100%!important;height:100%!important;inset:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:none}\n"], dependencies: [{ kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
128
+ <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template>
129
+ `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background:rgba(var(--ax-color-on-surface));opacity:.85!important}.ax-loading-pane{width:100%!important;height:100%!important;inset:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:none}\n"], dependencies: [{ kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
129
130
  }
130
131
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.9", ngImport: i0, type: AXLoadingComponent, decorators: [{
131
132
  type: Component,
132
133
  args: [{ selector: 'ax-loading', template: `
133
- <ng-template
134
- [cdkPortalOutlet]="_selectedPortal"
135
- (attached)="_handleAttched($event)"
136
- ></ng-template>
137
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background:rgba(var(--ax-color-default));opacity:.85!important}.ax-loading-pane{width:100%!important;height:100%!important;inset:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:none}\n"] }]
134
+ <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template>
135
+ `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}ax-loading ax-loading-spinner{display:flex;gap:.75rem}.ax-loading-overlay-backdrop{background:rgba(var(--ax-color-on-surface));opacity:.85!important}.ax-loading-pane{width:100%!important;height:100%!important;inset:0}.ax-loading-pane .cdk-dialog-container{display:flex!important;align-items:center;justify-content:center}.ax-loading-pane .cdk-dialog-container:focus,.ax-loading-pane .cdk-dialog-container:focus-visible,.ax-loading-pane .cdk-dialog-container:focus-within{outline:none}\n"] }]
138
136
  }], propDecorators: { visibleChange: [{
139
137
  type: Output
140
138
  }], visible: [{