@acorex/components 7.2.7 → 7.3.1

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 (473) 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 +12 -11
  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 +2 -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/chips/lib/chips.component.d.ts +2 -2
  17. package/color-palette/lib/color-palette-input.component.d.ts +10 -7
  18. package/color-palette/lib/color-palette-picker.component.d.ts +10 -5
  19. package/color-palette/lib/color-palette-preview.component.d.ts +8 -4
  20. package/color-palette/lib/color-palette-swatches.component.d.ts +9 -6
  21. package/color-palette/lib/color-palette.class.d.ts +12 -6
  22. package/color-palette/lib/color-palette.component.d.ts +3 -15
  23. package/color-palette/lib/color-palette.module.d.ts +9 -8
  24. package/color-picker/lib/color-picker.component.d.ts +17 -24
  25. package/color-picker/lib/color-picker.module.d.ts +1 -1
  26. package/common/index.d.ts +3 -1
  27. package/common/lib/classes/components.class.d.ts +12 -2
  28. package/common/lib/classes/datalist.class.d.ts +11 -0
  29. package/common/lib/common.module.d.ts +3 -4
  30. package/common/lib/components/base-component.class.d.ts +13 -5
  31. package/common/lib/components/input-base-value-component.class.d.ts +27 -0
  32. package/common/lib/components/interactive-component.class.d.ts +7 -0
  33. package/common/lib/components/value-component.class.d.ts +22 -8
  34. package/common/lib/directives/auto-focus.directive.d.ts +6 -5
  35. package/common/lib/directives/delayed-value-changed.directive.d.ts +17 -0
  36. package/common/lib/services/dom.service.d.ts +6 -0
  37. package/data-pager/lib/data-pager-base.component.d.ts +18 -13
  38. package/data-pager/lib/data-pager-info.component.d.ts +3 -9
  39. package/data-pager/lib/data-pager-input-selector.component.d.ts +5 -9
  40. package/data-pager/lib/data-pager-next-buttons.components.d.ts +2 -8
  41. package/data-pager/lib/data-pager-numeric-selector.component.d.ts +2 -7
  42. package/data-pager/lib/data-pager-pagesize-dropdown.component.d.ts +2 -6
  43. package/data-pager/lib/data-pager-prev-buttons.component.d.ts +2 -7
  44. package/data-pager/lib/data-pager.component.d.ts +17 -18
  45. package/data-pager/lib/data-pager.module.d.ts +6 -5
  46. package/data-table/index.d.ts +0 -1
  47. package/data-table/lib/data-column.directive.d.ts +3 -8
  48. package/data-table/lib/data-table.component.d.ts +6 -7
  49. package/data-table/lib/data-table.module.d.ts +6 -7
  50. package/date-picker/lib/datepicker.component.d.ts +7 -6
  51. package/date-picker/lib/datepicker.module.d.ts +1 -1
  52. package/decorators/index.d.ts +2 -12
  53. package/decorators/lib/clear-button.component.d.ts +13 -0
  54. package/decorators/lib/close-button.component.d.ts +5 -8
  55. package/decorators/lib/decorators.module.d.ts +6 -15
  56. package/decorators/lib/generic-content.component.d.ts +6 -0
  57. package/decorators/lib/icon.component.d.ts +2 -4
  58. package/dialog/lib/dialog.class.d.ts +11 -3
  59. package/dialog/lib/dialog.component.d.ts +15 -11
  60. package/dialog/lib/dialog.module.d.ts +4 -3
  61. package/dialog/lib/dialog.service.d.ts +4 -12
  62. package/drawer/lib/drawer-container.component.d.ts +2 -5
  63. package/drawer/lib/drawer.component.d.ts +6 -7
  64. package/esm2022/acorex-components.mjs +1 -1
  65. package/esm2022/action-sheet/index.mjs +2 -2
  66. package/esm2022/action-sheet/lib/action-sheet.class.mjs +2 -0
  67. package/esm2022/action-sheet/lib/action-sheet.component.mjs +50 -38
  68. package/esm2022/action-sheet/lib/action-sheet.module.mjs +11 -7
  69. package/esm2022/action-sheet/lib/action-sheet.service.mjs +32 -72
  70. package/esm2022/alert/lib/alert.component.mjs +19 -20
  71. package/esm2022/alert/lib/alert.module.mjs +7 -7
  72. package/esm2022/avatar/lib/avatar-group.component.mjs +3 -3
  73. package/esm2022/avatar/lib/avatar.component.mjs +3 -3
  74. package/esm2022/avatar/lib/avatar.module.mjs +4 -4
  75. package/esm2022/badge/lib/badge.component.mjs +7 -7
  76. package/esm2022/badge/lib/badge.module.mjs +4 -4
  77. package/esm2022/breadcrumbs/lib/breadcrumbs-item.component.mjs +3 -3
  78. package/esm2022/breadcrumbs/lib/breadcrumbs.component.mjs +3 -3
  79. package/esm2022/breadcrumbs/lib/breadcrumbs.module.mjs +4 -4
  80. package/esm2022/button/lib/button-group.component.mjs +3 -3
  81. package/esm2022/button/lib/button-item.class.mjs +1 -1
  82. package/esm2022/button/lib/button-item.component.mjs +3 -3
  83. package/esm2022/button/lib/button.component.mjs +34 -17
  84. package/esm2022/button/lib/button.module.mjs +4 -4
  85. package/esm2022/calendar/lib/calendar-range.component.mjs +5 -5
  86. package/esm2022/calendar/lib/calendar.class.mjs +3 -3
  87. package/esm2022/calendar/lib/calendar.component.mjs +18 -15
  88. package/esm2022/calendar/lib/calendar.module.mjs +4 -4
  89. package/esm2022/check-box/acorex-components-check-box.mjs +5 -0
  90. package/esm2022/check-box/index.mjs +3 -0
  91. package/esm2022/check-box/lib/check-box.component.mjs +76 -0
  92. package/esm2022/check-box/lib/check-box.module.mjs +21 -0
  93. package/esm2022/chips/lib/chips.component.mjs +7 -6
  94. package/esm2022/chips/lib/chips.module.mjs +4 -4
  95. package/esm2022/collapse/lib/collapse-group.component.mjs +3 -3
  96. package/esm2022/collapse/lib/collapse.component.mjs +3 -3
  97. package/esm2022/collapse/lib/collapse.module.mjs +4 -4
  98. package/esm2022/color-palette/lib/color-palette-input.component.mjs +64 -73
  99. package/esm2022/color-palette/lib/color-palette-picker.component.mjs +63 -58
  100. package/esm2022/color-palette/lib/color-palette-preview.component.mjs +30 -25
  101. package/esm2022/color-palette/lib/color-palette-swatches.component.mjs +32 -246
  102. package/esm2022/color-palette/lib/color-palette.class.mjs +229 -8
  103. package/esm2022/color-palette/lib/color-palette.component.mjs +32 -47
  104. package/esm2022/color-palette/lib/color-palette.module.mjs +10 -7
  105. package/esm2022/color-picker/lib/color-picker.component.mjs +12 -6
  106. package/esm2022/color-picker/lib/color-picker.module.mjs +6 -6
  107. package/esm2022/common/index.mjs +4 -2
  108. package/esm2022/common/lib/classes/components.class.mjs +26 -19
  109. package/esm2022/common/lib/classes/datalist.class.mjs +3 -0
  110. package/esm2022/common/lib/common.module.mjs +5 -10
  111. package/esm2022/common/lib/components/base-component.class.mjs +26 -13
  112. package/esm2022/common/lib/components/input-base-value-component.class.mjs +47 -0
  113. package/esm2022/common/lib/components/interactive-component.class.mjs +31 -4
  114. package/esm2022/common/lib/components/value-component.class.mjs +57 -33
  115. package/esm2022/common/lib/directives/auto-focus.directive.mjs +18 -11
  116. package/esm2022/common/lib/directives/delayed-value-changed.directive.mjs +49 -0
  117. package/esm2022/common/lib/directives/hotkey.directive.mjs +3 -3
  118. package/esm2022/common/lib/directives/infinite-scroll.directive.mjs +3 -3
  119. package/esm2022/common/lib/directives/responsive.directive.mjs +3 -3
  120. package/esm2022/common/lib/services/custom-cdk-overlay.service.mjs +6 -6
  121. package/esm2022/common/lib/services/dom.service.mjs +16 -0
  122. package/esm2022/common/lib/services/hotkey.service.mjs +3 -3
  123. package/esm2022/common/lib/services/overlay.service.mjs +3 -3
  124. package/esm2022/context-menu/lib/context-menu.component.mjs +5 -5
  125. package/esm2022/context-menu/lib/context-menu.module.mjs +4 -4
  126. package/esm2022/data-pager/lib/data-pager-base.component.mjs +35 -21
  127. package/esm2022/data-pager/lib/data-pager-info.component.mjs +13 -26
  128. package/esm2022/data-pager/lib/data-pager-input-selector.component.mjs +27 -31
  129. package/esm2022/data-pager/lib/data-pager-next-buttons.components.mjs +19 -33
  130. package/esm2022/data-pager/lib/data-pager-numeric-selector.component.mjs +31 -38
  131. package/esm2022/data-pager/lib/data-pager-pagesize-dropdown.component.mjs +22 -31
  132. package/esm2022/data-pager/lib/data-pager-prev-buttons.component.mjs +19 -29
  133. package/esm2022/data-pager/lib/data-pager.component.mjs +66 -38
  134. package/esm2022/data-pager/lib/data-pager.module.mjs +8 -7
  135. package/esm2022/data-table/index.mjs +1 -2
  136. package/esm2022/data-table/lib/data-column.directive.mjs +7 -22
  137. package/esm2022/data-table/lib/data-table.component.mjs +30 -30
  138. package/esm2022/data-table/lib/data-table.module.mjs +6 -7
  139. package/esm2022/date-picker/lib/datepicker.component.mjs +19 -16
  140. package/esm2022/date-picker/lib/datepicker.module.mjs +6 -6
  141. package/esm2022/decorators/index.mjs +3 -13
  142. package/esm2022/decorators/lib/clear-button.component.mjs +58 -0
  143. package/esm2022/decorators/lib/close-button.component.mjs +16 -20
  144. package/esm2022/decorators/lib/decorators.module.mjs +13 -49
  145. package/esm2022/decorators/lib/generic-content.component.mjs +17 -0
  146. package/esm2022/decorators/lib/icon.component.mjs +8 -11
  147. package/esm2022/dialog/lib/dialog.class.mjs +1 -1
  148. package/esm2022/dialog/lib/dialog.component.mjs +41 -23
  149. package/esm2022/dialog/lib/dialog.module.mjs +10 -8
  150. package/esm2022/dialog/lib/dialog.service.mjs +41 -49
  151. package/esm2022/drawer/lib/drawer-container.component.mjs +9 -13
  152. package/esm2022/drawer/lib/drawer.component.mjs +23 -27
  153. package/esm2022/drawer/lib/drawer.module.mjs +4 -4
  154. package/esm2022/dropdown/lib/dropdown-panel.component.mjs +4 -4
  155. package/esm2022/dropdown/lib/dropdown.module.mjs +4 -4
  156. package/esm2022/form/lib/form-field.component.mjs +9 -12
  157. package/esm2022/form/lib/form.component.mjs +38 -42
  158. package/esm2022/form/lib/form.module.mjs +4 -4
  159. package/esm2022/form/lib/validation-rule.widget.mjs +24 -15
  160. package/esm2022/form/lib/validation-summary.component.mjs +15 -14
  161. package/esm2022/image/lib/image.component.mjs +13 -17
  162. package/esm2022/image/lib/image.module.mjs +4 -4
  163. package/esm2022/index.mjs +1 -1
  164. package/esm2022/label/lib/label.component.mjs +18 -18
  165. package/esm2022/label/lib/label.module.mjs +4 -4
  166. package/esm2022/loading/index.mjs +2 -1
  167. package/esm2022/loading/lib/loading-spinner.component.mjs +4 -5
  168. package/esm2022/loading/lib/loading.component.mjs +22 -25
  169. package/esm2022/loading/lib/loading.config.mjs +17 -0
  170. package/esm2022/loading/lib/loading.directive.mjs +4 -4
  171. package/esm2022/loading/lib/loading.module.mjs +6 -17
  172. package/esm2022/loading/lib/loading.service.mjs +4 -36
  173. package/esm2022/menu/lib/menu.component.mjs +26 -19
  174. package/esm2022/menu/lib/menu.module.mjs +4 -4
  175. package/esm2022/mixin/lib/base-components.class.mjs +3 -3
  176. package/esm2022/mixin/lib/base-menu-mixin.class.mjs +3 -3
  177. package/esm2022/mixin/lib/color-look-mixing.class.mjs +1 -1
  178. package/esm2022/notification/index.mjs +2 -1
  179. package/esm2022/notification/lib/notification.class.mjs +1 -1
  180. package/esm2022/notification/lib/notification.component.mjs +51 -35
  181. package/esm2022/notification/lib/notification.config.mjs +20 -0
  182. package/esm2022/notification/lib/notification.module.mjs +11 -7
  183. package/esm2022/notification/lib/notification.service.mjs +46 -59
  184. package/esm2022/number-box/lib/number-box.component.mjs +101 -90
  185. package/esm2022/number-box/lib/number-box.module.mjs +4 -4
  186. package/esm2022/otp/lib/otp.component.mjs +38 -48
  187. package/esm2022/otp/lib/otp.module.mjs +4 -4
  188. package/esm2022/page/lib/base-page.class.mjs +6 -6
  189. package/esm2022/page/lib/page.component.mjs +3 -3
  190. package/esm2022/page/lib/page.module.mjs +4 -4
  191. package/esm2022/password-box/lib/password-box.component.mjs +37 -25
  192. package/esm2022/password-box/lib/password-box.module.mjs +4 -4
  193. package/esm2022/popover/lib/dropdown-component.class.mjs +3 -3
  194. package/esm2022/popover/lib/popover.component.mjs +3 -3
  195. package/esm2022/popover/lib/popover.module.mjs +4 -4
  196. package/esm2022/popup/index.mjs +2 -1
  197. package/esm2022/popup/lib/popup.component.mjs +49 -69
  198. package/esm2022/popup/lib/popup.interface.mjs +2 -0
  199. package/esm2022/popup/lib/popup.module.mjs +27 -12
  200. package/esm2022/popup/lib/popup.service.mjs +31 -86
  201. package/esm2022/progress-bar/lib/progress-bar.component.mjs +3 -3
  202. package/esm2022/progress-bar/lib/progress-bar.module.mjs +4 -4
  203. package/esm2022/radio/lib/radio.component.mjs +4 -4
  204. package/esm2022/radio/lib/radio.module.mjs +4 -4
  205. package/esm2022/range-slider/lib/range-slider.component.mjs +27 -22
  206. package/esm2022/range-slider/lib/range-slider.module.mjs +7 -6
  207. package/esm2022/result/lib/result.component.mjs +3 -3
  208. package/esm2022/result/lib/result.module.mjs +4 -4
  209. package/esm2022/scheduler/acorex-components-scheduler.mjs +5 -0
  210. package/esm2022/scheduler/index.mjs +4 -0
  211. package/esm2022/scheduler/lib/scheduler-month-view.component.mjs +45 -0
  212. package/esm2022/scheduler/lib/scheduler.component.mjs +30 -0
  213. package/esm2022/scheduler/lib/scheduler.module.mjs +26 -0
  214. package/esm2022/search-box/lib/search-box.component.mjs +35 -44
  215. package/esm2022/search-box/lib/search-box.module.mjs +28 -7
  216. package/esm2022/select-box/lib/select-box.component.mjs +11 -9
  217. package/esm2022/select-box/lib/select-box.module.mjs +7 -7
  218. package/esm2022/selection-list/lib/selection-list.component.mjs +3 -3
  219. package/esm2022/selection-list/lib/selection-list.module.mjs +6 -6
  220. package/esm2022/switch/lib/switch-content.component.mjs +3 -3
  221. package/esm2022/switch/lib/switch.component.mjs +27 -24
  222. package/esm2022/switch/lib/switch.module.mjs +4 -4
  223. package/esm2022/tabs/lib/tab-content.directive.mjs +3 -3
  224. package/esm2022/tabs/lib/tab-item.component.mjs +3 -3
  225. package/esm2022/tabs/lib/tabs.component.mjs +3 -3
  226. package/esm2022/tabs/lib/tabs.module.mjs +4 -4
  227. package/esm2022/tag/lib/tag.component.mjs +3 -3
  228. package/esm2022/tag/lib/tag.module.mjs +4 -4
  229. package/esm2022/text-area/acorex-components-text-area.mjs +5 -0
  230. package/esm2022/text-area/index.mjs +3 -0
  231. package/esm2022/text-area/lib/text-area.component.mjs +36 -0
  232. package/esm2022/text-area/lib/text-area.module.mjs +19 -0
  233. package/esm2022/{checkbox/acorex-components-checkbox.mjs → text-box/acorex-components-text-box.mjs} +1 -1
  234. package/esm2022/text-box/index.mjs +4 -0
  235. package/esm2022/text-box/lib/mask-options.directive.mjs +17 -0
  236. package/esm2022/text-box/lib/text-box.component.mjs +111 -0
  237. package/esm2022/text-box/lib/text-box.module.mjs +38 -0
  238. package/esm2022/time-box/lib/time-box.component.mjs +5 -5
  239. package/esm2022/time-box/lib/time-box.module.mjs +4 -4
  240. package/esm2022/toast/index.mjs +2 -1
  241. package/esm2022/toast/lib/toast.class.mjs +1 -1
  242. package/esm2022/toast/lib/toast.component.mjs +37 -25
  243. package/esm2022/toast/lib/toast.config.mjs +19 -0
  244. package/esm2022/toast/lib/toast.module.mjs +12 -8
  245. package/esm2022/toast/lib/toast.service.mjs +46 -55
  246. package/esm2022/tooltip/lib/tooltip.component.mjs +3 -3
  247. package/esm2022/tooltip/lib/tooltip.directive.mjs +3 -3
  248. package/esm2022/tooltip/lib/tooltip.module.mjs +4 -4
  249. package/esm2022/uploader/lib/uploader.component.mjs +3 -3
  250. package/esm2022/uploader/lib/uploader.module.mjs +4 -4
  251. package/fesm2022/acorex-components-action-sheet.mjs +99 -125
  252. package/fesm2022/acorex-components-action-sheet.mjs.map +1 -1
  253. package/fesm2022/acorex-components-alert.mjs +21 -22
  254. package/fesm2022/acorex-components-alert.mjs.map +1 -1
  255. package/fesm2022/acorex-components-avatar.mjs +10 -10
  256. package/fesm2022/acorex-components-badge.mjs +9 -9
  257. package/fesm2022/acorex-components-badge.mjs.map +1 -1
  258. package/fesm2022/acorex-components-breadcrumbs.mjs +10 -10
  259. package/fesm2022/acorex-components-button.mjs +41 -24
  260. package/fesm2022/acorex-components-button.mjs.map +1 -1
  261. package/fesm2022/acorex-components-calendar.mjs +28 -25
  262. package/fesm2022/acorex-components-calendar.mjs.map +1 -1
  263. package/fesm2022/acorex-components-check-box.mjs +100 -0
  264. package/fesm2022/acorex-components-check-box.mjs.map +1 -0
  265. package/fesm2022/acorex-components-chips.mjs +10 -9
  266. package/fesm2022/acorex-components-chips.mjs.map +1 -1
  267. package/fesm2022/acorex-components-collapse.mjs +10 -10
  268. package/fesm2022/acorex-components-color-palette.mjs +432 -437
  269. package/fesm2022/acorex-components-color-palette.mjs.map +1 -1
  270. package/fesm2022/acorex-components-color-picker.mjs +16 -10
  271. package/fesm2022/acorex-components-color-picker.mjs.map +1 -1
  272. package/fesm2022/acorex-components-common.mjs +282 -150
  273. package/fesm2022/acorex-components-common.mjs.map +1 -1
  274. package/fesm2022/acorex-components-context-menu.mjs +8 -8
  275. package/fesm2022/acorex-components-context-menu.mjs.map +1 -1
  276. package/fesm2022/acorex-components-data-pager.mjs +214 -228
  277. package/fesm2022/acorex-components-data-pager.mjs.map +1 -1
  278. package/fesm2022/acorex-components-data-table.mjs +41 -71
  279. package/fesm2022/acorex-components-data-table.mjs.map +1 -1
  280. package/fesm2022/acorex-components-date-picker.mjs +25 -22
  281. package/fesm2022/acorex-components-date-picker.mjs.map +1 -1
  282. package/fesm2022/acorex-components-decorators.mjs +80 -283
  283. package/fesm2022/acorex-components-decorators.mjs.map +1 -1
  284. package/fesm2022/acorex-components-dialog.mjs +97 -88
  285. package/fesm2022/acorex-components-dialog.mjs.map +1 -1
  286. package/fesm2022/acorex-components-drawer.mjs +31 -39
  287. package/fesm2022/acorex-components-drawer.mjs.map +1 -1
  288. package/fesm2022/acorex-components-dropdown.mjs +7 -7
  289. package/fesm2022/acorex-components-dropdown.mjs.map +1 -1
  290. package/fesm2022/acorex-components-form.mjs +80 -77
  291. package/fesm2022/acorex-components-form.mjs.map +1 -1
  292. package/fesm2022/acorex-components-image.mjs +15 -19
  293. package/fesm2022/acorex-components-image.mjs.map +1 -1
  294. package/fesm2022/acorex-components-label.mjs +21 -21
  295. package/fesm2022/acorex-components-label.mjs.map +1 -1
  296. package/fesm2022/acorex-components-loading.mjs +51 -83
  297. package/fesm2022/acorex-components-loading.mjs.map +1 -1
  298. package/fesm2022/acorex-components-menu.mjs +29 -22
  299. package/fesm2022/acorex-components-menu.mjs.map +1 -1
  300. package/fesm2022/acorex-components-mixin.mjs +4 -5
  301. package/fesm2022/acorex-components-mixin.mjs.map +1 -1
  302. package/fesm2022/acorex-components-notification.mjs +131 -107
  303. package/fesm2022/acorex-components-notification.mjs.map +1 -1
  304. package/fesm2022/acorex-components-number-box.mjs +106 -96
  305. package/fesm2022/acorex-components-number-box.mjs.map +1 -1
  306. package/fesm2022/acorex-components-otp.mjs +40 -50
  307. package/fesm2022/acorex-components-otp.mjs.map +1 -1
  308. package/fesm2022/acorex-components-page.mjs +12 -12
  309. package/fesm2022/acorex-components-page.mjs.map +1 -1
  310. package/fesm2022/acorex-components-password-box.mjs +41 -30
  311. package/fesm2022/acorex-components-password-box.mjs.map +1 -1
  312. package/fesm2022/acorex-components-popover.mjs +10 -10
  313. package/fesm2022/acorex-components-popup.mjs +107 -170
  314. package/fesm2022/acorex-components-popup.mjs.map +1 -1
  315. package/fesm2022/acorex-components-progress-bar.mjs +7 -7
  316. package/fesm2022/acorex-components-radio.mjs +8 -8
  317. package/fesm2022/acorex-components-radio.mjs.map +1 -1
  318. package/fesm2022/acorex-components-range-slider.mjs +31 -27
  319. package/fesm2022/acorex-components-range-slider.mjs.map +1 -1
  320. package/fesm2022/acorex-components-result.mjs +7 -7
  321. package/fesm2022/acorex-components-scheduler.mjs +98 -0
  322. package/fesm2022/acorex-components-scheduler.mjs.map +1 -0
  323. package/fesm2022/acorex-components-search-box.mjs +61 -49
  324. package/fesm2022/acorex-components-search-box.mjs.map +1 -1
  325. package/fesm2022/acorex-components-select-box.mjs +16 -14
  326. package/fesm2022/acorex-components-select-box.mjs.map +1 -1
  327. package/fesm2022/acorex-components-selection-list.mjs +8 -8
  328. package/fesm2022/acorex-components-selection-list.mjs.map +1 -1
  329. package/fesm2022/acorex-components-switch.mjs +33 -31
  330. package/fesm2022/acorex-components-switch.mjs.map +1 -1
  331. package/fesm2022/acorex-components-tabs.mjs +13 -13
  332. package/fesm2022/acorex-components-tag.mjs +7 -7
  333. package/fesm2022/acorex-components-text-area.mjs +59 -0
  334. package/fesm2022/acorex-components-text-area.mjs.map +1 -0
  335. package/fesm2022/{acorex-components-textbox.mjs → acorex-components-text-box.mjs} +49 -32
  336. package/fesm2022/acorex-components-text-box.mjs.map +1 -0
  337. package/fesm2022/acorex-components-time-box.mjs +8 -8
  338. package/fesm2022/acorex-components-time-box.mjs.map +1 -1
  339. package/fesm2022/acorex-components-toast.mjs +116 -94
  340. package/fesm2022/acorex-components-toast.mjs.map +1 -1
  341. package/fesm2022/acorex-components-tooltip.mjs +10 -10
  342. package/fesm2022/acorex-components-uploader.mjs +7 -7
  343. package/fesm2022/acorex-components.mjs.map +1 -1
  344. package/form/lib/form-field.component.d.ts +2 -4
  345. package/form/lib/form.component.d.ts +12 -17
  346. package/form/lib/validation-rule.widget.d.ts +9 -6
  347. package/form/lib/validation-summary.component.d.ts +7 -9
  348. package/image/lib/image.component.d.ts +7 -13
  349. package/label/lib/label.component.d.ts +4 -7
  350. package/loading/index.d.ts +1 -0
  351. package/loading/lib/loading.component.d.ts +9 -12
  352. package/loading/lib/loading.config.d.ts +8 -0
  353. package/loading/lib/loading.directive.d.ts +5 -5
  354. package/loading/lib/loading.module.d.ts +0 -1
  355. package/loading/lib/loading.service.d.ts +0 -18
  356. package/menu/lib/menu.component.d.ts +4 -2
  357. package/mixin/lib/base-components.class.d.ts +2 -2
  358. package/mixin/lib/base-menu-mixin.class.d.ts +5 -5
  359. package/mixin/lib/button-mixin.class.d.ts +2 -2
  360. package/mixin/lib/clickable-mixin.class.d.ts +2 -2
  361. package/mixin/lib/color-look-mixing.class.d.ts +3 -3
  362. package/mixin/lib/datalist-component.class.d.ts +10 -10
  363. package/mixin/lib/dropdown-mixin.class.d.ts +2 -2
  364. package/mixin/lib/interactive-mixin.class.d.ts +4 -4
  365. package/mixin/lib/loading-mixin.class.d.ts +2 -2
  366. package/mixin/lib/mixin.class.d.ts +61 -61
  367. package/mixin/lib/page-component.class.d.ts +2 -2
  368. package/mixin/lib/selection-component.class.d.ts +2 -2
  369. package/mixin/lib/sizable-mixin.class.d.ts +2 -2
  370. package/mixin/lib/textbox-mixin.class.d.ts +2 -2
  371. package/mixin/lib/value-mixin.class.d.ts +8 -8
  372. package/notification/index.d.ts +1 -0
  373. package/notification/lib/notification.class.d.ts +29 -7
  374. package/notification/lib/notification.component.d.ts +13 -14
  375. package/notification/lib/notification.config.d.ts +13 -0
  376. package/notification/lib/notification.module.d.ts +4 -1
  377. package/notification/lib/notification.service.d.ts +5 -9
  378. package/number-box/lib/number-box.component.d.ts +12 -17
  379. package/otp/lib/otp.component.d.ts +7 -14
  380. package/package.json +36 -30
  381. package/page/lib/base-page.class.d.ts +2 -2
  382. package/password-box/lib/password-box.component.d.ts +8 -11
  383. package/popup/index.d.ts +1 -0
  384. package/popup/lib/popup.component.d.ts +14 -19
  385. package/popup/lib/popup.interface.d.ts +26 -0
  386. package/popup/lib/popup.module.d.ts +4 -4
  387. package/popup/lib/popup.service.d.ts +4 -25
  388. package/range-slider/lib/range-slider.component.d.ts +6 -14
  389. package/range-slider/lib/range-slider.module.d.ts +3 -2
  390. package/scheduler/README.md +3 -0
  391. package/scheduler/index.d.ts +3 -0
  392. package/scheduler/lib/scheduler-month-view.component.d.ts +20 -0
  393. package/scheduler/lib/scheduler.component.d.ts +11 -0
  394. package/scheduler/lib/scheduler.module.d.ts +13 -0
  395. package/search-box/lib/search-box.component.d.ts +8 -16
  396. package/search-box/lib/search-box.module.d.ts +7 -5
  397. package/select-box/lib/select-box.module.d.ts +2 -2
  398. package/selection-list/lib/selection-list.module.d.ts +1 -1
  399. package/switch/lib/switch.component.d.ts +10 -8
  400. package/tabs/lib/tab-item.component.d.ts +2 -2
  401. package/text-area/README.md +3 -0
  402. package/text-area/index.d.ts +2 -0
  403. package/text-area/lib/text-area.component.d.ts +11 -0
  404. package/text-area/lib/text-area.module.d.ts +9 -0
  405. package/text-box/README.md +3 -0
  406. package/text-box/index.d.ts +3 -0
  407. package/text-box/lib/text-box.component.d.ts +25 -0
  408. package/{textbox/lib/textbox.module.d.ts → text-box/lib/text-box.module.d.ts} +1 -1
  409. package/time-box/lib/time-box.component.d.ts +1 -1
  410. package/toast/index.d.ts +1 -0
  411. package/toast/lib/toast.class.d.ts +14 -5
  412. package/toast/lib/toast.component.d.ts +13 -12
  413. package/toast/lib/toast.config.d.ts +12 -0
  414. package/toast/lib/toast.module.d.ts +4 -1
  415. package/toast/lib/toast.service.d.ts +5 -9
  416. package/action-sheet/lib/action-sheet.interface.d.ts +0 -21
  417. package/checkbox/README.md +0 -3
  418. package/checkbox/index.d.ts +0 -2
  419. package/checkbox/lib/checkbox.component.d.ts +0 -17
  420. package/common/lib/directives/debounce-time.directive.d.ts +0 -17
  421. package/data-table/lib/data-column-cell-template.directive.d.ts +0 -8
  422. package/decorators/lib/content.component.d.ts +0 -9
  423. package/decorators/lib/divider.component.d.ts +0 -5
  424. package/decorators/lib/footer.component.d.ts +0 -9
  425. package/decorators/lib/form-hint.component.d.ts +0 -8
  426. package/decorators/lib/header.component.d.ts +0 -9
  427. package/decorators/lib/overlay.component.d.ts +0 -6
  428. package/decorators/lib/placeholder.component.d.ts +0 -5
  429. package/decorators/lib/prefix.component.d.ts +0 -9
  430. package/decorators/lib/sub-title.component.d.ts +0 -9
  431. package/decorators/lib/suffix.component.d.ts +0 -9
  432. package/decorators/lib/text.component.d.ts +0 -9
  433. package/decorators/lib/title.component.d.ts +0 -8
  434. package/esm2022/action-sheet/lib/action-sheet.interface.mjs +0 -2
  435. package/esm2022/checkbox/index.mjs +0 -3
  436. package/esm2022/checkbox/lib/checkbox.component.mjs +0 -49
  437. package/esm2022/checkbox/lib/checkbox.module.mjs +0 -21
  438. package/esm2022/common/lib/directives/debounce-time.directive.mjs +0 -48
  439. package/esm2022/data-table/lib/data-column-cell-template.directive.mjs +0 -17
  440. package/esm2022/decorators/lib/content.component.mjs +0 -26
  441. package/esm2022/decorators/lib/divider.component.mjs +0 -17
  442. package/esm2022/decorators/lib/footer.component.mjs +0 -26
  443. package/esm2022/decorators/lib/form-hint.component.mjs +0 -20
  444. package/esm2022/decorators/lib/header.component.mjs +0 -26
  445. package/esm2022/decorators/lib/overlay.component.mjs +0 -22
  446. package/esm2022/decorators/lib/placeholder.component.mjs +0 -14
  447. package/esm2022/decorators/lib/prefix.component.mjs +0 -26
  448. package/esm2022/decorators/lib/sub-title.component.mjs +0 -26
  449. package/esm2022/decorators/lib/suffix.component.mjs +0 -26
  450. package/esm2022/decorators/lib/text.component.mjs +0 -21
  451. package/esm2022/decorators/lib/title.component.mjs +0 -20
  452. package/esm2022/textarea/acorex-components-textarea.mjs +0 -5
  453. package/esm2022/textarea/index.mjs +0 -3
  454. package/esm2022/textarea/lib/textarea.component.mjs +0 -37
  455. package/esm2022/textarea/lib/textarea.module.mjs +0 -19
  456. package/esm2022/textbox/acorex-components-textbox.mjs +0 -5
  457. package/esm2022/textbox/index.mjs +0 -4
  458. package/esm2022/textbox/lib/mask-options.directive.mjs +0 -17
  459. package/esm2022/textbox/lib/textbox.component.mjs +0 -93
  460. package/esm2022/textbox/lib/textbox.module.mjs +0 -38
  461. package/fesm2022/acorex-components-checkbox.mjs +0 -74
  462. package/fesm2022/acorex-components-checkbox.mjs.map +0 -1
  463. package/fesm2022/acorex-components-textarea.mjs +0 -60
  464. package/fesm2022/acorex-components-textarea.mjs.map +0 -1
  465. package/fesm2022/acorex-components-textbox.mjs.map +0 -1
  466. package/textarea/README.md +0 -3
  467. package/textarea/index.d.ts +0 -2
  468. package/textarea/lib/textarea.component.d.ts +0 -14
  469. package/textarea/lib/textarea.module.d.ts +0 -9
  470. package/textbox/README.md +0 -3
  471. package/textbox/index.d.ts +0 -3
  472. package/textbox/lib/textbox.component.d.ts +0 -27
  473. /package/{textbox → text-box}/lib/mask-options.directive.d.ts +0 -0
