@acorex/components 7.2.8 → 7.3.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (464) hide show
  1. package/action-sheet/index.d.ts +1 -1
  2. package/action-sheet/lib/action-sheet.class.d.ts +31 -0
  3. package/action-sheet/lib/action-sheet.component.d.ts +12 -13
  4. package/action-sheet/lib/action-sheet.module.d.ts +2 -1
  5. package/action-sheet/lib/action-sheet.service.d.ts +4 -8
  6. package/alert/lib/alert.component.d.ts +10 -10
  7. package/button/lib/button-group.component.d.ts +6 -6
  8. package/button/lib/button-item.class.d.ts +6 -2
  9. package/button/lib/button-item.component.d.ts +6 -6
  10. package/button/lib/button.component.d.ts +5 -3
  11. package/calendar/lib/calendar.component.d.ts +1 -1
  12. package/check-box/README.md +3 -0
  13. package/check-box/index.d.ts +2 -0
  14. package/check-box/lib/check-box.component.d.ts +14 -0
  15. package/{checkbox/lib/checkbox.module.d.ts → check-box/lib/check-box.module.d.ts} +1 -1
  16. package/color-palette/lib/color-palette-input.component.d.ts +1 -1
  17. package/color-palette/lib/color-palette.module.d.ts +1 -1
  18. package/color-picker/lib/color-picker.component.d.ts +17 -24
  19. package/color-picker/lib/color-picker.module.d.ts +1 -1
  20. package/common/index.d.ts +3 -3
  21. package/common/lib/classes/components.class.d.ts +12 -3
  22. package/common/lib/classes/datalist.class.d.ts +11 -0
  23. package/common/lib/common.module.d.ts +3 -4
  24. package/common/lib/components/base-component.class.d.ts +9 -3
  25. package/common/lib/components/input-base-value-component.class.d.ts +1 -0
  26. package/common/lib/components/value-component.class.d.ts +9 -2
  27. package/common/lib/directives/auto-focus.directive.d.ts +6 -5
  28. package/common/lib/directives/delayed-value-changed.directive.d.ts +17 -0
  29. package/common/lib/services/dom.service.d.ts +6 -0
  30. package/data-pager/lib/data-pager-base.component.d.ts +18 -13
  31. package/data-pager/lib/data-pager-info.component.d.ts +3 -9
  32. package/data-pager/lib/data-pager-input-selector.component.d.ts +5 -9
  33. package/data-pager/lib/data-pager-next-buttons.components.d.ts +2 -8
  34. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +2 -7
  35. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +2 -6
  36. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +2 -7
  37. package/data-pager/lib/data-pager.component.d.ts +17 -18
  38. package/data-pager/lib/data-pager.module.d.ts +6 -5
  39. package/data-table/index.d.ts +0 -1
  40. package/data-table/lib/data-column.directive.d.ts +3 -8
  41. package/data-table/lib/data-table.component.d.ts +6 -7
  42. package/data-table/lib/data-table.module.d.ts +6 -7
  43. package/date-picker/lib/datepicker.component.d.ts +7 -6
  44. package/date-picker/lib/datepicker.module.d.ts +1 -1
  45. package/decorators/index.d.ts +2 -12
  46. package/decorators/lib/clear-button.component.d.ts +13 -0
  47. package/decorators/lib/close-button.component.d.ts +5 -8
  48. package/decorators/lib/decorators.module.d.ts +6 -15
  49. package/decorators/lib/generic-content.component.d.ts +6 -0
  50. package/decorators/lib/icon.component.d.ts +2 -4
  51. package/dialog/lib/dialog.class.d.ts +11 -3
  52. package/dialog/lib/dialog.component.d.ts +15 -11
  53. package/dialog/lib/dialog.module.d.ts +4 -3
  54. package/dialog/lib/dialog.service.d.ts +4 -12
  55. package/drawer/lib/drawer-container.component.d.ts +2 -5
  56. package/drawer/lib/drawer.component.d.ts +6 -7
  57. package/esm2022/action-sheet/index.mjs +2 -2
  58. package/esm2022/action-sheet/lib/action-sheet.class.mjs +2 -0
  59. package/esm2022/action-sheet/lib/action-sheet.component.mjs +50 -38
  60. package/esm2022/action-sheet/lib/action-sheet.module.mjs +11 -7
  61. package/esm2022/action-sheet/lib/action-sheet.service.mjs +32 -72
  62. package/esm2022/alert/lib/alert.component.mjs +14 -16
  63. package/esm2022/alert/lib/alert.module.mjs +7 -7
  64. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  65. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  66. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  67. package/esm2022/badge/lib/badge.component.mjs +6 -6
  68. package/esm2022/badge/lib/badge.module.mjs +4 -4
  69. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  70. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  71. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  72. package/esm2022/button/lib/button-group.component.mjs +3 -3
  73. package/esm2022/button/lib/button-item.class.mjs +1 -1
  74. package/esm2022/button/lib/button-item.component.mjs +3 -3
  75. package/esm2022/button/lib/button.component.mjs +35 -17
  76. package/esm2022/button/lib/button.module.mjs +4 -4
  77. package/esm2022/calendar/lib/calendar-range.component.mjs +5 -5
  78. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  79. package/esm2022/calendar/lib/calendar.component.mjs +7 -5
  80. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  81. package/esm2022/check-box/acorex-components-check-box.mjs +5 -0
  82. package/esm2022/check-box/index.mjs +3 -0
  83. package/esm2022/check-box/lib/check-box.component.mjs +76 -0
  84. package/esm2022/check-box/lib/check-box.module.mjs +21 -0
  85. package/esm2022/chips/lib/chips.component.mjs +3 -3
  86. package/esm2022/chips/lib/chips.module.mjs +4 -4
  87. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  88. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  89. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  90. package/esm2022/color-palette/lib/color-palette-input.component.mjs +18 -12
  91. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +3 -3
  92. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +3 -3
  93. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +3 -3
  94. package/esm2022/color-palette/lib/color-palette.class.mjs +6 -6
  95. package/esm2022/color-palette/lib/color-palette.component.mjs +5 -5
  96. package/esm2022/color-palette/lib/color-palette.module.mjs +6 -6
  97. package/esm2022/color-picker/lib/color-picker.component.mjs +12 -6
  98. package/esm2022/color-picker/lib/color-picker.module.mjs +6 -6
  99. package/esm2022/common/index.mjs +4 -4
  100. package/esm2022/common/lib/classes/components.class.mjs +26 -19
  101. package/esm2022/common/lib/classes/datalist.class.mjs +3 -0
  102. package/esm2022/common/lib/common.module.mjs +5 -10
  103. package/esm2022/common/lib/components/base-component.class.mjs +21 -11
  104. package/esm2022/common/lib/components/input-base-value-component.class.mjs +4 -4
  105. package/esm2022/common/lib/components/value-component.class.mjs +18 -10
  106. package/esm2022/common/lib/directives/auto-focus.directive.mjs +18 -11
  107. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +49 -0
  108. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  109. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  110. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  111. package/esm2022/common/lib/services/dom.service.mjs +16 -0
  112. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  113. package/esm2022/context-menu/lib/context-menu.component.mjs +5 -5
  114. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  115. package/esm2022/data-pager/lib/data-pager-base.component.mjs +35 -21
  116. package/esm2022/data-pager/lib/data-pager-info.component.mjs +13 -26
  117. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +27 -31
  118. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +19 -33
  119. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +31 -38
  120. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +22 -31
  121. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +19 -29
  122. package/esm2022/data-pager/lib/data-pager.component.mjs +66 -38
  123. package/esm2022/data-pager/lib/data-pager.module.mjs +8 -7
  124. package/esm2022/data-table/index.mjs +1 -2
  125. package/esm2022/data-table/lib/data-column.directive.mjs +7 -22
  126. package/esm2022/data-table/lib/data-table.component.mjs +30 -30
  127. package/esm2022/data-table/lib/data-table.module.mjs +6 -7
  128. package/esm2022/date-picker/lib/datepicker.component.mjs +19 -16
  129. package/esm2022/date-picker/lib/datepicker.module.mjs +6 -6
  130. package/esm2022/decorators/index.mjs +3 -13
  131. package/esm2022/decorators/lib/clear-button.component.mjs +58 -0
  132. package/esm2022/decorators/lib/close-button.component.mjs +16 -20
  133. package/esm2022/decorators/lib/decorators.module.mjs +13 -49
  134. package/esm2022/decorators/lib/generic-content.component.mjs +17 -0
  135. package/esm2022/decorators/lib/icon.component.mjs +8 -11
  136. package/esm2022/dialog/lib/dialog.class.mjs +1 -1
  137. package/esm2022/dialog/lib/dialog.component.mjs +41 -23
  138. package/esm2022/dialog/lib/dialog.module.mjs +10 -8
  139. package/esm2022/dialog/lib/dialog.service.mjs +41 -49
  140. package/esm2022/drawer/lib/drawer-container.component.mjs +9 -13
  141. package/esm2022/drawer/lib/drawer.component.mjs +22 -27
  142. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  143. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +5 -5
  144. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  145. package/esm2022/form/lib/form-field.component.mjs +9 -12
  146. package/esm2022/form/lib/form.component.mjs +38 -42
  147. package/esm2022/form/lib/form.module.mjs +4 -4
  148. package/esm2022/form/lib/validation-rule.widget.mjs +24 -15
  149. package/esm2022/form/lib/validation-summary.component.mjs +15 -14
  150. package/esm2022/image/lib/image.component.mjs +13 -17
  151. package/esm2022/image/lib/image.module.mjs +4 -4
  152. package/esm2022/label/lib/label.component.mjs +18 -18
  153. package/esm2022/label/lib/label.module.mjs +4 -4
  154. package/esm2022/loading/index.mjs +2 -1
  155. package/esm2022/loading/lib/loading-spinner.component.mjs +4 -5
  156. package/esm2022/loading/lib/loading.component.mjs +22 -25
  157. package/esm2022/loading/lib/loading.config.mjs +17 -0
  158. package/esm2022/loading/lib/loading.directive.mjs +20 -51
  159. package/esm2022/loading/lib/loading.module.mjs +7 -18
  160. package/esm2022/loading/lib/loading.service.mjs +36 -60
  161. package/esm2022/menu/lib/menu.component.mjs +26 -19
  162. package/esm2022/menu/lib/menu.module.mjs +4 -4
  163. package/esm2022/mixin/index.mjs +1 -2
  164. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  165. package/esm2022/mixin/lib/color-look-mixing.class.mjs +1 -1
  166. package/esm2022/notification/index.mjs +2 -1
  167. package/esm2022/notification/lib/notification.class.mjs +1 -1
  168. package/esm2022/notification/lib/notification.component.mjs +51 -35
  169. package/esm2022/notification/lib/notification.config.mjs +20 -0
  170. package/esm2022/notification/lib/notification.module.mjs +11 -7
  171. package/esm2022/notification/lib/notification.service.mjs +46 -59
  172. package/esm2022/number-box/lib/number-box.component.mjs +101 -90
  173. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  174. package/esm2022/otp/lib/otp.component.mjs +38 -48
  175. package/esm2022/otp/lib/otp.module.mjs +4 -4
  176. package/esm2022/page/lib/base-page.class.mjs +22 -23
  177. package/esm2022/page/lib/page.component.mjs +13 -13
  178. package/esm2022/page/lib/page.module.mjs +4 -4
  179. package/esm2022/password-box/lib/password-box.component.mjs +37 -25
  180. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  181. package/esm2022/popover/lib/dropdown-component.class.mjs +3 -3
  182. package/esm2022/popover/lib/popover.component.mjs +62 -23
  183. package/esm2022/popover/lib/popover.module.mjs +4 -4
  184. package/esm2022/popup/index.mjs +2 -1
  185. package/esm2022/popup/lib/popup.component.mjs +49 -69
  186. package/esm2022/popup/lib/popup.interface.mjs +2 -0
  187. package/esm2022/popup/lib/popup.module.mjs +27 -12
  188. package/esm2022/popup/lib/popup.service.mjs +31 -86
  189. package/esm2022/progress-bar/lib/progress-bar.component.mjs +9 -13
  190. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  191. package/esm2022/radio/lib/radio.component.mjs +4 -4
  192. package/esm2022/radio/lib/radio.module.mjs +4 -4
  193. package/esm2022/range-slider/lib/range-slider.component.mjs +3 -3
  194. package/esm2022/range-slider/lib/range-slider.module.mjs +4 -4
  195. package/esm2022/result/lib/result.component.mjs +3 -3
  196. package/esm2022/result/lib/result.module.mjs +4 -4
  197. package/esm2022/scheduler/acorex-components-scheduler.mjs +5 -0
  198. package/esm2022/scheduler/index.mjs +4 -0
  199. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +45 -0
  200. package/esm2022/scheduler/lib/scheduler.component.mjs +30 -0
  201. package/esm2022/scheduler/lib/scheduler.module.mjs +26 -0
  202. package/esm2022/search-box/lib/search-box.component.mjs +35 -44
  203. package/esm2022/search-box/lib/search-box.module.mjs +28 -7
  204. package/esm2022/select-box/lib/select-box.component.mjs +11 -9
  205. package/esm2022/select-box/lib/select-box.module.mjs +7 -7
  206. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  207. package/esm2022/selection-list/lib/selection-list.module.mjs +6 -6
  208. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  209. package/esm2022/switch/lib/switch.component.mjs +4 -4
  210. package/esm2022/switch/lib/switch.module.mjs +4 -4
  211. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  212. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  213. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  214. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  215. package/esm2022/tag/lib/tag.component.mjs +3 -3
  216. package/esm2022/tag/lib/tag.module.mjs +4 -4
  217. package/esm2022/text-area/acorex-components-text-area.mjs +5 -0
  218. package/esm2022/text-area/index.mjs +3 -0
  219. package/esm2022/text-area/lib/text-area.component.mjs +36 -0
  220. package/esm2022/text-area/lib/text-area.module.mjs +19 -0
  221. package/esm2022/{checkbox/acorex-components-checkbox.mjs → text-box/acorex-components-text-box.mjs} +1 -1
  222. package/esm2022/text-box/index.mjs +4 -0
  223. package/esm2022/text-box/lib/mask-options.directive.mjs +17 -0
  224. package/esm2022/text-box/lib/text-box.component.mjs +111 -0
  225. package/esm2022/text-box/lib/text-box.module.mjs +38 -0
  226. package/esm2022/time-box/lib/time-box.component.mjs +5 -5
  227. package/esm2022/time-box/lib/time-box.module.mjs +4 -4
  228. package/esm2022/toast/index.mjs +2 -1
  229. package/esm2022/toast/lib/toast.class.mjs +1 -1
  230. package/esm2022/toast/lib/toast.component.mjs +37 -25
  231. package/esm2022/toast/lib/toast.config.mjs +25 -0
  232. package/esm2022/toast/lib/toast.module.mjs +16 -8
  233. package/esm2022/toast/lib/toast.service.mjs +46 -55
  234. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  235. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  236. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  237. package/esm2022/uploader/lib/uploader.component.mjs +3 -3
  238. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  239. package/fesm2022/acorex-components-action-sheet.mjs +99 -125
  240. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  241. package/fesm2022/acorex-components-alert.mjs +16 -18
  242. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  243. package/fesm2022/acorex-components-avatar.mjs +10 -10
  244. package/fesm2022/acorex-components-badge.mjs +8 -8
  245. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  246. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  247. package/fesm2022/acorex-components-button.mjs +42 -24
  248. package/fesm2022/acorex-components-button.mjs.map +1 -1
  249. package/fesm2022/acorex-components-calendar.mjs +17 -15
  250. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  251. package/fesm2022/acorex-components-check-box.mjs +100 -0
  252. package/fesm2022/acorex-components-check-box.mjs.map +1 -0
  253. package/fesm2022/acorex-components-chips.mjs +7 -7
  254. package/fesm2022/acorex-components-collapse.mjs +10 -10
  255. package/fesm2022/acorex-components-color-palette.mjs +42 -36
  256. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  257. package/fesm2022/acorex-components-color-picker.mjs +16 -10
  258. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  259. package/fesm2022/acorex-components-common.mjs +155 -261
  260. package/fesm2022/acorex-components-common.mjs.map +1 -1
  261. package/fesm2022/acorex-components-context-menu.mjs +8 -8
  262. package/fesm2022/acorex-components-context-menu.mjs.map +1 -1
  263. package/fesm2022/acorex-components-data-pager.mjs +214 -228
  264. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  265. package/fesm2022/acorex-components-data-table.mjs +41 -71
  266. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  267. package/fesm2022/acorex-components-date-picker.mjs +25 -22
  268. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  269. package/fesm2022/acorex-components-decorators.mjs +80 -283
  270. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  271. package/fesm2022/acorex-components-dialog.mjs +97 -88
  272. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  273. package/fesm2022/acorex-components-drawer.mjs +30 -39
  274. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  275. package/fesm2022/acorex-components-dropdown.mjs +8 -8
  276. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  277. package/fesm2022/acorex-components-form.mjs +80 -77
  278. package/fesm2022/acorex-components-form.mjs.map +1 -1
  279. package/fesm2022/acorex-components-image.mjs +15 -19
  280. package/fesm2022/acorex-components-image.mjs.map +1 -1
  281. package/fesm2022/acorex-components-label.mjs +21 -21
  282. package/fesm2022/acorex-components-label.mjs.map +1 -1
  283. package/fesm2022/acorex-components-loading.mjs +123 -178
  284. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  285. package/fesm2022/acorex-components-menu.mjs +29 -22
  286. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  287. package/fesm2022/acorex-components-mixin.mjs +4 -22
  288. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  289. package/fesm2022/acorex-components-notification.mjs +131 -107
  290. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  291. package/fesm2022/acorex-components-number-box.mjs +106 -96
  292. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  293. package/fesm2022/acorex-components-otp.mjs +40 -50
  294. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  295. package/fesm2022/acorex-components-page.mjs +55 -56
  296. package/fesm2022/acorex-components-page.mjs.map +1 -1
  297. package/fesm2022/acorex-components-password-box.mjs +41 -30
  298. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  299. package/fesm2022/acorex-components-popover.mjs +68 -29
  300. package/fesm2022/acorex-components-popover.mjs.map +1 -1
  301. package/fesm2022/acorex-components-popup.mjs +107 -170
  302. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  303. package/fesm2022/acorex-components-progress-bar.mjs +12 -16
  304. package/fesm2022/acorex-components-progress-bar.mjs.map +1 -1
  305. package/fesm2022/acorex-components-radio.mjs +8 -8
  306. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  307. package/fesm2022/acorex-components-range-slider.mjs +7 -7
  308. package/fesm2022/acorex-components-result.mjs +7 -7
  309. package/fesm2022/acorex-components-scheduler.mjs +98 -0
  310. package/fesm2022/acorex-components-scheduler.mjs.map +1 -0
  311. package/fesm2022/acorex-components-search-box.mjs +61 -49
  312. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  313. package/fesm2022/acorex-components-select-box.mjs +16 -14
  314. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  315. package/fesm2022/acorex-components-selection-list.mjs +8 -8
  316. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  317. package/fesm2022/acorex-components-switch.mjs +11 -11
  318. package/fesm2022/acorex-components-tabs.mjs +13 -13
  319. package/fesm2022/acorex-components-tag.mjs +7 -7
  320. package/fesm2022/acorex-components-text-area.mjs +59 -0
  321. package/fesm2022/acorex-components-text-area.mjs.map +1 -0
  322. package/fesm2022/{acorex-components-textbox.mjs → acorex-components-text-box.mjs} +20 -20
  323. package/fesm2022/acorex-components-text-box.mjs.map +1 -0
  324. package/fesm2022/acorex-components-time-box.mjs +8 -8
  325. package/fesm2022/acorex-components-time-box.mjs.map +1 -1
  326. package/fesm2022/acorex-components-toast.mjs +126 -94
  327. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  328. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  329. package/fesm2022/acorex-components-uploader.mjs +7 -7
  330. package/form/lib/form-field.component.d.ts +2 -4
  331. package/form/lib/form.component.d.ts +12 -17
  332. package/form/lib/validation-rule.widget.d.ts +9 -6
  333. package/form/lib/validation-summary.component.d.ts +7 -9
  334. package/image/lib/image.component.d.ts +7 -13
  335. package/label/lib/label.component.d.ts +4 -7
  336. package/loading/index.d.ts +1 -0
  337. package/loading/lib/loading.component.d.ts +9 -12
  338. package/loading/lib/loading.config.d.ts +8 -0
  339. package/loading/lib/loading.directive.d.ts +10 -17
  340. package/loading/lib/loading.module.d.ts +1 -2
  341. package/loading/lib/loading.service.d.ts +10 -33
  342. package/menu/lib/menu.component.d.ts +4 -2
  343. package/mixin/index.d.ts +0 -1
  344. package/mixin/lib/base-components.class.d.ts +2 -2
  345. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  346. package/mixin/lib/button-mixin.class.d.ts +2 -2
  347. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  348. package/mixin/lib/color-look-mixing.class.d.ts +3 -3
  349. package/mixin/lib/datalist-component.class.d.ts +10 -10
  350. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  351. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  352. package/mixin/lib/mixin.class.d.ts +61 -61
  353. package/mixin/lib/page-component.class.d.ts +2 -2
  354. package/mixin/lib/selection-component.class.d.ts +2 -2
  355. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  356. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  357. package/mixin/lib/value-mixin.class.d.ts +8 -8
  358. package/notification/index.d.ts +1 -0
  359. package/notification/lib/notification.class.d.ts +29 -7
  360. package/notification/lib/notification.component.d.ts +13 -14
  361. package/notification/lib/notification.config.d.ts +13 -0
  362. package/notification/lib/notification.module.d.ts +4 -1
  363. package/notification/lib/notification.service.d.ts +5 -9
  364. package/number-box/lib/number-box.component.d.ts +12 -17
  365. package/otp/lib/otp.component.d.ts +7 -14
  366. package/package.json +41 -38
  367. package/page/lib/base-page.class.d.ts +8 -12
  368. package/page/lib/page.component.d.ts +4 -4
  369. package/password-box/lib/password-box.component.d.ts +8 -11
  370. package/popover/lib/popover.component.d.ts +13 -5
  371. package/popup/index.d.ts +1 -0
  372. package/popup/lib/popup.component.d.ts +14 -19
  373. package/popup/lib/popup.interface.d.ts +26 -0
  374. package/popup/lib/popup.module.d.ts +4 -4
  375. package/popup/lib/popup.service.d.ts +4 -25
  376. package/progress-bar/lib/progress-bar.component.d.ts +3 -8
  377. package/scheduler/README.md +3 -0
  378. package/scheduler/index.d.ts +3 -0
  379. package/scheduler/lib/scheduler-month-view.component.d.ts +20 -0
  380. package/scheduler/lib/scheduler.component.d.ts +11 -0
  381. package/scheduler/lib/scheduler.module.d.ts +13 -0
  382. package/search-box/lib/search-box.component.d.ts +8 -16
  383. package/search-box/lib/search-box.module.d.ts +7 -5
  384. package/select-box/lib/select-box.module.d.ts +2 -2
  385. package/selection-list/lib/selection-list.module.d.ts +1 -1
  386. package/tabs/lib/tab-item.component.d.ts +2 -2
  387. package/text-area/README.md +3 -0
  388. package/text-area/index.d.ts +2 -0
  389. package/text-area/lib/text-area.component.d.ts +11 -0
  390. package/text-area/lib/text-area.module.d.ts +9 -0
  391. package/text-box/README.md +3 -0
  392. package/text-box/index.d.ts +3 -0
  393. package/{textbox/lib/textbox.component.d.ts → text-box/lib/text-box.component.d.ts} +1 -3
  394. package/{textbox/lib/textbox.module.d.ts → text-box/lib/text-box.module.d.ts} +1 -1
  395. package/time-box/lib/time-box.component.d.ts +1 -1
  396. package/toast/index.d.ts +1 -0
  397. package/toast/lib/toast.class.d.ts +14 -5
  398. package/toast/lib/toast.component.d.ts +13 -12
  399. package/toast/lib/toast.config.d.ts +12 -0
  400. package/toast/lib/toast.module.d.ts +4 -1
  401. package/toast/lib/toast.service.d.ts +5 -9
  402. package/action-sheet/lib/action-sheet.interface.d.ts +0 -21
  403. package/checkbox/README.md +0 -3
  404. package/checkbox/index.d.ts +0 -2
  405. package/checkbox/lib/checkbox.component.d.ts +0 -18
  406. package/common/lib/directives/debounce-time.directive.d.ts +0 -17
  407. package/common/lib/services/custom-cdk-overlay.service.d.ts +0 -19
  408. package/common/lib/services/overlay.service.d.ts +0 -34
  409. package/data-table/lib/data-column-cell-template.directive.d.ts +0 -8
  410. package/decorators/lib/content.component.d.ts +0 -9
  411. package/decorators/lib/divider.component.d.ts +0 -5
  412. package/decorators/lib/footer.component.d.ts +0 -9
  413. package/decorators/lib/form-hint.component.d.ts +0 -8
  414. package/decorators/lib/header.component.d.ts +0 -9
  415. package/decorators/lib/overlay.component.d.ts +0 -6
  416. package/decorators/lib/placeholder.component.d.ts +0 -5
  417. package/decorators/lib/prefix.component.d.ts +0 -9
  418. package/decorators/lib/sub-title.component.d.ts +0 -9
  419. package/decorators/lib/suffix.component.d.ts +0 -9
  420. package/decorators/lib/text.component.d.ts +0 -9
  421. package/decorators/lib/title.component.d.ts +0 -8
  422. package/esm2022/action-sheet/lib/action-sheet.interface.mjs +0 -2
  423. package/esm2022/checkbox/index.mjs +0 -3
  424. package/esm2022/checkbox/lib/checkbox.component.mjs +0 -65
  425. package/esm2022/checkbox/lib/checkbox.module.mjs +0 -21
  426. package/esm2022/common/lib/directives/debounce-time.directive.mjs +0 -48
  427. package/esm2022/common/lib/services/custom-cdk-overlay.service.mjs +0 -49
  428. package/esm2022/common/lib/services/overlay.service.mjs +0 -113
  429. package/esm2022/data-table/lib/data-column-cell-template.directive.mjs +0 -17
  430. package/esm2022/decorators/lib/content.component.mjs +0 -26
  431. package/esm2022/decorators/lib/divider.component.mjs +0 -17
  432. package/esm2022/decorators/lib/footer.component.mjs +0 -26
  433. package/esm2022/decorators/lib/form-hint.component.mjs +0 -20
  434. package/esm2022/decorators/lib/header.component.mjs +0 -26
  435. package/esm2022/decorators/lib/overlay.component.mjs +0 -22
  436. package/esm2022/decorators/lib/placeholder.component.mjs +0 -14
  437. package/esm2022/decorators/lib/prefix.component.mjs +0 -26
  438. package/esm2022/decorators/lib/sub-title.component.mjs +0 -26
  439. package/esm2022/decorators/lib/suffix.component.mjs +0 -26
  440. package/esm2022/decorators/lib/text.component.mjs +0 -21
  441. package/esm2022/decorators/lib/title.component.mjs +0 -20
  442. package/esm2022/mixin/lib/loading-mixin.class.mjs +0 -18
  443. package/esm2022/textarea/acorex-components-textarea.mjs +0 -5
  444. package/esm2022/textarea/index.mjs +0 -3
  445. package/esm2022/textarea/lib/textarea.component.mjs +0 -37
  446. package/esm2022/textarea/lib/textarea.module.mjs +0 -19
  447. package/esm2022/textbox/acorex-components-textbox.mjs +0 -5
  448. package/esm2022/textbox/index.mjs +0 -4
  449. package/esm2022/textbox/lib/mask-options.directive.mjs +0 -17
  450. package/esm2022/textbox/lib/textbox.component.mjs +0 -111
  451. package/esm2022/textbox/lib/textbox.module.mjs +0 -38
  452. package/fesm2022/acorex-components-checkbox.mjs +0 -89
  453. package/fesm2022/acorex-components-checkbox.mjs.map +0 -1
  454. package/fesm2022/acorex-components-textarea.mjs +0 -60
  455. package/fesm2022/acorex-components-textarea.mjs.map +0 -1
  456. package/fesm2022/acorex-components-textbox.mjs.map +0 -1
  457. package/mixin/lib/loading-mixin.class.d.ts +0 -40
  458. package/textarea/README.md +0 -3
  459. package/textarea/index.d.ts +0 -2
  460. package/textarea/lib/textarea.component.d.ts +0 -14
  461. package/textarea/lib/textarea.module.d.ts +0 -9
  462. package/textbox/README.md +0 -3
  463. package/textbox/index.d.ts +0 -3
  464. /package/{textbox → text-box}/lib/mask-options.directive.d.ts +0 -0
