@acorex/components 6.0.16 → 6.1.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 (238) hide show
  1. package/alert/src/alert.component.d.ts +4 -4
  2. package/avatar/src/avatar.component.d.ts +6 -9
  3. package/badge/src/badge.component.d.ts +1 -1
  4. package/breadcrumbs/src/breadcrumbs-item.component.d.ts +4 -4
  5. package/button/src/button-group.component.d.ts +4 -4
  6. package/button/src/button-item.class.d.ts +2 -1
  7. package/button/src/button-item.component.d.ts +4 -4
  8. package/button/src/button.component.d.ts +3 -1
  9. package/calendar/src/calendar.component.d.ts +20 -20
  10. package/color-picker/src/color-picker.component.d.ts +18 -21
  11. package/common/public-api.d.ts +1 -0
  12. package/common/src/auto-focus.directive.d.ts +2 -1
  13. package/common/src/common.module.d.ts +4 -3
  14. package/common/src/debounce-time.directive.d.ts +17 -0
  15. package/common/src/events.class.d.ts +2 -2
  16. package/date-picker/src/datepicker.component.d.ts +23 -23
  17. package/decorators/public-api.d.ts +1 -0
  18. package/decorators/src/decorators.module.d.ts +3 -2
  19. package/decorators/src/text.component.d.ts +9 -0
  20. package/dialog/src/dialog.service.d.ts +3 -1
  21. package/dropdown/src/dropdown-panel.component.d.ts +1 -0
  22. package/dropdown/src/dropdown.module.d.ts +7 -5
  23. package/esm2020/action-sheet/src/action-sheet-item.component.mjs +1 -1
  24. package/esm2020/alert/src/alert.component.mjs +4 -8
  25. package/esm2020/avatar/src/avatar.component.mjs +14 -21
  26. package/esm2020/badge/src/badge.component.mjs +3 -3
  27. package/esm2020/button/src/button-item.class.mjs +1 -1
  28. package/esm2020/button/src/button-item.component.mjs +3 -3
  29. package/esm2020/button/src/button.component.mjs +9 -6
  30. package/esm2020/calendar/src/calendar.component.mjs +7 -4
  31. package/esm2020/collapse/src/collapse.component.mjs +3 -3
  32. package/esm2020/color-palette/src/color-palette-input.component.mjs +1 -1
  33. package/esm2020/color-picker/src/color-picker.component.mjs +4 -4
  34. package/esm2020/common/public-api.mjs +2 -1
  35. package/esm2020/common/src/auto-focus.directive.mjs +7 -3
  36. package/esm2020/common/src/common.module.mjs +6 -1
  37. package/esm2020/common/src/debounce-time.directive.mjs +47 -0
  38. package/esm2020/common/src/events.class.mjs +1 -1
  39. package/esm2020/data-pager/src/data-pager-input-selector.component.mjs +5 -4
  40. package/esm2020/data-pager/src/data-pager-next-buttons.components.mjs +1 -1
  41. package/esm2020/data-pager/src/data-pager-numeric-selector.component.mjs +1 -1
  42. package/esm2020/data-pager/src/data-pager-pagesize-dropdown.component.mjs +1 -1
  43. package/esm2020/data-pager/src/data-pager-prev-buttons.component.mjs +1 -1
  44. package/esm2020/date-picker/src/datepicker.component.mjs +10 -9
  45. package/esm2020/decorators/public-api.mjs +2 -1
  46. package/esm2020/decorators/src/decorators.module.mjs +8 -4
  47. package/esm2020/decorators/src/icon.component.mjs +3 -2
  48. package/esm2020/decorators/src/text.component.mjs +21 -0
  49. package/esm2020/dialog/src/dialog.class.mjs +1 -1
  50. package/esm2020/dialog/src/dialog.component.mjs +1 -1
  51. package/esm2020/dialog/src/dialog.service.mjs +11 -7
  52. package/esm2020/dropdown/src/dropdown-panel.component.mjs +14 -3
  53. package/esm2020/dropdown/src/dropdown.module.mjs +6 -4
  54. package/esm2020/form/src/form.component.mjs +10 -3
  55. package/esm2020/form/src/validation-summary.component.mjs +1 -1
  56. package/esm2020/image/src/image.component.mjs +36 -9
  57. package/esm2020/menu/src/menu.component.mjs +5 -3
  58. package/esm2020/mixin/src/textbox-mixin.class.mjs +52 -83
  59. package/esm2020/number-box/src/number-box.component.mjs +10 -5
  60. package/esm2020/password-box/src/password-box.component.mjs +12 -6
  61. package/esm2020/popover/src/popover.component.mjs +9 -18
  62. package/esm2020/popup/src/popup.component.mjs +14 -6
  63. package/esm2020/popup/src/popup.module.mjs +4 -3
  64. package/esm2020/popup/src/popup.service.mjs +8 -4
  65. package/esm2020/search-box/src/search-box.component.mjs +4 -3
  66. package/esm2020/select-box/src/selectbox.component.mjs +5 -5
  67. package/esm2020/textarea/src/textarea.component.mjs +11 -5
  68. package/esm2020/textbox/public-api.mjs +2 -1
  69. package/esm2020/textbox/src/mask-options.directive.mjs +22 -0
  70. package/esm2020/textbox/src/textbox.component.mjs +66 -9
  71. package/esm2020/textbox/src/textbox.module.mjs +12 -11
  72. package/esm2020/time-box/src/time-box.component.mjs +11 -5
  73. package/esm2020/toast/src/toast.component.mjs +1 -1
  74. package/esm2020/uploader/src/uploader.component.mjs +17 -4
  75. package/fesm2015/acorex-components-action-sheet.mjs +1 -1
  76. package/fesm2015/acorex-components-action-sheet.mjs.map +1 -1
  77. package/fesm2015/acorex-components-alert.mjs +3 -7
  78. package/fesm2015/acorex-components-alert.mjs.map +1 -1
  79. package/fesm2015/acorex-components-avatar.mjs +13 -20
  80. package/fesm2015/acorex-components-avatar.mjs.map +1 -1
  81. package/fesm2015/acorex-components-badge.mjs +2 -2
  82. package/fesm2015/acorex-components-badge.mjs.map +1 -1
  83. package/fesm2015/acorex-components-button.mjs +10 -7
  84. package/fesm2015/acorex-components-button.mjs.map +1 -1
  85. package/fesm2015/acorex-components-calendar.mjs +5 -3
  86. package/fesm2015/acorex-components-calendar.mjs.map +1 -1
  87. package/fesm2015/acorex-components-collapse.mjs +2 -2
  88. package/fesm2015/acorex-components-collapse.mjs.map +1 -1
  89. package/fesm2015/acorex-components-color-palette.mjs +1 -1
  90. package/fesm2015/acorex-components-color-palette.mjs.map +1 -1
  91. package/fesm2015/acorex-components-color-picker.mjs +3 -3
  92. package/fesm2015/acorex-components-color-picker.mjs.map +1 -1
  93. package/fesm2015/acorex-components-common.mjs +67 -14
  94. package/fesm2015/acorex-components-common.mjs.map +1 -1
  95. package/fesm2015/acorex-components-data-pager.mjs +8 -7
  96. package/fesm2015/acorex-components-data-pager.mjs.map +1 -1
  97. package/fesm2015/acorex-components-date-picker.mjs +11 -9
  98. package/fesm2015/acorex-components-date-picker.mjs.map +1 -1
  99. package/fesm2015/acorex-components-decorators.mjs +27 -5
  100. package/fesm2015/acorex-components-decorators.mjs.map +1 -1
  101. package/fesm2015/acorex-components-dialog.mjs +11 -7
  102. package/fesm2015/acorex-components-dialog.mjs.map +1 -1
  103. package/fesm2015/acorex-components-dropdown.mjs +18 -5
  104. package/fesm2015/acorex-components-dropdown.mjs.map +1 -1
  105. package/fesm2015/acorex-components-form.mjs +10 -3
  106. package/fesm2015/acorex-components-form.mjs.map +1 -1
  107. package/fesm2015/acorex-components-image.mjs +35 -8
  108. package/fesm2015/acorex-components-image.mjs.map +1 -1
  109. package/fesm2015/acorex-components-menu.mjs +5 -3
  110. package/fesm2015/acorex-components-menu.mjs.map +1 -1
  111. package/fesm2015/acorex-components-mixin.mjs +3 -33
  112. package/fesm2015/acorex-components-mixin.mjs.map +1 -1
  113. package/fesm2015/acorex-components-number-box.mjs +10 -5
  114. package/fesm2015/acorex-components-number-box.mjs.map +1 -1
  115. package/fesm2015/acorex-components-password-box.mjs +11 -5
  116. package/fesm2015/acorex-components-password-box.mjs.map +1 -1
  117. package/fesm2015/acorex-components-popover.mjs +9 -18
  118. package/fesm2015/acorex-components-popover.mjs.map +1 -1
  119. package/fesm2015/acorex-components-popup.mjs +23 -11
  120. package/fesm2015/acorex-components-popup.mjs.map +1 -1
  121. package/fesm2015/acorex-components-search-box.mjs +3 -2
  122. package/fesm2015/acorex-components-search-box.mjs.map +1 -1
  123. package/fesm2015/acorex-components-select-box.mjs +4 -4
  124. package/fesm2015/acorex-components-select-box.mjs.map +1 -1
  125. package/fesm2015/acorex-components-textarea.mjs +10 -4
  126. package/fesm2015/acorex-components-textarea.mjs.map +1 -1
  127. package/fesm2015/acorex-components-textbox.mjs +96 -20
  128. package/fesm2015/acorex-components-textbox.mjs.map +1 -1
  129. package/fesm2015/acorex-components-time-box.mjs +11 -5
  130. package/fesm2015/acorex-components-time-box.mjs.map +1 -1
  131. package/fesm2015/acorex-components-toast.mjs +1 -1
  132. package/fesm2015/acorex-components-toast.mjs.map +1 -1
  133. package/fesm2015/acorex-components-uploader.mjs +16 -3
  134. package/fesm2015/acorex-components-uploader.mjs.map +1 -1
  135. package/fesm2020/acorex-components-action-sheet.mjs +1 -1
  136. package/fesm2020/acorex-components-action-sheet.mjs.map +1 -1
  137. package/fesm2020/acorex-components-alert.mjs +3 -7
  138. package/fesm2020/acorex-components-alert.mjs.map +1 -1
  139. package/fesm2020/acorex-components-avatar.mjs +13 -20
  140. package/fesm2020/acorex-components-avatar.mjs.map +1 -1
  141. package/fesm2020/acorex-components-badge.mjs +2 -2
  142. package/fesm2020/acorex-components-badge.mjs.map +1 -1
  143. package/fesm2020/acorex-components-button.mjs +10 -7
  144. package/fesm2020/acorex-components-button.mjs.map +1 -1
  145. package/fesm2020/acorex-components-calendar.mjs +5 -3
  146. package/fesm2020/acorex-components-calendar.mjs.map +1 -1
  147. package/fesm2020/acorex-components-collapse.mjs +2 -2
  148. package/fesm2020/acorex-components-collapse.mjs.map +1 -1
  149. package/fesm2020/acorex-components-color-palette.mjs +1 -1
  150. package/fesm2020/acorex-components-color-palette.mjs.map +1 -1
  151. package/fesm2020/acorex-components-color-picker.mjs +3 -3
  152. package/fesm2020/acorex-components-color-picker.mjs.map +1 -1
  153. package/fesm2020/acorex-components-common.mjs +66 -14
  154. package/fesm2020/acorex-components-common.mjs.map +1 -1
  155. package/fesm2020/acorex-components-data-pager.mjs +8 -7
  156. package/fesm2020/acorex-components-data-pager.mjs.map +1 -1
  157. package/fesm2020/acorex-components-date-picker.mjs +10 -9
  158. package/fesm2020/acorex-components-date-picker.mjs.map +1 -1
  159. package/fesm2020/acorex-components-decorators.mjs +27 -5
  160. package/fesm2020/acorex-components-decorators.mjs.map +1 -1
  161. package/fesm2020/acorex-components-dialog.mjs +11 -7
  162. package/fesm2020/acorex-components-dialog.mjs.map +1 -1
  163. package/fesm2020/acorex-components-dropdown.mjs +18 -5
  164. package/fesm2020/acorex-components-dropdown.mjs.map +1 -1
  165. package/fesm2020/acorex-components-form.mjs +10 -3
  166. package/fesm2020/acorex-components-form.mjs.map +1 -1
  167. package/fesm2020/acorex-components-image.mjs +35 -8
  168. package/fesm2020/acorex-components-image.mjs.map +1 -1
  169. package/fesm2020/acorex-components-menu.mjs +5 -3
  170. package/fesm2020/acorex-components-menu.mjs.map +1 -1
  171. package/fesm2020/acorex-components-mixin.mjs +51 -81
  172. package/fesm2020/acorex-components-mixin.mjs.map +1 -1
  173. package/fesm2020/acorex-components-number-box.mjs +10 -5
  174. package/fesm2020/acorex-components-number-box.mjs.map +1 -1
  175. package/fesm2020/acorex-components-password-box.mjs +11 -5
  176. package/fesm2020/acorex-components-password-box.mjs.map +1 -1
  177. package/fesm2020/acorex-components-popover.mjs +8 -17
  178. package/fesm2020/acorex-components-popover.mjs.map +1 -1
  179. package/fesm2020/acorex-components-popup.mjs +23 -11
  180. package/fesm2020/acorex-components-popup.mjs.map +1 -1
  181. package/fesm2020/acorex-components-search-box.mjs +3 -2
  182. package/fesm2020/acorex-components-search-box.mjs.map +1 -1
  183. package/fesm2020/acorex-components-select-box.mjs +4 -4
  184. package/fesm2020/acorex-components-select-box.mjs.map +1 -1
  185. package/fesm2020/acorex-components-textarea.mjs +10 -4
  186. package/fesm2020/acorex-components-textarea.mjs.map +1 -1
  187. package/fesm2020/acorex-components-textbox.mjs +95 -20
  188. package/fesm2020/acorex-components-textbox.mjs.map +1 -1
  189. package/fesm2020/acorex-components-time-box.mjs +11 -5
  190. package/fesm2020/acorex-components-time-box.mjs.map +1 -1
  191. package/fesm2020/acorex-components-toast.mjs +1 -1
  192. package/fesm2020/acorex-components-toast.mjs.map +1 -1
  193. package/fesm2020/acorex-components-uploader.mjs +16 -3
  194. package/fesm2020/acorex-components-uploader.mjs.map +1 -1
  195. package/form/src/form.component.d.ts +2 -0
  196. package/image/src/image.component.d.ts +16 -7
  197. package/menu/src/menu.component.d.ts +1 -0
  198. package/mixin/src/base-components.class.d.ts +1 -1
  199. package/mixin/src/base-menu-mixin.class.d.ts +4 -4
  200. package/mixin/src/button-mixin.class.d.ts +1 -1
  201. package/mixin/src/clickable-mixin.class.d.ts +1 -1
  202. package/mixin/src/color-look-mixing.class.d.ts +1 -1
  203. package/mixin/src/datalist-component.class.d.ts +9 -9
  204. package/mixin/src/dropdown-mixin.class.d.ts +1 -1
  205. package/mixin/src/interactive-mixin.class.d.ts +3 -3
  206. package/mixin/src/loading-mixin.class.d.ts +1 -1
  207. package/mixin/src/mixin.class.d.ts +42 -47
  208. package/mixin/src/page-component.class.d.ts +1 -1
  209. package/mixin/src/selection-component.class.d.ts +1 -1
  210. package/mixin/src/sizable-mixin.class.d.ts +1 -1
  211. package/mixin/src/textbox-mixin.class.d.ts +4 -13
  212. package/mixin/src/value-mixin.class.d.ts +7 -7
  213. package/number-box/src/number-box.component.d.ts +3 -1
  214. package/package.json +1 -9
  215. package/password-box/src/password-box.component.d.ts +3 -1
  216. package/popover/src/popover.component.d.ts +2 -2
  217. package/popup/src/popup.module.d.ts +7 -6
  218. package/select-box/src/selectbox.component.d.ts +1 -1
  219. package/tabs/src/tab-item.component.d.ts +1 -1
  220. package/textarea/src/textarea.component.d.ts +3 -1
  221. package/textbox/public-api.d.ts +1 -0
  222. package/textbox/src/mask-options.directive.d.ts +13 -0
  223. package/textbox/src/textbox.component.d.ts +14 -3
  224. package/textbox/src/textbox.module.d.ts +7 -6
  225. package/time-box/src/time-box.component.d.ts +4 -2
  226. package/uploader/src/uploader.component.d.ts +4 -0
  227. package/esm2020/input-mask/acorex-components-input-mask.mjs +0 -5
  228. package/esm2020/input-mask/public-api.mjs +0 -3
  229. package/esm2020/input-mask/src/input-mask.component.mjs +0 -58
  230. package/esm2020/input-mask/src/input-mask.module.mjs +0 -24
  231. package/fesm2015/acorex-components-input-mask.mjs +0 -86
  232. package/fesm2015/acorex-components-input-mask.mjs.map +0 -1
  233. package/fesm2020/acorex-components-input-mask.mjs +0 -86
  234. package/fesm2020/acorex-components-input-mask.mjs.map +0 -1
  235. package/input-mask/index.d.ts +0 -5
  236. package/input-mask/public-api.d.ts +0 -2
  237. package/input-mask/src/input-mask.component.d.ts +0 -25
  238. package/input-mask/src/input-mask.module.d.ts +0 -10