@@ -1,127 +1,141 @@
1
- import { AXClosbaleComponent } from '@acorex/components/common';
2
1
  import * as i0 from '@angular/core';
3
- import { TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, HostBinding, NgModule, Injectable } from '@angular/core';
4
- import { AXBaseComponentMixin } from '@acorex/components/mixin';
5
- import * as i2 from '@angular/cdk/portal';
2
+ import { InjectionToken, TemplateRef, Component, ChangeDetectionStrategy, ViewEncapsulation, Inject, HostBinding, inject, Injectable, NgModule } from '@angular/core';
3
+ import { MXBaseComponent, AXClosbaleComponent } from '@acorex/components/common';
4
+ import * as i3 from '@angular/cdk/portal';
6
5
  import { TemplatePortal, ComponentPortal, PortalModule } from '@angular/cdk/portal';
7
- import * as i1 from '@angular/common';
6
+ import * as i1 from '@angular/cdk/dialog';
7
+ import { DIALOG_DATA, Dialog, DialogModule } from '@angular/cdk/dialog';
8
+ import * as i2 from '@angular/common';
8
9
  import { CommonModule } from '@angular/common';
9
- import * as i3 from '@acorex/components/button';
10
+ import * as i4 from '@acorex/components/button';
10
11
  import { AXButtonModule } from '@acorex/components/button';
