@acorex/components 7.1.31 → 7.1.33
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.
- package/esm2022/loading/src/loading.component.mjs +10 -22
- package/esm2022/loading/src/loading.service.mjs +14 -19
- package/esm2022/menu/src/menu.component.mjs +8 -22
- package/esm2022/picker/src/picker-column.component.mjs +2 -2
- package/esm2022/picker/src/picker.component.mjs +2 -2
- package/esm2022/popover/src/popover.component.mjs +1 -2
- package/esm2022/select-box/src/selectbox.component.mjs +20 -44
- package/esm2022/switch/src/switch.component.mjs +1 -1
- package/fesm2022/acorex-components-loading.mjs +20 -37
- package/fesm2022/acorex-components-loading.mjs.map +1 -1
- package/fesm2022/acorex-components-menu.mjs +7 -22
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/fesm2022/acorex-components-picker.mjs +4 -4
- package/fesm2022/acorex-components-picker.mjs.map +1 -1
- package/fesm2022/acorex-components-popover.mjs +0 -1
- package/fesm2022/acorex-components-popover.mjs.map +1 -1
- package/fesm2022/acorex-components-select-box.mjs +17 -41
- package/fesm2022/acorex-components-select-box.mjs.map +1 -1
- package/fesm2022/acorex-components-switch.mjs +1 -1
- package/fesm2022/acorex-components-switch.mjs.map +1 -1
- package/loading/src/loading.component.d.ts +2 -2
- package/loading/src/loading.service.d.ts +5 -1
- package/menu/src/menu.component.d.ts +3 -0
- package/package.json +1 -1
- package/select-box/src/selectbox.component.d.ts +3 -0
@@ -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", "
|
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
|
-
|
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
|
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",
|
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
|
-
}],
|
59
|
+
}], options: [{
|
72
60
|
type: Input
|
73
61
|
}] } });
|
74
62
|
|
@@ -270,13 +258,14 @@ class AXLoadingService {
|
|
270
258
|
this.overlayService = overlayService;
|
271
259
|
}
|
272
260
|
_stack = [];
|
273
|
-
show(
|
261
|
+
show(options) {
|
262
|
+
debugger;
|
274
263
|
let host;
|
275
|
-
if (location) {
|
276
|
-
host = location.closest('.ax-loading-host');
|
264
|
+
if (options?.location) {
|
265
|
+
host = options.location.closest('.ax-loading-host');
|
277
266
|
}
|
278
|
-
const containerElement = (host ||
|
279
|
-
const com = this.overlayService.show(AXLoadingComponent, {}, {
|
267
|
+
const containerElement = (host || document.body);
|
268
|
+
const com = this.overlayService.show(AXLoadingComponent, { options: options.context }, {
|
280
269
|
closeOnClickOutside: false,
|
281
270
|
containerElement,
|
282
271
|
hasBackdrop: true,
|
@@ -289,10 +278,10 @@ class AXLoadingService {
|
|
289
278
|
return id;
|
290
279
|
}
|
291
280
|
hide(id) {
|
292
|
-
const f = this._stack.find(
|
281
|
+
const f = this._stack.find(c => c.id === id);
|
293
282
|
if (f) {
|
294
283
|
f.component.dispose();
|
295
|
-
this._stack = this._stack.filter(
|
284
|
+
this._stack = this._stack.filter(c => c.id !== id);
|
296
285
|
}
|
297
286
|
}
|
298
287
|
// Observable creation operator.
|
@@ -318,7 +307,7 @@ class AXLoadingService {
|
|
318
307
|
return loaderStates.get(this.getLoaderId(loaderId)) ?? false;
|
319
308
|
}
|
320
309
|
else {
|
321
|
-
return [...loaderStates.values()].filter(
|
310
|
+
return [...loaderStates.values()].filter(state => state).length > 0;
|
322
311
|
}
|
323
312
|
}
|
324
313
|
}
|
@@ -348,15 +337,11 @@ class AXLoadingService {
|
|
348
337
|
if (!this.hasLoadingStates(context, loaderId)) {
|
349
338
|
if (this.hasContextLoadingState(context)) {
|
350
339
|
this.loadingStates.get(context).set(loaderId, state);
|
351
|
-
this.loadingStates
|
352
|
-
.get(context)
|
353
|
-
.set(loaderId, new BehaviorSubject(state));
|
340
|
+
this.loadingStates$.get(context).set(loaderId, new BehaviorSubject(state));
|
354
341
|
}
|
355
342
|
else {
|
356
343
|
this.loadingStates.set(context, new Map([[loaderId, state]]));
|
357
|
-
this.loadingStates$.set(context, new Map([
|
358
|
-
[loaderId, new BehaviorSubject(state)],
|
359
|
-
]));
|
344
|
+
this.loadingStates$.set(context, new Map([[loaderId, new BehaviorSubject(state)]]));
|
360
345
|
}
|
361
346
|
}
|
362
347
|
else {
|
@@ -366,15 +351,13 @@ class AXLoadingService {
|
|
366
351
|
}
|
367
352
|
}
|
368
353
|
hasLoadingStates(context, loaderId) {
|
369
|
-
return
|
370
|
-
this.hasLoaderLoadingState(context, loaderId));
|
354
|
+
return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);
|
371
355
|
}
|
372
356
|
hasContextLoadingState(context) {
|
373
357
|
return this.loadingStates.has(context) && this.loadingStates$.has(context);
|
374
358
|
}
|
375
359
|
hasLoaderLoadingState(context, loaderId) {
|
376
|
-
return
|
377
|
-
this.loadingStates$.get(context).has(loaderId));
|
360
|
+
return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);
|
378
361
|
}
|
379
362
|
getLoaderId(loaderId) {
|
380
363
|
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 debugger;\n let host: Element | any;\n if (options?.location) {\n host = options.location.closest('.ax-loading-host');\n }\n const containerElement = (host || document.body) as HTMLDivElement;\n const com = this.overlayService.show(\n AXLoadingComponent,\n { options: options.context },\n {\n closeOnClickOutside: false,\n containerElement,\n hasBackdrop: true,\n backdropClass: ['ax-loading-overlay'],\n scroll: 'block',\n }\n );\n com.instance.visible = true;\n const id = new Date().getTime();\n this._stack.push({ id, component: com });\n return id;\n }\n\n hide(id): void {\n const f = this._stack.find(c => c.id === id);\n if (f) {\n f.component.dispose();\n this._stack = this._stack.filter(c => c.id !== id);\n }\n }\n\n // Observable creation operator.\n // LoaderId can be used when there are multiple loading indicators associated to a single context.\n // Context can be any object, though in practice, components and services will be the most common contexts.\n // loaderId is a non-mandatory parameter - when not specified, a default loaderId is used.\n // Such a scenario is used when your context has contains only one loading indicator.\n doLoading<V>(source$: Observable<V>, context: LoadingContext, loaderId?: LoaderId): Observable<V> {\n this.startLoading(context, loaderId);\n\n return source$.pipe(\n observeOn(asyncScheduler),\n finalize(() => this.endLoading(context, loaderId))\n );\n }\n\n // To be used in your html templates.\n // Returns a boolean indicating whether a given loader is active in a given context.\n // If loaderId is unspecified, the method will return a logical disjunction of all\n // loader states in the context.\n isLoading(context: LoadingContext, loaderId?: LoaderId): boolean {\n const loaderStates = this.loadingStates.get(context);\n\n if (!loaderStates) {\n return false;\n } else {\n if (loaderId !== undefined) {\n return loaderStates.get(this.getLoaderId(loaderId)) ?? false;\n } else {\n return [...loaderStates.values()].filter(state => state).length > 0;\n }\n }\n }\n\n // To be used in your html templates with async pipes.\n // Returns an Observable of booleans indicating whether a given loader is active in a given context.\n isLoading$(context: LoadingContext, loaderId?: LoaderId | any): Observable<boolean> {\n const coalescedLoaderId = this.getLoaderId(loaderId);\n\n if (!this.hasLoadingStates(context, coalescedLoaderId)) {\n this.setLoadingState(context, false, loaderId);\n }\n\n return this.loadingStates$.get(context).get(coalescedLoaderId);\n }\n\n // The startLoading and endLoading methods are intended to be used when handling\n // complex scenarios where a need for extended usage flexibility is desired.\n startLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, true, this.getLoaderId(loaderId));\n }\n\n endLoading(context: LoadingContext, loaderId?: LoaderId): void {\n this.setLoadingState(context, false, this.getLoaderId(loaderId));\n }\n\n // To be called by middleware code (HTTP interceptors/routing listeners, etc.).\n clearLoadings(): void {\n this.loadingStates = new WeakMap<LoadingContext, Map<LoaderId, boolean>>();\n this.loadingStates$ = new WeakMap<LoadingContext, Map<LoaderId, BehaviorSubject<boolean>>>();\n }\n\n protected setLoadingState(context: LoadingContext, state: boolean, loaderId: LoaderId): void {\n if (!this.hasLoadingStates(context, loaderId)) {\n if (this.hasContextLoadingState(context)) {\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).set(loaderId, new BehaviorSubject<boolean>(state));\n } else {\n this.loadingStates.set(context, new Map<LoaderId, boolean>([[loaderId, state]]));\n this.loadingStates$.set(context, new Map<LoaderId, BehaviorSubject<boolean>>([[loaderId, new BehaviorSubject<boolean>(state)]]));\n }\n } else {\n // @ts-ignore - loadingStates[context] is surely defined in this branch\n this.loadingStates.get(context).set(loaderId, state);\n this.loadingStates$.get(context).get(loaderId).next(state);\n }\n }\n\n protected hasLoadingStates(context: LoadingContext, loaderId: LoaderId) {\n return this.hasContextLoadingState(context) && this.hasLoaderLoadingState(context, loaderId);\n }\n\n protected hasContextLoadingState(context: LoadingContext) {\n return this.loadingStates.has(context) && this.loadingStates$.has(context);\n }\n\n protected hasLoaderLoadingState(context: LoadingContext, loaderId: LoaderId) {\n return this.loadingStates.get(context).has(loaderId) && this.loadingStates$.get(context).has(loaderId);\n }\n\n protected getLoaderId(loaderId?: LoaderId): LoaderId {\n return loaderId ?? DEFAULT_LOADER_ID;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './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
|
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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"}
|