@@ -1,19 +1,18 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, EventEmitter, ChangeDetectionStrategy, ViewEncapsulation, Output, Input, Directive, NgModule, Injectable } from '@angular/core';
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 { AXBaseComponentMixin } from '@acorex/components/mixin';
6
- import { AXConfig } from '@acorex/core/config';
7
5
  import * as i1$1 from '@angular/cdk/portal';
8
6
  import { ComponentPortal, PortalModule } from '@angular/cdk/portal';
9
- import { OverlayModule } from '@angular/cdk/overlay';
7
+ import { MXBaseComponent } from '@acorex/components/common';
10
8
  import { asyncScheduler, BehaviorSubject } from 'rxjs';
11
9
  import { observeOn, finalize } from 'rxjs/operators';
12
- import * as i1$2 from '@acorex/components/common';
10
+ import { Dialog } from '@angular/cdk/dialog';
11
+ import { OverlayModule } from '@angular/cdk/overlay';
13
12
 
14
13
  class AXLoadingSpinnerComponent {
15
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
16
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AXLoadingSpinnerComponent, selector: "ax-loading-spinner", host: { classAttribute: "ax-loading-spinner" }, ngImport: i0, template: `
14
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingSpinnerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
15
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXLoadingSpinnerComponent, selector: "ax-loading-spinner", ngImport: i0, template: `
17
16
  <svg
18
17
  version="1.1"
19
18
  width="24"
@@ -41,7 +40,7 @@ class AXLoadingSpinnerComponent {
41
40
  <span *ngIf="text"> {{ text }} </span>
42
41
  `, isInline: true, dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] }); }
43
42
  }
44
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingSpinnerComponent, decorators: [{
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingSpinnerComponent, decorators: [{
45
44
  type: Component,
46
45
  args: [{
47
46
  selector: 'ax-loading-spinner',
@@ -72,16 +71,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImpor
72
71
  </svg>
73
72
  <span *ngIf="text"> {{ text }} </span>
74
73
  `,
75
- host: { class: 'ax-loading-spinner' },
76
74
  }]