11
- import { AXConfig } from '@acorex/core/config';
12
- import * as i1$1 from '@angular/cdk/overlay';
12
+ import * as i5 from '@acorex/components/loading';
13
+ import { AXLoadingModule } from '@acorex/components/loading';
14
+ import * as i6 from '@acorex/components/decorators';
15
+ import { AXDecoratorModule } from '@acorex/components/decorators';
16
+ import { GlobalPositionStrategy } from '@angular/cdk/overlay';
17
+
18
+ const AX_NOTIFICATION_CONFIG = new InjectionToken('AX_NOTIFICATION_CONFIG', {
19
+ providedIn: 'root',
20
+ factory: () => AXNotificationDefaultConfig,
21
+ });
22
+ const AXNotificationDefaultConfig = {
23
+ gap: 5,
24
+ timeOut: 2500,
25
+ timeOutProgress: true,
26
+ closeButton: true,
27
+ location: 'top-end',
28
+ };
29
+ function notificationConfig(config = {}) {
30
+ const result = {
31
+ ...AXNotificationDefaultConfig,
32
+ ...config,
33
+ };
34
+ return result;
35
+ }
13
36
 
14
37
  /**
15
38
  * The Button is a component which detects user interaction and triggers a corresponding event
16
39
  *
17
40
  * @category Components
18
41
  */
