@acorex/components 17.0.2 → 17.0.4
Sign up to get free protection for your applications and to get access to all the features.
- package/esm2022/menu/index.mjs +3 -1
- package/esm2022/menu/lib/class/popover.class.mjs +2 -0
- package/esm2022/menu/lib/class/root-menu.class.mjs +6 -1
- package/esm2022/menu/lib/menu-item/menu-item.component.mjs +36 -58
- package/esm2022/menu/lib/menu.component.mjs +16 -13
- package/esm2022/menu/lib/menu.module.mjs +3 -13
- package/esm2022/menu/lib/menu.service.mjs +17 -0
- package/fesm2022/acorex-components-menu.mjs +70 -82
- package/fesm2022/acorex-components-menu.mjs.map +1 -1
- package/menu/index.d.ts +2 -0
- package/menu/lib/class/popover.class.d.ts +2 -0
- package/menu/lib/class/root-menu.class.d.ts +3 -3
- package/menu/lib/menu-item/menu-item.component.d.ts +12 -20
- package/menu/lib/menu.component.d.ts +4 -4
- package/menu/lib/menu.service.d.ts +8 -0
- package/package.json +1 -1
package/esm2022/menu/index.mjs
CHANGED
@@ -1,5 +1,7 @@
|
|
1
|
+
export * from './lib/class/popover.class';
|
1
2
|
export * from './lib/class/root-menu.class';
|
2
3
|
export * from './lib/menu-item/menu-item.component';
|
3
4
|
export * from './lib/menu.component';
|
4
5
|
export * from './lib/menu.module';
|
5
|
-
|
6
|
+
export * from './lib/menu.service';
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywyQkFBMkIsQ0FBQztBQUMxQyxjQUFjLDZCQUE2QixDQUFDO0FBQzVDLGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLG1CQUFtQixDQUFDO0FBQ2xDLGNBQWMsb0JBQW9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9jbGFzcy9wb3BvdmVyLmNsYXNzJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL2NsYXNzL3Jvb3QtbWVudS5jbGFzcyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51Lm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9tZW51LnNlcnZpY2UnO1xuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9wb3Zlci5jbGFzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvY2xhc3MvcG9wb3Zlci5jbGFzcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQVhQb3BvdmVyT3BlblRyaWdnZXIgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvcG9wb3Zlcic7XG5cbmV4cG9ydCB0eXBlIEFYTWVudVBvcG92ZXJUcmlnZ2VyID0gRXhjbHVkZTxBWFBvcG92ZXJPcGVuVHJpZ2dlciwgJ21hbnVhbCc+O1xuIl19
|
@@ -1,3 +1,8 @@
|
|
1
|
+
import { input } from '@angular/core';
|
1
2
|
export class AXRootMenu {
|
3
|
+
constructor() {
|
4
|
+
this.orientation = input('horizontal');
|
5
|
+
this.openOn = input('toggle');
|
6
|
+
}
|
2
7
|
}
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm9vdC1tZW51LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9jbGFzcy9yb290LW1lbnUuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd0QyxNQUFNLE9BQU8sVUFBVTtJQUF2QjtRQUNFLGdCQUFXLEdBQUcsS0FBSyxDQUFnQixZQUFZLENBQUMsQ0FBQztRQUNqRCxXQUFNLEdBQUcsS0FBSyxDQUF1QixRQUFRLENBQUMsQ0FBQztJQUNqRCxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWE9yaWVudGF0aW9uIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2NvbW1vbic7XG5pbXBvcnQgeyBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNZW51UG9wb3ZlclRyaWdnZXIgfSBmcm9tICcuL3BvcG92ZXIuY2xhc3MnO1xuXG5leHBvcnQgY2xhc3MgQVhSb290TWVudSB7XG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ2hvcml6b250YWwnKTtcbiAgb3Blbk9uID0gaW5wdXQ8QVhNZW51UG9wb3ZlclRyaWdnZXI+KCd0b2dnbGUnKTtcbn1cbiJdfQ==
|
@@ -1,51 +1,30 @@
|
|
1
1
|
import { MXInteractiveComponent } from '@acorex/components/common';
|
2
2
|
import { AXPopoverComponent } from '@acorex/components/popover';
|
3
|
-
import { Component, ContentChildren,
|
3
|
+
import { Component, ContentChildren, HostBinding, HostListener, QueryList, ViewChild, afterNextRender, inject, input, output, signal, } from '@angular/core';
|
4
4
|
import { AXRootMenu } from '../class/root-menu.class';
|
5
|
+
import { AXMenuService } from '../menu.service';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
import * as i1 from "@acorex/components/popover";
|
7
8
|
export class AXMenuItemComponent extends MXInteractiveComponent {
|
8
9
|
constructor() {
|
9
|
-
super(
|
10
|
-
this.
|
11
|
-
this.
|
12
|
-
this.
|
13
|
-
this.
|
14
|
-
this.
|
10
|
+
super();
|
11
|
+
this.menuService = inject(AXMenuService);
|
12
|
+
this.offsetY = signal(0);
|
13
|
+
this.offsetX = signal(0);
|
14
|
+
this.text = input();
|
15
|
+
this.active = input();
|
16
|
+
this.activeChange = output();
|
17
|
+
this.onClick = output();
|
15
18
|
this.isRoot = false;
|
16
19
|
this.rootMenu = inject(AXRootMenu);
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
set text(v) {
|
25
|
-
this.setOption({
|
26
|
-
name: 'text',
|
27
|
-
value: v,
|
28
|
-
});
|
29
|
-
}
|
30
|
-
/**
|
31
|
-
* Providing a string value for its text state
|
32
|
-
*/
|
33
|
-
get active() {
|
34
|
-
return this._active;
|
35
|
-
}
|
36
|
-
set active(v) {
|
37
|
-
this.setOption({
|
38
|
-
name: 'active',
|
39
|
-
value: v,
|
40
|
-
});
|
41
|
-
}
|
42
|
-
ngAfterViewInit() {
|
43
|
-
this.children.forEach((c) => {
|
44
|
-
c.parent = this;
|
20
|
+
afterNextRender(() => {
|
21
|
+
this.children.forEach((c) => {
|
22
|
+
c.parent = this;
|
23
|
+
});
|
24
|
+
this.offsetY.set(this.isRoot ? 8 : 0);
|
25
|
+
this.offsetX.set(this.isRoot ? 0 : 4);
|
26
|
+
this.getPlacement();
|
45
27
|
});
|
46
|
-
this.offsetY = this.isRoot ? 8 : 0;
|
47
|
-
this.offsetX = this.isRoot ? 0 : 4;
|
48
|
-
this.getPlacement();
|
49
28
|
}
|
50
29
|
close() {
|
51
30
|
this.popover?.close();
|
@@ -62,6 +41,9 @@ export class AXMenuItemComponent extends MXInteractiveComponent {
|
|
62
41
|
c.close();
|
63
42
|
}
|
64
43
|
});
|
44
|
+
if (this.children.length) {
|
45
|
+
this.menuService.activeMenus$.next(this.menuService.activeMenus$.getValue().concat(this));
|
46
|
+
}
|
65
47
|
}
|
66
48
|
_handleOnClosed() {
|
67
49
|
this.children.forEach((c) => {
|
@@ -69,15 +51,15 @@ export class AXMenuItemComponent extends MXInteractiveComponent {
|
|
69
51
|
});
|
70
52
|
}
|
71
53
|
getIcon() {
|
72
|
-
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
54
|
+
if (this.rootMenu.orientation() == 'vertical') {
|
55
|
+
return 'ax-icon-arrow-right';
|
56
|
+
}
|
57
|
+
else {
|
58
|
+
return 'ax-icon-arrow-down';
|
77
59
|
}
|
78
60
|
}
|
79
61
|
getPlacement() {
|
80
|
-
switch (this.rootMenu.orientation) {
|
62
|
+
switch (this.rootMenu.orientation()) {
|
81
63
|
case 'horizontal':
|
82
64
|
if (this.isRoot) {
|
83
65
|
return 'bottom-start';
|
@@ -99,7 +81,7 @@ export class AXMenuItemComponent extends MXInteractiveComponent {
|
|
99
81
|
}
|
100
82
|
}
|
101
83
|
get __hostClass() {
|
102
|
-
return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active ? 'ax-state-active' : ''}`];
|
84
|
+
return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active() ? 'ax-state-active' : ''}`];
|
103
85
|
}
|
104
86
|
__hostClick(e) {
|
105
87
|
if (!this.disabled) {
|
@@ -108,25 +90,21 @@ export class AXMenuItemComponent extends MXInteractiveComponent {
|
|
108
90
|
htmlElement: this.getHostElement(),
|
109
91
|
nativeEvent: e,
|
110
92
|
});
|
93
|
+
if (!this.children.length) {
|
94
|
+
this.menuService.activeMenus$.subscribe((c) => c.forEach((x) => x.close())).unsubscribe();
|
95
|
+
this.menuService.activeMenus$.next([]);
|
96
|
+
}
|
111
97
|
}
|
112
98
|
}
|
113
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, deps:
|
114
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: "disabled", text: "text", active: "active" }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn\" [target]=\"getHostElement()\"
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
100
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>", dependencies: [{ kind: "component", type: i1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }] }); }
|
115
101
|
}
|
116
102
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, decorators: [{
|
117
103
|
type: Component,
|
118
|
-
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn\" [target]=\"getHostElement()\"
|
119
|
-
}], propDecorators: { popover: [{
|
104
|
+
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>" }]
|
105
|
+
}], ctorParameters: () => [], propDecorators: { popover: [{
|
120
106
|
type: ViewChild,
|
121
107
|
args: [AXPopoverComponent]
|
122
|
-
}], text: [{
|
123
|
-
type: Input
|
124
|
-
}], activeChange: [{
|
125
|
-
type: Output
|
126
|
-
}], active: [{
|
127
|
-
type: Input
|
128
|
-
}], onClick: [{
|
129
|
-
type: Output
|
130
108
|
}], children: [{
|
131
109
|
type: ContentChildren,
|
132
110
|
args: [AXMenuItemComponent]
|
@@ -137,4 +115,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
137
115
|
type: HostListener,
|
138
116
|
args: ['click', ['$event']]
|
139
117
|
}] } });
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFFTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFlBQVksRUFDWixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFDTCxNQUFNLEVBQ04sU0FBUyxFQUNULFNBQVMsRUFDVCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFRdEQsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHNCQUFzQjtJQU4vRDs7UUFPRSxZQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ1osWUFBTyxHQUFHLENBQUMsQ0FBQztRQXFCWixpQkFBWSxHQUEwQixJQUFJLFlBQVksRUFBVyxDQUFDO1FBRTFELFlBQU8sR0FBRyxLQUFLLENBQUM7UUFnQnhCLFlBQU8sR0FBK0IsSUFBSSxZQUFZLEVBQWdCLENBQUM7UUFFdkUsV0FBTSxHQUFHLEtBQUssQ0FBQztRQUdmLGFBQVEsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7S0FzRi9CO0lBNUhDOztPQUVHO0lBQ0gsSUFDVyxJQUFJO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFDRCxJQUFXLElBQUksQ0FBQyxDQUFTO1FBQ3ZC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QUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUM7Z0JBQ2hCLFNBQVMsRUFBRSxJQUFJO2dCQUNmLFdBQVcsRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFO2dCQUNsQyxXQUFXLEVBQUUsQ0FBQzthQUNmLENBQUMsQ0FBQztRQUNMLENBQUM7SUFDSCxDQUFDOzhHQW5JVSxtQkFBbUI7a0dBQW5CLG1CQUFtQiwrVkFnRGIsbUJBQW1CLHNFQTVDekIsa0JBQWtCLHVFQzNCL0Isd3NCQWFhOzsyRkRVQSxtQkFBbUI7a0JBTi9CLFNBQVM7K0JBQ0UsY0FBYyxVQUNoQixDQUFDLFVBQVUsQ0FBQyxRQUVkLEVBQUUsZUFBZSxFQUFFLE1BQU0sRUFBRTs4QkFPekIsT0FBTztzQkFEZCxTQUFTO3VCQUFDLGtCQUFrQjtnQkFRbEIsSUFBSTtzQkFEZCxLQUFLO2dCQVlOLFlBQVk7c0JBRFgsTUFBTTtnQkFRSSxNQUFNO3NCQURoQixLQUFLO2dCQVlOLE9BQU87c0JBRE4sTUFBTTtnQkFTUCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CO2dCQXNFaEMsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBTVosV0FBVztzQkFEbEIsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBWENsaWNrRXZlbnQsIE1YSW50ZXJhY3RpdmVDb21wb25lbnQgfSBmcm9tICdAYWNvcmV4L2NvbXBvbmVudHMvY29tbW9uJztcbmltcG9ydCB7IEFYUG9wb3ZlckNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9wb3BvdmVyJztcbmltcG9ydCB7XG4gIEFmdGVyVmlld0luaXQsXG4gIENvbXBvbmVudCxcbiAgQ29udGVudENoaWxkcmVuLFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhSb290TWVudSB9IGZyb20gJy4uL2NsYXNzL3Jvb3QtbWVudS5jbGFzcyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUtaXRlbScsXG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuICBvZmZzZXRZID0gMDtcbiAgb2Zmc2V0WCA9IDA7XG5cbiAgQFZpZXdDaGlsZChBWFBvcG92ZXJDb21wb25lbnQpXG4gIHByaXZhdGUgcG9wb3ZlcjogQVhQb3BvdmVyQ29tcG9uZW50O1xuXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcbiAgLyoqXG4gICAqICBQcm92aWRpbmcgYSBzdHJpbmcgdmFsdWUgZm9yIGl0cyB0ZXh0IHN0YXRlXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgZ2V0IHRleHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGV4dDtcbiAgfVxuICBwdWJsaWMgc2V0IHRleHQodjogc3RyaW5nKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ3RleHQnLFxuICAgICAgdmFsdWU6IHYsXG4gICAgfSk7XG4gIH1cblxuICBAT3V0cHV0KClcbiAgYWN0aXZlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHJpdmF0ZSBfYWN0aXZlID0gZmFsc2U7XG4gIC8qKlxuICAgKiAgUHJvdmlkaW5nIGEgc3RyaW5nIHZhbHVlIGZvciBpdHMgdGV4dCBzdGF0ZVxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIGdldCBhY3RpdmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2FjdGl2ZTtcbiAgfVxuICBwdWJsaWMgc2V0IGFjdGl2ZSh2OiBib29sZWFuKSB7XG4gICAgdGhpcy5zZXRPcHRpb24oe1xuICAgICAgbmFtZTogJ2FjdGl2ZScsXG4gICAgICB2YWx1ZTogdixcbiAgICB9KTtcbiAgfVxuXG4gIEBPdXRwdXQoKVxuICBvbkNsaWNrOiBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PiA9IG5ldyBFdmVudEVtaXR0ZXI8QVhDbGlja0V2ZW50PigpO1xuXG4gIGlzUm9vdCA9IGZhbHNlO1xuICBwYXJlbnQ/OiBBWE1lbnVJdGVtQ29tcG9uZW50O1xuXG4gIHJvb3RNZW51ID0gaW5qZWN0KEFYUm9vdE1lbnUpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhNZW51SXRlbUNvbXBvbmVudClcbiAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxBWE1lbnVJdGVtQ29tcG9uZW50PjtcblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgdGhpcy5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBjLnBhcmVudCA9IHRoaXM7XG4gICAgfSk7XG5cbiAgICB0aGlzLm9mZnNldFkgPSB0aGlzLmlzUm9vdCA/IDggOiAwO1xuICAgIHRoaXMub2Zmc2V0WCA9IHRoaXMuaXNSb290ID8gMCA6IDQ7XG5cbiAgICB0aGlzLmdldFBsYWNlbWVudCgpO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICB9XG5cbiAgLy8gQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gIC8vIHByaXZhdGUgb25Nb3VzZUhvdmVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgLy8gICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgLy8gICAgIGMuY2xvc2UoKTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIF9oYW5kbGVPbk9wZW5lZCgpIHtcbiAgICB0aGlzLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAoYyAhPSB0aGlzKSB7XG4gICAgICAgIGMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIF9oYW5kbGVPbkNsb3NlZCgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGMuY2xvc2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEljb24oKSB7XG4gICAgc3dpdGNoICh0aGlzLnJvb3RNZW51Lm9yaWVudGF0aW9uKSB7XG4gICAgICBjYXNlICd2ZXJ0aWNhbCc6XG4gICAgICAgIHJldHVybiAnYXgtaWNvbi1hcnJvdy1yaWdodCc7XG4gICAgICBjYXNlICdob3Jpem9udGFsJzpcbiAgICAgICAgcmV0dXJuICdheC1pY29uLWFycm93LWRvd24nO1xuICAgIH1cbiAgfVxuXG4gIGdldFBsYWNlbWVudCgpIHtcbiAgICBzd2l0Y2ggKHRoaXMucm9vdE1lbnUub3JpZW50YXRpb24pIHtcbiAgICAgIGNhc2UgJ2hvcml6b250YWwnOlxuICAgICAgICBpZiAodGhpcy5pc1Jvb3QpIHtcbiAgICAgICAgICByZXR1cm4gJ2JvdHRvbS1zdGFydCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdlbmQtdG9wJztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGNhc2UgJ3ZlcnRpY2FsJzpcbiAgICAgICAgaWYgKHRoaXMuaXNSb290KSB7XG4gICAgICAgICAgcmV0dXJuICdlbmQtdG9wJztcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICByZXR1cm4gJ2VuZC10b3AnO1xuICAgICAgICB9XG4gICAgICAgIGJyZWFrO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuICdib3R0b20tc3RhcnQnO1xuICAgIH1cbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBbYCR7dGhpcy5kaXNhYmxlZCA/ICdheC1zdGF0ZS1kaXNhYmxlZCcgOiAnJ31gLCBgJHt0aGlzLmFjdGl2ZSA/ICdheC1zdGF0ZS1hY3RpdmUnIDogJyd9YF07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgX19ob3N0Q2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXN0YXJ0LXNpZGVcIj5cbiAgPG5nLWNvbnRlbnQgc2VsZWN0PVwiYXgtcHJlZml4XCI+PC9uZy1jb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLXRleHRcIj57eyB0ZXh0IH19PC9kaXY+XG48L2Rpdj5cbjxuZy1jb250ZW50IHNlbGVjdD1cImF4LXN1ZmZpeFwiPjwvbmctY29udGVudD5cbkBpZihjaGlsZHJlbi5sZW5ndGgpe1xuPGkgY2xhc3M9XCJheC1pY29uIGF4LWljb24tc29saWQge3sgZ2V0SWNvbigpIH19IGF4LW1lbnUtaXRlbS1jaGlsZC1pY29uXCI+PC9pPlxufVxuPGF4LXBvcG92ZXIgW2Nsb3NlT25dPVwiJ2NsaWNrT3V0J1wiIFtvcGVuT25dPVwicm9vdE1lbnUub3Blbk9uXCIgW3RhcmdldF09XCJnZXRIb3N0RWxlbWVudCgpXCIgW29mZnNldFldPVwib2Zmc2V0WVwiXG4gIFtvZmZzZXRYXT1cIm9mZnNldFhcIiBbcGxhY2VtZW50XT1cImdldFBsYWNlbWVudCgpXCIgKG9uT3BlbmVkKT1cIl9oYW5kbGVPbk9wZW5lZCgpXCIgKG9uQ2xvc2VkKT1cIl9oYW5kbGVPbkNsb3NlZCgpXCI+XG4gIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tY2hpbGRyZW4gYXgtcGFyZW50LXt7IHRoaXMucm9vdE1lbnUub3JpZW50YXRpb24gfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPiJdfQ==
|
118
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS1pdGVtLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tZW51L3NyYy9saWIvbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixzQkFBc0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQ2pGLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFDTCxTQUFTLEVBQ1QsZUFBZSxFQUNmLFdBQVcsRUFDWCxZQUFZLEVBQ1osU0FBUyxFQUNULFNBQVMsRUFDVCxlQUFlLEVBQ2YsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7OztBQVFoRCxNQUFNLE9BQU8sbUJBQW9CLFNBQVEsc0JBQXNCO0lBdUI3RDtRQUNFLEtBQUssRUFBRSxDQUFDO1FBcEJWLGdCQUFXLEdBQUcsTUFBTSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBRXBDLFlBQU8sR0FBRyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDcEIsWUFBTyxHQUFHLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVwQixTQUFJLEdBQUcsS0FBSyxFQUFVLENBQUM7UUFDdkIsV0FBTSxHQUFHLEtBQUssRUFBVyxDQUFDO1FBRTFCLGlCQUFZLEdBQUcsTUFBTSxFQUFXLENBQUM7UUFDakMsWUFBTyxHQUFHLE1BQU0sRUFBZ0IsQ0FBQztR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cmFjdGl2ZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQVhQb3BvdmVyQ29tcG9uZW50IH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBDb250ZW50Q2hpbGRyZW4sXG4gIEhvc3RCaW5kaW5nLFxuICBIb3N0TGlzdGVuZXIsXG4gIFF1ZXJ5TGlzdCxcbiAgVmlld0NoaWxkLFxuICBhZnRlck5leHRSZW5kZXIsXG4gIGluamVjdCxcbiAgaW5wdXQsXG4gIG91dHB1dCxcbiAgc2lnbmFsLFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFYUm9vdE1lbnUgfSBmcm9tICcuLi9jbGFzcy9yb290LW1lbnUuY2xhc3MnO1xuaW1wb3J0IHsgQVhNZW51U2VydmljZSB9IGZyb20gJy4uL21lbnUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUtaXRlbScsXG4gIGlucHV0czogWydkaXNhYmxlZCddLFxuICB0ZW1wbGF0ZVVybDogJy4vbWVudS1pdGVtLmNvbXBvbmVudC5odG1sJyxcbiAgaG9zdDogeyBuZ1NraXBIeWRyYXRpb246ICd0cnVlJyB9LFxufSlcbmV4cG9ydCBjbGFzcyBBWE1lbnVJdGVtQ29tcG9uZW50IGV4dGVuZHMgTVhJbnRlcmFjdGl2ZUNvbXBvbmVudCB7XG4gIEBWaWV3Q2hpbGQoQVhQb3BvdmVyQ29tcG9uZW50KVxuICBwcml2YXRlIHBvcG92ZXI6IEFYUG9wb3ZlckNvbXBvbmVudDtcblxuICBtZW51U2VydmljZSA9IGluamVjdChBWE1lbnVTZXJ2aWNlKTtcblxuICBvZmZzZXRZID0gc2lnbmFsKDApO1xuICBvZmZzZXRYID0gc2lnbmFsKDApO1xuXG4gIHRleHQgPSBpbnB1dDxzdHJpbmc+KCk7XG4gIGFjdGl2ZSA9IGlucHV0PGJvb2xlYW4+KCk7XG5cbiAgYWN0aXZlQ2hhbmdlID0gb3V0cHV0PGJvb2xlYW4+KCk7XG4gIG9uQ2xpY2sgPSBvdXRwdXQ8QVhDbGlja0V2ZW50PigpO1xuXG4gIGlzUm9vdCA9IGZhbHNlO1xuICBwYXJlbnQ/OiBBWE1lbnVJdGVtQ29tcG9uZW50O1xuXG4gIHJvb3RNZW51ID0gaW5qZWN0KEFYUm9vdE1lbnUpO1xuXG4gIEBDb250ZW50Q2hpbGRyZW4oQVhNZW51SXRlbUNvbXBvbmVudClcbiAgY2hpbGRyZW46IFF1ZXJ5TGlzdDxBWE1lbnVJdGVtQ29tcG9uZW50PjtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICAgIGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgICAgYy5wYXJlbnQgPSB0aGlzO1xuICAgICAgfSk7XG5cbiAgICAgIHRoaXMub2Zmc2V0WS5zZXQodGhpcy5pc1Jvb3QgPyA4IDogMCk7XG4gICAgICB0aGlzLm9mZnNldFguc2V0KHRoaXMuaXNSb290ID8gMCA6IDQpO1xuXG4gICAgICB0aGlzLmdldFBsYWNlbWVudCgpO1xuICAgIH0pO1xuICB9XG5cbiAgY2xvc2UoKSB7XG4gICAgdGhpcy5wb3BvdmVyPy5jbG9zZSgpO1xuICB9XG5cbiAgLy8gQEhvc3RMaXN0ZW5lcignbW91c2VsZWF2ZScsIFsnJGV2ZW50J10pXG4gIC8vIHByaXZhdGUgb25Nb3VzZUhvdmVyKGU6IE1vdXNlRXZlbnQpIHtcbiAgLy8gICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgLy8gICAgIGMuY2xvc2UoKTtcbiAgLy8gICB9KTtcbiAgLy8gfVxuXG4gIF9oYW5kbGVPbk9wZW5lZCgpIHtcbiAgICB0aGlzLnBhcmVudC5jaGlsZHJlbi5mb3JFYWNoKChjKSA9PiB7XG4gICAgICBpZiAoYyAhPSB0aGlzKSB7XG4gICAgICAgIGMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICBpZiAodGhpcy5jaGlsZHJlbi5sZW5ndGgpIHtcbiAgICAgIHRoaXMubWVudVNlcnZpY2UuYWN0aXZlTWVudXMkLm5leHQodGhpcy5tZW51U2VydmljZS5hY3RpdmVNZW51cyQuZ2V0VmFsdWUoKS5jb25jYXQodGhpcykpO1xuICAgIH1cbiAgfVxuXG4gIF9oYW5kbGVPbkNsb3NlZCgpIHtcbiAgICB0aGlzLmNoaWxkcmVuLmZvckVhY2goKGMpID0+IHtcbiAgICAgIGMuY2xvc2UoKTtcbiAgICB9KTtcbiAgfVxuXG4gIGdldEljb24oKSB7XG4gICAgaWYgKHRoaXMucm9vdE1lbnUub3JpZW50YXRpb24oKSA9PSAndmVydGljYWwnKSB7XG4gICAgICByZXR1cm4gJ2F4LWljb24tYXJyb3ctcmlnaHQnO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gJ2F4LWljb24tYXJyb3ctZG93bic7XG4gICAgfVxuICB9XG5cbiAgZ2V0UGxhY2VtZW50KCkge1xuICAgIHN3aXRjaCAodGhpcy5yb290TWVudS5vcmllbnRhdGlvbigpKSB7XG4gICAgICBjYXNlICdob3Jpem9udGFsJzpcbiAgICAgICAgaWYgKHRoaXMuaXNSb290KSB7XG4gICAgICAgICAgcmV0dXJuICdib3R0b20tc3RhcnQnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHJldHVybiAnZW5kLXRvcCc7XG4gICAgICAgIH1cbiAgICAgICAgYnJlYWs7XG4gICAgICBjYXNlICd2ZXJ0aWNhbCc6XG4gICAgICAgIGlmICh0aGlzLmlzUm9vdCkge1xuICAgICAgICAgIHJldHVybiAnZW5kLXRvcCc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgcmV0dXJuICdlbmQtdG9wJztcbiAgICAgICAgfVxuICAgICAgICBicmVhaztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybiAnYm90dG9tLXN0YXJ0JztcbiAgICB9XG4gIH1cblxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcbiAgZ2V0IF9faG9zdENsYXNzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gW2Ake3RoaXMuZGlzYWJsZWQgPyAnYXgtc3RhdGUtZGlzYWJsZWQnIDogJyd9YCwgYCR7dGhpcy5hY3RpdmUoKSA/ICdheC1zdGF0ZS1hY3RpdmUnIDogJyd9YF07XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIHByaXZhdGUgX19ob3N0Q2xpY2soZTogTW91c2VFdmVudCkge1xuICAgIGlmICghdGhpcy5kaXNhYmxlZCkge1xuICAgICAgdGhpcy5vbkNsaWNrLmVtaXQoe1xuICAgICAgICBjb21wb25lbnQ6IHRoaXMsXG4gICAgICAgIGh0bWxFbGVtZW50OiB0aGlzLmdldEhvc3RFbGVtZW50KCksXG4gICAgICAgIG5hdGl2ZUV2ZW50OiBlLFxuICAgICAgfSk7XG4gICAgICBpZiAoIXRoaXMuY2hpbGRyZW4ubGVuZ3RoKSB7XG4gICAgICAgIHRoaXMubWVudVNlcnZpY2UuYWN0aXZlTWVudXMkLnN1YnNjcmliZSgoYykgPT4gYy5mb3JFYWNoKCh4KSA9PiB4LmNsb3NlKCkpKS51bnN1YnNjcmliZSgpO1xuICAgICAgICB0aGlzLm1lbnVTZXJ2aWNlLmFjdGl2ZU1lbnVzJC5uZXh0KFtdKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tc3RhcnQtc2lkZVwiPlxuICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1wcmVmaXhcIj48L25nLWNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJheC1tZW51LWl0ZW0tdGV4dFwiPnt7IHRleHQoKSB9fTwvZGl2PlxuPC9kaXY+XG48bmctY29udGVudCBzZWxlY3Q9XCJheC1zdWZmaXhcIj48L25nLWNvbnRlbnQ+XG5AaWYoY2hpbGRyZW4ubGVuZ3RoKXtcbjxpIGNsYXNzPVwiYXgtaWNvbiBheC1pY29uLXNvbGlkIHt7IGdldEljb24oKSB9fSBheC1tZW51LWl0ZW0tY2hpbGQtaWNvblwiPjwvaT5cbn1cbjxheC1wb3BvdmVyICNwb3BvdmVyIFtjbG9zZU9uXT1cIidjbGlja091dCdcIiBbb3Blbk9uXT1cInJvb3RNZW51Lm9wZW5PbigpXCIgW3RhcmdldF09XCJnZXRIb3N0RWxlbWVudCgpXCJcbiAgW29mZnNldFldPVwib2Zmc2V0WSgpXCIgW29mZnNldFhdPVwib2Zmc2V0WCgpXCIgW3BsYWNlbWVudF09XCJnZXRQbGFjZW1lbnQoKVwiIChvbk9wZW5lZCk9XCJfaGFuZGxlT25PcGVuZWQoKVwiXG4gIChvbkNsb3NlZCk9XCJfaGFuZGxlT25DbG9zZWQoKVwiPlxuICA8ZGl2IGNsYXNzPVwiYXgtbWVudS1pdGVtLWNoaWxkcmVuIGF4LXBhcmVudC17eyB0aGlzLnJvb3RNZW51Lm9yaWVudGF0aW9uKCkgfX1cIj5cbiAgICA8bmctY29udGVudCBzZWxlY3Q9XCJheC1tZW51LWl0ZW1cIj48L25nLWNvbnRlbnQ+XG4gIDwvZGl2PlxuPC9heC1wb3BvdmVyPiJdfQ==
|
@@ -1,13 +1,14 @@
|
|
1
1
|
import { MXBaseComponent } from '@acorex/components/common';
|
2
|
-
import { Component, ContentChildren, HostBinding,
|
2
|
+
import { Component, ContentChildren, HostBinding, QueryList, ViewEncapsulation, input } from '@angular/core';
|
3
3
|
import { AXRootMenu } from './class/root-menu.class';
|
4
4
|
import { AXMenuItemComponent } from './menu-item/menu-item.component';
|
5
|
+
import { AXMenuService } from './menu.service';
|
5
6
|
import * as i0 from "@angular/core";
|
6
7
|
export class AXMenuComponent extends MXBaseComponent {
|
7
8
|
constructor() {
|
8
9
|
super(...arguments);
|
9
|
-
this.orientation = 'horizontal';
|
10
|
-
this.openOn = '
|
10
|
+
this.orientation = input('horizontal');
|
11
|
+
this.openOn = input('toggle');
|
11
12
|
}
|
12
13
|
ngAfterViewInit() {
|
13
14
|
this.children.forEach((c) => {
|
@@ -16,15 +17,18 @@ export class AXMenuComponent extends MXBaseComponent {
|
|
16
17
|
});
|
17
18
|
}
|
18
19
|
get __hostClass() {
|
19
|
-
return `ax-orientation-${this.orientation}`;
|
20
|
+
return `ax-orientation-${this.orientation()}`;
|
20
21
|
}
|
21
22
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
22
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
23
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.2", type: AXMenuComponent, selector: "ax-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
23
24
|
{
|
24
25
|
provide: AXRootMenu,
|
25
26
|
useExisting: AXMenuComponent,
|
26
27
|
},
|
27
|
-
|
28
|
+
{
|
29
|
+
provide: AXMenuService,
|
30
|
+
},
|
31
|
+
], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content select="ax-menu-item,ng-container"></ng-content>`, isInline: true, styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1}ax-menu-item ax-popover{position:absolute}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
28
32
|
}
|
29
33
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuComponent, decorators: [{
|
30
34
|
type: Component,
|
@@ -33,16 +37,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
33
37
|
provide: AXRootMenu,
|
34
38
|
useExisting: AXMenuComponent,
|
35
39
|
},
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
}], children: [{
|
40
|
+
{
|
41
|
+
provide: AXMenuService,
|
42
|
+
},
|
43
|
+
], styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1}ax-menu-item ax-popover{position:absolute}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
|
44
|
+
}], propDecorators: { children: [{
|
42
45
|
type: ContentChildren,
|
43
46
|
args: [AXMenuItemComponent]
|
44
47
|
}], __hostClass: [{
|
45
48
|
type: HostBinding,
|
46
49
|
args: ['class']
|
47
50
|
}] } });
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUuY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsZUFBZSxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDM0UsT0FBTyxFQUFpQixTQUFTLEVBQUUsZUFBZSxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTVILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNyRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBaUIvQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxlQUFlO0lBZnBEOztRQWdCRSxnQkFBVyxHQUFHLEtBQUssQ0FBZ0IsWUFBWSxDQUFDLENBQUM7UUFDakQsV0FBTSxHQUFHLEtBQUssQ0FBdUIsUUFBUSxDQUFDLENBQUM7S0FnQmhEO0lBWEMsZUFBZTtRQUNiLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDMUIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7WUFDaEIsQ0FBQyxDQUFDLE1BQU0sR0FBRyxJQUFzQyxDQUFDO1FBQ3BELENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELElBQ0ksV0FBVztRQUNiLE9BQU8sa0JBQWtCLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRSxDQUFDO0lBQ2hELENBQUM7OEdBakJVLGVBQWU7a0dBQWYsZUFBZSwwV0FWZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxVQUFVO2dCQUNuQixXQUFXLEVBQUUsZUFBZTthQUM3QjtZQUNEO2dCQUNFLE9BQU8sRUFBRSxhQUFhO2FBQ3ZCO1NBQ0YsbURBTWdCLG1CQUFtQixvREFqQjFCLDhEQUE4RDs7MkZBYTdELGVBQWU7a0JBZjNCLFNBQVM7K0JBQ0UsU0FBUyxZQUNULDhEQUE4RCxpQkFFekQsaUJBQWlCLENBQUMsSUFBSSxhQUMxQjt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsVUFBVTs0QkFDbkIsV0FBVyxpQkFBaUI7eUJBQzdCO3dCQUNEOzRCQUNFLE9BQU8sRUFBRSxhQUFhO3lCQUN2QjtxQkFDRjs4QkFPRCxRQUFRO3NCQURQLGVBQWU7dUJBQUMsbUJBQW1CO2dCQVdoQyxXQUFXO3NCQURkLFdBQVc7dUJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYT3JpZW50YXRpb24sIE1YQmFzZUNvbXBvbmVudCB9IGZyb20gJ0BhY29yZXgvY29tcG9uZW50cy9jb21tb24nO1xuaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBDb250ZW50Q2hpbGRyZW4sIEhvc3RCaW5kaW5nLCBRdWVyeUxpc3QsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQVhNZW51UG9wb3ZlclRyaWdnZXIgfSBmcm9tICcuL2NsYXNzL3BvcG92ZXIuY2xhc3MnO1xuaW1wb3J0IHsgQVhSb290TWVudSB9IGZyb20gJy4vY2xhc3Mvcm9vdC1tZW51LmNsYXNzJztcbmltcG9ydCB7IEFYTWVudUl0ZW1Db21wb25lbnQgfSBmcm9tICcuL21lbnUtaXRlbS9tZW51LWl0ZW0uY29tcG9uZW50JztcbmltcG9ydCB7IEFYTWVudVNlcnZpY2UgfSBmcm9tICcuL21lbnUuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2F4LW1lbnUnLFxuICB0ZW1wbGF0ZTogYDxuZy1jb250ZW50IHNlbGVjdD1cImF4LW1lbnUtaXRlbSxuZy1jb250YWluZXJcIj48L25nLWNvbnRlbnQ+YCxcbiAgc3R5bGVVcmxzOiBbJy4vbWVudS5jb21wb25lbnQuc2NzcyddLFxuICBlbmNhcHN1bGF0aW9uOiBWaWV3RW5jYXBzdWxhdGlvbi5Ob25lLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBBWFJvb3RNZW51LFxuICAgICAgdXNlRXhpc3Rpbmc6IEFYTWVudUNvbXBvbmVudCxcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IEFYTWVudVNlcnZpY2UsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51Q29tcG9uZW50IGV4dGVuZHMgTVhCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIG9yaWVudGF0aW9uID0gaW5wdXQ8QVhPcmllbnRhdGlvbj4oJ2hvcml6b250YWwnKTtcbiAgb3Blbk9uID0gaW5wdXQ8QVhNZW51UG9wb3ZlclRyaWdnZXI+KCd0b2dnbGUnKTtcblxuICBAQ29udGVudENoaWxkcmVuKEFYTWVudUl0ZW1Db21wb25lbnQpXG4gIGNoaWxkcmVuOiBRdWVyeUxpc3Q8QVhNZW51SXRlbUNvbXBvbmVudD47XG5cbiAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuY2hpbGRyZW4uZm9yRWFjaCgoYykgPT4ge1xuICAgICAgYy5pc1Jvb3QgPSB0cnVlO1xuICAgICAgYy5wYXJlbnQgPSB0aGlzIGFzIHVua25vd24gYXMgQVhNZW51SXRlbUNvbXBvbmVudDtcbiAgICB9KTtcbiAgfVxuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgX19ob3N0Q2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGF4LW9yaWVudGF0aW9uLSR7dGhpcy5vcmllbnRhdGlvbigpfWA7XG4gIH1cbn1cbiJdfQ==
|
@@ -9,20 +9,10 @@ import { AXMenuItemComponent } from './menu-item/menu-item.component';
|
|
9
9
|
import { AXMenuComponent } from './menu.component';
|
10
10
|
import * as i0 from "@angular/core";
|
11
11
|
const COMPONENT = [AXMenuItemComponent, AXMenuComponent];
|
12
|
-
const MODULES = [
|
13
|
-
AXDecoratorModule,
|
14
|
-
AXLoadingModule,
|
15
|
-
AXTranslationModule,
|
16
|
-
OverlayModule,
|
17
|
-
AXPopoverModule,
|
18
|
-
];
|
12
|
+
const MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];
|
19
13
|
export class AXMenuModule {
|
20
14
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
21
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule,
|
22
|
-
AXLoadingModule,
|
23
|
-
AXTranslationModule,
|
24
|
-
OverlayModule,
|
25
|
-
AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
15
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
26
16
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES] }); }
|
27
17
|
}
|
28
18
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, decorators: [{
|
@@ -34,4 +24,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
34
24
|
providers: [],
|
35
25
|
}]
|
36
26
|
}] });
|
37
|
-
//# sourceMappingURL=data:application/json;base64,
|
27
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbWVudS9zcmMvbGliL21lbnUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3JELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ3RFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFbkQsTUFBTSxTQUFTLEdBQUcsQ0FBQyxtQkFBbUIsRUFBRSxlQUFlLENBQUMsQ0FBQztBQUN6RCxNQUFNLE9BQU8sR0FBRyxDQUFDLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxDQUFDLENBQUM7QUFRMUcsTUFBTSxPQUFPLFlBQVk7OEdBQVosWUFBWTsrR0FBWixZQUFZLGlCQVROLG1CQUFtQixFQUFFLGVBQWUsYUFLM0MsWUFBWSxFQUpQLGlCQUFpQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsRUFBRSxhQUFhLEVBQUUsZUFBZSxhQURyRixtQkFBbUIsRUFBRSxlQUFlOytHQVMxQyxZQUFZLFlBSmIsWUFBWSxFQUFLLE9BQU87OzJGQUl2QixZQUFZO2tCQU54QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUM1QixPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsR0FBRyxPQUFPLENBQUM7b0JBQ25DLE9BQU8sRUFBRSxDQUFDLEdBQUcsU0FBUyxDQUFDO29CQUN2QixTQUFTLEVBQUUsRUFBRTtpQkFDZCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFYRGVjb3JhdG9yTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2RlY29yYXRvcnMnO1xuaW1wb3J0IHsgQVhMb2FkaW5nTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL2xvYWRpbmcnO1xuaW1wb3J0IHsgQVhQb3BvdmVyTW9kdWxlIH0gZnJvbSAnQGFjb3JleC9jb21wb25lbnRzL3BvcG92ZXInO1xuaW1wb3J0IHsgQVhUcmFuc2xhdGlvbk1vZHVsZSB9IGZyb20gJ0BhY29yZXgvY29yZS90cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBPdmVybGF5TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBWE1lbnVJdGVtQ29tcG9uZW50IH0gZnJvbSAnLi9tZW51LWl0ZW0vbWVudS1pdGVtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBBWE1lbnVDb21wb25lbnQgfSBmcm9tICcuL21lbnUuY29tcG9uZW50JztcblxuY29uc3QgQ09NUE9ORU5UID0gW0FYTWVudUl0ZW1Db21wb25lbnQsIEFYTWVudUNvbXBvbmVudF07XG5jb25zdCBNT0RVTEVTID0gW0FYRGVjb3JhdG9yTW9kdWxlLCBBWExvYWRpbmdNb2R1bGUsIEFYVHJhbnNsYXRpb25Nb2R1bGUsIE92ZXJsYXlNb2R1bGUsIEFYUG9wb3Zlck1vZHVsZV07XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogWy4uLkNPTVBPTkVOVF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIC4uLk1PRFVMRVNdLFxuICBleHBvcnRzOiBbLi4uQ09NUE9ORU5UXSxcbiAgcHJvdmlkZXJzOiBbXSxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51TW9kdWxlIHt9XG4iXX0=
|
@@ -0,0 +1,17 @@
|
|
1
|
+
import { Injectable } from '@angular/core';
|
2
|
+
import { BehaviorSubject } from 'rxjs';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class AXMenuService {
|
5
|
+
constructor() {
|
6
|
+
this.activeMenus$ = new BehaviorSubject([]);
|
7
|
+
}
|
8
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
9
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, providedIn: 'root' }); }
|
10
|
+
}
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, decorators: [{
|
12
|
+
type: Injectable,
|
13
|
+
args: [{
|
14
|
+
providedIn: 'root',
|
15
|
+
}]
|
16
|
+
}] });
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVudS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21lbnUvc3JjL2xpYi9tZW51LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU12QyxNQUFNLE9BQU8sYUFBYTtJQUgxQjtRQUlFLGlCQUFZLEdBQTJDLElBQUksZUFBZSxDQUF3QixFQUFFLENBQUMsQ0FBQztLQUN2Rzs4R0FGWSxhQUFhO2tIQUFiLGFBQWEsY0FGWixNQUFNOzsyRkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVhNZW51SXRlbUNvbXBvbmVudCB9IGZyb20gJy4vbWVudS1pdGVtL21lbnUtaXRlbS5jb21wb25lbnQnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQVhNZW51U2VydmljZSB7XG4gIGFjdGl2ZU1lbnVzJDogQmVoYXZpb3JTdWJqZWN0PEFYTWVudUl0ZW1Db21wb25lbnRbXT4gPSBuZXcgQmVoYXZpb3JTdWJqZWN0PEFYTWVudUl0ZW1Db21wb25lbnRbXT4oW10pO1xufVxuIl19
|
@@ -1,8 +1,9 @@
|
|
1
|
+
import * as i0 from '@angular/core';
|
2
|
+
import { input, Injectable, inject, signal, output, afterNextRender, Component, ViewChild, ContentChildren, HostBinding, HostListener, ViewEncapsulation, NgModule } from '@angular/core';
|
1
3
|
import { MXInteractiveComponent, MXBaseComponent } from '@acorex/components/common';
|
2
4
|
import * as i1 from '@acorex/components/popover';
|
3
5
|
import { AXPopoverComponent, AXPopoverModule } from '@acorex/components/popover';
|
4
|
-
import
|
5
|
-
import { EventEmitter, inject, Component, ViewChild, Input, Output, ContentChildren, HostBinding, HostListener, ViewEncapsulation, NgModule } from '@angular/core';
|
6
|
+
import { BehaviorSubject } from 'rxjs';
|
6
7
|
import { AXDecoratorModule } from '@acorex/components/decorators';
|
7
8
|
import { AXLoadingModule } from '@acorex/components/loading';
|
8
9
|
import { AXTranslationModule } from '@acorex/core/translation';
|
@@ -10,50 +11,46 @@ import { OverlayModule } from '@angular/cdk/overlay';
|
|
10
11
|
import { CommonModule } from '@angular/common';
|
11
12
|
|
12
13
|
class AXRootMenu {
|
14
|
+
constructor() {
|
15
|
+
this.orientation = input('horizontal');
|
16
|
+
this.openOn = input('toggle');
|
17
|
+
}
|
13
18
|
}
|
14
19
|
|
20
|
+
class AXMenuService {
|
21
|
+
constructor() {
|
22
|
+
this.activeMenus$ = new BehaviorSubject([]);
|
23
|
+
}
|
24
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
25
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, providedIn: 'root' }); }
|
26
|
+
}
|
27
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuService, decorators: [{
|
28
|
+
type: Injectable,
|
29
|
+
args: [{
|
30
|
+
providedIn: 'root',
|
31
|
+
}]
|
32
|
+
}] });
|
33
|
+
|
15
34
|
class AXMenuItemComponent extends MXInteractiveComponent {
|
16
35
|
constructor() {
|
17
|
-
super(
|
18
|
-
this.
|
19
|
-
this.
|
20
|
-
this.
|
21
|
-
this.
|
22
|
-
this.
|
36
|
+
super();
|
37
|
+
this.menuService = inject(AXMenuService);
|
38
|
+
this.offsetY = signal(0);
|
39
|
+
this.offsetX = signal(0);
|
40
|
+
this.text = input();
|
41
|
+
this.active = input();
|
42
|
+
this.activeChange = output();
|
43
|
+
this.onClick = output();
|
23
44
|
this.isRoot = false;
|
24
45
|
this.rootMenu = inject(AXRootMenu);
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
set text(v) {
|
33
|
-
this.setOption({
|
34
|
-
name: 'text',
|
35
|
-
value: v,
|
36
|
-
});
|
37
|
-
}
|
38
|
-
/**
|
39
|
-
* Providing a string value for its text state
|
40
|
-
*/
|
41
|
-
get active() {
|
42
|
-
return this._active;
|
43
|
-
}
|
44
|
-
set active(v) {
|
45
|
-
this.setOption({
|
46
|
-
name: 'active',
|
47
|
-
value: v,
|
48
|
-
});
|
49
|
-
}
|
50
|
-
ngAfterViewInit() {
|
51
|
-
this.children.forEach((c) => {
|
52
|
-
c.parent = this;
|
46
|
+
afterNextRender(() => {
|
47
|
+
this.children.forEach((c) => {
|
48
|
+
c.parent = this;
|
49
|
+
});
|
50
|
+
this.offsetY.set(this.isRoot ? 8 : 0);
|
51
|
+
this.offsetX.set(this.isRoot ? 0 : 4);
|
52
|
+
this.getPlacement();
|
53
53
|
});
|
54
|
-
this.offsetY = this.isRoot ? 8 : 0;
|
55
|
-
this.offsetX = this.isRoot ? 0 : 4;
|
56
|
-
this.getPlacement();
|
57
54
|
}
|
58
55
|
close() {
|
59
56
|
this.popover?.close();
|
@@ -70,6 +67,9 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
70
67
|
c.close();
|
71
68
|
}
|
72
69
|
});
|
70
|
+
if (this.children.length) {
|
71
|
+
this.menuService.activeMenus$.next(this.menuService.activeMenus$.getValue().concat(this));
|
72
|
+
}
|
73
73
|
}
|
74
74
|
_handleOnClosed() {
|
75
75
|
this.children.forEach((c) => {
|
@@ -77,15 +77,15 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
77
77
|
});
|
78
78
|
}
|
79
79
|
getIcon() {
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
80
|
+
if (this.rootMenu.orientation() == 'vertical') {
|
81
|
+
return 'ax-icon-arrow-right';
|
82
|
+
}
|
83
|
+
else {
|
84
|
+
return 'ax-icon-arrow-down';
|
85
85
|
}
|
86
86
|
}
|
87
87
|
getPlacement() {
|
88
|
-
switch (this.rootMenu.orientation) {
|
88
|
+
switch (this.rootMenu.orientation()) {
|
89
89
|
case 'horizontal':
|
90
90
|
if (this.isRoot) {
|
91
91
|
return 'bottom-start';
|
@@ -107,7 +107,7 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
107
107
|
}
|
108
108
|
}
|
109
109
|
get __hostClass() {
|
110
|
-
return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active ? 'ax-state-active' : ''}`];
|
110
|
+
return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active() ? 'ax-state-active' : ''}`];
|
111
111
|
}
|
112
112
|
__hostClick(e) {
|
113
113
|
if (!this.disabled) {
|
@@ -116,25 +116,21 @@ class AXMenuItemComponent extends MXInteractiveComponent {
|
|
116
116
|
htmlElement: this.getHostElement(),
|
117
117
|
nativeEvent: e,
|
118
118
|
});
|
119
|
+
if (!this.children.length) {
|
120
|
+
this.menuService.activeMenus$.subscribe((c) => c.forEach((x) => x.close())).unsubscribe();
|
121
|
+
this.menuService.activeMenus$.next([]);
|
122
|
+
}
|
119
123
|
}
|
120
124
|
}
|
121
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, deps:
|
122
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: "disabled", text: "text", active: "active" }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn\" [target]=\"getHostElement()\"
|
125
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
126
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "17.3.2", type: AXMenuItemComponent, selector: "ax-menu-item", inputs: { disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: false, isRequired: false, transformFunction: null }, text: { classPropertyName: "text", publicName: "text", isSignal: true, isRequired: false, transformFunction: null }, active: { classPropertyName: "active", publicName: "active", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { activeChange: "activeChange", onClick: "onClick" }, host: { attributes: { "ngSkipHydration": "true" }, listeners: { "click": "__hostClick($event)" }, properties: { "class": "this.__hostClass" } }, queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], viewQueries: [{ propertyName: "popover", first: true, predicate: AXPopoverComponent, descendants: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>", dependencies: [{ kind: "component", type: i1.AXPopoverComponent, selector: "ax-popover", inputs: ["offsetX", "offsetY", "target", "placement", "content", "openOn", "closeOn", "hasBackdrop", "openAfter", "closeAfter", "backdropClass", "adaptivityEnabled"], outputs: ["onOpened", "onClosed"] }] }); }
|
123
127
|
}
|
124
128
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuItemComponent, decorators: [{
|
125
129
|
type: Component,
|
126
|
-
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn\" [target]=\"getHostElement()\"
|
127
|
-
}], propDecorators: { popover: [{
|
130
|
+
args: [{ selector: 'ax-menu-item', inputs: ['disabled'], host: { ngSkipHydration: 'true' }, template: "<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>" }]
|
131
|
+
}], ctorParameters: () => [], propDecorators: { popover: [{
|
128
132
|
type: ViewChild,
|
129
133
|
args: [AXPopoverComponent]
|
130
|
-
}], text: [{
|
131
|
-
type: Input
|
132
|
-
}], activeChange: [{
|
133
|
-
type: Output
|
134
|
-
}], active: [{
|
135
|
-
type: Input
|
136
|
-
}], onClick: [{
|
137
|
-
type: Output
|
138
134
|
}], children: [{
|
139
135
|
type: ContentChildren,
|
140
136
|
args: [AXMenuItemComponent]
|
@@ -149,8 +145,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
149
145
|
class AXMenuComponent extends MXBaseComponent {
|
150
146
|
constructor() {
|
151
147
|
super(...arguments);
|
152
|
-
this.orientation = 'horizontal';
|
153
|
-
this.openOn = '
|
148
|
+
this.orientation = input('horizontal');
|
149
|
+
this.openOn = input('toggle');
|
154
150
|
}
|
155
151
|
ngAfterViewInit() {
|
156
152
|
this.children.forEach((c) => {
|
@@ -159,15 +155,18 @@ class AXMenuComponent extends MXBaseComponent {
|
|
159
155
|
});
|
160
156
|
}
|
161
157
|
get __hostClass() {
|
162
|
-
return `ax-orientation-${this.orientation}`;
|
158
|
+
return `ax-orientation-${this.orientation()}`;
|
163
159
|
}
|
164
160
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
165
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
161
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "17.3.2", type: AXMenuComponent, selector: "ax-menu", inputs: { orientation: { classPropertyName: "orientation", publicName: "orientation", isSignal: true, isRequired: false, transformFunction: null }, openOn: { classPropertyName: "openOn", publicName: "openOn", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "this.__hostClass" } }, providers: [
|
166
162
|
{
|
167
163
|
provide: AXRootMenu,
|
168
164
|
useExisting: AXMenuComponent,
|
169
165
|
},
|
170
|
-
|
166
|
+
{
|
167
|
+
provide: AXMenuService,
|
168
|
+
},
|
169
|
+
], queries: [{ propertyName: "children", predicate: AXMenuItemComponent }], usesInheritance: true, ngImport: i0, template: `<ng-content select="ax-menu-item,ng-container"></ng-content>`, isInline: true, styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1}ax-menu-item ax-popover{position:absolute}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
171
170
|
}
|
172
171
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuComponent, decorators: [{
|
173
172
|
type: Component,
|
@@ -176,12 +175,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
176
175
|
provide: AXRootMenu,
|
177
176
|
useExisting: AXMenuComponent,
|
178
177
|
},
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
}], children: [{
|
178
|
+
{
|
179
|
+
provide: AXMenuService,
|
180
|
+
},
|
181
|
+
], styles: ["ax-menu{width:100%;font-size:.875rem;line-height:1.25rem;color:inherit}ax-menu.ax-orientation-horizontal{display:flex}ax-menu.ax-orientation-horizontal ax-menu-item:not(ax-menu.ax-orientation-horizontal ax-menu-item:last-child){margin-inline-end:1rem}ax-menu.ax-orientation-vertical{display:flex;flex-direction:column}ax-menu.ax-orientation-vertical ax-menu-item{justify-content:space-between}ax-menu.ax-orientation-vertical ax-menu-item:not(ax-menu.ax-orientation-vertical ax-menu-item:last-child){margin-bottom:1rem}ax-menu ax-menu-item:hover:not(ax-menu ax-menu-item:hover.ax-state-disabled){color:rgba(var(--ax-color-primary-500))}ax-menu-item{position:relative;display:flex;align-items:center;gap:.5rem;font-size:.875rem;line-height:1.25rem;font-weight:500;transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s;justify-content:space-between}ax-menu-item:not(ax-menu-item.ax-state-disabled){cursor:pointer}ax-menu-item .ax-menu-item-start-side{display:flex;align-items:center;gap:.5rem}ax-menu-item.ax-state-disabled{cursor:not-allowed;opacity:.5}ax-menu-item.ax-state-selected{color:rgba(var(--ax-color-primary-500))}ax-menu-item .ax-menu-item-child-icon{width:fit-content;line-height:1}ax-menu-item ax-popover{position:absolute}.ax-menu-item-children{padding-top:.5rem;padding-bottom:.5rem}.ax-menu-item-children:not(.ax-menu-item-children:empty){display:flex;min-width:12rem;flex-direction:column;border-radius:var(--ax-rounded-border-default);border-width:1px;border-color:rgba(var(--ax-color-border-default));background-color:rgba(var(--ax-color-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item{padding:.5rem 1rem;font-size:.875rem;line-height:1.25rem}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled){background-color:rgba(var(--ax-color-on-surface))}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover:not(.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item:hover.ax-state-disabled) ax-suffix{opacity:1}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-prefix,.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item ax-suffix{opacity:.75}.ax-menu-item-children:not(.ax-menu-item-children:empty) ax-menu-item .ax-menu-item-text{flex:1 1 0%}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}html[dir=rtl] .ax-parent-horizontal .ax-menu-item-child-icon:before{-moz-transform:scale(1,-1);-webkit-transform:scale(1,-1);-o-transform:scale(1,-1);-ms-transform:scale(1,-1);transform:scaleY(-1)}.ax-parent-horizontal .ax-menu-item-child-icon{transform:rotate(-90deg)}\n"] }]
|
182
|
+
}], propDecorators: { children: [{
|
185
183
|
type: ContentChildren,
|
186
184
|
args: [AXMenuItemComponent]
|
187
185
|
}], __hostClass: [{
|
@@ -190,20 +188,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
190
188
|
}] } });
|
191
189
|
|
192
190
|
const COMPONENT = [AXMenuItemComponent, AXMenuComponent];
|
193
|
-
const MODULES = [
|
194
|
-
AXDecoratorModule,
|
195
|
-
AXLoadingModule,
|
196
|
-
AXTranslationModule,
|
197
|
-
OverlayModule,
|
198
|
-
AXPopoverModule,
|
199
|
-
];
|
191
|
+
const MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];
|
200
192
|
class AXMenuModule {
|
201
193
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
202
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule,
|
203
|
-
AXLoadingModule,
|
204
|
-
AXTranslationModule,
|
205
|
-
OverlayModule,
|
206
|
-
AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
194
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, declarations: [AXMenuItemComponent, AXMenuComponent], imports: [CommonModule, AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule], exports: [AXMenuItemComponent, AXMenuComponent] }); }
|
207
195
|
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, imports: [CommonModule, MODULES] }); }
|
208
196
|
}
|
209
197
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImport: i0, type: AXMenuModule, decorators: [{
|
@@ -220,5 +208,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.2", ngImpor
|
|
220
208
|
* Generated bundle index. Do not edit.
|
221
209
|
*/
|
222
210
|
|
223
|
-
export { AXMenuComponent, AXMenuItemComponent, AXMenuModule, AXRootMenu };
|
211
|
+
export { AXMenuComponent, AXMenuItemComponent, AXMenuModule, AXMenuService, AXRootMenu };
|
224
212
|
//# sourceMappingURL=acorex-components-menu.mjs.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../libs/components/menu/src/lib/class/root-menu.class.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation } from '@acorex/components/common';\nimport { AXPopoverOpenTrigger } from '@acorex/components/popover';\n\nexport class AXRootMenu {\n orientation: AXOrientation;\n openOn: AXPopoverOpenTrigger;\n}\n","import { AXClickEvent, MXInteractiveComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n EventEmitter,\n HostBinding,\n HostListener,\n Input,\n Output,\n QueryList,\n ViewChild,\n inject,\n} from '@angular/core';\nimport { AXRootMenu } from '../class/root-menu.class';\n\n@Component({\n selector: 'ax-menu-item',\n inputs: ['disabled'],\n templateUrl: './menu-item.component.html',\n host: { ngSkipHydration: 'true' },\n})\nexport class AXMenuItemComponent extends MXInteractiveComponent implements AfterViewInit {\n offsetY = 0;\n offsetX = 0;\n\n @ViewChild(AXPopoverComponent)\n private popover: AXPopoverComponent;\n\n private _text: string;\n /**\n * Providing a string value for its text state\n */\n @Input()\n public get text(): string {\n return this._text;\n }\n public set text(v: string) {\n this.setOption({\n name: 'text',\n value: v,\n });\n }\n\n @Output()\n activeChange: EventEmitter<boolean> = new EventEmitter<boolean>();\n\n private _active = false;\n /**\n * Providing a string value for its text state\n */\n @Input()\n public get active(): boolean {\n return this._active;\n }\n public set active(v: boolean) {\n this.setOption({\n name: 'active',\n value: v,\n });\n }\n\n @Output()\n onClick: EventEmitter<AXClickEvent> = new EventEmitter<AXClickEvent>();\n\n isRoot = false;\n parent?: AXMenuItemComponent;\n\n rootMenu = inject(AXRootMenu);\n\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n ngAfterViewInit() {\n this.children.forEach((c) => {\n c.parent = this;\n });\n\n this.offsetY = this.isRoot ? 8 : 0;\n this.offsetX = this.isRoot ? 0 : 4;\n\n this.getPlacement();\n }\n\n close() {\n this.popover?.close();\n }\n\n // @HostListener('mouseleave', ['$event'])\n // private onMouseHover(e: MouseEvent) {\n // this.children.forEach((c) => {\n // c.close();\n // });\n // }\n\n _handleOnOpened() {\n this.parent.children.forEach((c) => {\n if (c != this) {\n c.close();\n }\n });\n }\n\n _handleOnClosed() {\n this.children.forEach((c) => {\n c.close();\n });\n }\n\n getIcon() {\n switch (this.rootMenu.orientation) {\n case 'vertical':\n return 'ax-icon-arrow-right';\n case 'horizontal':\n return 'ax-icon-arrow-down';\n }\n }\n\n getPlacement() {\n switch (this.rootMenu.orientation) {\n case 'horizontal':\n if (this.isRoot) {\n return 'bottom-start';\n } else {\n return 'end-top';\n }\n break;\n case 'vertical':\n if (this.isRoot) {\n return 'end-top';\n } else {\n return 'end-top';\n }\n break;\n default:\n return 'bottom-start';\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active ? 'ax-state-active' : ''}`];\n }\n\n @HostListener('click', ['$event'])\n private __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n }\n }\n}\n","<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn\" [target]=\"getHostElement()\" [offsetY]=\"offsetY\"\n [offsetX]=\"offsetX\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\" (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>","import { AXOrientation, MXBaseComponent } from '@acorex/components/common';\nimport { AXPopoverOpenTrigger } from '@acorex/components/popover';\nimport {\n AfterViewInit,\n Component,\n ContentChildren,\n HostBinding,\n Input,\n QueryList,\n ViewEncapsulation,\n} from '@angular/core';\nimport { AXRootMenu } from './class/root-menu.class';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\n\n@Component({\n selector: 'ax-menu',\n template: `<ng-content select=\"ax-menu-item,ng-container\"></ng-content>`,\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n ],\n})\nexport class AXMenuComponent extends MXBaseComponent implements AfterViewInit {\n @Input() orientation: AXOrientation = 'horizontal';\n @Input() openOn: AXPopoverOpenTrigger = 'click';\n\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n ngAfterViewInit() {\n this.children.forEach((c) => {\n c.isRoot = true;\n c.parent = this as unknown as AXMenuItemComponent;\n });\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-orientation-${this.orientation}`;\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent];\nconst MODULES = [\n AXDecoratorModule,\n AXLoadingModule,\n AXTranslationModule,\n OverlayModule,\n AXPopoverModule,\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 './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"acorex-components-menu.mjs","sources":["../../../../libs/components/menu/src/lib/class/root-menu.class.ts","../../../../libs/components/menu/src/lib/menu.service.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.ts","../../../../libs/components/menu/src/lib/menu-item/menu-item.component.html","../../../../libs/components/menu/src/lib/menu.component.ts","../../../../libs/components/menu/src/lib/menu.module.ts","../../../../libs/components/menu/src/acorex-components-menu.ts"],"sourcesContent":["import { AXOrientation } from '@acorex/components/common';\nimport { input } from '@angular/core';\nimport { AXMenuPopoverTrigger } from './popover.class';\n\nexport class AXRootMenu {\n orientation = input<AXOrientation>('horizontal');\n openOn = input<AXMenuPopoverTrigger>('toggle');\n}\n","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AXMenuService {\n activeMenus$: BehaviorSubject<AXMenuItemComponent[]> = new BehaviorSubject<AXMenuItemComponent[]>([]);\n}\n","import { AXClickEvent, MXInteractiveComponent } from '@acorex/components/common';\nimport { AXPopoverComponent } from '@acorex/components/popover';\nimport {\n Component,\n ContentChildren,\n HostBinding,\n HostListener,\n QueryList,\n ViewChild,\n afterNextRender,\n inject,\n input,\n output,\n signal,\n} from '@angular/core';\nimport { AXRootMenu } from '../class/root-menu.class';\nimport { AXMenuService } from '../menu.service';\n\n@Component({\n selector: 'ax-menu-item',\n inputs: ['disabled'],\n templateUrl: './menu-item.component.html',\n host: { ngSkipHydration: 'true' },\n})\nexport class AXMenuItemComponent extends MXInteractiveComponent {\n @ViewChild(AXPopoverComponent)\n private popover: AXPopoverComponent;\n\n menuService = inject(AXMenuService);\n\n offsetY = signal(0);\n offsetX = signal(0);\n\n text = input<string>();\n active = input<boolean>();\n\n activeChange = output<boolean>();\n onClick = output<AXClickEvent>();\n\n isRoot = false;\n parent?: AXMenuItemComponent;\n\n rootMenu = inject(AXRootMenu);\n\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n constructor() {\n super();\n afterNextRender(() => {\n this.children.forEach((c) => {\n c.parent = this;\n });\n\n this.offsetY.set(this.isRoot ? 8 : 0);\n this.offsetX.set(this.isRoot ? 0 : 4);\n\n this.getPlacement();\n });\n }\n\n close() {\n this.popover?.close();\n }\n\n // @HostListener('mouseleave', ['$event'])\n // private onMouseHover(e: MouseEvent) {\n // this.children.forEach((c) => {\n // c.close();\n // });\n // }\n\n _handleOnOpened() {\n this.parent.children.forEach((c) => {\n if (c != this) {\n c.close();\n }\n });\n if (this.children.length) {\n this.menuService.activeMenus$.next(this.menuService.activeMenus$.getValue().concat(this));\n }\n }\n\n _handleOnClosed() {\n this.children.forEach((c) => {\n c.close();\n });\n }\n\n getIcon() {\n if (this.rootMenu.orientation() == 'vertical') {\n return 'ax-icon-arrow-right';\n } else {\n return 'ax-icon-arrow-down';\n }\n }\n\n getPlacement() {\n switch (this.rootMenu.orientation()) {\n case 'horizontal':\n if (this.isRoot) {\n return 'bottom-start';\n } else {\n return 'end-top';\n }\n break;\n case 'vertical':\n if (this.isRoot) {\n return 'end-top';\n } else {\n return 'end-top';\n }\n break;\n default:\n return 'bottom-start';\n }\n }\n\n @HostBinding('class')\n get __hostClass(): string[] {\n return [`${this.disabled ? 'ax-state-disabled' : ''}`, `${this.active() ? 'ax-state-active' : ''}`];\n }\n\n @HostListener('click', ['$event'])\n private __hostClick(e: MouseEvent) {\n if (!this.disabled) {\n this.onClick.emit({\n component: this,\n htmlElement: this.getHostElement(),\n nativeEvent: e,\n });\n if (!this.children.length) {\n this.menuService.activeMenus$.subscribe((c) => c.forEach((x) => x.close())).unsubscribe();\n this.menuService.activeMenus$.next([]);\n }\n }\n }\n}\n","<div class=\"ax-menu-item-start-side\">\n <ng-content select=\"ax-prefix\"></ng-content>\n <div class=\"ax-menu-item-text\">{{ text() }}</div>\n</div>\n<ng-content select=\"ax-suffix\"></ng-content>\n@if(children.length){\n<i class=\"ax-icon ax-icon-solid {{ getIcon() }} ax-menu-item-child-icon\"></i>\n}\n<ax-popover #popover [closeOn]=\"'clickOut'\" [openOn]=\"rootMenu.openOn()\" [target]=\"getHostElement()\"\n [offsetY]=\"offsetY()\" [offsetX]=\"offsetX()\" [placement]=\"getPlacement()\" (onOpened)=\"_handleOnOpened()\"\n (onClosed)=\"_handleOnClosed()\">\n <div class=\"ax-menu-item-children ax-parent-{{ this.rootMenu.orientation() }}\">\n <ng-content select=\"ax-menu-item\"></ng-content>\n </div>\n</ax-popover>","import { AXOrientation, MXBaseComponent } from '@acorex/components/common';\nimport { AfterViewInit, Component, ContentChildren, HostBinding, QueryList, ViewEncapsulation, input } from '@angular/core';\nimport { AXMenuPopoverTrigger } from './class/popover.class';\nimport { AXRootMenu } from './class/root-menu.class';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuService } from './menu.service';\n\n@Component({\n selector: 'ax-menu',\n template: `<ng-content select=\"ax-menu-item,ng-container\"></ng-content>`,\n styleUrls: ['./menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n providers: [\n {\n provide: AXRootMenu,\n useExisting: AXMenuComponent,\n },\n {\n provide: AXMenuService,\n },\n ],\n})\nexport class AXMenuComponent extends MXBaseComponent implements AfterViewInit {\n orientation = input<AXOrientation>('horizontal');\n openOn = input<AXMenuPopoverTrigger>('toggle');\n\n @ContentChildren(AXMenuItemComponent)\n children: QueryList<AXMenuItemComponent>;\n\n ngAfterViewInit() {\n this.children.forEach((c) => {\n c.isRoot = true;\n c.parent = this as unknown as AXMenuItemComponent;\n });\n }\n\n @HostBinding('class')\n get __hostClass(): string {\n return `ax-orientation-${this.orientation()}`;\n }\n}\n","import { AXDecoratorModule } from '@acorex/components/decorators';\nimport { AXLoadingModule } from '@acorex/components/loading';\nimport { AXPopoverModule } from '@acorex/components/popover';\nimport { AXTranslationModule } from '@acorex/core/translation';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { AXMenuItemComponent } from './menu-item/menu-item.component';\nimport { AXMenuComponent } from './menu.component';\n\nconst COMPONENT = [AXMenuItemComponent, AXMenuComponent];\nconst MODULES = [AXDecoratorModule, AXLoadingModule, AXTranslationModule, OverlayModule, AXPopoverModule];\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 './index';\n"],"names":[],"mappings":";;;;;;;;;;;;MAIa,UAAU,CAAA;AAAvB,IAAA,WAAA,GAAA;AACE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,YAAY,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAuB,QAAQ,CAAC,CAAC;KAChD;AAAA;;MCAY,aAAa,CAAA;AAH1B,IAAA,WAAA,GAAA;AAIE,QAAA,IAAA,CAAA,YAAY,GAA2C,IAAI,eAAe,CAAwB,EAAE,CAAC,CAAC;AACvG,KAAA;8GAFY,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;AAAb,IAAA,SAAA,IAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA,CAAA,EAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA,CAAA;;;ACkBK,MAAO,mBAAoB,SAAQ,sBAAsB,CAAA;AAuB7D,IAAA,WAAA,GAAA;AACE,QAAA,KAAK,EAAE,CAAC;AApBV,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACpB,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;QAEpB,IAAI,CAAA,IAAA,GAAG,KAAK,EAAU,CAAC;QACvB,IAAM,CAAA,MAAA,GAAG,KAAK,EAAW,CAAC;QAE1B,IAAY,CAAA,YAAA,GAAG,MAAM,EAAW,CAAC;QACjC,IAAO,CAAA,OAAA,GAAG,MAAM,EAAgB,CAAC;QAEjC,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC;AAGf,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;QAO5B,eAAe,CAAC,MAAK;YACnB,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC1B,gBAAA,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AAClB,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,YAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YAEtC,IAAI,CAAC,YAAY,EAAE,CAAC;AACtB,SAAC,CAAC,CAAC;KACJ;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,CAAC;KACvB;;;;;;;IASD,eAAe,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AACjC,YAAA,IAAI,CAAC,IAAI,IAAI,EAAE;gBACb,CAAC,CAAC,KAAK,EAAE,CAAC;aACX;AACH,SAAC,CAAC,CAAC;AACH,QAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;YACxB,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;SAC3F;KACF;IAED,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;YAC1B,CAAC,CAAC,KAAK,EAAE,CAAC;AACZ,SAAC,CAAC,CAAC;KACJ;IAED,OAAO,GAAA;QACL,IAAI,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,UAAU,EAAE;AAC7C,YAAA,OAAO,qBAAqB,CAAC;SAC9B;aAAM;AACL,YAAA,OAAO,oBAAoB,CAAC;SAC7B;KACF;IAED,YAAY,GAAA;AACV,QAAA,QAAQ,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE;AACjC,YAAA,KAAK,YAAY;AACf,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,OAAO,cAAc,CAAC;iBACvB;qBAAM;AACL,oBAAA,OAAO,SAAS,CAAC;iBAClB;gBACD,MAAM;AACR,YAAA,KAAK,UAAU;AACb,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,OAAO,SAAS,CAAC;iBAClB;qBAAM;AACL,oBAAA,OAAO,SAAS,CAAC;iBAClB;gBACD,MAAM;AACR,YAAA;AACE,gBAAA,OAAO,cAAc,CAAC;SACzB;KACF;AAED,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,CAAC,CAAA,EAAG,IAAI,CAAC,QAAQ,GAAG,mBAAmB,GAAG,EAAE,CAAE,CAAA,EAAE,CAAG,EAAA,IAAI,CAAC,MAAM,EAAE,GAAG,iBAAiB,GAAG,EAAE,CAAA,CAAE,CAAC,CAAC;KACrG;AAGO,IAAA,WAAW,CAAC,CAAa,EAAA;AAC/B,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;AAChB,gBAAA,SAAS,EAAE,IAAI;AACf,gBAAA,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE;AAClC,gBAAA,WAAW,EAAE,CAAC;AACf,aAAA,CAAC,CAAC;AACH,YAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACzB,gBAAA,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;gBAC1F,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;aACxC;SACF;KACF;8GAhHU,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAoBb,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,YAAA,EAAA,cAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAmB,EAnBzB,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,SAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,kBAAkB,uECzB/B,8tBAca,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,SAAA,EAAA,QAAA,EAAA,WAAA,EAAA,SAAA,EAAA,QAAA,EAAA,SAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,mBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA,EAAA;;2FDUA,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAN/B,SAAS;+BACE,cAAc,EAAA,MAAA,EAChB,CAAC,UAAU,CAAC,QAEd,EAAE,eAAe,EAAE,MAAM,EAAE,EAAA,QAAA,EAAA,8tBAAA,EAAA,CAAA;wDAIzB,OAAO,EAAA,CAAA;sBADd,SAAS;uBAAC,kBAAkB,CAAA;gBAoB7B,QAAQ,EAAA,CAAA;sBADP,eAAe;uBAAC,mBAAmB,CAAA;gBA2EhC,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;gBAMZ,WAAW,EAAA,CAAA;sBADlB,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AErG7B,MAAO,eAAgB,SAAQ,eAAe,CAAA;AAfpD,IAAA,WAAA,GAAA;;AAgBE,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAgB,YAAY,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK,CAAuB,QAAQ,CAAC,CAAC;AAgBhD,KAAA;IAXC,eAAe,GAAA;QACb,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;AAC1B,YAAA,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;AAChB,YAAA,CAAC,CAAC,MAAM,GAAG,IAAsC,CAAC;AACpD,SAAC,CAAC,CAAC;KACJ;AAED,IAAA,IACI,WAAW,GAAA;AACb,QAAA,OAAO,kBAAkB,IAAI,CAAC,WAAW,EAAE,EAAE,CAAC;KAC/C;8GAjBU,eAAe,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAf,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,EAVf,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACT,YAAA;AACE,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,WAAW,EAAE,eAAe;AAC7B,aAAA;AACD,YAAA;AACE,gBAAA,OAAO,EAAE,aAAa;AACvB,aAAA;SACF,EAMgB,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,UAAA,EAAA,SAAA,EAAA,mBAAmB,oDAjB1B,CAA8D,4DAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,i+FAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAa7D,eAAe,EAAA,UAAA,EAAA,CAAA;kBAf3B,SAAS;AACE,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,SAAS,YACT,CAA8D,4DAAA,CAAA,EAAA,aAAA,EAEzD,iBAAiB,CAAC,IAAI,EAC1B,SAAA,EAAA;AACT,wBAAA;AACE,4BAAA,OAAO,EAAE,UAAU;AACnB,4BAAA,WAAW,EAAiB,eAAA;AAC7B,yBAAA;AACD,wBAAA;AACE,4BAAA,OAAO,EAAE,aAAa;AACvB,yBAAA;AACF,qBAAA,EAAA,MAAA,EAAA,CAAA,i+FAAA,CAAA,EAAA,CAAA;8BAOD,QAAQ,EAAA,CAAA;sBADP,eAAe;uBAAC,mBAAmB,CAAA;gBAWhC,WAAW,EAAA,CAAA;sBADd,WAAW;uBAAC,OAAO,CAAA;;;AC1BtB,MAAM,SAAS,GAAG,CAAC,mBAAmB,EAAE,eAAe,CAAC,CAAC;AACzD,MAAM,OAAO,GAAG,CAAC,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,CAAC,CAAC;MAQ7F,YAAY,CAAA;8GAAZ,YAAY,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAZ,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,iBATN,mBAAmB,EAAE,eAAe,CAK3C,EAAA,OAAA,EAAA,CAAA,YAAY,EAJP,iBAAiB,EAAE,eAAe,EAAE,mBAAmB,EAAE,aAAa,EAAE,eAAe,CADrF,EAAA,OAAA,EAAA,CAAA,mBAAmB,EAAE,eAAe,CAAA,EAAA,CAAA,CAAA,EAAA;+GAS1C,YAAY,EAAA,OAAA,EAAA,CAJb,YAAY,EAAK,OAAO,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIvB,YAAY,EAAA,UAAA,EAAA,CAAA;kBANxB,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE,CAAC,GAAG,SAAS,CAAC;AAC5B,oBAAA,OAAO,EAAE,CAAC,YAAY,EAAE,GAAG,OAAO,CAAC;AACnC,oBAAA,OAAO,EAAE,CAAC,GAAG,SAAS,CAAC;AACvB,oBAAA,SAAS,EAAE,EAAE;AACd,iBAAA,CAAA;;;AClBD;;AAEG;;;;"}
|
package/menu/index.d.ts
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
import { AXOrientation } from '@acorex/components/common';
|
2
|
-
import {
|
2
|
+
import { AXMenuPopoverTrigger } from './popover.class';
|
3
3
|
export declare class AXRootMenu {
|
4
|
-
orientation: AXOrientation
|
5
|
-
openOn:
|
4
|
+
orientation: import("@angular/core").InputSignal<AXOrientation>;
|
5
|
+
openOn: import("@angular/core").InputSignal<AXMenuPopoverTrigger>;
|
6
6
|
}
|
@@ -1,30 +1,22 @@
|
|
1
1
|
import { AXClickEvent, MXInteractiveComponent } from '@acorex/components/common';
|
2
|
-
import {
|
2
|
+
import { QueryList } from '@angular/core';
|
3
3
|
import { AXRootMenu } from '../class/root-menu.class';
|
4
|
+
import { AXMenuService } from '../menu.service';
|
4
5
|
import * as i0 from "@angular/core";
|
5
|
-
export declare class AXMenuItemComponent extends MXInteractiveComponent
|
6
|
-
offsetY: number;
|
7
|
-
offsetX: number;
|
6
|
+
export declare class AXMenuItemComponent extends MXInteractiveComponent {
|
8
7
|
private popover;
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
private _active;
|
17
|
-
/**
|
18
|
-
* Providing a string value for its text state
|
19
|
-
*/
|
20
|
-
get active(): boolean;
|
21
|
-
set active(v: boolean);
|
22
|
-
onClick: EventEmitter<AXClickEvent>;
|
8
|
+
menuService: AXMenuService;
|
9
|
+
offsetY: import("@angular/core").WritableSignal<number>;
|
10
|
+
offsetX: import("@angular/core").WritableSignal<number>;
|
11
|
+
text: import("@angular/core").InputSignal<string>;
|
12
|
+
active: import("@angular/core").InputSignal<boolean>;
|
13
|
+
activeChange: import("@angular/core").OutputEmitterRef<boolean>;
|
14
|
+
onClick: import("@angular/core").OutputEmitterRef<AXClickEvent>;
|
23
15
|
isRoot: boolean;
|
24
16
|
parent?: AXMenuItemComponent;
|
25
17
|
rootMenu: AXRootMenu;
|
26
18
|
children: QueryList<AXMenuItemComponent>;
|
27
|
-
|
19
|
+
constructor();
|
28
20
|
close(): void;
|
29
21
|
_handleOnOpened(): void;
|
30
22
|
_handleOnClosed(): void;
|
@@ -33,5 +25,5 @@ export declare class AXMenuItemComponent extends MXInteractiveComponent implemen
|
|
33
25
|
get __hostClass(): string[];
|
34
26
|
private __hostClick;
|
35
27
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuItemComponent, never>;
|
36
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; }; "active": { "alias": "active"; "required": false; }; }, { "activeChange": "activeChange"; "onClick": "onClick"; }, ["children"], ["ax-prefix", "ax-suffix", "ax-menu-item"], false, never>;
|
28
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuItemComponent, "ax-menu-item", never, { "disabled": { "alias": "disabled"; "required": false; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "active": { "alias": "active"; "required": false; "isSignal": true; }; }, { "activeChange": "activeChange"; "onClick": "onClick"; }, ["children"], ["ax-prefix", "ax-suffix", "ax-menu-item"], false, never>;
|
37
29
|
}
|
@@ -1,14 +1,14 @@
|
|
1
1
|
import { AXOrientation, MXBaseComponent } from '@acorex/components/common';
|
2
|
-
import { AXPopoverOpenTrigger } from '@acorex/components/popover';
|
3
2
|
import { AfterViewInit, QueryList } from '@angular/core';
|
3
|
+
import { AXMenuPopoverTrigger } from './class/popover.class';
|
4
4
|
import { AXMenuItemComponent } from './menu-item/menu-item.component';
|
5
5
|
import * as i0 from "@angular/core";
|
6
6
|
export declare class AXMenuComponent extends MXBaseComponent implements AfterViewInit {
|
7
|
-
orientation: AXOrientation
|
8
|
-
openOn:
|
7
|
+
orientation: import("@angular/core").InputSignal<AXOrientation>;
|
8
|
+
openOn: import("@angular/core").InputSignal<AXMenuPopoverTrigger>;
|
9
9
|
children: QueryList<AXMenuItemComponent>;
|
10
10
|
ngAfterViewInit(): void;
|
11
11
|
get __hostClass(): string;
|
12
12
|
static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuComponent, never>;
|
13
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; }; "openOn": { "alias": "openOn"; "required": false; }; }, {}, ["children"], ["ax-menu-item,ng-container"], false, never>;
|
13
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AXMenuComponent, "ax-menu", never, { "orientation": { "alias": "orientation"; "required": false; "isSignal": true; }; "openOn": { "alias": "openOn"; "required": false; "isSignal": true; }; }, {}, ["children"], ["ax-menu-item,ng-container"], false, never>;
|
14
14
|
}
|
@@ -0,0 +1,8 @@
|
|
1
|
+
import { BehaviorSubject } from 'rxjs';
|
2
|
+
import { AXMenuItemComponent } from './menu-item/menu-item.component';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export declare class AXMenuService {
|
5
|
+
activeMenus$: BehaviorSubject<AXMenuItemComponent[]>;
|
6
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AXMenuService, never>;
|
7
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AXMenuService>;
|
8
|
+
}
|