77
75
  }] });
78
76
 
79
- class AXLoadingComponent extends AXBaseComponentMixin {
80
- /**
81
- * @ignore
82
- */
83
- constructor(elementRef, cdr) {
84
- super(elementRef, cdr);
77
+ const AX_LOADING_CONFIG = new InjectionToken('AX_LOADING_CONFIG', {
78
+ providedIn: 'root',
79
+ factory: () => AXLoadingDefaultConfig,
80
+ });
81
+ const AXLoadingDefaultConfig = {
82
+ spinner: AXLoadingSpinnerComponent
83
+ };
84
+ function loadingConfig(config = {}) {
85
+ const result = {
86
+ ...AXLoadingDefaultConfig,
87
+ ...config,
88
+ };
89
+ return result;
90
+ }
91
+
92
+ class AXLoadingComponent extends MXBaseComponent {
93
+ constructor() {
94
+ super(...arguments);
95
+ this.config = inject(AX_LOADING_CONFIG);
85
96
  this.visibleChange = new EventEmitter();
86
97
  this.type = 'spinner';
87
98
  }
@@ -92,208 +103,98 @@ class AXLoadingComponent extends AXBaseComponentMixin {
92
103
  if (v != this._visible) {
93
104
  this._visible = v;
94
105
  v
95
- ? this._getHostElement().classList.remove('ax-hide')
96
- : this._getHostElement().classList.add('ax-hide');
106
+ ? this.getHostElement().classList.remove('ax-hide')
107
+ : this.getHostElement().classList.add('ax-hide');
97
108
  this.visibleChange.emit(v);
98
109
  }
99
110
  }
100
- onInit() {
101
- const loading = AXConfig.get(`layout.loading.${this.type}`);
102
- this._selectedPortal = new ComponentPortal(loading);
103
- this._cdr.markForCheck();
111
+ ngOnInit() {
112
+ this._selectedPortal = new ComponentPortal(this.config.spinner);
113
+ this.cdr.markForCheck();
104
114
  }
105
115
  _handleAttched(ref) {
106
116
  ref = ref;
107
- if (ref.instance && this.options) {
108
- Object.assign(ref.instance, this.options);
117
+ if (ref.instance && this.context) {
118
+ Object.assign(ref.instance, this.context);
109
119
  }
110
120
  }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.6", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", options: "options" }, outputs: { visibleChange: "visibleChange" }, host: { classAttribute: "ax-loading" }, usesInheritance: true, ngImport: i0, template: `
121
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
122
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.8", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", context: "context" }, outputs: { visibleChange: "visibleChange" }, usesInheritance: true, ngImport: i0, template: `
113
123
  <ng-template
114
124
  [cdkPortalOutlet]="_selectedPortal"
115
125
  (attached)="_handleAttched($event)"
116
126
  ></ng-template>
117
- `, 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-overlay{background:rgba(var(--ax-color-default))}.ax-loading-spinner{display:flex;gap:.75rem}\n"], dependencies: [{ kind: "directive", type: i1$1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
127
+ `, 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 }); }
118
128
  }