19
- class AXNotificationComponent extends AXBaseComponentMixin {
42
+ class AXNotificationComponent extends MXBaseComponent {
20
43
  /**
21
- * @ignore
22
- */
23
- constructor(elementRef, cdr, viewRef) {
24
- super(elementRef, cdr);
25
- this.viewRef = viewRef;
44
+ * @ignore
45
+ */
46
+ constructor(config, dialogRef) {
47
+ super();
48
+ this.config = config;
49
+ this.dialogRef = dialogRef;
26
50
  }
27
- onInit() {
51
+ ngOnInit() {
28
52
  this._initContent();
29
53
  this._initIcon();
30
54
  this._handleTimeOut();
31
55
  }
32
56
  _handleTimeOut() {
33
- if (this.options.timeOut) {
57
+ if (this.config.timeOut) {
34
58
  setTimeout(() => {
35
59
  this.close();
36
- }, this.options.timeOut);
60
+ }, this.config.timeOut);
37
61
  }
38
62
  }
39
63
  _initContent() {
40
- if (this.options.content instanceof TemplateRef) {
41
- this._selectedPortal = new TemplatePortal(this.options.content, this.viewRef);
42
- this._cdr.markForCheck();
64
+ if (this.config.content instanceof TemplateRef) {
65
+ this._selectedPortal = new TemplatePortal(this.config.content, this.getViewContainer());
66
+ this.cdr.markForCheck();
43
67
  }
44
- else if (typeof this.options.content === 'function') {
45
- this._selectedPortal = new ComponentPortal(this.options.content);
46
- this._cdr.markForCheck();
68
+ else if (typeof this.config.content === 'function') {
69
+ this._selectedPortal = new ComponentPortal(this.config.content);
70
+ this.cdr.markForCheck();
47
71
  }
48
72
  }
49
73
  _initIcon() {
50
- if (!this.options.icon) {
51
- switch (this.options.color) {
74
+ if (!this.config.icon) {
75
+ switch (this.config.color) {
52
76
  case 'success':
53
77
  this._icon = 'ax-icon ax-icon-check-circle-fill';
54
78
  break;
79
+ case 'danger':
80
+ this._icon = 'ax-icon ax-icon-error-fill';
81
+ break;
55
82
  case 'warning':
56
83
  this._icon = 'ax-icon ax-icon-warning-fill';
57
84
  break;
58
- case 'danger':
59
- this._icon = 'ax-icon ax-icon-error-fill';
85
+ case 'info':
86
+ this._icon = 'ax-icon ax-icon-info-fill';
60
87
  break;
61
88
  default:
62
- this._icon = this.options.icon || 'ax-icon ax-icon-check-circle-fill';
89
+ this._icon = this.config.icon || 'ax-icon ax-icon-check-circle-fill';
63
90
  break;
64
91
  }
65
92
  }
66
93
  else {
67
- this._icon = this.options.icon;
94
+ this._icon = this.config.icon;
68
95
  }
69
96
  }
70
97
  _handleButtonClick(button) {
71
98
  if (button.onClick) {
72
- button.onClick(this);
99
+ button.onClick({ source: button });
73
100
  }
74
101
  }
75
102
  get __hostClass() {
76
- return `ax-${this.options.color}`;
103
+ return `ax-${this.config.color}`;
77
104
  }
78
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.ViewContainerRef }], target: i0.ɵɵFactoryTarget.Component }); }
79
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.5", type: AXNotificationComponent, selector: "ax-notification", host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], usesInheritance: true, ngImport: i0, template: "<span [class]=\"'ax-notification-icon' + ' ' + _icon\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ options.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ options.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"options?.buttons?.length\">\n <ax-button\n *ngFor=\"let button of options.buttons\"\n class=\"ax-xs\"\n [text]=\"button.text\"\n [color]=\"button.color\"\n [look]=\"button.look\"\n (onClick)=\"_handleButtonClick(button)\">\n {{ button.text }}\n </ax-button>\n </div>\n</div>\n<span class=\"ax-icon ax-icon-close\" (click)=\"close()\"></span>\n<div\n class=\"ax-notification-progress\"\n [style.animation-duration.ms]=\"options.timeOut\"\n *ngIf=\"options.timeOut\"></div>\n", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i3.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
105
+ close() {
106
+ this.dialogRef.close({
107
+ component: this,
108
+ htmlElement: this.getHostElement(),
109
+ });
110
+ }
111
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationComponent, deps: [{ token: DIALOG_DATA }, { token: i1.DialogRef }], target: i0.ɵɵFactoryTarget.Component }); }
112
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: AXNotificationComponent, selector: "ax-notification", host: { properties: { "class": "this.__hostClass" } }, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], usesInheritance: true, ngImport: i0, template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }, { kind: "component", type: i4.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected", "type"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "context"], outputs: ["visibleChange"] }, { kind: "component", type: i6.AXDecoratorCloseButtonComponent, selector: "ax-close-button", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
80
113
  }
