@acorex/components 7.1.30 → 7.1.32

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.
@@ -23,7 +23,7 @@ class AXSwitchComponent extends AXBaseValueComponentMixin {
23
23
  return `ax-${this.color ? this.color : 'primary'}-default`;
24
24
  }
25
25
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXSwitchComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
26
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXSwitchComponent, selector: "ax-switch", inputs: { disabled: "disabled", color: "color", readonly: "readonly", tabIndex: "tabIndex", size: "size", cssClass: "cssClass", cssStyle: "cssStyle", allowNull: "allowNull", value: "value", name: "name", checked: "checked", uncheckedText: "uncheckedText", checkedText: "checkedText", loading: "loading" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<button type=\"button\" role=\"switch\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\n [class.ax-switch-checked]=\"value\" (click)=\"_handleOnClickEvent($event)\">\n <div class=\"ax-switch-handle\">\n <ax-loading *ngIf=\"loading\"></ax-loading>\n <ng-content select=\"ax-switch-handler-content\"></ng-content>\n </div>\n <span class=\"ax-switch-inner\" *ngIf=\"!value\">\n <ng-content select=\"ax-switch-off-content\"></ng-content>\n\n </span>\n <span class=\"ax-switch-inner\" *ngIf=\"value\">\n <ng-content select=\"ax-switch-on-content\"></ng-content>\n </span>\n\n</button>", styles: ["ax-switch.ax-sm button{min-width:2rem;height:1rem;line-height:1rem}ax-switch.ax-sm button:active .ax-switch-handle{width:1rem}ax-switch.ax-sm .ax-switch-handle{width:.75rem;height:.75rem}ax-switch.ax-lg button{min-width:2.75rem;height:1.5rem;line-height:1.5rem}ax-switch.ax-lg button:active .ax-switch-handle{width:1.5rem}ax-switch.ax-lg .ax-switch-handle{width:1.25rem;height:1.25rem}ax-switch button{position:relative;display:inline-block;vertical-align:middle;border-radius:99rem;background-color:#0003!important;min-width:2.5rem;height:1.25rem;line-height:1.25rem;transition:background-color .3s linear;cursor:pointer}ax-switch button:active .ax-switch-handle{width:1.25rem}ax-switch button.ax-switch-checked{background-color:rgba(var(--ax-color-primary-500))!important}ax-switch button.ax-switch-checked .ax-switch-handle{inset-inline-end:.125rem;inset-inline-start:initial}ax-switch button.ax-switch-checked .ax-switch-inner{margin-inline-end:1.5rem;margin-inline-start:.375rem}ax-switch button .ax-switch-handle{width:1rem;height:1rem;background-color:#fff;position:absolute;border-radius:99rem;inset-inline-start:.125rem;top:.125rem;transition:width .3s;box-shadow:0 0 1px 1px #0000000d}ax-switch button .ax-switch-handle ax-switch-handler-content,ax-switch button .ax-switch-handle ax-switch-handler-content *{height:100%;width:100%;font-size:100%;display:flex;align-items:center;justify-content:center;color:#454a50}ax-switch button .ax-switch-handle:active{width:1.25rem}ax-switch button .ax-switch-handle ax-loading{width:100%;position:absolute;inset-inline-start:0;inset-inline-end:0;top:50%;transform:translateY(-50%)}ax-switch button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-primary-500));stroke:rgba(var(--ax-color-primary-500))}ax-switch button .ax-switch-handle:before{position:absolute;background-color:rgba(var(--ax-color-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:99rem;content:\"\"}ax-switch button .ax-switch-inner{display:block;margin-inline-start:1.5rem;margin-inline-end:.375rem;transition:margin .2s}ax-switch button .ax-switch-inner ax-switch-on-content,ax-switch button .ax-switch-inner ax-switch-off-content{display:flex;font-size:.875rem;padding:0 .25rem}ax-switch.ax-primary-default button:focus-visible{outline-color:rgba(var(--ax-color-primary-500))}ax-switch.ax-primary-default button ax-switch-handler-content,ax-switch.ax-primary-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-primary-default button.ax-switch-checked{background-color:rgba(var(--ax-color-primary-500))!important}ax-switch.ax-primary-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-primary-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-primary-500))}ax-switch.ax-primary-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-primary-fore))}ax-switch.ax-primary-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-primary-500));stroke:rgba(var(--ax-color-primary-500))}ax-switch.ax-secondary-default button:focus-visible{outline-color:rgba(var(--ax-color-secondary-500))}ax-switch.ax-secondary-default button ax-switch-handler-content,ax-switch.ax-secondary-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-secondary-default button.ax-switch-checked{background-color:rgba(var(--ax-color-secondary-500))!important}ax-switch.ax-secondary-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-secondary-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-secondary-500))}ax-switch.ax-secondary-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-secondary-fore))}ax-switch.ax-secondary-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-secondary-500));stroke:rgba(var(--ax-color-secondary-500))}ax-switch.ax-success-default button:focus-visible{outline-color:rgba(var(--ax-color-success-500))}ax-switch.ax-success-default button ax-switch-handler-content,ax-switch.ax-success-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-success-default button.ax-switch-checked{background-color:rgba(var(--ax-color-success-500))!important}ax-switch.ax-success-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-success-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-success-500))}ax-switch.ax-success-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-success-fore))}ax-switch.ax-success-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-success-500));stroke:rgba(var(--ax-color-success-500))}ax-switch.ax-warning-default button:focus-visible{outline-color:rgba(var(--ax-color-warning-500))}ax-switch.ax-warning-default button ax-switch-handler-content,ax-switch.ax-warning-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-warning-default button.ax-switch-checked{background-color:rgba(var(--ax-color-warning-500))!important}ax-switch.ax-warning-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-warning-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-warning-500))}ax-switch.ax-warning-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-warning-fore))}ax-switch.ax-warning-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-warning-500));stroke:rgba(var(--ax-color-warning-500))}ax-switch.ax-danger-default button:focus-visible{outline-color:rgba(var(--ax-color-danger-500))}ax-switch.ax-danger-default button ax-switch-handler-content,ax-switch.ax-danger-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-danger-default button.ax-switch-checked{background-color:rgba(var(--ax-color-danger-500))!important}ax-switch.ax-danger-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-danger-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-danger-500))}ax-switch.ax-danger-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-danger-fore))}ax-switch.ax-danger-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-danger-500));stroke:rgba(var(--ax-color-danger-500))}ax-switch.ax-info-default button:focus-visible{outline-color:rgba(var(--ax-color-info-500))}ax-switch.ax-info-default button ax-switch-handler-content,ax-switch.ax-info-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-info-default button.ax-switch-checked{background-color:rgba(var(--ax-color-info-500))!important}ax-switch.ax-info-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-info-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-info-500))}ax-switch.ax-info-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-info-fore))}ax-switch.ax-info-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-info-500));stroke:rgba(var(--ax-color-info-500))}ax-switch .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-switch .ax-state-readonly{opacity:.75}.ax-dark ax-switch button{background-color:rgba(var(--ax-color-input-surface))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
26
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXSwitchComponent, selector: "ax-switch", inputs: { disabled: "disabled", color: "color", readonly: "readonly", tabIndex: "tabIndex", size: "size", cssClass: "cssClass", cssStyle: "cssStyle", allowNull: "allowNull", value: "value", name: "name", checked: "checked", uncheckedText: "uncheckedText", checkedText: "checkedText", loading: "loading" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", valueChange: "valueChange", onValueChanged: "onValueChanged" }, host: { properties: { "class": "this.__hostClass" } }, usesInheritance: true, ngImport: i0, template: "<button type=\"button\" role=\"switch\" [class.ax-state-disabled]=\"disabled\" [class.ax-state-readonly]=\"readonly\"\n [class.ax-switch-checked]=\"value\" (click)=\"_handleOnClickEvent($event)\">\n <div class=\"ax-switch-handle\">\n <ax-loading *ngIf=\"loading\"></ax-loading>\n <ng-content select=\"ax-switch-handler-content\"></ng-content>\n </div>\n <span class=\"ax-switch-inner\" *ngIf=\"!value\">\n <ng-content select=\"ax-switch-off-content\"></ng-content>\n\n </span>\n <span class=\"ax-switch-inner\" *ngIf=\"value\">\n <ng-content select=\"ax-switch-on-content\"></ng-content>\n </span>\n\n</button>", styles: ["ax-switch.ax-sm button{min-width:2rem;height:1rem;line-height:1rem}ax-switch.ax-sm button:active .ax-switch-handle{width:1rem}ax-switch.ax-sm .ax-switch-handle{width:.75rem;height:.75rem}ax-switch.ax-lg button{min-width:2.75rem;height:1.5rem;line-height:1.5rem}ax-switch.ax-lg button:active .ax-switch-handle{width:1.5rem}ax-switch.ax-lg .ax-switch-handle{width:1.25rem;height:1.25rem}ax-switch button{position:relative;display:inline-block;vertical-align:middle;border-radius:99rem;background-color:#0003!important;min-width:2.5rem;height:1.25rem;line-height:1.25rem;transition:background-color .3s linear;cursor:pointer}ax-switch button:active .ax-switch-handle{width:1.25rem}ax-switch button.ax-switch-checked{background-color:rgba(var(--ax-color-primary-500))!important}ax-switch button.ax-switch-checked .ax-switch-handle{inset-inline-end:.125rem;inset-inline-start:initial}ax-switch button.ax-switch-checked .ax-switch-inner{margin-inline-end:1.5rem;margin-inline-start:.375rem}ax-switch button .ax-switch-handle{width:1rem;height:1rem;background-color:#fff;position:absolute;border-radius:99rem;inset-inline-start:.125rem;top:.125rem;transition:width .3s;box-shadow:0 0 1px 1px #0000000d}ax-switch button .ax-switch-handle ax-switch-handler-content,ax-switch button .ax-switch-handle ax-switch-handler-content *{height:100%;width:100%;font-size:100%;display:flex;align-items:center;justify-content:center;color:#454a50}ax-switch button .ax-switch-handle:active{width:1.25rem}ax-switch button .ax-switch-handle ax-loading{width:100%;position:absolute;inset-inline-start:0;inset-inline-end:0;top:50%;transform:translateY(-50%)}ax-switch button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-primary-500));stroke:rgba(var(--ax-color-primary-500))}ax-switch button .ax-switch-handle:before{position:absolute;background-color:rgba(var(--ax-color-surface));transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;border-radius:99rem;content:\"\"}ax-switch button .ax-switch-inner{display:block;margin-inline-start:1.5rem;margin-inline-end:.375rem;transition:margin .2s}ax-switch button .ax-switch-inner ax-switch-on-content,ax-switch button .ax-switch-inner ax-switch-off-content{display:flex;font-size:.875rem;padding:0 .25rem}ax-switch.ax-primary-default button:focus-visible{outline-color:rgba(var(--ax-color-primary-500))}ax-switch.ax-primary-default button ax-switch-handler-content,ax-switch.ax-primary-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-primary-default button.ax-switch-checked{background-color:rgba(var(--ax-color-primary-500))!important}ax-switch.ax-primary-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-primary-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-primary-500))}ax-switch.ax-primary-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-primary-fore))}ax-switch.ax-primary-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-primary-500));stroke:rgba(var(--ax-color-primary-500))}ax-switch.ax-secondary-default button:focus-visible{outline-color:rgba(var(--ax-color-secondary-500))}ax-switch.ax-secondary-default button ax-switch-handler-content,ax-switch.ax-secondary-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-secondary-default button.ax-switch-checked{background-color:rgba(var(--ax-color-secondary-500))!important}ax-switch.ax-secondary-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-secondary-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-secondary-500))}ax-switch.ax-secondary-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-secondary-fore))}ax-switch.ax-secondary-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-secondary-500));stroke:rgba(var(--ax-color-secondary-500))}ax-switch.ax-success-default button:focus-visible{outline-color:rgba(var(--ax-color-success-500))}ax-switch.ax-success-default button ax-switch-handler-content,ax-switch.ax-success-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-success-default button.ax-switch-checked{background-color:rgba(var(--ax-color-success-500))!important}ax-switch.ax-success-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-success-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-success-500))}ax-switch.ax-success-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-success-fore))}ax-switch.ax-success-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-success-500));stroke:rgba(var(--ax-color-success-500))}ax-switch.ax-warning-default button:focus-visible{outline-color:rgba(var(--ax-color-warning-500))}ax-switch.ax-warning-default button ax-switch-handler-content,ax-switch.ax-warning-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-warning-default button.ax-switch-checked{background-color:rgba(var(--ax-color-warning-500))!important}ax-switch.ax-warning-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-warning-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-warning-500))}ax-switch.ax-warning-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-warning-fore))}ax-switch.ax-warning-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-warning-500));stroke:rgba(var(--ax-color-warning-500))}ax-switch.ax-danger-default button:focus-visible{outline-color:rgba(var(--ax-color-danger-500))}ax-switch.ax-danger-default button ax-switch-handler-content,ax-switch.ax-danger-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-danger-default button.ax-switch-checked{background-color:rgba(var(--ax-color-danger-500))!important}ax-switch.ax-danger-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-danger-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-danger-500))}ax-switch.ax-danger-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-danger-fore))}ax-switch.ax-danger-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-danger-500));stroke:rgba(var(--ax-color-danger-500))}ax-switch.ax-info-default button:focus-visible{outline-color:rgba(var(--ax-color-info-500))}ax-switch.ax-info-default button ax-switch-handler-content,ax-switch.ax-info-default button ax-switch-handler-content *{color:#454a50}ax-switch.ax-info-default button.ax-switch-checked{background-color:rgba(var(--ax-color-info-500))!important}ax-switch.ax-info-default button.ax-switch-checked ax-switch-handler-content,ax-switch.ax-info-default button.ax-switch-checked ax-switch-handler-content *{color:rgba(var(--ax-color-info-500))}ax-switch.ax-info-default button.ax-switch-checked .ax-switch-inner{color:rgba(var(--ax-color-info-fore))}ax-switch.ax-info-default button .ax-switch-handle ax-loading svg{fill:rgba(var(--ax-color-info-500));stroke:rgba(var(--ax-color-info-500))}ax-switch .ax-state-disabled{opacity:.5;cursor:not-allowed}ax-switch .ax-state-readonly{opacity:.75}.ax-dark ax-switch button{background-color:rgba(var(--ax-color-input-surface))!important}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
27
27
  }
28
28
  export { AXSwitchComponent };
29
29
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXSwitchComponent, decorators: [{
@@ -27,14 +27,12 @@ class AXLoadingComponent extends AXBaseComponentMixin {
27
27
  set visible(v) {
28
28
  if (v != this._visible) {
29
29
  this._visible = v;
30
- v
31
- ? this._getHostElement().classList.remove('ax-hide')
32
- : this._getHostElement().classList.add('ax-hide');
30
+ v ? this._getHostElement().classList.remove('ax-hide') : this._getHostElement().classList.add('ax-hide');
33
31
  this.visibleChange.emit(v);
34
32
  }
35
33
  }
36
34
  type = 'spinner';
37
- text;
35
+ options;
38
36
  onInit() {
39
37
  const loading = AXConfig.get(`layout.loading.${this.type}`);
40
38
  this._selectedPortal = new ComponentPortal(loading);
@@ -42,33 +40,23 @@ class AXLoadingComponent extends AXBaseComponentMixin {
42
40
  }
43
41
  _handleAttched(ref) {
44
42
  ref = ref;
45
- if (ref.instance) {
46
- ref.instance.text = this.text;
43
+ if (ref.instance && this.options) {
44
+ Object.assign(ref.instance, this.options);
47
45
  }
48
46
  }
49
47
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXLoadingComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
50
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", text: "text" }, outputs: { visibleChange: "visibleChange" }, host: { classAttribute: "ax-loading" }, usesInheritance: true, ngImport: i0, template: `
51
- <ng-template
52
- [cdkPortalOutlet]="_selectedPortal"
53
- (attached)="_handleAttched($event)"
54
- ></ng-template>
55
- `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
48
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXLoadingComponent, selector: "ax-loading", inputs: { visible: "visible", type: "type", options: "options" }, outputs: { visibleChange: "visibleChange" }, host: { classAttribute: "ax-loading" }, usesInheritance: true, ngImport: i0, template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, isInline: true, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"], dependencies: [{ kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
56
49
  }
57
50
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXLoadingComponent, decorators: [{
58
51
  type: Component,
59
- args: [{ selector: 'ax-loading', template: `
60
- <ng-template
61
- [cdkPortalOutlet]="_selectedPortal"
62
- (attached)="_handleAttched($event)"
63
- ></ng-template>
64
- `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-loading' }, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"] }]
52
+ args: [{ selector: 'ax-loading', template: ` <ng-template [cdkPortalOutlet]="_selectedPortal" (attached)="_handleAttched($event)"></ng-template> `, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: { class: 'ax-loading' }, styles: ["ax-loading{position:relative}ax-loading:before,ax-loading:after{content:\"\";position:absolute;top:50%;left:50%;width:100%;height:100%;border-radius:50%;transform:translate(-50%,-50%) scale(0)}ax-loading:before,ax-loading:after{background-color:transparent;animation:pulse2 2s ease-in-out infinite}@keyframes pulse2{0%,to{transform:translate(-50%,-50%) scale(0);opacity:1}50%{transform:translate(-50%,-50%) scale(1);opacity:0}}.ax-loading-overlay{background:rgba(var(--ax-color-ghost-200))}.ax-loading-spinner{display:flex;gap:.75rem}\n"] }]
65
53
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { visibleChange: [{
66
54
  type: Output
67
55
  }], visible: [{
68
56
  type: Input
69
57
  }], type: [{
70
58
  type: Input
71
- }], text: [{
59
+ }], options: [{
72
60
  type: Input
73
61
  }] } });
74
62
 
@@ -270,13 +258,13 @@ class AXLoadingService {
270
258
  this.overlayService = overlayService;
271
259
  }
272
260
  _stack = [];
273
- show(location) {
261
+ show(options) {
274
262
  let host;
275
- if (location) {
276
- host = location.closest('.ax-loading-host');
263
+ if (options?.location) {
264
+ host = options.location.closest('.ax-loading-host');
277
265
  }
278
- const containerElement = (host || location);
279
- const com = this.overlayService.show(AXLoadingComponent, {}, {
266
+ const containerElement = (host || options.location);
267
+ const com = this.overlayService.show(AXLoadingComponent, { options: options.context }, {
280
268
  closeOnClickOutside: false,
281
269
  containerElement,
282
270
  hasBackdrop: true,
@@ -289,10 +277,10 @@ class AXLoadingService {
289
277
  return id;
290
278
  }
291
279
  hide(id) {
292
- const f = this._stack.find((c) => c.id === id);
280
+ const f = this._stack.find(c => c.id === id);
293
281
  if (f) {
294
282
  f.component.dispose();
295
- this._stack = this._stack.filter((c) => c.id !== id);
283
+ this._stack = this._stack.filter(c => c.id !== id);
296
284
  }
297
285
  }
298
286
  // Observable creation operator.
@@ -318,7 +306,7 @@ class AXLoadingService {
318
306
  return loaderStates.get(this.getLoaderId(loaderId)) ?? false;
319
307
  }
320
308
  else {
321
- return [...loaderStates.values()].filter((state) => state).length > 0;
309
+ return [...loaderStates.values()].filter(state => state).length > 0;
322
310
  }
323
311
  }
324
312
  }
@@ -348,15 +336,11 @@ class AXLoadingService {
348
336
  if (!this.hasLoadingStates(context, loaderId)) {
349
337
  if (this.hasContextLoadingState(context)) {
350
338
  this.loadingStates.get(context).set(loaderId, state);
351
- this.loadingStates$
352
- .get(context)
353
- .set(loaderId, new BehaviorSubject(state));
339
+ this.loadingStates$.get(context).set(loaderId, new BehaviorSubject(state));
354
340
  }
355
341
  else {
356
342
  this.loadingStates.set(context, new Map([[loaderId, state]]));
357
- this.loadingStates$.set(context, new Map([
358
- [loaderId, new BehaviorSubject(state)],
359
- ]));
343
+ this.loadingStates$.set(context, new Map([[loaderId, new BehaviorSubject(state)]]));
360
344
  }
361
345
  }
362
346
  else {
@@ -366,15 +350,13 @@ class AXLoadingService {
366
350
  }
367
351
  }
368
352
  hasLoadingStates(context, loaderId) {
369
- return (this.hasContextLoadingState(context) &&
370
- this.hasLoaderLoadingState(context, loaderId));
353
+ return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);
371
354
  }
372
355
  hasContextLoadingState(context) {
373
356
  return this.loadingStates.has(context) && this.loadingStates$.has(context);
374
357
  }
375
358
  hasLoaderLoadingState(context, loaderId) {
376
- return (this.loadingStates.get(context).has(loaderId) &&
377
- this.loadingStates$.get(context).has(loaderId));
359
+ return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);
378
360
  }
379
361
  getLoaderId(loaderId) {
380
362
  return loaderId ?? DEFAULT_LOADER_ID;
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../projects/acorex/components/loading/src/loading.component.ts","../../../../projects/acorex/components/loading/src/loading-spinner.component.ts","../../../../projects/acorex/components/loading/src/loading.directive.ts","../../../../projects/acorex/components/loading/src/loading.module.ts","../../../../projects/acorex/components/loading/src/loading.service.ts","../../../../projects/acorex/components/loading/acorex-components-loading.ts"],"sourcesContent":["import { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { AXConfig } from '@acorex/core/config';\nimport {\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n Portal,\n} from '@angular/cdk/portal';\nimport {\n Component,\n ViewEncapsulation,\n ChangeDetectionStrategy,\n Input,\n Output,\n EventEmitter,\n ElementRef,\n ChangeDetectorRef,\n ComponentRef,\n} from '@angular/core';\n\n@Component({\n selector: 'ax-loading',\n template: `\n <ng-template\n [cdkPortalOutlet]=\"_selectedPortal\"\n (attached)=\"_handleAttched($event)\"\n ></ng-template>\n `,\n styleUrls:['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'ax-loading' },\n})\nexport class AXLoadingComponent extends AXBaseComponentMixin {\n _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n private _visible: boolean;\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v\n ? this._getHostElement().classList.remove('ax-hide')\n : this._getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n @Input()\n type: string = 'spinner';\n\n @Input()\n text: string;\n\n onInit() {\n const loading = AXConfig.get(`layout.loading.${this.type}`);\n this._selectedPortal = new ComponentPortal(loading);\n this._cdr.markForCheck();\n }\n\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance) {\n ref.instance.text = this.text;\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <svg\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n style=\"fill: currentColor;\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 50 50\"\n xml:space=\"preserve\">\n <path\n fill=\"current\"\n d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">\n <animateTransform\n attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 25 25\"\n to=\"360 25 25\"\n dur=\"0.6s\"\n repeatCount=\"indefinite\" />\n </path>\n </svg>\n <span *ngIf=\"text\"> {{ text }} </span>\n `,\n host: { class: 'ax-loading-spinner' },\n})\nexport class AXLoadingSpinnerComponent {\n text: string;\n}\n","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges, ViewContainerRef\n } from '@angular/core';\nimport { AXLoadingComponent } from './loading.component';\n \n \n const OVERLAY_CLASS = 'ax-loading-overlay';\n \n // This directive places an overlay with a loading spinner over its host element\n // if isLoading equals to true and hides the overlay when isLoading becomes false.\n @Directive({\n selector: '[axIsLoading]'\n })\n export class AXLoadingDirective implements OnChanges {\n @Input('axIsLoading')\n isLoading = false;\n \n protected overlayElement!: HTMLDivElement;\n protected spinnerElement!: HTMLDivElement;\n protected hostElement!: HTMLDivElement;\n \n\n //TODO: ComponentFactoryResolver is deprecated\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly renderer: Renderer2,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly viewContainerRef: ViewContainerRef,\n protected readonly componentFactoryResolver: ComponentFactoryResolver,\n ) {\n this.hostElement = this.elementRef.nativeElement;\n this.hostElement.style.position = 'relative';\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (!this.overlayElement || !this.spinnerElement) {\n this.init();\n }\n \n if (changes.isLoading) {\n const isLoadingValue = changes.isLoading.currentValue;\n \n if (isLoadingValue) {\n this.addLoadingIndicator();\n }\n else {\n this.removeLoadingIndicator();\n }\n \n this.changeDetectorRef.markForCheck();\n }\n }\n \n protected addLoadingIndicator(): void {\n this.renderer.appendChild(this.hostElement, this.overlayElement);\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\n }\n \n protected removeLoadingIndicator(): void {\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\n this.renderer.removeChild(this.hostElement, this.overlayElement);\n this.viewContainerRef.clear();\n }\n \n protected init(): void {\n this.initOverlayElement();\n this.initSpinnerComponent();\n }\n \n protected initSpinnerComponent(): void {\n const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\n this.spinnerElement = spinnerComponent.location.nativeElement;\n }\n \n protected initOverlayElement(): void {\n this.overlayElement = this.renderer.createElement('div');\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\n }\n }\n ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXLoadingModule {\n\n\n constructor() {\n AXConfig.set({\n layout: {\n loading: {\n spinner: AXLoadingSpinnerComponent,\n }\n }\n })\n\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXOverlayService, AXOverlayViewRef } from '@acorex/components/common';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n/**\n * Used for centrally setting/unsetting loading flags for components or services.\n * Should be connected to global HTTP interceptor which will unset\n * the loading flags in case an error happens using the clearLoadings() method.\n *\n * FAQ:\n * Q: How to change loading flag for a parent component?\n * A: Inject the parent component as a dependency to your constructor and\n * call loadingService.setLoading(parentComponent, STATE).\n *\n * Q: How to change loading flag for a child component?\n * A: Use a @ViewChild with component selector and pass the\n * reference of the child to setLoading method.\n *\n * Q: I need more loading indicators in my components. How to?\n * A: Assign a LoaderId to each indicator and then use them\n * with calls to methods of this service.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates: any = new WeakMap<\n LoadingContext,\n Map<LoaderId, boolean>\n >();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$: any = new WeakMap<\n LoadingContext,\n Map<LoaderId, BehaviorSubject<boolean>>\n >();\n\n constructor(\n protected zoneRef: NgZone,\n private overlayService: AXOverlayService\n ) {}\n\n private _stack: { id: number; component: AXOverlayViewRef }[] = [];\n\n show(location?: Element): number {\n let host: Element | any;\n if (location) {\n host = location.closest('.ax-loading-host');\n }\n const containerElement = (host || location) as HTMLDivElement;\n const com = this.overlayService.show(\n AXLoadingComponent,\n {},\n {\n closeOnClickOutside: false,\n containerElement,\n hasBackdrop: true,\n backdropClass: ['ax-loading-overlay'],\n scroll: 'block',\n }\n );\n com.instance.visible = true;\n const id = new Date().getTime();\n this._stack.push({ id, component: com });\n return id;\n }\n\n hide(id): void {\n const f = this._stack.find((c) => c.id === id);\n if (f) {\n f.component.dispose();\n this._stack = this._stack.filter((c) => c.id !== id);\n }\n }\n\n // Observable creation operator.\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\n // Context can be any object, though in practice, components and services will be the most common contexts.\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\n // Such a scenario is used when your context has contains only one loading indicator.\n doLoading<V>(\n source$: Observable<V>,\n context: LoadingContext,\n loaderId?: LoaderId\n ): Observable<V> {\n this.startLoading(context, loaderId);\n\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId))\n );\n }\n\n // To be used in your html templates.\n // Returns a boolean indicating whether a given loader is active in a given context.\n // If loaderId is unspecified, the method will return a logical disjunction of all\n // loader states in the context.\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter((state) => state).length > 0;\n }\n }\n }\n\n // To be used in your html templates with async pipes.\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\n isLoading$(\n context: LoadingContext,\n loaderId?: LoaderId | any\n ): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n // The startLoading and endLoading methods are intended to be used when handling\n // complex scenarios where a need for extended usage flexibility is desired.\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<\n LoadingContext,\n Map<LoaderId, BehaviorSubject<boolean>>\n >();\n }\n\n protected setLoadingState(\n context: LoadingContext,\n state: boolean,\n loaderId: LoaderId\n ): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$\n .get(context)\n .set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(\n context,\n new Map<LoaderId, boolean>([[loaderId, state]])\n );\n this.loadingStates$.set(\n context,\n new Map<LoaderId, BehaviorSubject<boolean>>([\n [loaderId, new BehaviorSubject<boolean>(state)],\n ])\n );\n }\n } else {\n // @ts-ignore - loadingStates[context] is surely defined in this branch\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return (\n this.hasContextLoadingState(context) &&\n this.hasLoaderLoadingState(context, loaderId)\n );\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return (\n this.loadingStates.get(context).has(loaderId) &&\n this.loadingStates$.get(context).has(loaderId)\n );\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
1
+ {"version":3,"file":"acorex-components-loading.mjs","sources":["../../../../projects/acorex/components/loading/src/loading.component.ts","../../../../projects/acorex/components/loading/src/loading-spinner.component.ts","../../../../projects/acorex/components/loading/src/loading.directive.ts","../../../../projects/acorex/components/loading/src/loading.module.ts","../../../../projects/acorex/components/loading/src/loading.service.ts","../../../../projects/acorex/components/loading/acorex-components-loading.ts"],"sourcesContent":["import { AXBaseComponentMixin } from '@acorex/components/mixin';\nimport { AXConfig } from '@acorex/core/config';\nimport { CdkPortalOutletAttachedRef, ComponentPortal, Portal } from '@angular/cdk/portal';\nimport { Component, ViewEncapsulation, ChangeDetectionStrategy, Input, Output, EventEmitter, ElementRef, ChangeDetectorRef, ComponentRef } from '@angular/core';\n\n@Component({\n selector: 'ax-loading',\n template: ` <ng-template [cdkPortalOutlet]=\"_selectedPortal\" (attached)=\"_handleAttched($event)\"></ng-template> `,\n styleUrls: ['./loading.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n host: { class: 'ax-loading' },\n})\nexport class AXLoadingComponent extends AXBaseComponentMixin {\n _selectedPortal: Portal<any>;\n\n /**\n * @ignore\n */\n constructor(elementRef: ElementRef, cdr: ChangeDetectorRef) {\n super(elementRef, cdr);\n }\n\n @Output()\n visibleChange: EventEmitter<boolean> = new EventEmitter();\n\n private _visible: boolean;\n\n @Input()\n public get visible(): boolean {\n return this._visible;\n }\n public set visible(v: boolean) {\n if (v != this._visible) {\n this._visible = v;\n v ? this._getHostElement().classList.remove('ax-hide') : this._getHostElement().classList.add('ax-hide');\n this.visibleChange.emit(v);\n }\n }\n\n @Input()\n type: string = 'spinner';\n\n @Input()\n options?: any;\n\n onInit() {\n const loading = AXConfig.get(`layout.loading.${this.type}`);\n this._selectedPortal = new ComponentPortal(loading);\n this._cdr.markForCheck();\n }\n\n _handleAttched(ref: CdkPortalOutletAttachedRef) {\n ref = ref as ComponentRef<any>;\n if (ref.instance && this.options) {\n Object.assign(ref.instance, this.options);\n }\n }\n}\n","import { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'ax-loading-spinner',\n template: `\n <svg\n version=\"1.1\"\n width=\"24\"\n height=\"24\"\n style=\"fill: currentColor;\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlns:xlink=\"http://www.w3.org/1999/xlink\"\n x=\"0px\"\n y=\"0px\"\n viewBox=\"0 0 50 50\"\n xml:space=\"preserve\">\n <path\n fill=\"current\"\n d=\"M25.251,6.461c-10.318,0-18.683,8.365-18.683,18.683h4.068c0-8.071,6.543-14.615,14.615-14.615V6.461z\">\n <animateTransform\n attributeType=\"xml\"\n attributeName=\"transform\"\n type=\"rotate\"\n from=\"0 25 25\"\n to=\"360 25 25\"\n dur=\"0.6s\"\n repeatCount=\"indefinite\" />\n </path>\n </svg>\n <span *ngIf=\"text\"> {{ text }} </span>\n `,\n host: { class: 'ax-loading-spinner' },\n})\nexport class AXLoadingSpinnerComponent {\n text: string;\n}\n","import {\n ChangeDetectorRef,\n ComponentFactoryResolver,\n Directive,\n ElementRef,\n Input,\n OnChanges,\n Renderer2,\n SimpleChanges, ViewContainerRef\n } from '@angular/core';\nimport { AXLoadingComponent } from './loading.component';\n \n \n const OVERLAY_CLASS = 'ax-loading-overlay';\n \n // This directive places an overlay with a loading spinner over its host element\n // if isLoading equals to true and hides the overlay when isLoading becomes false.\n @Directive({\n selector: '[axIsLoading]'\n })\n export class AXLoadingDirective implements OnChanges {\n @Input('axIsLoading')\n isLoading = false;\n \n protected overlayElement!: HTMLDivElement;\n protected spinnerElement!: HTMLDivElement;\n protected hostElement!: HTMLDivElement;\n \n\n //TODO: ComponentFactoryResolver is deprecated\n constructor(\n protected readonly elementRef: ElementRef,\n protected readonly renderer: Renderer2,\n protected readonly changeDetectorRef: ChangeDetectorRef,\n protected readonly viewContainerRef: ViewContainerRef,\n protected readonly componentFactoryResolver: ComponentFactoryResolver,\n ) {\n this.hostElement = this.elementRef.nativeElement;\n this.hostElement.style.position = 'relative';\n }\n \n ngOnChanges(changes: SimpleChanges): void {\n if (!this.overlayElement || !this.spinnerElement) {\n this.init();\n }\n \n if (changes.isLoading) {\n const isLoadingValue = changes.isLoading.currentValue;\n \n if (isLoadingValue) {\n this.addLoadingIndicator();\n }\n else {\n this.removeLoadingIndicator();\n }\n \n this.changeDetectorRef.markForCheck();\n }\n }\n \n protected addLoadingIndicator(): void {\n this.renderer.appendChild(this.hostElement, this.overlayElement);\n this.renderer.appendChild(this.overlayElement, this.spinnerElement);\n }\n \n protected removeLoadingIndicator(): void {\n this.renderer.removeChild(this.overlayElement, this.spinnerElement);\n this.renderer.removeChild(this.hostElement, this.overlayElement);\n this.viewContainerRef.clear();\n }\n \n protected init(): void {\n this.initOverlayElement();\n this.initSpinnerComponent();\n }\n \n protected initSpinnerComponent(): void {\n const spinnerComponentFactory = this.componentFactoryResolver.resolveComponentFactory(AXLoadingComponent);\n const spinnerComponent = this.viewContainerRef.createComponent(spinnerComponentFactory);\n this.spinnerElement = spinnerComponent.location.nativeElement;\n }\n \n protected initOverlayElement(): void {\n this.overlayElement = this.renderer.createElement('div');\n this.renderer.addClass(this.overlayElement, OVERLAY_CLASS);\n }\n }\n ","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { AXConfig } from '@acorex/core/config';\nimport { AXLoadingComponent } from './loading.component';\nimport { AXLoadingDirective } from './loading.directive';\nimport { AXLoadingSpinnerComponent } from './loading-spinner.component';\n\nconst COMPONENT = [AXLoadingComponent, AXLoadingDirective, AXLoadingSpinnerComponent];\nconst MODULES = [CommonModule, OverlayModule, PortalModule];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXLoadingModule {\n\n\n constructor() {\n AXConfig.set({\n layout: {\n loading: {\n spinner: AXLoadingSpinnerComponent,\n }\n }\n })\n\n }\n}\n","import { Injectable, NgZone } from '@angular/core';\nimport { asyncScheduler, BehaviorSubject, Observable } from 'rxjs';\nimport { finalize, observeOn } from 'rxjs/operators';\nimport { AXOverlayService, AXOverlayViewRef } from '@acorex/components/common';\nimport { AXLoadingComponent } from './loading.component';\n\ntype LoadingContext = object;\ntype LoaderId = string | number; // expected enum values\nconst DEFAULT_LOADER_ID: LoaderId = '_DEFAULT';\n\n/**\n * Used for centrally setting/unsetting loading flags for components or services.\n * Should be connected to global HTTP interceptor which will unset\n * the loading flags in case an error happens using the clearLoadings() method.\n *\n * FAQ:\n * Q: How to change loading flag for a parent component?\n * A: Inject the parent component as a dependency to your constructor and\n * call loadingService.setLoading(parentComponent, STATE).\n *\n * Q: How to change loading flag for a child component?\n * A: Use a @ViewChild with component selector and pass the\n * reference of the child to setLoading method.\n *\n * Q: I need more loading indicators in my components. How to?\n * A: Assign a LoaderId to each indicator and then use them\n * with calls to methods of this service.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class AXLoadingService {\n // WeakMap will remove components from itself upon\n // their garbage collection by JS runtime.\n protected loadingStates: any = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n // Both loading state maps are kept in-sync such that\n // they can be used by both sync and async methods.\n protected loadingStates$: any = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n\n constructor(protected zoneRef: NgZone, private overlayService: AXOverlayService) {}\n\n private _stack: { id: number; component: AXOverlayViewRef }[] = [];\n\n show(options?: { location?: Element; type?: string; context?: any }): number {\n let host: Element | any;\n if (options?.location) {\n host = options.location.closest('.ax-loading-host');\n }\n const containerElement = (host || options.location) as HTMLDivElement;\n const com = this.overlayService.show(\n AXLoadingComponent,\n { options: options.context },\n {\n closeOnClickOutside: false,\n containerElement,\n hasBackdrop: true,\n backdropClass: ['ax-loading-overlay'],\n scroll: 'block',\n }\n );\n com.instance.visible = true;\n const id = new Date().getTime();\n this._stack.push({ id, component: com });\n return id;\n }\n\n hide(id): void {\n const f = this._stack.find(c => c.id === id);\n if (f) {\n f.component.dispose();\n this._stack = this._stack.filter(c => c.id !== id);\n }\n }\n\n // Observable creation operator.\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\n // Context can be any object, though in practice, components and services will be the most common contexts.\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\n // Such a scenario is used when your context has contains only one loading indicator.\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId))\n );\n }\n\n // To be used in your html templates.\n // Returns a boolean indicating whether a given loader is active in a given context.\n // If loaderId is unspecified, the method will return a logical disjunction of all\n // loader states in the context.\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter(state => state).length > 0;\n }\n }\n }\n\n // To be used in your html templates with async pipes.\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n // The startLoading and endLoading methods are intended to be used when handling\n // complex scenarios where a need for extended usage flexibility is desired.\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]));\n }\n } else {\n // @ts-ignore - loadingStates[context] is surely defined in this branch\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -4,14 +4,14 @@ import { Component, ChangeDetectionStrategy, ViewEncapsulation, ContentChild, Ng
4
4
  import { AXBaseMenuMixin } from '@acorex/components/mixin';
5
5
  import * as i2 from '@acorex/core/platform';
6
6
  import { AXPlatform } from '@acorex/core/platform';
7
+ import * as i5 from '@acorex/core/translation';
8
+ import { AXTranslator, AXTranslationModule } from '@acorex/core/translation';
7
9
  import * as i1 from '@angular/cdk/overlay';
8
10
  import { OverlayModule } from '@angular/cdk/overlay';
9
11
  import * as i3 from '@angular/common';
10
12
  import { CommonModule } from '@angular/common';
11
13
  import * as i4 from '@acorex/components/loading';
12
14
  import { AXLoadingModule } from '@acorex/components/loading';
13
- import * as i5 from '@acorex/core/translation';
14
- import { AXTranslationModule } from '@acorex/core/translation';
15
15
  import { AXDecoratorModule } from '@acorex/components/decorators';
16
16
 
17
17
  /**
@@ -36,6 +36,9 @@ class AXMenuComponent extends AXBaseMenuMixin {
36
36
  rtl = new AXPlatform().isRtl();
37
37
  _levelCount = 0;
38
38
  _oldItem;
39
+ _loadingOptions = {
40
+ text: AXTranslator.get('layout.loading.text'),
41
+ };
39
42
  constructor(_elementRef, cdr, _overlay, _platform) {
40
43
  super(_elementRef, cdr);
41
44
  this._elementRef = _elementRef;
@@ -319,29 +322,11 @@ class AXMenuComponent extends AXBaseMenuMixin {
319
322
  this._overlayRef?.detach();
320
323
  }
321
324
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXMenuComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i1.Overlay }, { token: i2.AXPlatform }], target: i0.ɵɵFactoryTarget.Component });
322
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", active: "active", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "text"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
325
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.0.4", type: AXMenuComponent, selector: "ax-menu", inputs: { disabled: "disabled", tabIndex: "tabIndex", textField: "textField", valueField: "valueField", items: "items", parentId: "parentId", iconField: "iconField", tooltip: "tooltip", opened: "opened", active: "active", visibleField: "visibleField", disableField: "disableField", hasChildField: "hasChildField", dividerField: "dividerField", openMode: "openMode", displayMode: "displayMode", showModal: "showModal" }, outputs: { onBlur: "onBlur", onFocus: "onFocus", onMenuItemClick: "onMenuItemClick" }, queries: [{ propertyName: "_contentEmptyTemplate", first: true, predicate: ["emptyTemplate"], descendants: true }, { propertyName: "_contentItemTemplate", first: true, predicate: ["itemTemplate"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.AXLoadingComponent, selector: "ax-loading", inputs: ["visible", "type", "options"], outputs: ["visibleChange"] }, { kind: "pipe", type: i5.AXTranslatorPipe, name: "trans" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
323
326
  }
324
327
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.4", ngImport: i0, type: AXMenuComponent, decorators: [{
325
328
  type: Component,
326
- args: [{ selector: 'ax-menu', inputs: [
327
- 'disabled',
328
- 'tabIndex',
329
- 'textField',
330
- 'valueField',
331
- 'items',
332
- 'parentId',
333
- 'iconField',
334
- 'tooltip',
335
- 'opened',
336
- 'active',
337
- 'visibleField',
338
- 'disableField',
339
- 'hasChildField',
340
- 'dividerField',
341
- 'openMode',
342
- 'displayMode',
343
- 'showModal',
344
- ], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"] }]
329
+ args: [{ selector: 'ax-menu', inputs: ['disabled', 'tabIndex', 'textField', 'valueField', 'items', 'parentId', 'iconField', 'tooltip', 'opened', 'active', 'visibleField', 'disableField', 'hasChildField', 'dividerField', 'openMode', 'displayMode', 'showModal'], outputs: ['onBlur', 'onFocus', 'onMenuItemClick'], changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: "<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n", styles: ["ax-menu{font-size:.875rem;display:block}ax-menu ul{width:-moz-fit-content;width:fit-content;display:flex;flex-direction:column}ax-menu ul li.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item{display:flex}ax-menu ul li .ax-menu-item.ax-state-active{color:rgba(var(--ax-color-primary-500))}ax-menu ul li .ax-menu-item .ax-menu-item-prefix,ax-menu ul li .ax-menu-item .ax-menu-item-suffix{display:flex;align-items:center;justify-content:center}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon-chevron,ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon-chevron{transform:rotate(-90deg)}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon:not(:empty),ax-menu ul li .ax-menu-item .ax-menu-item-suffix .ax-menu-item-icon:not(:empty){min-width:1.25rem;min-height:1.25rem}ax-menu ul li .ax-menu-item .ax-menu-item-prefix .ax-menu-item-icon{padding-inline-end:.5rem}ax-menu ul li .ax-menu-item .ax-menu-item-icon{font-size:1.25rem}ax-menu ul li.ax-state-disabled{cursor:not-allowed!important;opacity:.5}ax-menu ul li.ax-state-active .ax-menu-item-icon-chevron{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}ax-menu .ax-horizontal>li,ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-horizontal{flex-direction:row;align-items:center}ax-menu .ax-horizontal .ax-menu-item-divider{width:1px;height:1rem;background-color:rgba(var(--ax-color-on-surface))}ax-menu .ax-horizontal li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-horizontal li:not(.ax-menu-item-divider){padding:.5rem;cursor:pointer}ax-menu .ax-vertical{flex-direction:column;width:100%}ax-menu .ax-vertical>li{font-weight:500}ax-menu .ax-vertical .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-vertical li.ax-state-active .ax-menu-item-icon-chevron{transform:rotate(0)!important}ax-menu .ax-vertical li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul{background-color:rgba(var(--ax-color-surface));border:1px solid;border-color:rgba(var(--ax-color-border-default));border-radius:var(--ax-rounded-border-default);padding:.5rem;box-shadow:0 10px 15px -3px #0000001a,0 4px 6px -2px #0000000d}ax-menu .ax-vertical.ax-submenu-ul li{border-radius:var(--ax-rounded-border-default);cursor:pointer}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-menu-item-divider){padding:.5rem}ax-menu .ax-vertical.ax-submenu-ul li:not(.ax-state-disabled,.ax-menu-item-divider):hover{background-color:rgba(var(--ax-color-on-surface));color:rgba(var(--ax-color-on-surface-fore))}ax-menu .ax-side-menu{width:100%;flex-direction:column;gap:.5rem;-webkit-user-select:none;user-select:none;-webkit-tap-highlight-color:transparent}ax-menu .ax-side-menu .ax-menu-item-divider{width:100%;height:1px;background-color:rgba(var(--ax-color-on-surface));margin:.375rem 0}ax-menu .ax-side-menu ul{display:flex;flex-direction:column;margin-top:.5rem;width:100%;padding:0 .5rem}ax-menu .ax-side-menu li .ax-menu-item-icon-chevron.ax-menu-active-icon{transform:rotate(180deg)!important}ax-menu .ax-side-menu li .ax-menu-item{justify-content:space-between}ax-menu .ax-side-menu li .ax-menu-item.ax-is-parent{font-weight:500}ax-menu .ax-side-menu li:not(.ax-menu-item-divider){padding:.5rem 0;cursor:pointer}\n"] }]
345
330
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i1.Overlay }, { type: i2.AXPlatform }]; }, propDecorators: { _contentEmptyTemplate: [{
346
331
  type: ContentChild,
347
332
  args: ['emptyTemplate']
@@ -1 +1 @@
1
- {"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../projects/acorex/components/menu/src/menu.component.ts","../../../../projects/acorex/components/menu/src/menu.component.html","../../../../projects/acorex/components/menu/src/menu.module.ts","../../../../projects/acorex/components/menu/acorex-components-menu.ts"],"sourcesContent":["import { OverlayRef, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n ContentChild,\n TemplateRef,\n ElementRef,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { AXBaseMenuMixin } from '@acorex/components/mixin';\nimport { AXPlatform } from '@acorex/core/platform';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n inputs: [\n 'disabled',\n 'tabIndex',\n 'textField',\n 'valueField',\n 'items',\n 'parentId',\n 'iconField',\n 'tooltip',\n 'opened',\n 'active',\n 'visibleField',\n 'disableField',\n 'hasChildField',\n 'dividerField',\n 'openMode',\n 'displayMode',\n 'showModal',\n ],\n outputs: ['onBlur', 'onFocus', 'onMenuItemClick'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMenuComponent extends AXBaseMenuMixin implements OnInit {\n @ContentChild('emptyTemplate')\n private _contentEmptyTemplate: TemplateRef<any>;\n\n @ContentChild('itemTemplate')\n private _contentItemTemplate: TemplateRef<any>;\n\n public _overlayRef: OverlayRef;\n\n get emptyTemplate(): TemplateRef<any> {\n return this._contentEmptyTemplate;\n }\n\n get itemTemplate(): TemplateRef<any> {\n return this._contentItemTemplate;\n }\n\n rtl: boolean = new AXPlatform().isRtl();\n\n private _levelCount: number = 0;\n\n private _oldItem: any;\n\n constructor(private _elementRef: ElementRef, private cdr: ChangeDetectorRef, private _overlay: Overlay, private _platform: AXPlatform) {\n super(_elementRef, cdr);\n }\n\n onInit(): void {\n super.onInit();\n }\n\n ngAfterViewInit(): void {\n super.onViewInit();\n }\n\n _onMenuMouseEnter(e: MouseEvent, item: any): void {\n const targetElement = e.target as HTMLDivElement;\n\n if (this.isLoading || targetElement.tagName === 'UL') {\n return;\n }\n\n if (this.openMode === 'hover') {\n this._handelMenuLogic(e, item);\n }\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n _onMenuClick(e: MouseEvent, item: any): void {\n const targetElement = e.target as HTMLDivElement;\n\n if (this.isLoading || targetElement.tagName === 'UL') {\n return;\n }\n\n if (this.openMode === 'click') {\n this._handelMenuLogic(e, item);\n }\n\n this.onMenuItemClick.emit({\n component: this,\n item: item,\n nativeEvent: e,\n });\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n _getDirection(): string {\n if (this.displayMode === 'horizontal' && this._levelCount === 0) {\n return 'ax-horizontal';\n } else if (this._levelCount > 0) {\n return 'ax-vertical ax-submenu-ul';\n } else if (this.displayMode === 'sidemenu') {\n return 'ax-side-menu';\n } else {\n return 'ax-vertical';\n }\n }\n\n private _removeActive(items: any): void {\n items.forEach(element => {\n element.active = false;\n if (element?.children?.length > 0) {\n this._removeActive(element.children);\n }\n });\n }\n\n private _closeOpenChild(items: any): void {\n items.forEach(element => {\n element.opened = false;\n if (element?.children?.length > 0) {\n this._closeOpenChild(element.children);\n }\n });\n }\n\n private _initParent(items: any, parentId: any): void {\n items.forEach(element => {\n element.parentId = parentId;\n });\n }\n\n private _handelMenuLogic(e: MouseEvent, item: any): void {\n if (!item[this.disableField] || item[this.dividerField] === false) {\n const targetElement = e.target as HTMLDivElement;\n if ((targetElement.closest('li') && this.openMode === 'click') || (targetElement.closest('li') && this.openMode === 'hover')) {\n if (this._overlayRef && this._oldItem !== item) {\n this._overlayRef.detach();\n }\n if (this.displayMode === 'horizontal') {\n this.displayItems.forEach(element => {\n if (!item.parentId && item[this.valueField] !== element[this.valueField]) {\n element.opened = false;\n }\n });\n }\n if (item?.children?.length > 0) {\n if (this.displayMode === 'horizontal') {\n this._initParent(item.children, item[this.valueField]);\n }\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n if (this._oldItem !== item) {\n this._openAsOverlay(targetElement.closest('li'), item.children);\n }\n }\n this._closeOpenChild(item.children);\n\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n item.opened = true;\n } else {\n item.opened = !item.opened;\n }\n }\n\n this._removeActive(this.displayItems);\n\n if (e.type !== 'mouseenter') item.active = !item.active;\n\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n if (this._oldItem && this._oldItem?.opened && item[this.valueField] !== this._oldItem[this.valueField]) {\n this._oldItem.opened = false;\n }\n this._oldItem = item;\n }\n }\n }\n }\n\n private _openAsOverlay(targetRef, overlayItems: any[]): void {\n let positions = [];\n if (this.displayMode === 'vertical') {\n if (this._levelCount >= 1) {\n positions = [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'center',\n overlayX: 'center',\n overlayY: 'center',\n },\n ];\n } else {\n positions = [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'center',\n overlayX: 'center',\n overlayY: 'center',\n },\n ];\n }\n } else {\n if (this._levelCount >= 1) {\n positions = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n ];\n } else {\n positions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n ];\n }\n }\n\n this._overlayRef = this._overlay.create({\n scrollStrategy: this._overlay.scrollStrategies.close(),\n positionStrategy: this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions([...positions])\n .withPush(false)\n .withDefaultOffsetX(12),\n\n direction: this._platform.isRtl() ? 'rtl' : 'ltr',\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', 'ax-overlay-menu'],\n maxHeight: 'unset',\n hasBackdrop: false,\n backdropClass: ['cdk-overlay-transparent-backdrop'],\n });\n\n const ref = this._overlayRef.attach(new ComponentPortal(AXMenuComponent));\n\n ref.instance.items = overlayItems;\n\n ref.instance.displayMode = this.displayMode;\n\n ref.instance.openMode = 'hover';\n\n ref.instance._levelCount = this._levelCount + 1;\n\n ref.instance.disableField = this.disableField;\n\n ref.instance.visibleField = this.visibleField;\n\n ref.instance.valueField = this.valueField;\n\n ref.instance.textField = this.textField;\n\n ref.instance.iconField = this.iconField;\n\n ref.instance.dividerField = this.dividerField;\n\n ref.onDestroy(() => {\n ref.instance?._overlayRef?.dispose();\n });\n\n this._overlayRef.outsidePointerEvents().subscribe(e => {\n if (this._overlayRef && this.openMode === 'click') {\n this._close();\n e.stopPropagation();\n }\n });\n\n this._platform.scroll.subscribe(() => {\n if (this._overlayRef) {\n this._close();\n }\n });\n\n this._platform.resize.subscribe(() => {\n if (this._overlayRef) {\n this._close();\n }\n });\n }\n\n private _close() {\n this._overlayRef.detach();\n this._oldItem = null;\n this.displayItems.forEach(element => {\n element.opened = false;\n element.active = false;\n });\n this.cdr.detectChanges();\n }\n\n onDestroy(): void {\n this._overlayRef?.detach();\n }\n}\n","<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading text=\"{{ 'layout.loading.text' | trans }}\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXMenuComponent } from './menu.component';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nconst COMPONENT = [AXMenuComponent];\nconst MODULES = [\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n OverlayModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule {}\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-menu.mjs","sources":["../../../../projects/acorex/components/menu/src/menu.component.ts","../../../../projects/acorex/components/menu/src/menu.component.html","../../../../projects/acorex/components/menu/src/menu.module.ts","../../../../projects/acorex/components/menu/acorex-components-menu.ts"],"sourcesContent":["import { OverlayRef, Overlay } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\n\nimport { Component, ChangeDetectionStrategy, ViewEncapsulation, OnInit, ContentChild, TemplateRef, ElementRef, ChangeDetectorRef } from '@angular/core';\nimport { AXBaseMenuMixin } from '@acorex/components/mixin';\nimport { AXPlatform } from '@acorex/core/platform';\nimport { AXTranslator } from '@acorex/core/translation';\n\n/**\n * The Button is a component which detects user interaction and triggers a corresponding event\n *\n * @category Components\n */\n@Component({\n selector: 'ax-menu',\n templateUrl: './menu.component.html',\n styleUrls: ['./menu.component.scss'],\n inputs: ['disabled', 'tabIndex', 'textField', 'valueField', 'items', 'parentId', 'iconField', 'tooltip', 'opened', 'active', 'visibleField', 'disableField', 'hasChildField', 'dividerField', 'openMode', 'displayMode', 'showModal'],\n outputs: ['onBlur', 'onFocus', 'onMenuItemClick'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class AXMenuComponent extends AXBaseMenuMixin implements OnInit {\n @ContentChild('emptyTemplate')\n private _contentEmptyTemplate: TemplateRef<any>;\n\n @ContentChild('itemTemplate')\n private _contentItemTemplate: TemplateRef<any>;\n\n public _overlayRef: OverlayRef;\n\n get emptyTemplate(): TemplateRef<any> {\n return this._contentEmptyTemplate;\n }\n\n get itemTemplate(): TemplateRef<any> {\n return this._contentItemTemplate;\n }\n\n rtl: boolean = new AXPlatform().isRtl();\n\n private _levelCount: number = 0;\n\n private _oldItem: any;\n\n protected _loadingOptions = {\n text: AXTranslator.get('layout.loading.text'),\n };\n\n constructor(private _elementRef: ElementRef, private cdr: ChangeDetectorRef, private _overlay: Overlay, private _platform: AXPlatform) {\n super(_elementRef, cdr);\n }\n\n onInit(): void {\n super.onInit();\n }\n\n ngAfterViewInit(): void {\n super.onViewInit();\n }\n\n _onMenuMouseEnter(e: MouseEvent, item: any): void {\n const targetElement = e.target as HTMLDivElement;\n\n if (this.isLoading || targetElement.tagName === 'UL') {\n return;\n }\n\n if (this.openMode === 'hover') {\n this._handelMenuLogic(e, item);\n }\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n _onMenuClick(e: MouseEvent, item: any): void {\n const targetElement = e.target as HTMLDivElement;\n\n if (this.isLoading || targetElement.tagName === 'UL') {\n return;\n }\n\n if (this.openMode === 'click') {\n this._handelMenuLogic(e, item);\n }\n\n this.onMenuItemClick.emit({\n component: this,\n item: item,\n nativeEvent: e,\n });\n\n e.stopPropagation();\n e.preventDefault();\n }\n\n _getDirection(): string {\n if (this.displayMode === 'horizontal' && this._levelCount === 0) {\n return 'ax-horizontal';\n } else if (this._levelCount > 0) {\n return 'ax-vertical ax-submenu-ul';\n } else if (this.displayMode === 'sidemenu') {\n return 'ax-side-menu';\n } else {\n return 'ax-vertical';\n }\n }\n\n private _removeActive(items: any): void {\n items.forEach(element => {\n element.active = false;\n if (element?.children?.length > 0) {\n this._removeActive(element.children);\n }\n });\n }\n\n private _closeOpenChild(items: any): void {\n items.forEach(element => {\n element.opened = false;\n if (element?.children?.length > 0) {\n this._closeOpenChild(element.children);\n }\n });\n }\n\n private _initParent(items: any, parentId: any): void {\n items.forEach(element => {\n element.parentId = parentId;\n });\n }\n\n private _handelMenuLogic(e: MouseEvent, item: any): void {\n if (!item[this.disableField] || item[this.dividerField] === false) {\n const targetElement = e.target as HTMLDivElement;\n if ((targetElement.closest('li') && this.openMode === 'click') || (targetElement.closest('li') && this.openMode === 'hover')) {\n if (this._overlayRef && this._oldItem !== item) {\n this._overlayRef.detach();\n }\n if (this.displayMode === 'horizontal') {\n this.displayItems.forEach(element => {\n if (!item.parentId && item[this.valueField] !== element[this.valueField]) {\n element.opened = false;\n }\n });\n }\n if (item?.children?.length > 0) {\n if (this.displayMode === 'horizontal') {\n this._initParent(item.children, item[this.valueField]);\n }\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n if (this._oldItem !== item) {\n this._openAsOverlay(targetElement.closest('li'), item.children);\n }\n }\n this._closeOpenChild(item.children);\n\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n item.opened = true;\n } else {\n item.opened = !item.opened;\n }\n }\n\n this._removeActive(this.displayItems);\n\n if (e.type !== 'mouseenter') item.active = !item.active;\n\n if (this.displayMode === 'horizontal' || this.displayMode === 'vertical') {\n if (this._oldItem && this._oldItem?.opened && item[this.valueField] !== this._oldItem[this.valueField]) {\n this._oldItem.opened = false;\n }\n this._oldItem = item;\n }\n }\n }\n }\n\n private _openAsOverlay(targetRef, overlayItems: any[]): void {\n let positions = [];\n if (this.displayMode === 'vertical') {\n if (this._levelCount >= 1) {\n positions = [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'center',\n overlayX: 'center',\n overlayY: 'center',\n },\n ];\n } else {\n positions = [\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'center',\n originY: 'center',\n overlayX: 'center',\n overlayY: 'center',\n },\n ];\n }\n } else {\n if (this._levelCount >= 1) {\n positions = [\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n ];\n } else {\n positions = [\n {\n originX: 'start',\n originY: 'bottom',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'center',\n overlayX: 'start',\n overlayY: 'bottom',\n },\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n {\n originX: 'center',\n originY: 'top',\n overlayX: 'center',\n overlayY: 'top',\n },\n ];\n }\n }\n\n this._overlayRef = this._overlay.create({\n scrollStrategy: this._overlay.scrollStrategies.close(),\n positionStrategy: this._overlay\n .position()\n .flexibleConnectedTo(targetRef)\n .withPositions([...positions])\n .withPush(false)\n .withDefaultOffsetX(12),\n\n direction: this._platform.isRtl() ? 'rtl' : 'ltr',\n disposeOnNavigation: true,\n panelClass: ['ax-animate-fadeIn', 'ax-animate-faster', 'ax-overlay-menu'],\n maxHeight: 'unset',\n hasBackdrop: false,\n backdropClass: ['cdk-overlay-transparent-backdrop'],\n });\n\n const ref = this._overlayRef.attach(new ComponentPortal(AXMenuComponent));\n\n ref.instance.items = overlayItems;\n\n ref.instance.displayMode = this.displayMode;\n\n ref.instance.openMode = 'hover';\n\n ref.instance._levelCount = this._levelCount + 1;\n\n ref.instance.disableField = this.disableField;\n\n ref.instance.visibleField = this.visibleField;\n\n ref.instance.valueField = this.valueField;\n\n ref.instance.textField = this.textField;\n\n ref.instance.iconField = this.iconField;\n\n ref.instance.dividerField = this.dividerField;\n\n ref.onDestroy(() => {\n ref.instance?._overlayRef?.dispose();\n });\n\n this._overlayRef.outsidePointerEvents().subscribe(e => {\n if (this._overlayRef && this.openMode === 'click') {\n this._close();\n e.stopPropagation();\n }\n });\n\n this._platform.scroll.subscribe(() => {\n if (this._overlayRef) {\n this._close();\n }\n });\n\n this._platform.resize.subscribe(() => {\n if (this._overlayRef) {\n this._close();\n }\n });\n }\n\n private _close() {\n this._overlayRef.detach();\n this._oldItem = null;\n this.displayItems.forEach(element => {\n element.opened = false;\n element.active = false;\n });\n this.cdr.detectChanges();\n }\n\n onDestroy(): void {\n this._overlayRef?.detach();\n }\n}\n","<ng-container *ngIf=\"displayItems.length; else tmpEmpty\">\n <ul [ngClass]=\"_getDirection()\" [class.ax-rtl]=\"rtl\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: displayItems, isRoot: true }\"></ng-container>\n </ul>\n <ng-template #recursiveListTmpl let-list=\"list\" let-isRoot=\"isRoot\">\n <ng-container *ngFor=\"let item of list\">\n <li *ngIf=\"item[visibleField] != false\" [class.ax-state-disabled]=\"item[disableField]\" (click)=\"_onMenuClick($event, item)\" (mouseenter)=\"_onMenuMouseEnter($event, item)\">\n <div\n class=\"ax-menu-item\"\n [ngClass]=\"{\n 'ax-is-parent': item?.children?.length,\n 'ax-is-child': !isRoot,\n 'ax-state-active ': item.active\n }\"\n *ngIf=\"itemTemplate == null; else tmpItem\">\n <div class=\"ax-menu-item-prefix\">\n <span class=\"ax-menu-item-icon\" *ngIf=\"item[iconField]\" [class]=\"item[iconField]\"></span>\n <span>{{ _getItemDisplayTextTemplte(item) }}</span>\n </div>\n <div class=\"ax-menu-item-suffix\">\n <span\n class=\"ax-menu-item-icon ax-icon ax-menu-item-icon-chevron\"\n [ngClass]=\"{\n 'ax-icon-chevron-down': item?.children?.length > 0,\n 'ax-menu-active-icon': item.opened\n }\"\n *ngIf=\"!item.isLoading\"></span>\n <ax-loading *ngIf=\"item.isLoading\"> </ax-loading>\n </div>\n </div>\n <!--------------- check for custom item template --------------->\n <ng-template #tmpItem>\n <ng-container *ngIf=\"!isLoading\">\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { $implicit: item }\"> </ng-container>\n </ng-container>\n </ng-template>\n <ul *ngIf=\"item?.children?.length > 0 && item.opened && !_overlayRef\" [class.ax-state-disabled]=\"item[disableField]\">\n <ng-container *ngTemplateOutlet=\"recursiveListTmpl; context: { list: item.children }\"> </ng-container>\n </ul>\n </li>\n <li class=\"ax-menu-item-divider\" *ngIf=\"item[this.dividerField]\"></li>\n </ng-container>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"isLoading\">\n <ng-template>\n <div class=\"ax-flex ax-items-center ax-justify-center ax-p-4\">\n <ax-loading [options]=\"_loadingOptions\"></ax-loading>\n </div>\n </ng-template>\n</ng-container>\n\n<ng-template #tmpEmpty>\n <ng-container *ngIf=\"!isLoading\">\n <!--------------- check for custom template --------------->\n <ng-container *ngIf=\"emptyTemplate; else elseEmptyTemplate\">\n <ng-container *ngTemplateOutlet=\"emptyTemplate\"> </ng-container>\n </ng-container>\n <ng-template #elseEmptyTemplate>\n {{ 'common.no-result-found' | trans }}\n </ng-template>\n </ng-container>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { AXMenuComponent } from './menu.component';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { AXDecoratorModule } from '@acorex/components/decorators';\nimport { OverlayModule } from '@angular/cdk/overlay';\n\nconst COMPONENT = [AXMenuComponent];\nconst MODULES = [\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n OverlayModule,\n];\n\n@NgModule({\n declarations: [...COMPONENT],\n imports: [CommonModule, ...MODULES],\n exports: [...COMPONENT],\n providers: [],\n})\nexport class AXMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}