119
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingComponent, decorators: [{
129
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingComponent, decorators: [{
120
130
  type: Component,
121
131
  args: [{ selector: 'ax-loading', template: `
122
132
  <ng-template
123
133
  [cdkPortalOutlet]="_selectedPortal"
124
134
  (attached)="_handleAttched($event)"
125
135
  ></ng-template>
126
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-loading' }, 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-overlay{background:rgba(var(--ax-color-default))}.ax-loading-spinner{display:flex;gap:.75rem}\n"] }]
127
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { visibleChange: [{
136
+ `, 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"] }]
137
+ }], propDecorators: { visibleChange: [{
128
138
  type: Output
129
139
  }], visible: [{
130
140
  type: Input
131
141
  }], type: [{
132
142
  type: Input
133
- }], options: [{
143
+ }], context: [{
134
144
  type: Input
135
145
  }] } });
136
146
 
137
- const OVERLAY_CLASS = 'ax-loading-overlay';
138
- // This directive places an overlay with a loading spinner over its host element
139
- // if isLoading equals to true and hides the overlay when isLoading becomes false.
140
- class AXLoadingDirective {
141
- //TODO: ComponentFactoryResolver is deprecated
142
- constructor(elementRef, renderer, changeDetectorRef, viewContainerRef, componentFactoryResolver) {
143
- this.elementRef = elementRef;
144
- this.renderer = renderer;
145
- this.changeDetectorRef = changeDetectorRef;
146
- this.viewContainerRef = viewContainerRef;
147
- this.componentFactoryResolver = componentFactoryResolver;
148
- this.isLoading = false;
149
- this.hostElement = this.elementRef.nativeElement;
150
- this.hostElement.style.position = 'relative';
151
- }
152
- ngOnChanges(changes) {
153
- if (!this.overlayElement || !this.spinnerElement) {
154
- this.init();
155
- }
156
- if (changes.isLoading) {
157
- const isLoadingValue = changes.isLoading.currentValue;
158
- if (isLoadingValue) {
159
- this.addLoadingIndicator();
160
- }
161
- else {
162
- this.removeLoadingIndicator();
163
- }
164
- this.changeDetectorRef.markForCheck();
165
- }
166
- }
167
- addLoadingIndicator() {
168
- this.renderer.appendChild(this.hostElement, this.overlayElement);
169
- this.renderer.appendChild(this.overlayElement, this.spinnerElement);
170
- }
171
- removeLoadingIndicator() {
172
- this.renderer.removeChild(this.overlayElement, this.spinnerElement);
173
- this.renderer.removeChild(this.hostElement, this.overlayElement);
174
- this.viewContainerRef.clear();
175
- }
176
- init() {
177
- this.initOverlayElement();
178
- this.initSpinnerComponent();
179
- }
180
- initSpinnerComponent() {
181
- const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);
182
- const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);
183
- this.spinnerElement = spinnerComponent.location.nativeElement;
184
- }
185
- initOverlayElement() {
186
- this.overlayElement = this.renderer.createElement('div');
187
- this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);
188
- }
189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingDirective, deps: [{ token: i0.ElementRef }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Directive }); }
190
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.6", type: AXLoadingDirective, selector: "[axIsLoading]", inputs: { isLoading: ["axIsLoading", "isLoading"] }, usesOnChanges: true, ngImport: i0 }); }
191
- }
192
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingDirective, decorators: [{
193
- type: Directive,
194
- args: [{
195
- selector: '[axIsLoading]',
196
- }]
197
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { isLoading: [{
198
- type: Input,
199
- args: ['axIsLoading']
200
- }] } });
201
-
202
- const COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];
203
- const MODULES = [CommonModule, OverlayModule, PortalModule];
204
- class AXLoadingModule {
205
- constructor() {
206
- AXConfig.set({
207
- layout: {
208
- loading: {
209
- spinner: AXLoadingSpinnerComponent,
210
- }
211
- }
212
- });
213
- }
214
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
215
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingModule, declarations: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent], imports: [CommonModule, OverlayModule, PortalModule], exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent] }); }
216
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingModule, imports: [MODULES] }); }
217
- }
218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingModule, decorators: [{
219
- type: NgModule,
220
- args: [{
221
- declarations: [...COMPONENT],
222
- imports: [...MODULES],
223
- exports: [...COMPONENT],
224
- providers: [],
225
- }]
226
- }], ctorParameters: function () { return []; } });
227
-
228
147
  const DEFAULT_LOADER_ID = '_DEFAULT';