81
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationComponent, decorators: [{
114
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationComponent, decorators: [{
82
115
  type: Component,
83
- args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], template: "<span [class]=\"'ax-notification-icon' + ' ' + _icon\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ options.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ options.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"options?.buttons?.length\">\n <ax-button\n *ngFor=\"let button of options.buttons\"\n class=\"ax-xs\"\n [text]=\"button.text\"\n [color]=\"button.color\"\n [look]=\"button.look\"\n (onClick)=\"_handleButtonClick(button)\">\n {{ button.text }}\n </ax-button>\n </div>\n</div>\n<span class=\"ax-icon ax-icon-close\" (click)=\"close()\"></span>\n<div\n class=\"ax-notification-progress\"\n [style.animation-duration.ms]=\"options.timeOut\"\n *ngIf=\"options.timeOut\"></div>\n", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"] }]
84
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.ViewContainerRef }]; }, propDecorators: { __hostClass: [{
116
+ args: [{ selector: 'ax-notification', changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }], template: "<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>", styles: [".ax-dark ax-notification{background-color:rgba(var(--ax-color-default))}ax-notification{width:max(20vw,380px);display:flex;padding:1rem;border-radius:var(--ax-rounded-border-default);font-size:.875rem;border:1px solid;background-color:rgba(var(--ax-color-surface));border-color:rgba(var(--ax-color-border-default));position:relative;overflow:hidden;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-notification.ax-primary .ax-notification-icon{color:rgba(var(--ax-color-primary-500))}ax-notification.ax-primary .ax-notification-progress{background-color:rgba(var(--ax-color-primary-500))}ax-notification.ax-secondary .ax-notification-icon{color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-secondary .ax-notification-progress{background-color:rgba(var(--ax-color-secondary-500))}ax-notification.ax-success .ax-notification-icon{color:rgba(var(--ax-color-success-500))}ax-notification.ax-success .ax-notification-progress{background-color:rgba(var(--ax-color-success-500))}ax-notification.ax-warning .ax-notification-icon{color:rgba(var(--ax-color-warning-500))}ax-notification.ax-warning .ax-notification-progress{background-color:rgba(var(--ax-color-warning-500))}ax-notification.ax-danger .ax-notification-icon{color:rgba(var(--ax-color-danger-500))}ax-notification.ax-danger .ax-notification-progress{background-color:rgba(var(--ax-color-danger-500))}ax-notification.ax-info .ax-notification-icon{color:rgba(var(--ax-color-info-500))}ax-notification.ax-info .ax-notification-progress{background-color:rgba(var(--ax-color-info-500))}@media (max-width: 599px){ax-notification{width:98vw}}ax-notification .ax-notification-icon,ax-notification .ax-icon-close{font-size:1.25rem}ax-notification .ax-notification-icon{padding-inline-end:.75rem}ax-notification .ax-notification-content{display:flex;flex-direction:column;flex:1;color:rgba(var(--ax-color-default-fore));font-weight:400}ax-notification .ax-notification-content .ax-notification-title{font-weight:500;margin-bottom:.25rem;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-notification-content .ax-notification-buttons{margin-top:.75rem;display:flex;gap:.75rem}ax-notification .ax-icon-close{cursor:pointer;height:-moz-fit-content;height:fit-content;color:rgba(var(--ax-color-default-fore))}ax-notification .ax-icon-close:hover{opacity:.6}ax-notification .ax-notification-progress{position:absolute;right:0;left:0;bottom:0;height:.25rem;width:100%;animation-duration:4s;animation-timing-function:linear;animation-name:progressBar;background-color:rgba(var(--ax-color-border-default))}@keyframes progressBar{0%{width:100%}to{width:0%}}\n"] }]
117
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
118
+ type: Inject,
119
+ args: [DIALOG_DATA]
120
+ }] }, { type: i1.DialogRef }]; }, propDecorators: { __hostClass: [{
85
121
  type: HostBinding,
86
122
  args: ['class']
87
123
  }] } });