@@ -8,6 +8,8 @@ import { AXBaseDropdownMixin } from '@acorex/components/mixin';
8
8
  import { OverlayModule } from '@angular/cdk/overlay';
9
9
  import { CommonModule } from '@angular/common';
10
10
  import { AXDecoratorModule } from '@acorex/components/decorators';
11
+ import { A11yModule } from '@angular/cdk/a11y';
12
+ import { AXCommonModule } from '@acorex/components/common';
11
13
 
12
14
  class AXDropdownPanelComponent extends AXBaseDropdownMixin {
13
15
  constructor(elementRef, cdr, _parent) {
@@ -24,6 +26,17 @@ class AXDropdownPanelComponent extends AXBaseDropdownMixin {
24
26
  set target(v) {
25
27
  this._target = v;
26
28
  }
29
+ onViewInit() {
30
+ super.onViewInit();
31
+ [this.target, this._getHostElement()].forEach(el => {
32
+ el.addEventListener('keydown', (e) => {
33
+ if (e.code == 'Escape' && this.isOpen) {
34
+ e.stopPropagation();
35
+ this.close();
36
+ }
37
+ });
38
+ });
39
+ }
27
40
  ngAfterContentInit() {
28
41
  this._initContents();
29
42
  this._contentButtons.changes.subscribe(() => {
@@ -74,10 +87,10 @@ class AXDropdownPanelComponent extends AXBaseDropdownMixin {
74
87
  }
75
88
  }
76
89
  AXDropdownPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownPanelComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.AXButtonComponent, optional: true }], target: i0.ɵɵFactoryTarget.Component });
77
- AXDropdownPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", target: "target" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onItemClick: "onItemClick" }, host: { classAttribute: "ax-dropdown-panel" }, queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\">\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>", dependencies: [{ kind: "component", type: i2.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
90
+ AXDropdownPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXDropdownPanelComponent, selector: "ax-dropdown-panel", inputs: { isOpen: "isOpen", fitParent: "fitParent", dropdownWidth: "dropdownWidth", position: "position", target: "target" }, outputs: { onOpened: "onOpened", onClosed: "onClosed", onItemClick: "onItemClick" }, host: { classAttribute: "ax-dropdown-panel" }, queries: [{ propertyName: "_contentButtons", predicate: AXButtonItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\" >\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>", dependencies: [{ kind: "component", type: i2.AXPopoverComponent, selector: "ax-popover", inputs: ["target", "position", "openTrigger", "closeTrigger", "hasBackdrop", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
78
91
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownPanelComponent, decorators: [{
79
92
  type: Component,
80
- args: [{ selector: 'ax-dropdown-panel', inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'], outputs: ['onOpened', 'onClosed'], host: { class: 'ax-dropdown-panel' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\">\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>" }]
93
+ args: [{ selector: 'ax-dropdown-panel', inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'], outputs: ['onOpened', 'onClosed'], host: { class: 'ax-dropdown-panel' }, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\" >\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>" }]
81
94
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.AXButtonComponent, decorators: [{
82
95
  type: Optional
83
96
  }] }]; }, propDecorators: { _contentButtons: [{
@@ -95,12 +108,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
95
108
  class AXDropdownModule {
96
109
  }
97
110
  AXDropdownModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
98
- AXDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, declarations: [AXDropdownPanelComponent], imports: [CommonModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule], exports: [AXDropdownPanelComponent] });
99
- AXDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, imports: [CommonModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule] });
111
+ AXDropdownModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, declarations: [AXDropdownPanelComponent], imports: [CommonModule, AXCommonModule, A11yModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule], exports: [AXDropdownPanelComponent] });
112
+ AXDropdownModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, imports: [CommonModule, AXCommonModule, A11yModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule] });
100
113
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXDropdownModule, decorators: [{
101
114
  type: NgModule,
102
115
  args: [{
103
- imports: [CommonModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule],
116
+ imports: [CommonModule, AXCommonModule, A11yModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule],
104
117
  exports: [AXDropdownPanelComponent],
105
118
  declarations: [AXDropdownPanelComponent],
106
119
  providers: [],
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-dropdown.mjs","sources":["../../../../projects/acorex/components/dropdown/src/dropdown-panel.component.ts","../../../../projects/acorex/components/dropdown/src/dropdown-panel.component.html","../../../../projects/acorex/components/dropdown/src/dropdown.module.ts","../../../../projects/acorex/components/dropdown/acorex-components-dropdown.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n Optional,\r\n Input,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AXButtonClickEvent, AXClickEvent } from '@acorex/components/common';\r\nimport {\r\n AXButtonComponent,\r\n AXButtonItemComponent,\r\n} from '@acorex/components/button';\r\nimport { AXPopoverComponent } from '@acorex/components/popover';\r\nimport { AXBaseDropdownMixin } from '@acorex/components/mixin';\r\n\r\n\r\n@Component({\r\n selector: 'ax-dropdown-panel',\r\n templateUrl: './dropdown-panel.component.html',\r\n inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'],\r\n outputs: ['onOpened', 'onClosed'],\r\n host: { class: 'ax-dropdown-panel' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDropdownPanelComponent extends AXBaseDropdownMixin {\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional()\r\n public _parent?: AXButtonComponent\r\n ) {\r\n super(elementRef, cdr);\r\n this._target = this._parent?._getHostElement();\r\n }\r\n\r\n @ContentChildren(AXButtonItemComponent)\r\n _contentButtons: QueryList<AXButtonItemComponent>;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXButtonClickEvent> = new EventEmitter<AXButtonClickEvent>();\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n _needBorder: boolean = false;\r\n _subs: Subscription[] = [];\r\n\r\n\r\n private _target: HTMLElement;\r\n @Input()\r\n public get target(): HTMLElement {\r\n return this._target;\r\n }\r\n public set target(v: HTMLElement) {\r\n this._target = v;\r\n }\r\n\r\n\r\n\r\n ngAfterContentInit() {\r\n this._initContents();\r\n this._contentButtons.changes.subscribe(() => {\r\n this._initContents();\r\n });\r\n }\r\n\r\n private _initContents() {\r\n this._needBorder = this._contentButtons.length > 0;\r\n this._bindEvents();\r\n this._bindProps();\r\n this._cdr.markForCheck();\r\n }\r\n\r\n private _bindEvents() {\r\n this._contentButtons?.forEach((b) => {\r\n if (!b.onClick.length)\r\n b.onClick.subscribe((c) => {\r\n this._handleOnItemClick(c);\r\n });\r\n });\r\n }\r\n\r\n private _bindProps() {\r\n this._contentButtons?.forEach((b) => {\r\n //b.look = this.look ?? this.look;\r\n b.disabled = b.disabled ?? this.disabled;\r\n //b.toggleable = false;\r\n });\r\n }\r\n\r\n onOptionChanged(options) {\r\n this._bindProps();\r\n }\r\n\r\n onDestroy(): void {\r\n this._subs.forEach((s) => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n _emitOnItemClickEvent(e: AXClickEvent, item: AXButtonItemComponent): void {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e.nativeEvent,\r\n name: item.name,\r\n data: item.data,\r\n });\r\n }\r\n\r\n private _handleOnItemClick(e: AXClickEvent) {\r\n this.close();\r\n this._emitOnItemClickEvent(e, e.component);\r\n }\r\n}\r\n","<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\">\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\r\n\r\n@NgModule({\r\n imports: [CommonModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule],\r\n exports: [ AXDropdownPanelComponent],\r\n declarations: [ AXDropdownPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-dropdown.mjs","sources":["../../../../projects/acorex/components/dropdown/src/dropdown-panel.component.ts","../../../../projects/acorex/components/dropdown/src/dropdown-panel.component.html","../../../../projects/acorex/components/dropdown/src/dropdown.module.ts","../../../../projects/acorex/components/dropdown/acorex-components-dropdown.ts"],"sourcesContent":["import {\r\n Component,\r\n ViewEncapsulation,\r\n ChangeDetectionStrategy,\r\n ElementRef,\r\n ChangeDetectorRef,\r\n ContentChildren,\r\n QueryList,\r\n EventEmitter,\r\n Output,\r\n ViewChild,\r\n Optional,\r\n Input,\r\n HostListener,\r\n} from '@angular/core';\r\nimport { Subscription } from 'rxjs';\r\n\r\nimport { AXButtonClickEvent, AXClickEvent } from '@acorex/components/common';\r\nimport {\r\n AXButtonComponent,\r\n AXButtonItemComponent,\r\n} from '@acorex/components/button';\r\nimport { AXPopoverComponent } from '@acorex/components/popover';\r\nimport { AXBaseDropdownMixin } from '@acorex/components/mixin';\r\n\r\n\r\n@Component({\r\n selector: 'ax-dropdown-panel',\r\n templateUrl: './dropdown-panel.component.html',\r\n inputs: ['isOpen', 'fitParent', 'dropdownWidth', 'position'],\r\n outputs: ['onOpened', 'onClosed'],\r\n host: { class: 'ax-dropdown-panel' },\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXDropdownPanelComponent extends AXBaseDropdownMixin {\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef,\r\n @Optional()\r\n public _parent?: AXButtonComponent\r\n ) {\r\n super(elementRef, cdr);\r\n this._target = this._parent?._getHostElement(); \r\n }\r\n\r\n @ContentChildren(AXButtonItemComponent)\r\n _contentButtons: QueryList<AXButtonItemComponent>;\r\n\r\n @Output()\r\n onItemClick: EventEmitter<AXButtonClickEvent> = new EventEmitter<AXButtonClickEvent>();\r\n\r\n @ViewChild(AXPopoverComponent, { static: true })\r\n popover: AXPopoverComponent;\r\n\r\n _needBorder: boolean = false;\r\n _subs: Subscription[] = [];\r\n\r\n\r\n private _target: HTMLElement;\r\n @Input()\r\n public get target(): HTMLElement {\r\n return this._target;\r\n }\r\n public set target(v: HTMLElement) {\r\n this._target = v;\r\n }\r\n\r\n \r\n onViewInit(): void {\r\n super.onViewInit();\r\n [this.target, this._getHostElement()].forEach(el => {\r\n el.addEventListener('keydown', (e) => {\r\n if (e.code == 'Escape' && this.isOpen) {\r\n e.stopPropagation();\r\n this.close();\r\n }\r\n });\r\n }); \r\n }\r\n\r\n ngAfterContentInit() {\r\n this._initContents();\r\n this._contentButtons.changes.subscribe(() => {\r\n this._initContents();\r\n });\r\n }\r\n\r\n private _initContents() {\r\n this._needBorder = this._contentButtons.length > 0;\r\n this._bindEvents();\r\n this._bindProps();\r\n this._cdr.markForCheck();\r\n }\r\n\r\n private _bindEvents() {\r\n this._contentButtons?.forEach((b) => {\r\n if (!b.onClick.length)\r\n b.onClick.subscribe((c) => {\r\n this._handleOnItemClick(c);\r\n });\r\n });\r\n }\r\n\r\n private _bindProps() {\r\n this._contentButtons?.forEach((b) => {\r\n //b.look = this.look ?? this.look;\r\n b.disabled = b.disabled ?? this.disabled;\r\n //b.toggleable = false;\r\n });\r\n }\r\n\r\n onOptionChanged(options) {\r\n this._bindProps();\r\n }\r\n\r\n onDestroy(): void {\r\n this._subs.forEach((s) => {\r\n s?.unsubscribe();\r\n });\r\n }\r\n\r\n _emitOnItemClickEvent(e: AXClickEvent, item: AXButtonItemComponent): void {\r\n this.onItemClick.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n nativeEvent: e.nativeEvent,\r\n name: item.name,\r\n data: item.data,\r\n });\r\n }\r\n\r\n private _handleOnItemClick(e: AXClickEvent) {\r\n this.close();\r\n this._emitOnItemClickEvent(e, e.component);\r\n }\r\n}\r\n","<ax-popover [target]=\"target\" [position]=\"position\" [openTrigger]=\"'toggle'\" [closeTrigger]=\"'clickout'\" [adaptivityEnabled]=\"false\" >\r\n <div class=\"ax-overlay-pane\" [class.ax-dropdown-list]=\"_needBorder\" >\r\n <ng-content select=\"[panel],ax-button-item\">\r\n </ng-content>\r\n </div>\r\n</ax-popover>","import { OverlayModule } from '@angular/cdk/overlay';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXPopoverModule } from '@acorex/components/popover';\r\nimport { AXDropdownPanelComponent } from './dropdown-panel.component';\r\nimport { A11yModule } from '@angular/cdk/a11y';\r\nimport { AXCommonModule } from '@acorex/components/common';\r\n\r\n@NgModule({\r\n imports: [CommonModule,AXCommonModule, A11yModule, AXButtonModule, OverlayModule, AXDecoratorModule, AXPopoverModule],\r\n exports: [AXDropdownPanelComponent],\r\n declarations: [AXDropdownPanelComponent],\r\n providers: [],\r\n})\r\nexport class AXDropdownModule { }\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -85,6 +85,13 @@ class AXFormComponent extends AXBaseComponentMixin {
85
85
  },
86
86
  });
87
87
  }
88
+ _handleSubmit(e) {
89
+ e.preventDefault();
90
+ this.validate();
91
+ }
92
+ _handleReset(e) {
93
+ this.clear();
94
+ }
88
95
  _getComponenets() {
89
96
  return Array.from(this._getHostElement().querySelectorAll('[ax-form-input="true"]')).map((c) => c.__axContext__);
90
97
  }
@@ -177,12 +184,12 @@ class AXFormComponent extends AXBaseComponentMixin {
177
184
  }
178
185
  }
179
186
  AXFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
180
- AXFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXFormComponent, selector: "ax-form", inputs: { updateOn: "updateOn", validateInitValues: "validateInitValues" }, outputs: { onValidate: "onValidate", updateOnChange: "updateOnChange" }, usesInheritance: true, ngImport: i0, template: '<form ><ng-content></ng-content></form>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
187
+ AXFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXFormComponent, selector: "ax-form", inputs: { updateOn: "updateOn", validateInitValues: "validateInitValues" }, outputs: { onValidate: "onValidate", updateOnChange: "updateOnChange" }, usesInheritance: true, ngImport: i0, template: '<form (submit)="_handleSubmit($event)" (reset)="_handleReset($event)"><ng-content></ng-content></form>', isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
181
188
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXFormComponent, decorators: [{
182
189
  type: Component,
183
190
  args: [{
184
191
  selector: 'ax-form',
185
- template: '<form ><ng-content></ng-content></form>',
192
+ template: '<form (submit)="_handleSubmit($event)" (reset)="_handleReset($event)"><ng-content></ng-content></form>',
186
193
  encapsulation: ViewEncapsulation.None,
187
194
  changeDetection: ChangeDetectionStrategy.OnPush,
188
195
  }]
@@ -351,7 +358,7 @@ AXValidationSummaryComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14
351
358
  <ax-button text="Dismiss" (onClick)="a.dismiss()"></ax-button>
352
359
  </ax-suffix>
353
360
  </ax-alert>
354
- `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AXDecoratorSuffixComponent, selector: "ax-suffix" }, { kind: "component", type: i3.AXDecoratorContentComponent, selector: "ax-content" }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title", inputs: ["text"] }, { kind: "component", type: i4.AXAlertComponent, selector: "ax-alert", inputs: ["color", "look", "timeOut", "visible"], outputs: ["onDismissed"] }, { kind: "component", type: i5.AXButtonComponent, selector: "ax-button", inputs: ["disabled", "size", "tabIndex", "color", "look", "text", "toggleable", "selected"], outputs: ["onBlur", "onFocus", "onClick", "selectedChange", "toggleableChange", "lookChange", "colorChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
361
+ `, isInline: true, dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.AXDecoratorSuffixComponent, selector: "ax-suffix" }, { kind: "component", type: i3.AXDecoratorContentComponent, selector: "ax-content" }, { kind: "component", type: i3.AXDecoratorHeaderComponent, selector: "ax-header" }, { kind: "component", type: i3.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i3.AXDecoratorTitleComponent, selector: "ax-title", inputs: ["text"] }, { kind: "component", type: i4.AXAlertComponent, selector: "ax-alert", inputs: ["color", "look", "timeOut", "visible"], outputs: ["onDismissed"] }, { kind: "component", type: i5.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 });
355
362
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXValidationSummaryComponent, decorators: [{
356
363
  type: Component,
357
364
  args: [{
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../projects/acorex/components/form/src/form-field.component.ts","../../../../projects/acorex/components/form/src/form-hint.component.ts","../../../../projects/acorex/components/form/src/form.component.ts","../../../../projects/acorex/components/form/src/validation-rule.widget.ts","../../../../projects/acorex/components/form/src/validation-summary.component.ts","../../../../projects/acorex/components/form/src/form.module.ts","../../../../projects/acorex/components/form/acorex-components-form.ts"],"sourcesContent":["import { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-form-field',\r\n template: '<ng-content></ng-content>',\r\n host: { class: 'ax-form-field' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-form-hint',\r\n template: ' <p class=\"ax-text-light-400 ax-text-xs ax-py-1 dark:ax-text-light-300\"><ng-content></ng-content></p>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormHintComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { AXEvent } from '@acorex/components/common';\r\nimport { AXFormValidationResult } from './validation.class';\r\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXFormValidationEvent extends AXEvent {\r\n result: AXFormValidationResult;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport type AXFormUpdateOn = 'change' | 'blur' | 'manual';\r\n\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-form',\r\n template: '<form ><ng-content></ng-content></form>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormComponent extends AXBaseComponentMixin {\r\n\r\n\r\n @Output()\r\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\r\n\r\n\r\n @Output()\r\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\r\n\r\n private _updateOn: AXFormUpdateOn = 'blur';\r\n @Input()\r\n public get updateOn(): AXFormUpdateOn {\r\n return this._updateOn;\r\n }\r\n public set updateOn(v: AXFormUpdateOn) {\r\n this._setOption({\r\n name: 'updateOn',\r\n value: v,\r\n afterCallback: (oldValue?, newValue?) => {\r\n this._bindEvents();\r\n },\r\n })\r\n }\r\n\r\n @Input()\r\n validateInitValues: boolean = false;\r\n\r\n\r\n private _observer: MutationObserver;\r\n private _subs: Subscription[] = [];\r\n\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n private _getComponenets() {\r\n return Array.from(\r\n this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]')\r\n ).map((c) => (c as any).__axContext__);\r\n }\r\n\r\n onViewInit(): void {\r\n if (this.validateInitValues) {\r\n this._validateInitValues();\r\n }\r\n this._bindEvents();\r\n\r\n const config = { attributes: false, childList: true, subtree: true };\r\n const callback = (mutationList, observer) => {\r\n this._bindEvents();\r\n };\r\n\r\n // Create an observer instance linked to the callback function\r\n this._observer = new MutationObserver(callback);\r\n this._observer.observe(this._getHostElement(), config);\r\n }\r\n\r\n private _bindEvents() {\r\n this._clearSubs();\r\n const widgets = this._getComponenets()\r\n //\r\n widgets.forEach(w => {\r\n if (this.updateOn == 'change') {\r\n this._subs.push(w.onValueChanged?.subscribe(v => {\r\n w.validate();\r\n }));\r\n }\r\n else if (this.updateOn == 'blur') {\r\n this._subs.push(w.onBlur?.subscribe(v => {\r\n w.validate();\r\n }));\r\n }\r\n })\r\n }\r\n\r\n private _clearSubs() {\r\n this._subs.forEach(c => c.unsubscribe())\r\n this._subs = [];\r\n }\r\n\r\n private _validateInitValues() {\r\n this._getComponenets()\r\n .filter(c => c['value'])\r\n .forEach(c => c.validate());\r\n }\r\n\r\n\r\n\r\n validate(...args: string[]): Promise<AXFormValidationResult> {\r\n const widgets = this._getComponenets();\r\n if (widgets.length === 0) {\r\n this._emitOnValidateEvent({ result: true });\r\n return Promise.resolve({ result: true });\r\n }\r\n //\r\n return new Promise<AXFormValidationResult>((resolve, reject) => {\r\n Promise.all(widgets\r\n .filter(c => (args == null || args.length == 0) || args.includes(c.name))\r\n .map((c) => c.validate()))\r\n .then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n this._emitOnValidateEvent({\r\n result: false,\r\n items: failed\r\n });\r\n resolve({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n this._emitOnValidateEvent({ result: true });\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private _emitOnValidateEvent(e: AXFormValidationResult) {\r\n this.onValidate.emit({\r\n component: this,\r\n result: e,\r\n htmlElement: this._getHostElement(),\r\n })\r\n }\r\n\r\n clear() {\r\n const widgets = this._getComponenets();\r\n widgets.forEach(w => {\r\n w.clear();\r\n });\r\n }\r\n\r\n onDestroy(): void {\r\n this._observer.disconnect();\r\n this._observer = null;\r\n this._clearSubs();\r\n }\r\n}","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AXValidationRuleResult,\r\n AXValidationRule,\r\n AXValidationRuleTypes,\r\n} from './validation.class';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXTranslator } from '@acorex/core/translation';\r\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXValidationRuleComponent\r\n extends AXBaseComponentMixin\r\n implements AXValidationRule\r\n{\r\n @Input()\r\n rule: AXValidationRuleTypes = 'required';\r\n\r\n @Input()\r\n message: string;\r\n\r\n @Input()\r\n showMessage: boolean = true;\r\n\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n (this._getHostElement() as any).validate = this.validate.bind(this);\r\n }\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n if (this.rule == 'custom') {\r\n const regRule = AXConfig.get(`form.validation.rules.${this.value}`);\r\n if (regRule) {\r\n return this._internalValidate(\r\n regRule.rule,\r\n value,\r\n this.message || regRule.message,\r\n regRule.value\r\n );\r\n }\r\n }\r\n return this._internalValidate(this.rule, value, this.message, this.value);\r\n }\r\n\r\n private _internalValidate(\r\n type: string,\r\n value?: any,\r\n message?: string,\r\n ruleValue?: any\r\n ): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>((resolve) => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: this.showMessage\r\n ? message || AXTranslator.get('validation.messages.required')\r\n : '',\r\n result:\r\n value != null &&\r\n value != '' &&\r\n (!Array.isArray(value) ||\r\n (Array.isArray(value) && value.length > 0)),\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: this.showMessage\r\n ? message || AXTranslator.get('validation.messages.regex')\r\n : '',\r\n result: ex.test(value),\r\n });\r\n break;\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = this.showMessage ? message : null;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val\r\n .then((c) => {\r\n res.result = c;\r\n })\r\n .catch((c) => {\r\n res.result = false;\r\n })\r\n .finally(() => {\r\n resolve(res);\r\n });\r\n } else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n } else {\r\n resolve({\r\n message: AXTranslator.get('validation.messages.invalid-rull-fn'),\r\n result: false,\r\n });\r\n }\r\n break;\r\n default:\r\n resolve({\r\n message: AXTranslator.get('validation.messages.invalid-rull-name'),\r\n result: false,\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { AXTranslator } from \"@acorex/core/translation\";\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\r\nimport { AXEvent } from \"@acorex/components/common\";\r\nimport { AXToastService } from \"@acorex/components/toast\";\r\nimport { AXFormComponent } from \"./form.component\";\r\nimport { AXBaseComponentMixin } from \"@acorex/components/mixin\";\r\n\r\n\r\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert'\r\n\r\n@Component({\r\n selector: 'ax-validation-summary',\r\n template: `\r\n <ax-alert color=\"danger\" look=\"twotone\" *ngIf=\"displayMode=='alert' && _content\" [timeOut]=\"_timeOut\" #a (onDismissed)=\"_handleOnDismissed($event)\">\r\n <ax-header>\r\n <ax-icon></ax-icon>\r\n <ax-title>{{_title}}</ax-title>\r\n </ax-header>\r\n <ax-content>\r\n <div [innerHTML]=\"_content\">\r\n </div>\r\n </ax-content>\r\n <ax-suffix>\r\n <ax-button text=\"Dismiss\" (onClick)=\"a.dismiss()\"></ax-button>\r\n </ax-suffix>\r\n </ax-alert>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXValidationSummaryComponent extends AXBaseComponentMixin {\r\n\r\n _content?: string = '';\r\n _title: string = AXTranslator.get('validation.messages.title');\r\n\r\n @Input()\r\n displayMode: AXValidationSummaryDisplayMode = 'toast';\r\n\r\n @Input()\r\n timeOut?: number;\r\n\r\n @Input()\r\n autoHide: boolean = false;\r\n\r\n _timeOut: number;\r\n\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _tosatService: AXToastService,\r\n @Optional()\r\n @Inject(AXFormComponent)\r\n private _parent: AXFormComponent\r\n ) {\r\n super(_elementRef, _cdr);\r\n //\r\n _parent.onValidate.subscribe((c:any) => {\r\n if (!c.result.result) {\r\n this._content = `<ul>${c.result.items.map(c => `<li>${c.message}</li>`).join('')}</ul>`;\r\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(c.result.items.length * 1500, 2000)) : 0;\r\n //\r\n if (this.displayMode == 'toast') {\r\n this._tosatService.show({\r\n color: 'danger',\r\n closeable: true,\r\n timeOut: this._timeOut,\r\n content: this._content,\r\n title: AXTranslator.get('validation.messages.title')\r\n });\r\n }\r\n }\r\n else {\r\n this._content = '';\r\n }\r\n _cdr.markForCheck();\r\n });\r\n }\r\n\r\n _handleOnDismissed(e: AXEvent) {\r\n this._content = '';\r\n }\r\n}","import { AXAlertModule } from '@acorex/components/alert';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXTranslator } from '@acorex/core/translation';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AXFormFieldComponent } from './form-field.component';\r\nimport { AXFormHintComponent } from './form-hint.component';\r\nimport { AXFormComponent } from './form.component';\r\nimport { AXValidationRuleComponent } from './validation-rule.widget';\r\nimport { AXValidationSummaryComponent } from './validation-summary.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXFormFieldComponent,\r\n AXFormComponent,\r\n AXFormHintComponent,\r\n AXValidationRuleComponent,\r\n AXValidationSummaryComponent,\r\n ],\r\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule],\r\n exports: [\r\n AXFormFieldComponent,\r\n AXFormComponent,\r\n AXFormHintComponent,\r\n AXValidationRuleComponent,\r\n AXValidationSummaryComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class AXFormModule {\r\n constructor() {\r\n AXConfig.set({\r\n form: {\r\n validation: {\r\n rules: {\r\n email: {\r\n rule: 'regex',\r\n value:\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n message: AXTranslator.get('validation.messages.email'),\r\n },\r\n phone: {\r\n rule: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\r\n message: AXTranslator.get('validation.messages.phone'),\r\n },\r\n },\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-form.mjs","sources":["../../../../projects/acorex/components/form/src/form-field.component.ts","../../../../projects/acorex/components/form/src/form-hint.component.ts","../../../../projects/acorex/components/form/src/form.component.ts","../../../../projects/acorex/components/form/src/validation-rule.widget.ts","../../../../projects/acorex/components/form/src/validation-summary.component.ts","../../../../projects/acorex/components/form/src/form.module.ts","../../../../projects/acorex/components/form/acorex-components-form.ts"],"sourcesContent":["import { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-form-field',\r\n template: '<ng-content></ng-content>',\r\n host: { class: 'ax-form-field' },\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormFieldComponent extends AXBaseComponentMixin {\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n}\r\n","import { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, ViewEncapsulation } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-form-hint',\r\n template: ' <p class=\"ax-text-light-400 ax-text-xs ax-py-1 dark:ax-text-light-300\"><ng-content></ng-content></p>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormHintComponent extends AXBaseComponentMixin {\r\n\r\n constructor(\r\n elementRef: ElementRef,\r\n cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n}","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, Output, ViewEncapsulation } from '@angular/core';\r\nimport { AXEvent } from '@acorex/components/common';\r\nimport { AXFormValidationResult } from './validation.class';\r\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\r\nimport { Subscription } from 'rxjs';\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport class AXFormValidationEvent extends AXEvent {\r\n result: AXFormValidationResult;\r\n}\r\n\r\n/**\r\n* Contains native event\r\n* @category Events\r\n*/\r\nexport type AXFormUpdateOn = 'change' | 'blur' | 'manual';\r\n\r\n\r\n/**\r\n * The Button is a component which detects user interaction and triggers a corresponding event\r\n *\r\n * @category Components\r\n */\r\n@Component({\r\n selector: 'ax-form',\r\n template: '<form (submit)=\"_handleSubmit($event)\" (reset)=\"_handleReset($event)\"><ng-content></ng-content></form>',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n})\r\nexport class AXFormComponent extends AXBaseComponentMixin {\r\n\r\n\r\n @Output()\r\n onValidate: EventEmitter<AXFormValidationEvent> = new EventEmitter<AXFormValidationEvent>();\r\n\r\n\r\n @Output()\r\n updateOnChange: EventEmitter<AXFormUpdateOn> = new EventEmitter<AXFormUpdateOn>();\r\n\r\n private _updateOn: AXFormUpdateOn = 'blur';\r\n @Input()\r\n public get updateOn(): AXFormUpdateOn {\r\n return this._updateOn;\r\n }\r\n public set updateOn(v: AXFormUpdateOn) {\r\n this._setOption({\r\n name: 'updateOn',\r\n value: v,\r\n afterCallback: (oldValue?, newValue?) => {\r\n this._bindEvents();\r\n },\r\n })\r\n }\r\n\r\n @Input()\r\n validateInitValues: boolean = false;\r\n\r\n\r\n private _observer: MutationObserver;\r\n private _subs: Subscription[] = [];\r\n\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n _handleSubmit(e:SubmitEvent)\r\n {\r\n e.preventDefault();\r\n this.validate();\r\n }\r\n\r\n _handleReset(e:Event)\r\n {\r\n this.clear();\r\n }\r\n\r\n private _getComponenets() {\r\n return Array.from(\r\n this._getHostElement().querySelectorAll('[ax-form-input=\"true\"]')\r\n ).map((c) => (c as any).__axContext__);\r\n }\r\n\r\n onViewInit(): void {\r\n if (this.validateInitValues) {\r\n this._validateInitValues();\r\n }\r\n this._bindEvents();\r\n\r\n const config = { attributes: false, childList: true, subtree: true };\r\n const callback = (mutationList, observer) => {\r\n this._bindEvents();\r\n };\r\n\r\n // Create an observer instance linked to the callback function\r\n this._observer = new MutationObserver(callback);\r\n this._observer.observe(this._getHostElement(), config);\r\n }\r\n\r\n private _bindEvents() {\r\n this._clearSubs();\r\n const widgets = this._getComponenets()\r\n //\r\n widgets.forEach(w => {\r\n if (this.updateOn == 'change') {\r\n this._subs.push(w.onValueChanged?.subscribe(v => {\r\n w.validate();\r\n }));\r\n }\r\n else if (this.updateOn == 'blur') {\r\n this._subs.push(w.onBlur?.subscribe(v => {\r\n w.validate();\r\n }));\r\n }\r\n })\r\n }\r\n\r\n private _clearSubs() {\r\n this._subs.forEach(c => c.unsubscribe())\r\n this._subs = [];\r\n }\r\n\r\n private _validateInitValues() {\r\n this._getComponenets()\r\n .filter(c => c['value'])\r\n .forEach(c => c.validate());\r\n }\r\n\r\n\r\n\r\n validate(...args: string[]): Promise<AXFormValidationResult> {\r\n const widgets = this._getComponenets();\r\n if (widgets.length === 0) {\r\n this._emitOnValidateEvent({ result: true });\r\n return Promise.resolve({ result: true });\r\n }\r\n //\r\n return new Promise<AXFormValidationResult>((resolve, reject) => {\r\n Promise.all(widgets\r\n .filter(c => (args == null || args.length == 0) || args.includes(c.name))\r\n .map((c) => c.validate()))\r\n .then((rules: any) => {\r\n const failed = rules.filter((c: any) => !c.result);\r\n if (failed.length) {\r\n this._emitOnValidateEvent({\r\n result: false,\r\n items: failed\r\n });\r\n resolve({\r\n result: false,\r\n items: failed\r\n });\r\n }\r\n else {\r\n this._emitOnValidateEvent({ result: true });\r\n resolve({ result: true });\r\n }\r\n });\r\n });\r\n }\r\n\r\n private _emitOnValidateEvent(e: AXFormValidationResult) {\r\n this.onValidate.emit({\r\n component: this,\r\n result: e,\r\n htmlElement: this._getHostElement(),\r\n })\r\n }\r\n\r\n clear() {\r\n const widgets = this._getComponenets();\r\n widgets.forEach(w => {\r\n w.clear();\r\n });\r\n }\r\n\r\n onDestroy(): void {\r\n this._observer.disconnect();\r\n this._observer = null;\r\n this._clearSubs();\r\n }\r\n}","import {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n Input,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\nimport {\r\n AXValidationRuleResult,\r\n AXValidationRule,\r\n AXValidationRuleTypes,\r\n} from './validation.class';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXTranslator } from '@acorex/core/translation';\r\nimport { AXBaseComponentMixin } from '@acorex/components/mixin';\r\n\r\n@Component({\r\n selector: 'ax-validation-rule',\r\n template: '',\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXValidationRuleComponent\r\n extends AXBaseComponentMixin\r\n implements AXValidationRule\r\n{\r\n @Input()\r\n rule: AXValidationRuleTypes = 'required';\r\n\r\n @Input()\r\n message: string;\r\n\r\n @Input()\r\n showMessage: boolean = true;\r\n\r\n @Input()\r\n value: any;\r\n\r\n @Input()\r\n enabled: boolean = true;\r\n\r\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n onInit() {\r\n (this._getHostElement() as any).validate = this.validate.bind(this);\r\n }\r\n\r\n validate(value: any): Promise<AXValidationRuleResult> {\r\n if (this.enabled === false) {\r\n return Promise.resolve({ result: true });\r\n }\r\n if (this.rule == 'custom') {\r\n const regRule = AXConfig.get(`form.validation.rules.${this.value}`);\r\n if (regRule) {\r\n return this._internalValidate(\r\n regRule.rule,\r\n value,\r\n this.message || regRule.message,\r\n regRule.value\r\n );\r\n }\r\n }\r\n return this._internalValidate(this.rule, value, this.message, this.value);\r\n }\r\n\r\n private _internalValidate(\r\n type: string,\r\n value?: any,\r\n message?: string,\r\n ruleValue?: any\r\n ): Promise<AXValidationRuleResult> {\r\n return new Promise<AXValidationRuleResult>((resolve) => {\r\n switch (type) {\r\n case 'required':\r\n resolve({\r\n message: this.showMessage\r\n ? message || AXTranslator.get('validation.messages.required')\r\n : '',\r\n result:\r\n value != null &&\r\n value != '' &&\r\n (!Array.isArray(value) ||\r\n (Array.isArray(value) && value.length > 0)),\r\n });\r\n break;\r\n case 'regex':\r\n const ex = new RegExp(ruleValue);\r\n resolve({\r\n message: this.showMessage\r\n ? message || AXTranslator.get('validation.messages.regex')\r\n : '',\r\n result: ex.test(value),\r\n });\r\n break;\r\n case 'callback':\r\n if (typeof ruleValue === 'function') {\r\n const res: any = {};\r\n res.message = this.showMessage ? message : null;\r\n const val = ruleValue({ value, message });\r\n if (val instanceof Promise) {\r\n val\r\n .then((c) => {\r\n res.result = c;\r\n })\r\n .catch((c) => {\r\n res.result = false;\r\n })\r\n .finally(() => {\r\n resolve(res);\r\n });\r\n } else {\r\n res.result = val;\r\n resolve(res);\r\n }\r\n } else {\r\n resolve({\r\n message: AXTranslator.get('validation.messages.invalid-rull-fn'),\r\n result: false,\r\n });\r\n }\r\n break;\r\n default:\r\n resolve({\r\n message: AXTranslator.get('validation.messages.invalid-rull-name'),\r\n result: false,\r\n });\r\n }\r\n });\r\n }\r\n}\r\n","import { AXTranslator } from \"@acorex/core/translation\";\r\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, ElementRef, Inject, Input, Optional, ViewEncapsulation } from \"@angular/core\";\r\nimport { AXEvent } from \"@acorex/components/common\";\r\nimport { AXToastService } from \"@acorex/components/toast\";\r\nimport { AXFormComponent } from \"./form.component\";\r\nimport { AXBaseComponentMixin } from \"@acorex/components/mixin\";\r\n\r\n\r\nexport type AXValidationSummaryDisplayMode = 'toast' | 'alert'\r\n\r\n@Component({\r\n selector: 'ax-validation-summary',\r\n template: `\r\n <ax-alert color=\"danger\" look=\"twotone\" *ngIf=\"displayMode=='alert' && _content\" [timeOut]=\"_timeOut\" #a (onDismissed)=\"_handleOnDismissed($event)\">\r\n <ax-header>\r\n <ax-icon></ax-icon>\r\n <ax-title>{{_title}}</ax-title>\r\n </ax-header>\r\n <ax-content>\r\n <div [innerHTML]=\"_content\">\r\n </div>\r\n </ax-content>\r\n <ax-suffix>\r\n <ax-button text=\"Dismiss\" (onClick)=\"a.dismiss()\"></ax-button>\r\n </ax-suffix>\r\n </ax-alert>\r\n `,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n encapsulation: ViewEncapsulation.None\r\n})\r\nexport class AXValidationSummaryComponent extends AXBaseComponentMixin {\r\n\r\n _content?: string = '';\r\n _title: string = AXTranslator.get('validation.messages.title');\r\n\r\n @Input()\r\n displayMode: AXValidationSummaryDisplayMode = 'toast';\r\n\r\n @Input()\r\n timeOut?: number;\r\n\r\n @Input()\r\n autoHide: boolean = false;\r\n\r\n _timeOut: number;\r\n\r\n constructor(\r\n _elementRef: ElementRef,\r\n _cdr: ChangeDetectorRef,\r\n private _tosatService: AXToastService,\r\n @Optional()\r\n @Inject(AXFormComponent)\r\n private _parent: AXFormComponent\r\n ) {\r\n super(_elementRef, _cdr);\r\n //\r\n _parent.onValidate.subscribe((c:any) => {\r\n if (!c.result.result) {\r\n this._content = `<ul>${c.result.items.map(c => `<li>${c.message}</li>`).join('')}</ul>`;\r\n this._timeOut = this.autoHide ? (this.timeOut ?? Math.max(c.result.items.length * 1500, 2000)) : 0;\r\n //\r\n if (this.displayMode == 'toast') {\r\n this._tosatService.show({\r\n color: 'danger',\r\n closeable: true,\r\n timeOut: this._timeOut,\r\n content: this._content,\r\n title: AXTranslator.get('validation.messages.title')\r\n });\r\n }\r\n }\r\n else {\r\n this._content = '';\r\n }\r\n _cdr.markForCheck();\r\n });\r\n }\r\n\r\n _handleOnDismissed(e: AXEvent) {\r\n this._content = '';\r\n }\r\n}","import { AXAlertModule } from '@acorex/components/alert';\r\nimport { AXButtonModule } from '@acorex/components/button';\r\nimport { AXDecoratorModule } from '@acorex/components/decorators';\r\nimport { AXConfig } from '@acorex/core/config';\r\nimport { AXTranslator } from '@acorex/core/translation';\r\nimport { CommonModule } from '@angular/common';\r\nimport { NgModule } from '@angular/core';\r\n\r\nimport { AXFormFieldComponent } from './form-field.component';\r\nimport { AXFormHintComponent } from './form-hint.component';\r\nimport { AXFormComponent } from './form.component';\r\nimport { AXValidationRuleComponent } from './validation-rule.widget';\r\nimport { AXValidationSummaryComponent } from './validation-summary.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n AXFormFieldComponent,\r\n AXFormComponent,\r\n AXFormHintComponent,\r\n AXValidationRuleComponent,\r\n AXValidationSummaryComponent,\r\n ],\r\n imports: [CommonModule, AXDecoratorModule, AXAlertModule, AXButtonModule],\r\n exports: [\r\n AXFormFieldComponent,\r\n AXFormComponent,\r\n AXFormHintComponent,\r\n AXValidationRuleComponent,\r\n AXValidationSummaryComponent,\r\n ],\r\n providers: [],\r\n})\r\nexport class AXFormModule {\r\n constructor() {\r\n AXConfig.set({\r\n form: {\r\n validation: {\r\n rules: {\r\n email: {\r\n rule: 'regex',\r\n value:\r\n /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/,\r\n message: AXTranslator.get('validation.messages.email'),\r\n },\r\n phone: {\r\n rule: 'regex',\r\n value: /^[+]*[(]{0,1}[0-9]{1,4}[)]{0,1}[-\\s\\./0-9]*$/,\r\n message: AXTranslator.get('validation.messages.phone'),\r\n },\r\n },\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAgBM,MAAO,oBAAqB,SAAQ,oBAAoB,CAAA;IAC5D,WAAY,CAAA,UAAsB,EAAE,GAAsB,EAAA;AACxD,QAAA,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KACxB;;iHAHU,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,uHALrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAK1B,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAPhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,2BAA2B;AACrC,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;oBAChC,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAChD,iBAAA,CAAA;;;ACNK,MAAO,mBAAoB,SAAQ,oBAAoB,CAAA;IAEzD,WACI,CAAA,UAAsB,EACtB,GAAsB,EAAA;AAEtB,QAAA,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;KAC1B;;gHAPQ,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,2EAJlB,uGAAuG,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIxG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,cAAc;AACxB,oBAAA,QAAQ,EAAE,uGAAuG;oBACjH,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;;;ACFD;;;AAGE;AACI,MAAO,qBAAsB,SAAQ,OAAO,CAAA;AAEjD,CAAA;AASD;;;;AAIG;AAOG,MAAO,eAAgB,SAAQ,oBAAoB,CAAA;AAkCrD;;AAEE;IACF,WACI,CAAA,UAAsB,EACd,GAAsB,EAAA;AAE9B,QAAA,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAFf,IAAG,CAAA,GAAA,GAAH,GAAG,CAAmB;AAnClC,QAAA,IAAA,CAAA,UAAU,GAAwC,IAAI,YAAY,EAAyB,CAAC;AAI5F,QAAA,IAAA,CAAA,cAAc,GAAiC,IAAI,YAAY,EAAkB,CAAC;QAE1E,IAAS,CAAA,SAAA,GAAmB,MAAM,CAAC;QAgB3C,IAAkB,CAAA,kBAAA,GAAY,KAAK,CAAC;QAI5B,IAAK,CAAA,KAAA,GAAmB,EAAE,CAAC;KAYlC;AA/BD,IAAA,IACW,QAAQ,GAAA;QACf,OAAO,IAAI,CAAC,SAAS,CAAC;KACzB;IACD,IAAW,QAAQ,CAAC,CAAiB,EAAA;QACjC,IAAI,CAAC,UAAU,CAAC;AACZ,YAAA,IAAI,EAAE,UAAU;AAChB,YAAA,KAAK,EAAE,CAAC;AACR,YAAA,aAAa,EAAE,CAAC,QAAS,EAAE,QAAS,KAAI;gBACpC,IAAI,CAAC,WAAW,EAAE,CAAC;aACtB;AACJ,SAAA,CAAC,CAAA;KACL;AAqBD,IAAA,aAAa,CAAC,CAAa,EAAA;QAEvB,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,EAAE,CAAC;KACnB;AAED,IAAA,YAAY,CAAC,CAAO,EAAA;QAEhB,IAAI,CAAC,KAAK,EAAE,CAAC;KAChB;IAEO,eAAe,GAAA;QACnB,OAAO,KAAK,CAAC,IAAI,CACb,IAAI,CAAC,eAAe,EAAE,CAAC,gBAAgB,CAAC,wBAAwB,CAAC,CACpE,CAAC,GAAG,CAAC,CAAC,CAAC,KAAM,CAAS,CAAC,aAAa,CAAC,CAAC;KAC1C;IAED,UAAU,GAAA;QACN,IAAI,IAAI,CAAC,kBAAkB,EAAE;YACzB,IAAI,CAAC,mBAAmB,EAAE,CAAC;AAC9B,SAAA;QACD,IAAI,CAAC,WAAW,EAAE,CAAC;AAEnB,QAAA,MAAM,MAAM,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;AACrE,QAAA,MAAM,QAAQ,GAAG,CAAC,YAAY,EAAE,QAAQ,KAAI;YACxC,IAAI,CAAC,WAAW,EAAE,CAAC;AACvB,SAAC,CAAC;;QAGF,IAAI,CAAC,SAAS,GAAG,IAAI,gBAAgB,CAAC,QAAQ,CAAC,CAAC;AAChD,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,eAAe,EAAE,EAAE,MAAM,CAAC,CAAC;KAC1D;IAEO,WAAW,GAAA;QACf,IAAI,CAAC,UAAU,EAAE,CAAC;AAClB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;;AAEtC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;AAChB,YAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,QAAQ,EAAE;AAC3B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC,IAAG;oBAC5C,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAChB,CAAC,CAAC,CAAC;AACP,aAAA;AACI,iBAAA,IAAI,IAAI,CAAC,QAAQ,IAAI,MAAM,EAAE;AAC9B,gBAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,IAAG;oBACpC,CAAC,CAAC,QAAQ,EAAE,CAAC;iBAChB,CAAC,CAAC,CAAC;AACP,aAAA;AACL,SAAC,CAAC,CAAA;KACL;IAEO,UAAU,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,WAAW,EAAE,CAAC,CAAA;AACxC,QAAA,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;KACnB;IAEO,mBAAmB,GAAA;QACvB,IAAI,CAAC,eAAe,EAAE;aACjB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC;aACvB,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;KACnC;IAID,QAAQ,CAAC,GAAG,IAAc,EAAA;AACtB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACvC,QAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;YACtB,IAAI,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAC5C,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,SAAA;;QAED,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,EAAE,MAAM,KAAI;YAC3D,OAAO,CAAC,GAAG,CAAC,OAAO;iBACd,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;iBACxE,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;AACzB,iBAAA,IAAI,CAAC,CAAC,KAAU,KAAI;AACjB,gBAAA,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAM,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;gBACnD,IAAI,MAAM,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,oBAAoB,CAAC;AACtB,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,KAAK,EAAE,MAAM;AAChB,qBAAA,CAAC,CAAC;AACH,oBAAA,OAAO,CAAC;AACJ,wBAAA,MAAM,EAAE,KAAK;AACb,wBAAA,KAAK,EAAE,MAAM;AAChB,qBAAA,CAAC,CAAC;AACN,iBAAA;AACI,qBAAA;oBACD,IAAI,CAAC,oBAAoB,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC5C,oBAAA,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC7B,iBAAA;AACL,aAAC,CAAC,CAAC;AACX,SAAC,CAAC,CAAC;KACN;AAEO,IAAA,oBAAoB,CAAC,CAAyB,EAAA;AAClD,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC;AACjB,YAAA,SAAS,EAAE,IAAI;AACf,YAAA,MAAM,EAAE,CAAC;AACT,YAAA,WAAW,EAAE,IAAI,CAAC,eAAe,EAAE;AACtC,SAAA,CAAC,CAAA;KACL;IAED,KAAK,GAAA;AACD,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;AACvC,QAAA,OAAO,CAAC,OAAO,CAAC,CAAC,IAAG;YAChB,CAAC,CAAC,KAAK,EAAE,CAAC;AACd,SAAC,CAAC,CAAC;KACN;IAED,SAAS,GAAA;AACL,QAAA,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC;AAC5B,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,UAAU,EAAE,CAAC;KACrB;;4GA9JQ,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,2NAJd,wGAAwG,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIzG,eAAe,EAAA,UAAA,EAAA,CAAA;kBAN3B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,SAAS;AACnB,oBAAA,QAAQ,EAAE,wGAAwG;oBAClH,aAAa,EAAE,iBAAiB,CAAC,IAAI;oBACrC,eAAe,EAAE,uBAAuB,CAAC,MAAM;AAClD,iBAAA,CAAA;iIAKG,UAAU,EAAA,CAAA;sBADT,MAAM;gBAKP,cAAc,EAAA,CAAA;sBADb,MAAM;gBAKI,QAAQ,EAAA,CAAA;sBADlB,KAAK;gBAeN,kBAAkB,EAAA,CAAA;sBADjB,KAAK;;;AClCJ,MAAO,yBACX,SAAQ,oBAAoB,CAAA;IAkB5B,WAAY,CAAA,UAAsB,EAAE,GAAsB,EAAA;AACxD,QAAA,KAAK,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC;QAfzB,IAAI,CAAA,IAAA,GAA0B,UAAU,CAAC;QAMzC,IAAW,CAAA,WAAA,GAAY,IAAI,CAAC;QAM5B,IAAO,CAAA,OAAA,GAAY,IAAI,CAAC;KAIvB;IAED,MAAM,GAAA;AACH,QAAA,IAAI,CAAC,eAAe,EAAU,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KACrE;AAED,IAAA,QAAQ,CAAC,KAAU,EAAA;AACjB,QAAA,IAAI,IAAI,CAAC,OAAO,KAAK,KAAK,EAAE;YAC1B,OAAO,OAAO,CAAC,OAAO,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;AAC1C,SAAA;AACD,QAAA,IAAI,IAAI,CAAC,IAAI,IAAI,QAAQ,EAAE;AACzB,YAAA,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAyB,sBAAA,EAAA,IAAI,CAAC,KAAK,CAAE,CAAA,CAAC,CAAC;AACpE,YAAA,IAAI,OAAO,EAAE;gBACX,OAAO,IAAI,CAAC,iBAAiB,CAC3B,OAAO,CAAC,IAAI,EACZ,KAAK,EACL,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO,EAC/B,OAAO,CAAC,KAAK,CACd,CAAC;AACH,aAAA;AACF,SAAA;AACD,QAAA,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KAC3E;AAEO,IAAA,iBAAiB,CACvB,IAAY,EACZ,KAAW,EACX,OAAgB,EAChB,SAAe,EAAA;AAEf,QAAA,OAAO,IAAI,OAAO,CAAyB,CAAC,OAAO,KAAI;AACrD,YAAA,QAAQ,IAAI;AACV,gBAAA,KAAK,UAAU;AACb,oBAAA,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI,CAAC,WAAW;8BACrB,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,8BAA8B,CAAC;AAC7D,8BAAE,EAAE;wBACN,MAAM,EACJ,KAAK,IAAI,IAAI;AACb,4BAAA,KAAK,IAAI,EAAE;AACX,6BAAC,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC;AACpB,iCAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAChD,qBAAA,CAAC,CAAC;oBACH,MAAM;AACR,gBAAA,KAAK,OAAO;AACV,oBAAA,MAAM,EAAE,GAAG,IAAI,MAAM,CAAC,SAAS,CAAC,CAAC;AACjC,oBAAA,OAAO,CAAC;wBACN,OAAO,EAAE,IAAI,CAAC,WAAW;8BACrB,OAAO,IAAI,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;AAC1D,8BAAE,EAAE;AACN,wBAAA,MAAM,EAAE,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC;AACvB,qBAAA,CAAC,CAAC;oBACH,MAAM;AACR,gBAAA,KAAK,UAAU;AACb,oBAAA,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE;wBACnC,MAAM,GAAG,GAAQ,EAAE,CAAC;AACpB,wBAAA,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,WAAW,GAAG,OAAO,GAAG,IAAI,CAAC;wBAChD,MAAM,GAAG,GAAG,SAAS,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC;wBAC1C,IAAI,GAAG,YAAY,OAAO,EAAE;4BAC1B,GAAG;AACA,iCAAA,IAAI,CAAC,CAAC,CAAC,KAAI;AACV,gCAAA,GAAG,CAAC,MAAM,GAAG,CAAC,CAAC;AACjB,6BAAC,CAAC;AACD,iCAAA,KAAK,CAAC,CAAC,CAAC,KAAI;AACX,gCAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;AACrB,6BAAC,CAAC;iCACD,OAAO,CAAC,MAAK;gCACZ,OAAO,CAAC,GAAG,CAAC,CAAC;AACf,6BAAC,CAAC,CAAC;AACN,yBAAA;AAAM,6BAAA;AACL,4BAAA,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;4BACjB,OAAO,CAAC,GAAG,CAAC,CAAC;AACd,yBAAA;AACF,qBAAA;AAAM,yBAAA;AACL,wBAAA,OAAO,CAAC;AACN,4BAAA,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,qCAAqC,CAAC;AAChE,4BAAA,MAAM,EAAE,KAAK;AACd,yBAAA,CAAC,CAAC;AACJ,qBAAA;oBACD,MAAM;AACR,gBAAA;AACE,oBAAA,OAAO,CAAC;AACN,wBAAA,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,uCAAuC,CAAC;AAClE,wBAAA,MAAM,EAAE,KAAK;AACd,qBAAA,CAAC,CAAC;AACN,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;sHA5GU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,+LAJ1B,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAID,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBANrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,QAAQ,EAAE,EAAE;oBACZ,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA,CAAA;iIAMC,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,KAAK,EAAA,CAAA;sBADJ,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;;;ACTF,MAAO,4BAA6B,SAAQ,oBAAoB,CAAA;AAgBpE,IAAA,WAAA,CACE,WAAuB,EACvB,IAAuB,EACf,aAA6B,EAG7B,OAAwB,EAAA;AAEhC,QAAA,KAAK,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;QALjB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAgB;QAG7B,IAAO,CAAA,OAAA,GAAP,OAAO,CAAiB;QApBlC,IAAQ,CAAA,QAAA,GAAY,EAAE,CAAC;AACvB,QAAA,IAAA,CAAA,MAAM,GAAW,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;QAG/D,IAAW,CAAA,WAAA,GAAmC,OAAO,CAAC;QAMtD,IAAQ,CAAA,QAAA,GAAY,KAAK,CAAC;;QAcxB,OAAO,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAK,KAAI;AACrC,YAAA,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,EAAE;AACpB,gBAAA,IAAI,CAAC,QAAQ,GAAG,CAAA,IAAA,EAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAO,IAAA,EAAA,CAAC,CAAC,OAAO,CAAO,KAAA,CAAA,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA,KAAA,CAAO,CAAC;AACxF,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEnG,gBAAA,IAAI,IAAI,CAAC,WAAW,IAAI,OAAO,EAAE;AAC/B,oBAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC;AACtB,wBAAA,KAAK,EAAE,QAAQ;AACf,wBAAA,SAAS,EAAE,IAAI;wBACf,OAAO,EAAE,IAAI,CAAC,QAAQ;wBACtB,OAAO,EAAE,IAAI,CAAC,QAAQ;AACtB,wBAAA,KAAK,EAAE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;AACrD,qBAAA,CAAC,CAAC;AACJ,iBAAA;AACF,aAAA;AACI,iBAAA;AACH,gBAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;AACpB,aAAA;YACD,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,kBAAkB,CAAC,CAAU,EAAA;AAC3B,QAAA,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;KACpB;;AAlDU,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,4BAA4B,2GAqB7B,eAAe,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AArBd,4BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAlB7B,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,2BAAA,EAAA,QAAA,EAAA,YAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,0BAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,yBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,MAAA,EAAA,MAAA,EAAA,YAAA,EAAA,UAAA,EAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,QAAA,EAAA,SAAA,EAAA,SAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,YAAA,EAAA,aAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA;2FAIU,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBApBxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;AAcT,EAAA,CAAA;oBACD,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,aAAa,EAAE,iBAAiB,CAAC,IAAI;AACtC,iBAAA,CAAA;;0BAqBI,QAAQ;;0BACR,MAAM;2BAAC,eAAe,CAAA;4CAfzB,WAAW,EAAA,CAAA;sBADV,KAAK;gBAIN,OAAO,EAAA,CAAA;sBADN,KAAK;gBAIN,QAAQ,EAAA,CAAA;sBADP,KAAK;;;MCTK,YAAY,CAAA;AACvB,IAAA,WAAA,GAAA;QACE,QAAQ,CAAC,GAAG,CAAC;AACX,YAAA,IAAI,EAAE;AACJ,gBAAA,UAAU,EAAE;AACV,oBAAA,KAAK,EAAE;AACL,wBAAA,KAAK,EAAE;AACL,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,KAAK,EACH,uJAAuJ;AACzJ,4BAAA,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;AACvD,yBAAA;AACD,wBAAA,KAAK,EAAE;AACL,4BAAA,IAAI,EAAE,OAAO;AACb,4BAAA,KAAK,EAAE,8CAA8C;AACrD,4BAAA,OAAO,EAAE,YAAY,CAAC,GAAG,CAAC,2BAA2B,CAAC;AACvD,yBAAA;AACF,qBAAA;AACF,iBAAA;AACF,aAAA;AACF,SAAA,CAAC,CAAC;KACJ;;yGArBU,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAZ,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBAhBrB,oBAAoB;QACpB,eAAe;QACf,mBAAmB;QACnB,yBAAyB;QACzB,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAEpB,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,OAAA,EAAA,CAEtE,oBAAoB;QACpB,eAAe;QACf,mBAAmB;QACnB,yBAAyB;QACzB,4BAA4B,CAAA,EAAA,CAAA,CAAA;AAInB,YAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,YAVb,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,CAAA,EAAA,CAAA,CAAA;2FAU7D,YAAY,EAAA,UAAA,EAAA,CAAA;kBAlBxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,oBAAoB;wBACpB,eAAe;wBACf,mBAAmB;wBACnB,yBAAyB;wBACzB,4BAA4B;AAC7B,qBAAA;oBACD,OAAO,EAAE,CAAC,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,cAAc,CAAC;AACzE,oBAAA,OAAO,EAAE;wBACP,oBAAoB;wBACpB,eAAe;wBACf,mBAAmB;wBACnB,yBAAyB;wBACzB,4BAA4B;AAC7B,qBAAA;AACD,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;AC/BD;;AAEG;;;;"}
@@ -1,27 +1,48 @@
1
+ import { AXBaseComponent } from '@acorex/components/mixin';
1
2
  import * as i0 from '@angular/core';
2
- import { Component, ViewEncapsulation, Input, HostBinding, NgModule } from '@angular/core';
3
+ import { EventEmitter, Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, HostBinding, NgModule } from '@angular/core';
3
4
  import * as i1 from '@angular/common';
4
5
  import { CommonModule } from '@angular/common';
5
6
 
6
- class AXImageComponent {
7
- constructor() {
7
+ class AXImageComponent extends AXBaseComponent {
8
+ /**
9
+ * @ignore
10
+ */
11
+ constructor(elementRef, cdr) {
12
+ super(elementRef, cdr);
13
+ this.cdr = cdr;
14
+ this.priority = 'auto';
8
15
  this.lazy = false;
16
+ this.onLoad = new EventEmitter();
17
+ this.onError = new EventEmitter();
9
18
  this._hasError = false;
10
19
  this._isLoaded = false;
11
20
  this._isLoading = false;
12
21
  }
13
- ngOnInit() {
22
+ onInit() {
14
23
  this._isLoading = this.src != null;
15
24
  }
16
25
  _handleLoadImage(e) {
17
26
  this._isLoaded = true;
18
27
  this._hasError = false;
19
28
  this._isLoading = false;
29
+ this.onLoad.emit({
30
+ component: this,
31
+ htmlElement: this._getHostElement(),
32
+ isUserInteraction: false,
33
+ nativeEvent: e
34
+ });
20
35
  }
21
36
  _handleErrorImage(e) {
22
37
  this._hasError = true;
23
38
  this._isLoaded = false;
24
39
  this._isLoading = false;
40
+ this.onError.emit({
41
+ component: this,
42
+ htmlElement: this._getHostElement(),
43
+ isUserInteraction: false,
44
+ nativeEvent: e
45
+ });
25
46
  }
26
47
  get __stateError() {
27
48
  return this._hasError || !this.src;
@@ -30,17 +51,23 @@ class AXImageComponent {
30
51
  return this._isLoading;
31
52
  }
32
53
  }
33
- AXImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
34
- AXImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXImageComponent, selector: "ax-image", inputs: { src: "src", alt: "alt", lazy: "lazy" }, host: { properties: { "class.ax-state-empty": "this.__stateError", "class.ax-state-loading": "this.__stateLoading" } }, ngImport: i0, template: "<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], encapsulation: i0.ViewEncapsulation.None });
54
+ AXImageComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
55
+ AXImageComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXImageComponent, selector: "ax-image", inputs: { src: "src", alt: "alt", priority: "priority", lazy: "lazy" }, outputs: { onLoad: "onLoad", onError: "onError" }, host: { properties: { "class.ax-state-empty": "this.__stateError", "class.ax-state-loading": "this.__stateLoading" } }, providers: [{ provide: 'ax-image', useValue: AXImageComponent }], usesInheritance: true, ngImport: i0, template: "<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\" [attr.fetchpriority]=\"priority\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>", dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
35
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXImageComponent, decorators: [{
36
57
  type: Component,
37
- args: [{ selector: 'ax-image', encapsulation: ViewEncapsulation.None, template: "<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>" }]
38
- }], ctorParameters: function () { return []; }, propDecorators: { src: [{
58
+ args: [{ selector: 'ax-image', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, providers: [{ provide: 'ax-image', useValue: AXImageComponent }], template: "<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\" [attr.fetchpriority]=\"priority\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>" }]
59
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { src: [{
39
60
  type: Input
40
61
  }], alt: [{
41
62
  type: Input
63
+ }], priority: [{
64
+ type: Input
42
65
  }], lazy: [{
43
66
  type: Input
67
+ }], onLoad: [{
68
+ type: Output
69
+ }], onError: [{
70
+ type: Output
44
71
  }], __stateError: [{
45
72
  type: HostBinding,
46
73
  args: ['class.ax-state-empty']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-image.mjs","sources":["../../../../projects/acorex/components/image/src/image.component.ts","../../../../projects/acorex/components/image/src/image.component.html","../../../../projects/acorex/components/image/src/image.module.ts","../../../../projects/acorex/components/image/acorex-components-image.ts"],"sourcesContent":["import {\r\n Component,\r\n HostBinding,\r\n Input,\r\n OnInit,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-image',\r\n templateUrl: './image.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n})\r\nexport class AXImageComponent implements OnInit {\r\n @Input()\r\n src?: string | null;\r\n\r\n @Input()\r\n alt?: string | null;\r\n\r\n @Input() \r\n lazy: boolean = false;\r\n\r\n _hasError = false;\r\n _isLoaded = false;\r\n _isLoading = false;\r\n\r\n constructor() { }\r\n\r\n ngOnInit(): void {\r\n this._isLoading = this.src != null;\r\n }\r\n\r\n _handleLoadImage(e: any) {\r\n this._isLoaded = true;\r\n this._hasError = false;\r\n this._isLoading = false;\r\n }\r\n\r\n _handleErrorImage(e: any) {\r\n this._hasError = true;\r\n this._isLoaded = false;\r\n this._isLoading = false;\r\n }\r\n\r\n @HostBinding('class.ax-state-empty')\r\n get __stateError() {\r\n return this._hasError || !this.src;\r\n }\r\n\r\n @HostBinding('class.ax-state-loading')\r\n get __stateLoading() {\r\n return this._isLoading;\r\n }\r\n}\r\n","<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXImageComponent } from './image.component';\r\n\r\n@NgModule({\r\n declarations: [AXImageComponent],\r\n imports: [CommonModule],\r\n exports: [AXImageComponent],\r\n providers: [],\r\n})\r\nexport class AXImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-image.mjs","sources":["../../../../projects/acorex/components/image/src/image.component.ts","../../../../projects/acorex/components/image/src/image.component.html","../../../../projects/acorex/components/image/src/image.module.ts","../../../../projects/acorex/components/image/acorex-components-image.ts"],"sourcesContent":["import { AXHtmlEvent } from '@acorex/components/common';\r\nimport { AXBaseComponent } from '@acorex/components/mixin';\r\nimport {\r\n ChangeDetectionStrategy,\r\n ChangeDetectorRef,\r\n Component,\r\n ElementRef,\r\n EventEmitter,\r\n HostBinding,\r\n Input,\r\n Output,\r\n ViewEncapsulation,\r\n} from '@angular/core';\r\n\r\n@Component({\r\n selector: 'ax-image',\r\n templateUrl: './image.component.html',\r\n encapsulation: ViewEncapsulation.None,\r\n changeDetection: ChangeDetectionStrategy.OnPush,\r\n providers: [{ provide: 'ax-image', useValue: AXImageComponent }],\r\n})\r\nexport class AXImageComponent extends AXBaseComponent {\r\n\r\n\r\n /**\r\n * @ignore\r\n */\r\n constructor(\r\n elementRef: ElementRef,\r\n private cdr: ChangeDetectorRef\r\n ) {\r\n super(elementRef, cdr);\r\n }\r\n\r\n @Input()\r\n src?: string | null;\r\n\r\n @Input()\r\n alt?: string | null;\r\n\r\n @Input()\r\n priority: 'low' | 'auto' | 'high' = 'auto';\r\n\r\n @Input()\r\n lazy: boolean = false;\r\n\r\n\r\n @Output()\r\n onLoad: EventEmitter<AXHtmlEvent> = new EventEmitter<AXHtmlEvent>();\r\n\r\n @Output()\r\n onError: EventEmitter<AXHtmlEvent<ErrorEvent>> = new EventEmitter<AXHtmlEvent<ErrorEvent>>();\r\n\r\n _hasError = false;\r\n _isLoaded = false;\r\n _isLoading = false;\r\n\r\n\r\n\r\n onInit(): void {\r\n this._isLoading = this.src != null;\r\n }\r\n\r\n _handleLoadImage(e: Event) {\r\n this._isLoaded = true;\r\n this._hasError = false;\r\n this._isLoading = false;\r\n this.onLoad.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n isUserInteraction: false,\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n _handleErrorImage(e: ErrorEvent) {\r\n this._hasError = true;\r\n this._isLoaded = false;\r\n this._isLoading = false;\r\n this.onError.emit({\r\n component: this,\r\n htmlElement: this._getHostElement(),\r\n isUserInteraction: false,\r\n nativeEvent: e\r\n });\r\n }\r\n\r\n @HostBinding('class.ax-state-empty')\r\n get __stateError() {\r\n return this._hasError || !this.src;\r\n }\r\n\r\n @HostBinding('class.ax-state-loading')\r\n get __stateLoading() {\r\n return this._isLoading;\r\n }\r\n\r\n}\r\n","<img class=\"ax-hidden\" *ngIf=\"src\" [class.!ax-block]=\"_isLoaded\" [src]=\"src\" [alt]=\"alt\" [attr.fetchpriority]=\"priority\"\r\n [attr.loading]=\"lazy ? 'lazy' : 'eager'\" (load)=\"_handleLoadImage($event)\" (error)=\"_handleErrorImage($event)\">\r\n<ng-content select=\"ax-overlay\"></ng-content>\r\n<ng-container *ngIf=\"!src || _hasError\">\r\n <ng-content select=\"ax-placeholder\"></ng-content>\r\n</ng-container>\r\n<ng-container *ngIf=\"_isLoading\">\r\n <ng-content select=\"ax-loading\"></ng-content>\r\n</ng-container>","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { AXImageComponent } from './image.component';\r\n\r\n@NgModule({\r\n declarations: [AXImageComponent],\r\n imports: [CommonModule],\r\n exports: [AXImageComponent],\r\n providers: [],\r\n})\r\nexport class AXImageModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
@@ -2,9 +2,10 @@ import { ComponentPortal } from '@angular/cdk/portal';
2
2
  import * as i0 from '@angular/core';
3
3
  import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, NgModule } from '@angular/core';
4
4
  import { AXBaseMenuMixin } from '@acorex/components/mixin';
5
+ import * as i2 from '@acorex/core/platform';
6
+ import { AXPlatform } from '@acorex/core/platform';
5
7
  import * as i1 from '@angular/cdk/overlay';
6
8
  import { OverlayModule } from '@angular/cdk/overlay';
7
- import * as i2 from '@acorex/core/platform';
8
9
  import * as i3 from '@angular/common';
9
10
  import { CommonModule } from '@angular/common';
10
11
  import * as i4 from '@acorex/components/decorators';
@@ -26,6 +27,7 @@ class AXMenuComponent extends AXBaseMenuMixin {
26
27
  this.cdr = cdr;
27
28
  this._overlay = _overlay;
28
29
  this._platform = _platform;
30
+ this.rtl = new AXPlatform().isRtl();
29
31
  this._levelCount = 0;
30
32
  }
31
33
  get emptyTemplate() {
@@ -314,7 +316,7 @@ class AXMenuComponent extends AXBaseMenuMixin {
314
316
  }
315
317
  }
316
318
  AXMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
317
- AXMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", isOpen: "isOpen", isActive: "isActive", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", orientation: "orientation", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, host: { classAttribute: "ax-menu" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul [ngClass]=\"_getDirection()\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n </ul>\r\n <ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMenuMouseEnter($event,item)\"\r\n [ngClass]=\"{'ax-state-active ': item.isActive}\">\r\n <div class=\"ax-menu-item\" *ngIf=\"itemTemplate == null else tmpItem\">\r\n <div class=\"ax-menu-item-prefix\">\r\n <ax-icon *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-item-suffix\">\r\n <ax-icon *ngIf=\"!item.isLoading\"\r\n [ngClass]=\"{'ax-ic-chevron':item?.children?.length > 0,'ax-menu-active-icon': item.isOpen}\">\r\n </ax-icon>\r\n <ax-loading *ngIf=\"item.isLoading\">\r\n </ax-loading>\r\n </div>\r\n </div>\r\n <!--------------- check for custom item template --------------->\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: item }\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen &&!_overlayRef\"\r\n [class.ax-state-disabled]=\"item[disableField]\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li class=\"ax-divider\" *ngIf=\"item[this.dividerField]\"></li>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
319
+ AXMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", isOpen: "isOpen", isActive: "isActive", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", orientation: "orientation", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, host: { classAttribute: "ax-menu" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n </ul>\r\n <ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMenuMouseEnter($event,item)\"\r\n [ngClass]=\"{'ax-state-active ': item.isActive}\">\r\n <div class=\"ax-menu-item\" *ngIf=\"itemTemplate == null else tmpItem\">\r\n <div class=\"ax-menu-item-prefix\">\r\n <ax-icon *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-item-suffix\">\r\n <ax-icon *ngIf=\"!item.isLoading\"\r\n [ngClass]=\"{'ax-ic-chevron':item?.children?.length > 0,'ax-menu-active-icon': item.isOpen}\">\r\n </ax-icon>\r\n <ax-loading *ngIf=\"item.isLoading\">\r\n </ax-loading>\r\n </div>\r\n </div>\r\n <!--------------- check for custom item template --------------->\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: item }\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen &&!_overlayRef\"\r\n [class.ax-state-disabled]=\"item[disableField]\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li class=\"ax-divider\" *ngIf=\"item[this.dividerField]\"></li>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>", dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXDecoratorIconComponent, selector: "ax-icon", inputs: ["icon"] }, { kind: "component", type: i5.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "pipe", type: i6.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
318
320
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: AXMenuComponent, decorators: [{
319
321
  type: Component,
320
322
  args: [{ selector: 'ax-menu', inputs: [
@@ -335,7 +337,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
335
337
  'openMode',
336
338
  'orientation',
337
339
  'showModal',
338
- ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-menu' }, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul [ngClass]=\"_getDirection()\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n </ul>\r\n <ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMenuMouseEnter($event,item)\"\r\n [ngClass]=\"{'ax-state-active ': item.isActive}\">\r\n <div class=\"ax-menu-item\" *ngIf=\"itemTemplate == null else tmpItem\">\r\n <div class=\"ax-menu-item-prefix\">\r\n <ax-icon *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-item-suffix\">\r\n <ax-icon *ngIf=\"!item.isLoading\"\r\n [ngClass]=\"{'ax-ic-chevron':item?.children?.length > 0,'ax-menu-active-icon': item.isOpen}\">\r\n </ax-icon>\r\n <ax-loading *ngIf=\"item.isLoading\">\r\n </ax-loading>\r\n </div>\r\n </div>\r\n <!--------------- check for custom item template --------------->\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: item }\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen &&!_overlayRef\"\r\n [class.ax-state-disabled]=\"item[disableField]\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li class=\"ax-divider\" *ngIf=\"item[this.dividerField]\"></li>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>" }]
340
+ ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-menu' }, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\r\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: displayItems }\"></ng-container>\r\n </ul>\r\n <ng-template #recursiveListTmpl let-list=\"list\">\r\n <ng-container *ngFor=\"let item of list\">\r\n <li *ngIf=\"item[visibleField] !=false\" [class.ax-state-disabled]=\"item[disableField]\"\r\n (click)=\"_onMenuClick($event,item)\" (mouseenter)=\"_onMenuMouseEnter($event,item)\"\r\n [ngClass]=\"{'ax-state-active ': item.isActive}\">\r\n <div class=\"ax-menu-item\" *ngIf=\"itemTemplate == null else tmpItem\">\r\n <div class=\"ax-menu-item-prefix\">\r\n <ax-icon *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></ax-icon>\r\n <span>{{_getItemDisplayTextTemplte(item)}}</span>\r\n </div>\r\n <div class=\"ax-menu-item-suffix\">\r\n <ax-icon *ngIf=\"!item.isLoading\"\r\n [ngClass]=\"{'ax-ic-chevron':item?.children?.length > 0,'ax-menu-active-icon': item.isOpen}\">\r\n </ax-icon>\r\n <ax-loading *ngIf=\"item.isLoading\">\r\n </ax-loading>\r\n </div>\r\n </div>\r\n <!--------------- check for custom item template --------------->\r\n <ng-template #tmpItem>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <ng-container *ngTemplateOutlet=\"itemTemplate;context: { $implicit: item }\">\r\n </ng-container>\r\n </ng-container>\r\n </ng-template>\r\n <ul *ngIf=\"item?.children?.length > 0 && item.isOpen &&!_overlayRef\"\r\n [class.ax-state-disabled]=\"item[disableField]\">\r\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context:{ list: item.children }\">\r\n </ng-container>\r\n </ul>\r\n </li>\r\n <li class=\"ax-divider\" *ngIf=\"item[this.dividerField]\"></li>\r\n </ng-container>\r\n </ng-template>\r\n</ng-container>\r\n<ng-container *ngIf=\"isLoading\">\r\n <ng-template>\r\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\r\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\r\n </div>\r\n </ng-template>\r\n</ng-container>\r\n\r\n<ng-template #tmpEmpty>\r\n <ng-container *ngIf=\"!isLoading\">\r\n <!--------------- check for custom template --------------->\r\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\r\n <ng-container *ngTemplateOutlet=\"emptyTemplate\">\r\n </ng-container>\r\n </ng-container>\r\n <ng-template #elseEmptyTemplate>\r\n <div class=\"ax-list-item\">\r\n {{ 'common.no-result-found' | trans }}\r\n </div>\r\n </ng-template>\r\n </ng-container>\r\n</ng-template>" }]
339
341
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { _contentEmptyTemplate: [{
340
342
  type: ContentChild,
341
343
  args: ['emptyTemplate']