229
- /**
230
- * Used for centrally setting/unsetting loading flags for components or services.
231
- * Should be connected to global HTTP interceptor which will unset
232
- * the loading flags in case an error happens using the clearLoadings() method.
233
- *
234
- * FAQ:
235
- * Q: How to change loading flag for a parent component?
236
- * A: Inject the parent component as a dependency to your constructor and
237
- * call loadingService.setLoading(parentComponent, STATE).
238
- *
239
- * Q: How to change loading flag for a child component?
240
- * A: Use a @ViewChild with component selector and pass the
241
- * reference of the child to setLoading method.
242
- *
243
- * Q: I need more loading indicators in my components. How to?
244
- * A: Assign a LoaderId to each indicator and then use them
245
- * with calls to methods of this service.
246
- */
247
148
  class AXLoadingService {
248
- constructor(zoneRef, overlayService) {
249
- this.zoneRef = zoneRef;
250
- this.overlayService = overlayService;
149
+ constructor() {
251
150
  // WeakMap will remove components from itself upon
252
151
  // their garbage collection by JS runtime.
253
152
  this.loadingStates = new WeakMap();
254
153
  // Both loading state maps are kept in-sync such that
255
154
  // they can be used by both sync and async methods.
256
155
  this.loadingStates$ = new WeakMap();
257
- this._stack = [];
156
+ this.dialog = inject(Dialog);
258
157
  }
259
- show(options) {
260
- let host;
261
- if (options?.location) {
262
- host = options.location.closest('.ax-loading-host');
263
- }
264
- const containerElement = (host || document.body);
265
- const com = this.overlayService.show(AXLoadingComponent, { options: options?.context }, {
266
- closeOnClickOutside: false,
267
- containerElement,
158
+ show(config) {
159
+ const ce = (config?.location ?? document.body);
160
+ const dialogRef = this.dialog.open(AXLoadingComponent, {
268
161
  hasBackdrop: true,
269
- backdropClass: ['ax-loading-overlay'],
270
- scroll: 'block',
162
+ disableClose: true,
163
+ restoreFocus: true,
164
+ closeOnDestroy: true,
165
+ closeOnNavigation: true,
166
+ ariaModal: true,
167
+ role: 'alertdialog',
168
+ panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],
169
+ backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],
271
170
  });
272
- com.instance.visible = true;
273
171
  const id = new Date().getTime();
274
- this._stack.push({ id, component: com });
172
+ dialogRef.componentInstance.visible = true;
173
+ dialogRef.componentInstance.id = id.toString();
174
+ if (ce != document.body) {
175
+ const bg = dialogRef.overlayRef.backdropElement;
176
+ const ov = dialogRef.overlayRef.overlayElement;
177
+ ce.style.position = 'relative';
178
+ ov.style.position = "absolute";
179
+ ce.appendChild(bg);
180
+ ce.appendChild(ov);
181
+ setTimeout(() => {
182
+ ov.style.position = "absolute";
183
+ }, 0);
184
+ }
275
185
  return id;
186
+ // TODO: diabled focus and click, maybe we need a service and directive for it
276
187
  }
277
188
  hide(id) {
278
- const f = this._stack.find(c => c.id === id);
189
+ const f = this.dialog.openDialogs.find(c => c.componentInstance.id === id.toString());
279
190
  if (f) {
280
- f.component.dispose();
281
- this._stack = this._stack.filter(c => c.id !== id);
191
+ f.close();
282
192
  }
283
193
  }
284
- // Observable creation operator.
285
- // LoaderId can be used when there are multiple loading indicators associated to a single context.
286
- // Context can be any object, though in practice, components and services will be the most common contexts.
287
- // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.
288
- // Such a scenario is used when your context has contains only one loading indicator.
289
194
  doLoading(source$, context, loaderId) {
290
195
  this.startLoading(context, loaderId);
291
196
  return source$.pipe(observeOn(asyncScheduler), finalize(() => this.endLoading(context, loaderId)));
292
197
  }
293
- // To be used in your html templates.
294
- // Returns a boolean indicating whether a given loader is active in a given context.
295
- // If loaderId is unspecified, the method will return a logical disjunction of all
296
- // loader states in the context.
297
198
  isLoading(context, loaderId) {
298
199
  const loaderStates = this.loadingStates.get(context);
299
200
  if (!loaderStates) {
@@ -308,8 +209,6 @@ class AXLoadingService {
308
209
  }
309
210
  }
310
211
  }
311
- // To be used in your html templates with async pipes.
312
- // Returns an Observable of booleans indicating whether a given loader is active in a given context.
313
212
  isLoading$(context, loaderId) {
314
213
  const coalescedLoaderId = this.getLoaderId(loaderId);
315
214
  if (!this.hasLoadingStates(context, coalescedLoaderId)) {
@@ -317,15 +216,12 @@ class AXLoadingService {
317
216
  }
318
217
  return this.loadingStates$.get(context).get(coalescedLoaderId);
319
218
  }
320
- // The startLoading and endLoading methods are intended to be used when handling
321
- // complex scenarios where a need for extended usage flexibility is desired.
322
219
  startLoading(context, loaderId) {
323
220
  this.setLoadingState(context, true, this.getLoaderId(loaderId));
324
221
  }
325
222
  endLoading(context, loaderId) {
326
223
  this.setLoadingState(context, false, this.getLoaderId(loaderId));
327
224
  }
328
- // To be called by middleware code (HTTP interceptors/routing listeners, etc.).
329
225
  clearLoadings() {
330
226
  this.loadingStates = new WeakMap();
331
227
  this.loadingStates$ = new WeakMap();
@@ -359,19 +255,68 @@ class AXLoadingService {
359
255
  getLoaderId(loaderId) {
360
256
  return loaderId ?? DEFAULT_LOADER_ID;
361
257
  }
362
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingService, deps: [{ token: i0.NgZone }, { token: i1$2.AXOverlayService }], target: i0.ɵɵFactoryTarget.Injectable }); }
363
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingService, providedIn: 'root' }); }
258
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
259
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingService, providedIn: 'root' }); }
364
260
  }