88
124
 
89
- const COMPONENT = [AXNotificationComponent];
90
- const MODULES = [CommonModule, PortalModule, AXButtonModule];
91
- class AXNotificationModule {
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
93
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationModule, declarations: [AXNotificationComponent], imports: [CommonModule, PortalModule, AXButtonModule], exports: [AXNotificationComponent] }); }
94
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationModule, imports: [MODULES] }); }
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationModule, decorators: [{
97
- type: NgModule,
98
- args: [{
99
- declarations: [...COMPONENT],
100
- imports: [...MODULES],
101
- exports: [...COMPONENT],
102
- providers: [],
103
- }]
104
- }] });
105
-
106
125
  class AXNotificationService {
107
- constructor(overlayService, parentInjector) {
108
- this.overlayService = overlayService;
109
- this.parentInjector = parentInjector;
110
- this._defaults = {
111
- gap: 5,
112
- location: 'top-end',
113
- };
114
- this._activeList = [];
126
+ constructor() {
127
+ this.dialog = inject(Dialog);
128
+ this.defaultConfig = inject(AX_NOTIFICATION_CONFIG);
115
129
  }
116
- show(options) {
117
- const opt = Object.assign({
118
- closeable: true,
119
- location: AXConfig.get('notification.location') || this._defaults.location,
120
- }, options);
121
- const gap = AXConfig.get('notification.gap') || this._defaults.gap;
122
- let positionStrategy = this.overlayService.position().global();
123
- const pos = this.getPosition(opt.location) + gap + 'px';
124
- switch (opt.location) {
130
+ show(config) {
131
+ config = Object.assign({
132
+ closeButton: true,
133
+ location: this.defaultConfig.location,
134
+ }, config);
135
+ const gap = this.defaultConfig.gap;
136
+ let positionStrategy = new GlobalPositionStrategy();
137
+ const pos = this.getPosition(config.location) + gap + 'px';
138
+ switch (config.location) {
125
139
  case 'bottom-center':
126
140
  positionStrategy = positionStrategy.bottom(pos).centerHorizontally();
127
141
  break;
@@ -151,62 +165,72 @@ class AXNotificationService {
151
165
  default:
152
166
  break;
153
167
  }
154
- const overlayRef = this.overlayService.create({
155
- positionStrategy,
156
- panelClass: [
157
- 'ax-animate-animated',
158
- 'ax-animate-fadeIn',
159
- 'ax-animate-faster',
160
- ],
168
+ const dialogRef = this.dialog.open(AXNotificationComponent, {
169
+ data: config,
170
+ autoFocus: "__no_element__",
171
+ restoreFocus: false,
172
+ role: 'dialog',
173
+ ariaModal: true,
174
+ closeOnNavigation: true,
175
+ closeOnDestroy: true,
176
+ hasBackdrop: false,
177
+ panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],
178
+ positionStrategy: positionStrategy
179
+ });
180
+ const toastRef = dialogRef.componentInstance;
181
+ dialogRef.closed.subscribe(() => {
182
+ this.reposition();
161
183
  });
162
- const notificationPortal = new ComponentPortal(AXNotificationComponent, null, this.parentInjector);
163
- const host = overlayRef.attach(notificationPortal);
164
- host.instance.visibleIndex = this._activeList.length;
165
- this._activeList.push(host.instance);
166
- if (host.instance) {
167
- Object.assign(host.instance, {
168
- options: opt,
169
- close: () => {
170
- this._activeList = this._activeList.filter(c => c != host.instance);
171
- overlayRef.dispose();
172
- },
173
- });
174
- setTimeout(() => {
175
- host.changeDetectorRef.detectChanges();
176
- }, 0);
177
- }
178
184
  return {
179
185
  close: () => {
180
- host.instance.close();
181
- },
186
+ toastRef.close();
187
+ }
182
188
  };
183
189
  }
184
190
  hideAll() {
185
- this._activeList.forEach(c => c.close());
191
+ this.dialog.closeAll();
192
+ }
193
+ reposition() {
194
+ //TODO: reposition vertically afer close toast
186
195
  }
187
196
  getPosition(location) {
188
- const list = this._activeList.filter(c => c.options.location == location);
197
+ const list = this.dialog.openDialogs.map(c => c.componentInstance).filter(c => c.config.location == location);
189
198
  if (list.length == 0)
190
199
  return 0;
191
200
  if (location.split('-')[0] == 'bottom') {
192
- return (window.innerHeight - list[list.length - 1]._getHostElement().offsetTop);
201
+ return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;
193
202
  }
194
203
  else {
195
- return (list[list.length - 1]._getHostElement().offsetTop +
196
- list[list.length - 1]._getHostElement().offsetHeight);
204
+ return list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight;
197
205
  }
198
206
  }
199
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationService, deps: [{ token: i1$1.Overlay }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Injectable }); }
200
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationService, providedIn: 'root' }); }
207
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
208
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationService }); }
201
209
  }
202
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.5", ngImport: i0, type: AXNotificationService, decorators: [{
203
- type: Injectable,
204
- args: [{ providedIn: 'root' }]
205
- }], ctorParameters: function () { return [{ type: i1$1.Overlay }, { type: i0.Injector }]; } });
210
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationService, decorators: [{
211
+ type: Injectable
212
+ }] });
213
+
214
+ const COMPONENT = [AXNotificationComponent];
215
+ const MODULES = [CommonModule, PortalModule, AXButtonModule, DialogModule, AXLoadingModule, AXDecoratorModule];
216
+ class AXNotificationModule {
217
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
218
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationModule, declarations: [AXNotificationComponent], imports: [CommonModule, PortalModule, AXButtonModule, DialogModule, AXLoadingModule, AXDecoratorModule], exports: [AXNotificationComponent] }); }
219
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationModule, providers: [AXNotificationService], imports: [MODULES] }); }
220
+ }
221
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: AXNotificationModule, decorators: [{
222
+ type: NgModule,
223
+ args: [{
224
+ declarations: [...COMPONENT],
225
+ imports: [...MODULES],
226
+ exports: [...COMPONENT],
227
+ providers: [AXNotificationService],
228
+ }]
229
+ }] });
206
230
 
207
231
  /**
208
232
  * Generated bundle index. Do not edit.
209
233
  */
210
234
 