365
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.6", ngImport: i0, type: AXLoadingService, decorators: [{
261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingService, decorators: [{
366
262
  type: Injectable,
367
263
  args: [{
368
264
  providedIn: 'root',
369
265
  }]
370
- }], ctorParameters: function () { return [{ type: i0.NgZone }, { type: i1$2.AXOverlayService }]; } });
266
+ }] });
267
+
268
+ // This directive places an overlay with a loading spinner over its host element
269
+ // if isLoading equals to true and hides the overlay when isLoading becomes false.
270
+ class AXLoadingDirective {
271
+ get isLoading() {
272
+ return this._isLoading;
273
+ }
274
+ set isLoading(v) {
275
+ this._isLoading = v;
276
+ if (v) {
277
+ this._loadingRef = this.loadingService.show({ location: this._hostElement });
278
+ }
279
+ else {
280
+ this.loadingService.hide(this._loadingRef);
281
+ }
282
+ }
283
+ constructor(elementRef, loadingService) {
284
+ this.elementRef = elementRef;
285
+ this.loadingService = loadingService;
286
+ this._hostElement = this.elementRef.nativeElement;
287
+ }
288
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingDirective, deps: [{ token: i0.ElementRef }, { token: AXLoadingService }], target: i0.ɵɵFactoryTarget.Directive }); }
289
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.1.8", type: AXLoadingDirective, selector: "[axIsLoading]", inputs: { isLoading: ["axIsLoading", "isLoading"] }, ngImport: i0 }); }
290
+ }
291
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingDirective, decorators: [{
292
+ type: Directive,
293
+ args: [{
294
+ selector: '[axIsLoading]',
295
+ }]
296
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: AXLoadingService }]; }, propDecorators: { isLoading: [{
297
+ type: Input,
298
+ args: ['axIsLoading']
299
+ }] } });
300
+
301
+ const COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent, AXLoadingSpinnerComponent];
302
+ const MODULES = [CommonModule, OverlayModule, PortalModule];
303
+ class AXLoadingModule {
304
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
305
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingModule, declarations: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent, AXLoadingSpinnerComponent], imports: [CommonModule, OverlayModule, PortalModule], exports: [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent, AXLoadingSpinnerComponent] }); }
306
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingModule, imports: [MODULES] }); }
307
+ }
308
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.8", ngImport: i0, type: AXLoadingModule, decorators: [{
309
+ type: NgModule,
310
+ args: [{
311
+ declarations: [...COMPONENT],
312
+ imports: [...MODULES],
313
+ exports: [...COMPONENT],
314
+ }]
315
+ }] });
371
316
 
372
317
  /**
373
318
  * Generated bundle index. Do not edit.
374
319
  */
375
320
 
376
- export { AXLoadingComponent, AXLoadingDirective, AXLoadingModule, AXLoadingService, AXLoadingSpinnerComponent };
321
+ export { AXLoadingComponent, AXLoadingDefaultConfig, AXLoadingDirective, AXLoadingModule, AXLoadingService, AXLoadingSpinnerComponent, AX_LOADING_CONFIG, loadingConfig };
377
322
  //# sourceMappingURL=acorex-components-loading.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <svg\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n style=\"fill: currentColor;\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 50 50\"\n xml:space=\"preserve\">\n <path\n fill=\"current\"\n 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\">\n <animateTransform\n attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 25 25\"\n to=\"360 25 25\"\n dur=\"0.6s\"\n repeatCount=\"indefinite\" />\n </path>\n </svg>\n <span *ngIf=\"text\"> {{ text }} </span>\n `,\n host: { class: 'ax-loading-spinner' },\n})\nexport class AXLoadingSpinnerComponent {\n text: string;\n}\n","import { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { AXConfig } from '@acorex/core/config';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal } from '@angular/cdk/portal';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n ChangeDetectorRef,\n ComponentRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-loading',\n template: `\n <ng-template\n [cdkPortalOutlet]=\"_selectedPortal\"\n (attached)=\"_handleAttched($event)\"\n ></ng-template>\n `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'ax-loading' },\n})\nexport class AXLoadingComponent extends AXBaseComponentMixin {\n _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n private _visible: boolean;\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v\n ? this._getHostElement().classList.remove('ax-hide')\n : this._getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n @Input()\n type: string = 'spinner';\n\n @Input()\n options?: any;\n\n override onInit() {\n const loading = AXConfig.get(`layout.loading.${this.type}`);\n this._selectedPortal = new ComponentPortal(loading);\n this._cdr.markForCheck();\n }\n\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance && this.options) {\n Object.assign(ref.instance, this.options);\n }\n }\n}\n","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges,\n ViewContainerRef,\n} from '@angular/core';\nimport { AXLoadingComponent } from './loading.component';\n\nconst OVERLAY_CLASS = 'ax-loading-overlay';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({\n selector: '[axIsLoading]',\n})\nexport class AXLoadingDirective implements OnChanges {\n @Input('axIsLoading')\n isLoading = false;\n\n protected overlayElement!: HTMLDivElement;\n protected spinnerElement!: HTMLDivElement;\n protected hostElement!: HTMLDivElement;\n\n //TODO: ComponentFactoryResolver is deprecated\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly renderer: Renderer2,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly viewContainerRef: ViewContainerRef,\n protected readonly componentFactoryResolver: ComponentFactoryResolver\n ) {\n this.hostElement = this.elementRef.nativeElement;\n this.hostElement.style.position = 'relative';\n }\n\n ngOnChanges(changes: any): void {\n if (!this.overlayElement || !this.spinnerElement) {\n this.init();\n }\n\n if (changes.isLoading) {\n const isLoadingValue = changes.isLoading.currentValue;\n\n if (isLoadingValue) {\n this.addLoadingIndicator();\n } else {\n this.removeLoadingIndicator();\n }\n\n this.changeDetectorRef.markForCheck();\n }\n }\n\n protected addLoadingIndicator(): void {\n this.renderer.appendChild(this.hostElement, this.overlayElement);\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\n }\n\n protected removeLoadingIndicator(): void {\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\n this.renderer.removeChild(this.hostElement, this.overlayElement);\n this.viewContainerRef.clear();\n }\n\n protected init(): void {\n this.initOverlayElement();\n this.initSpinnerComponent();\n }\n\n protected initSpinnerComponent(): void {\n const spinnerComponentFactory =\n this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\n this.spinnerElement = spinnerComponent.location.nativeElement;\n }\n\n protected initOverlayElement(): void {\n this.overlayElement = this.renderer.createElement('div');\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXLoadingModule {\n\n\n constructor() {\n AXConfig.set({\n layout: {\n loading: {\n spinner: AXLoadingSpinnerComponent,\n }\n }\n })\n\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXOverlayService, AXOverlayViewRef } from '@acorex/components/common';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n/**\n * Used for centrally setting/unsetting loading flags for components or services.\n * Should be connected to global HTTP interceptor which will unset\n * the loading flags in case an error happens using the clearLoadings() method.\n *\n * FAQ:\n * Q: How to change loading flag for a parent component?\n * A: Inject the parent component as a dependency to your constructor and\n * call loadingService.setLoading(parentComponent, STATE).\n *\n * Q: How to change loading flag for a child component?\n * A: Use a @ViewChild with component selector and pass the\n * reference of the child to setLoading method.\n *\n * Q: I need more loading indicators in my components. How to?\n * A: Assign a LoaderId to each indicator and then use them\n * with calls to methods of this service.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates: any = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$: any = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n constructor(protected zoneRef: NgZone, private overlayService: AXOverlayService) {}\n\n private _stack: { id: number; component: AXOverlayViewRef }[] = [];\n\n show(options?: { location?: Element; type?: string; context?: any }): number {\n let host: Element | any;\n if (options?.location) {\n host = options.location.closest('.ax-loading-host');\n }\n const containerElement = (host || document.body) as HTMLDivElement;\n const com = this.overlayService.show(\n AXLoadingComponent,\n { options: options?.context },\n {\n closeOnClickOutside: false,\n containerElement,\n hasBackdrop: true,\n backdropClass: ['ax-loading-overlay'],\n scroll: 'block',\n }\n );\n com.instance.visible = true;\n const id = new Date().getTime();\n this._stack.push({ id, component: com });\n return id;\n }\n\n hide(id): void {\n const f = this._stack.find(c => c.id === id);\n if (f) {\n f.component.dispose();\n this._stack = this._stack.filter(c => c.id !== id);\n }\n }\n\n // Observable creation operator.\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\n // Context can be any object, though in practice, components and services will be the most common contexts.\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\n // Such a scenario is used when your context has contains only one loading indicator.\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId))\n );\n }\n\n // To be used in your html templates.\n // Returns a boolean indicating whether a given loader is active in a given context.\n // If loaderId is unspecified, the method will return a logical disjunction of all\n // loader states in the context.\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter(state => state).length > 0;\n }\n }\n }\n\n // To be used in your html templates with async pipes.\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n // The startLoading and endLoading methods are intended to be used when handling\n // complex scenarios where a need for extended usage flexibility is desired.\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]));\n }\n } else {\n // @ts-ignore - loadingStates[context] is surely defined in this branch\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../libs/components/loading/src/lib/loading-spinner.component.ts","../../../../libs/components/loading/src/lib/loading.config.ts","../../../../libs/components/loading/src/lib/loading.component.ts","../../../../libs/components/loading/src/lib/loading.service.ts","../../../../libs/components/loading/src/lib/loading.directive.ts","../../../../libs/components/loading/src/lib/loading.module.ts","../../../../libs/components/loading/src/acorex-components-loading.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <svg\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n style=\"fill: currentColor;\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 50 50\"\n xml:space=\"preserve\">\n <path\n fill=\"current\"\n 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\">\n <animateTransform\n attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 25 25\"\n to=\"360 25 25\"\n dur=\"0.6s\"\n repeatCount=\"indefinite\" />\n </path>\n </svg>\n <span *ngIf=\"text\"> {{ text }} </span>\n `,\n})\nexport class AXLoadingSpinnerComponent {\n text: string;\n}\n","import { InjectionToken } from '@angular/core';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\n\nexport interface AXLoadingConfig {\n spinner: unknown\n}\n\nexport const AX_LOADING_CONFIG = new InjectionToken<AXLoadingConfig>(\n 'AX_LOADING_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXLoadingDefaultConfig,\n }\n);\n\n\nexport const AXLoadingDefaultConfig: AXLoadingConfig = {\n spinner: AXLoadingSpinnerComponent\n};\n\n\nexport type PartialLoadingConfig = Partial<AXLoadingConfig>;\n\nexport function loadingConfig(config: PartialLoadingConfig = {}): AXLoadingConfig {\n const result = {\n ...AXLoadingDefaultConfig,\n ...config,\n };\n return result\n}","\nimport { CdkPortalOutletAttachedRef, ComponentPortal, ComponentType, Portal } from '@angular/cdk/portal';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter,\n ComponentRef,\n inject,\n} from '@angular/core';\nimport { MXBaseComponent } from '@acorex/components/common';\nimport { AXLoadingConfig, AX_LOADING_CONFIG } from './loading.config';\n\n@Component({\n selector: 'ax-loading',\n template: `\n <ng-template\n [cdkPortalOutlet]=\"_selectedPortal\"\n (attached)=\"_handleAttched($event)\"\n ></ng-template>\n `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None\n})\nexport class AXLoadingComponent extends MXBaseComponent {\n\n\n private config: AXLoadingConfig = inject(AX_LOADING_CONFIG);\n\n\n protected _selectedPortal: Portal<unknown>;\n\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n private _visible: boolean;\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v\n ? this.getHostElement().classList.remove('ax-hide')\n : this.getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n @Input()\n type: string = 'spinner';\n\n @Input()\n context?: unknown;\n\n ngOnInit() {\n this._selectedPortal = new ComponentPortal(this.config.spinner as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n\n protected _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<unknown>;\n if (ref.instance && this.context) {\n Object.assign(ref.instance, this.context);\n }\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXLoadingComponent } from './loading.component';\nimport { Dialog } from '@angular/cdk/dialog';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n private dialog = inject(Dialog);\n\n show(config?: { location?: Element; type?: string; context?: unknown }): number {\n const ce = (config?.location ?? document.body) as HTMLDivElement;\n const dialogRef = this.dialog.open(AXLoadingComponent,\n {\n hasBackdrop: true,\n disableClose: true,\n restoreFocus: true,\n closeOnDestroy: true,\n closeOnNavigation: true,\n ariaModal: true,\n role: 'alertdialog',\n panelClass: ['ax-loading-pane', 'ax-animate-fadeIn'],\n backdropClass: ['ax-loading-overlay-backdrop', 'ax-animate-fadeIn'],\n }\n );\n const id = new Date().getTime();\n dialogRef.componentInstance.visible = true;\n dialogRef.componentInstance.id = id.toString();\n if (ce != document.body) {\n const bg = dialogRef.overlayRef.backdropElement;\n const ov = dialogRef.overlayRef.overlayElement;\n ce.style.position = 'relative';\n ov.style.position = \"absolute\";\n ce.appendChild(bg);\n ce.appendChild(ov);\n setTimeout(() => {\n ov.style.position = \"absolute\";\n }, 0);\n }\n return id;\n // TODO: diabled focus and click, maybe we need a service and directive for it\n }\n\n hide(id: number): void {\n const f = this.dialog.openDialogs.find(c => c.componentInstance.id === id.toString());\n if (f) {\n f.close();\n }\n }\n\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId))\n );\n }\n\n\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter(state => state).length > 0;\n }\n }\n }\n\n\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]));\n }\n } else {\n // @ts-ignore - loadingStates[context] is surely defined in this branch\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","import {\n Directive,\n ElementRef,\n Input,\n} from '@angular/core';\nimport { AXLoadingService } from './loading.service';\n\n// This directive places an overlay with a loading spinner over its host element\n// if isLoading equals to true and hides the overlay when isLoading becomes false.\n@Directive({\n selector: '[axIsLoading]',\n})\nexport class AXLoadingDirective {\n\n private _hostElement!: HTMLDivElement;\n private _loadingRef!: number;\n\n private _isLoading: boolean;\n\n @Input('axIsLoading')\n public get isLoading(): boolean {\n return this._isLoading;\n }\n public set isLoading(v: boolean) {\n this._isLoading = v;\n if (v) {\n this._loadingRef = this.loadingService.show({ location: this._hostElement })\n }\n else {\n this.loadingService.hide(this._loadingRef);\n }\n }\n\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly loadingService: AXLoadingService,\n ) {\n this._hostElement = this.elementRef.nativeElement;\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n})\nexport class AXLoadingModule {\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i1.AXLoadingService"],"mappings":"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"}