211
- export { AXNotificationComponent, AXNotificationModule, AXNotificationService };
235
+ export { AXNotificationComponent, AXNotificationDefaultConfig, AXNotificationModule, AXNotificationService, AX_NOTIFICATION_CONFIG, notificationConfig };
212
236
  //# sourceMappingURL=acorex-components-notification.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-notification.mjs","sources":["../../../../libs/components/notification/src/lib/notification.component.ts","../../../../libs/components/notification/src/lib/notification.component.html","../../../../libs/components/notification/src/lib/notification.module.ts","../../../../libs/components/notification/src/lib/notification.service.ts","../../../../libs/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import { AXClosbaleComponent } from '@acorex/components/common';\nimport { AXButtonItem } from '@acorex/components/button';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n ElementRef,\n ChangeDetectorRef,\n HostBinding,\n TemplateRef,\n ViewContainerRef,\n} from '@angular/core';\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { AXNotificationOptions } from './notification.class';\nimport { ComponentPortal, Portal, TemplatePortal } from '@angular/cdk/portal';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }],\n})\nexport class AXNotificationComponent extends AXBaseComponentMixin {\n options: AXNotificationOptions;\n _selectedPortal: Portal<any>;\n _icon: string;\n\n close: () => void;\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef, private viewRef: ViewContainerRef) {\n super(elementRef, cdr);\n }\n\n override onInit() {\n this._initContent();\n this._initIcon();\n this._handleTimeOut();\n }\n\n private _handleTimeOut() {\n if (this.options.timeOut) {\n setTimeout(() => {\n this.close();\n }, this.options.timeOut);\n }\n }\n private _initContent() {\n if (this.options.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.options.content as TemplateRef<any>,\n this.viewRef\n );\n this._cdr.markForCheck();\n } else if (typeof this.options.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.options.content as any);\n this._cdr.markForCheck();\n }\n }\n\n private _initIcon() {\n if (!this.options.icon) {\n switch (this.options.color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle-fill';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning-fill';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error-fill';\n break;\n default:\n this._icon = this.options.icon || 'ax-icon ax-icon-check-circle-fill';\n break;\n }\n } else {\n this._icon = this.options.icon;\n }\n }\n\n _handleButtonClick(button: AXButtonItem) {\n if (button.onClick) {\n button.onClick(this);\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.options.color}`;\n }\n}\n","<span [class]=\"'ax-notification-icon' + ' ' + _icon\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ options.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ options.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"options?.buttons?.length\">\n <ax-button\n *ngFor=\"let button of options.buttons\"\n class=\"ax-xs\"\n [text]=\"button.text\"\n [color]=\"button.color\"\n [look]=\"button.look\"\n (onClick)=\"_handleButtonClick(button)\">\n {{ button.text }}\n </ax-button>\n </div>\n</div>\n<span class=\"ax-icon ax-icon-close\" (click)=\"close()\"></span>\n<div\n class=\"ax-notification-progress\"\n [style.animation-duration.ms]=\"options.timeOut\"\n *ngIf=\"options.timeOut\"></div>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXNotificationComponent } from './notification.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXButtonModule } from '@acorex/components/button';\n\nconst COMPONENT = [AXNotificationComponent];\nconst MODULES = [CommonModule, PortalModule, AXButtonModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXNotificationModule {}\n","import { AXConfig } from '@acorex/core/config';\nimport { Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { Injectable, Injector, TemplateRef } from '@angular/core';\nimport { AXNotificationOptions, AXNotificationRef } from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\n\n@Injectable({ providedIn: 'root' })\nexport class AXNotificationService {\n private readonly _defaults = {\n gap: 5,\n location: 'top-end',\n };\n\n constructor(\n private overlayService: Overlay,\n private parentInjector: Injector\n ) {}\n\n private _activeList: AXNotificationComponent[] = [];\n\n show(options: AXNotificationOptions): AXNotificationRef {\n const opt = Object.assign(\n {\n closeable: true,\n location:\n AXConfig.get('notification.location') || this._defaults.location,\n },\n options\n );\n const gap = AXConfig.get('notification.gap') || this._defaults.gap;\n\n let positionStrategy = this.overlayService.position().global();\n const pos = this.getPosition(opt.location) + gap + 'px';\n switch (opt.location) {\n case 'bottom-center':\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally();\n break;\n case 'bottom-end':\n positionStrategy = positionStrategy.bottom(pos).right(gap + 'px');\n break;\n case 'bottom-start':\n positionStrategy = positionStrategy.bottom(pos).left(gap + 'px');\n break;\n case 'top-center':\n positionStrategy = positionStrategy.top(pos).centerHorizontally();\n break;\n case 'top-end':\n positionStrategy = positionStrategy.top(pos).right(gap + 'px');\n break;\n case 'top-start':\n positionStrategy = positionStrategy.top(pos).left(gap + 'px');\n break;\n case 'center-start':\n positionStrategy = positionStrategy.centerVertically().left(gap + 'px');\n break;\n case 'center-end':\n positionStrategy = positionStrategy\n .centerVertically()\n .right(gap + 'px');\n break;\n default:\n break;\n }\n const overlayRef = this.overlayService.create({\n positionStrategy,\n panelClass: [\n 'ax-animate-animated',\n 'ax-animate-fadeIn',\n 'ax-animate-faster',\n ],\n });\n const notificationPortal = new ComponentPortal(\n AXNotificationComponent,\n null,\n this.parentInjector\n );\n\n const host = overlayRef.attach(notificationPortal);\n (host.instance as any).visibleIndex = this._activeList.length;\n this._activeList.push(host.instance);\n if (host.instance) {\n Object.assign(host.instance, {\n options: opt,\n close: () => {\n this._activeList = this._activeList.filter(c => c != host.instance);\n overlayRef.dispose();\n },\n });\n setTimeout(() => {\n host.changeDetectorRef.detectChanges();\n }, 0);\n }\n\n return {\n close: () => {\n host.instance.close();\n },\n };\n }\n\n public hideAll() {\n this._activeList.forEach(c => c.close());\n }\n\n private getPosition(location: string) {\n const list = this._activeList.filter(c => c.options.location == location);\n if (list.length == 0) return 0;\n if (location.split('-')[0] == 'bottom') {\n return (\n window.innerHeight - list[list.length - 1]._getHostElement().offsetTop\n );\n } else {\n return (\n list[list.length - 1]._getHostElement().offsetTop +\n list[list.length - 1]._getHostElement().offsetHeight\n );\n }\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-notification.mjs","sources":["../../../../libs/components/notification/src/lib/notification.config.ts","../../../../libs/components/notification/src/lib/notification.component.ts","../../../../libs/components/notification/src/lib/notification.component.html","../../../../libs/components/notification/src/lib/notification.service.ts","../../../../libs/components/notification/src/lib/notification.module.ts","../../../../libs/components/notification/src/acorex-components-notification.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { AXLocation } from '@acorex/components/common';\n\n\nexport interface AXNotificationConfig {\n gap: number,\n timeOut: number,\n timeOutProgress: boolean,\n location: AXLocation,\n closeButton: boolean\n}\n\nexport const AX_NOTIFICATION_CONFIG = new InjectionToken<AXNotificationConfig>(\n 'AX_NOTIFICATION_CONFIG',\n {\n providedIn: 'root',\n factory: () => AXNotificationDefaultConfig,\n }\n);\n\n\nexport const AXNotificationDefaultConfig: AXNotificationConfig = {\n gap: 5,\n timeOut: 2500,\n timeOutProgress: true,\n closeButton: true,\n location: 'top-end',\n};\n\n\nexport type PartialNotificationConfig = Partial<AXNotificationConfig>;\n\nexport function notificationConfig(config: PartialNotificationConfig = {}): AXNotificationConfig {\n const result = {\n ...AXNotificationDefaultConfig,\n ...config,\n };\n return result\n}","import { AXClosbaleComponent, AXComponentCloseEvent, MXBaseComponent } from '@acorex/components/common';\nimport { ComponentPortal, ComponentType, Portal, TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n HostBinding,\n Inject,\n TemplateRef,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXNotificationButtonItem, AXNotificationData } from './notification.class';\nimport { DIALOG_DATA, DialogRef } from '@angular/cdk/dialog';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-notification',\n templateUrl: './notification.component.html',\n styleUrls: ['./notification.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n providers: [{ provide: AXClosbaleComponent, useExisting: AXNotificationComponent }],\n})\nexport class AXNotificationComponent extends MXBaseComponent {\n\n _selectedPortal: Portal<unknown>;\n _icon: string;\n\n /**\n * @ignore\n */\n constructor(\n @Inject(DIALOG_DATA)\n public config: AXNotificationData,\n private dialogRef: DialogRef<AXComponentCloseEvent>,\n ) {\n super();\n }\n\n\n ngOnInit() {\n this._initContent();\n this._initIcon();\n this._handleTimeOut();\n }\n\n private _handleTimeOut() {\n if (this.config.timeOut) {\n setTimeout(() => {\n this.close();\n }, this.config.timeOut);\n }\n }\n\n private _initContent() {\n if (this.config.content instanceof TemplateRef) {\n this._selectedPortal = new TemplatePortal(\n this.config.content as TemplateRef<unknown>,\n this.getViewContainer(),\n );\n this.cdr.markForCheck();\n } else if (typeof this.config.content === 'function') {\n this._selectedPortal = new ComponentPortal(this.config.content as ComponentType<unknown>);\n this.cdr.markForCheck();\n }\n }\n\n private _initIcon() {\n if (!this.config.icon) {\n switch (this.config.color) {\n case 'success':\n this._icon = 'ax-icon ax-icon-check-circle-fill';\n break;\n case 'danger':\n this._icon = 'ax-icon ax-icon-error-fill';\n break;\n case 'warning':\n this._icon = 'ax-icon ax-icon-warning-fill';\n break;\n case 'info':\n this._icon = 'ax-icon ax-icon-info-fill';\n break;\n default:\n this._icon = this.config.icon || 'ax-icon ax-icon-check-circle-fill';\n break;\n }\n } else {\n this._icon = this.config.icon;\n }\n }\n\n protected _handleButtonClick(button: AXNotificationButtonItem) {\n if (button.onClick) {\n button.onClick({ source: button });\n }\n }\n\n @HostBinding('class')\n private get __hostClass(): string {\n return `ax-${this.config.color}`;\n }\n\n close() {\n this.dialogRef.close({\n component: this,\n htmlElement: this.getHostElement(),\n });\n }\n}\n","<span class=\"ax-notification-icon {{_icon}}\"></span>\n<div class=\"ax-notification-content\">\n <div class=\"ax-notification-title\">{{ config.title }}</div>\n <ng-template *ngIf=\"_selectedPortal\">\n <ng-template [cdkPortalOutlet]=\"_selectedPortal\"></ng-template>\n </ng-template>\n <div *ngIf=\"!_selectedPortal\">{{ config.content }}</div>\n <div class=\"ax-notification-buttons\" *ngIf=\"config.buttons?.length\">\n <ng-container *ngFor=\"let button of config.buttons\">\n <ax-button class=\"ax-xs\" [text]=\"button.text\" [color]=\"button.color\" [look]=\"button.look\"\n [disabled]=\"button.disabled\" (onClick)=\"_handleButtonClick(button)\">\n <ax-loading *ngIf=\"button.loading\"></ax-loading>\n </ax-button>\n </ng-container>\n\n </div>\n</div>\n<ax-close-button *ngIf=\"config.closeButton\"></ax-close-button>\n<div class=\"ax-notification-progress\" [style.animation-duration.ms]=\"config.timeOut\"\n *ngIf=\"config.timeOutProgress && config.timeOut\"></div>","import { Injectable, inject } from '@angular/core';\nimport { AXNotificationOptions as AXNotificationDisplayConfig, AXNotificationRef } from './notification.class';\nimport { AXNotificationComponent } from './notification.component';\nimport { Dialog } from '@angular/cdk/dialog';\nimport { GlobalPositionStrategy } from '@angular/cdk/overlay';\nimport { AXComponentCloseEvent } from '@acorex/components/common';\nimport { AXNotificationConfig, AX_NOTIFICATION_CONFIG } from './notification.config';\n\n@Injectable()\nexport class AXNotificationService {\n\n private dialog: Dialog = inject(Dialog);\n private defaultConfig: AXNotificationConfig = inject(AX_NOTIFICATION_CONFIG);\n\n\n show(config: AXNotificationDisplayConfig): AXNotificationRef {\n config = Object.assign(\n {\n closeButton: true,\n location: this.defaultConfig.location,\n },\n config\n );\n const gap = this.defaultConfig.gap;\n\n let positionStrategy = new GlobalPositionStrategy();\n const pos = this.getPosition(config.location) + gap + 'px';\n switch (config.location) {\n case 'bottom-center':\n positionStrategy = positionStrategy.bottom(pos).centerHorizontally();\n break;\n case 'bottom-end':\n positionStrategy = positionStrategy.bottom(pos).right(gap + 'px');\n break;\n case 'bottom-start':\n positionStrategy = positionStrategy.bottom(pos).left(gap + 'px');\n break;\n case 'top-center':\n positionStrategy = positionStrategy.top(pos).centerHorizontally();\n break;\n case 'top-end':\n positionStrategy = positionStrategy.top(pos).right(gap + 'px');\n break;\n case 'top-start':\n positionStrategy = positionStrategy.top(pos).left(gap + 'px');\n break;\n case 'center-start':\n positionStrategy = positionStrategy.centerVertically().left(gap + 'px');\n break;\n case 'center-end':\n positionStrategy = positionStrategy\n .centerVertically()\n .right(gap + 'px');\n break;\n default:\n break;\n }\n\n const dialogRef = this.dialog.open(AXNotificationComponent, {\n data: config,\n autoFocus: \"__no_element__\",\n restoreFocus: false,\n role: 'dialog',\n ariaModal: true,\n closeOnNavigation: true,\n closeOnDestroy: true,\n hasBackdrop: false,\n panelClass: ['ax-animate-animated', 'ax-animate-fadeIn', 'ax-animate-faster'],\n positionStrategy: positionStrategy\n });\n\n const toastRef = dialogRef.componentInstance as AXNotificationComponent;\n dialogRef.closed.subscribe(() => {\n this.reposition();\n })\n\n return {\n close: () => {\n toastRef.close();\n }\n }\n }\n\n public hideAll() {\n this.dialog.closeAll();\n }\n\n private reposition(): void {\n //TODO: reposition vertically afer close toast\n\n }\n\n private getPosition(location: string) {\n const list = this.dialog.openDialogs.map(c => c.componentInstance as AXNotificationComponent).filter(c => c.config.location == location);\n if (list.length == 0) return 0;\n if (location.split('-')[0] == 'bottom') {\n return window.innerHeight - list[list.length - 1].getHostElement().offsetTop;\n }\n else {\n return list[list.length - 1].getHostElement().offsetTop + list[list.length - 1].getHostElement().offsetHeight;\n }\n }\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXNotificationComponent } from './notification.component';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXButtonModule } from '@acorex/components/button';\nimport { AXNotificationService } from './notification.service';\nimport { DialogModule } from '@angular/cdk/dialog';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\n\nconst COMPONENT = [AXNotificationComponent];\nconst MODULES = [CommonModule, PortalModule, AXButtonModule, DialogModule, AXLoadingModule, AXDecoratorModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [AXNotificationService],\n})\nexport class AXNotificationModule { }\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}