@eui/components 18.1.1-snapshot-1723597735497 → 18.1.1-snapshot-1724029811889
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/components/EuiAppSidebarMenuComponent.html +87 -1
- package/docs/components/EuiAutocompleteComponent.html +1 -1
- package/docs/components/EuiMenuComponent.html +19 -0
- package/docs/dependencies.html +2 -2
- package/docs/js/search/search_index.js +2 -2
- package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
- package/esm2022/eui-icon/eui-icon-svg.component.mjs +2 -2
- package/esm2022/eui-input-group/eui-input-group.component.mjs +2 -2
- package/esm2022/eui-menu/eui-menu.component.mjs +6 -2
- package/esm2022/eui-sidebar-menu/eui-sidebar-menu.component.mjs +1 -1
- package/esm2022/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.mjs +9 -3
- package/esm2022/layout/eui-app/eui-app.component.mjs +1 -1
- package/eui-menu/eui-menu.component.d.ts +2 -1
- package/eui-menu/eui-menu.component.d.ts.map +1 -1
- package/fesm2022/eui-components-eui-autocomplete.mjs +2 -2
- package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
- package/fesm2022/eui-components-eui-icon.mjs +2 -2
- package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
- package/fesm2022/eui-components-eui-input-group.mjs +2 -2
- package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
- package/fesm2022/eui-components-eui-menu.mjs +5 -1
- package/fesm2022/eui-components-eui-menu.mjs.map +1 -1
- package/fesm2022/eui-components-eui-sidebar-menu.mjs +1 -1
- package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
- package/fesm2022/eui-components-layout.mjs +9 -3
- package/fesm2022/eui-components-layout.mjs.map +1 -1
- package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts +3 -1
- package/layout/eui-app/eui-app-sidebar/sidebar-menu/sidebar-menu.component.d.ts.map +1 -1
- package/package.json +3 -3
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-icon.mjs","sources":["../../eui-icon/eui-icon-svg.component.ts","../../eui-icon/eui-icon-svg.component.html","../../eui-icon/eui-components-eui-icon.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n OnInit,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n Inject,\n Optional,\n booleanAttribute,\n NgModule,\n} from '@angular/core';\nimport { EUI_CONFIG_TOKEN } from '@eui/core';\nimport { EuiConfig } from '@eui/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'eui-icon-svg, span[euiIconSvg], i[euiIconSvg]',\n templateUrl: './eui-icon-svg.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiIconSvgComponent implements AfterContentInit, OnChanges, OnInit {\n @HostBinding('attr.role') ariaRole = 'img';\n\n @Input() icon: string; // could be the form of \"icon:set\" to pass them both in a single input\n @Input() fillColor: string;\n @Input() set = 'eui';\n @Input() size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl' | string = 'm';\n @Input() style = '';\n @Input() iconUrl: string;\n @Input() transform = '';\n @Input() euiVariant: string; // fake it as used in showcase on samples loops (eui-tabs f.e.) shouldn't be\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n 'eui-icon-svg',\n `eui-icon-svg--size-${this.size}`,\n this.transform ? `eui-icon-svg--${this.transform}` : '',\n\n // own cmp state => reflected with the scss states\n this.euiStart ? 'eui-icon-svg--start' : '',\n this.euiEnd ? 'eui-icon-svg--end' : '',\n this.isInputIcon ? 'eui-icon-svg--input-icon': '',\n this.isLoading ? 'eui-icon-svg--loading': '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-label')\n @Input('aria-label') ariaLabel = 'Icon';\n\n public iconName: string;\n public assetsBaseUrl = 'assets';\n public iconStyle: string;\n\n @Input({ transform: booleanAttribute }) ariaHidden = true;\n @Input({ transform: booleanAttribute }) focusable = false;\n @Input({ transform: booleanAttribute }) isLoading = false;\n @Input({ transform: booleanAttribute }) isInputIcon = false;\n\n @Input({ transform: booleanAttribute }) euiStart = false;\n @Input({ transform: booleanAttribute }) euiEnd = false;\n\n constructor(\n @Optional() @Inject(EUI_CONFIG_TOKEN) private config: EuiConfig,\n ) {\n }\n\n ngOnInit(): void {\n const assetsBaseUrl = this.config?.appConfig?.global?.eui?.assetsBaseUrl;\n if (assetsBaseUrl) {\n this.assetsBaseUrl = this.config.appConfig.global.eui.assetsBaseUrl;\n }\n if (!this.size || this.size === '') {\n this.size = 'm';\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.set) {\n if (c.set.currentValue !== c.set.previousValue) {\n this._setIconAndSet();\n }\n }\n\n if (c && c.icon) {\n if (c.icon.currentValue !== c.icon.previousValue) {\n this._setIconAndSet();\n }\n }\n\n if (c && c.size) {\n if (c.size.currentValue !== c.size.previousValue) {\n this._setStyle();\n }\n }\n if (c && c.fillColor) {\n if (c.fillColor.currentValue !== c.fillColor.previousValue) {\n this._setStyle();\n }\n }\n }\n\n ngAfterContentInit(): void {\n this._setIconAndSet();\n this._setStyle();\n }\n\n private _setIconAndSet(): void {\n if (this.icon && this.icon.indexOf(':') > -1) {\n const iconSet = this.icon.split(':');\n this.icon = iconSet[0];\n this.set = iconSet[1];\n }\n\n if (!this.set || this.set === '') {\n this.set = 'eui';\n } else {\n if (this.set === 'sharp' || this.set === 'outline') {\n this.iconName = `${this.icon}-${this.set}`;\n } else {\n this.iconName = this.icon;\n }\n }\n }\n\n private _setStyle(): void {\n let fill = '';\n if (this.fillColor) {\n fill = `fill: var(--eui-c-${this.fillColor}); color: var(--eui-c-${this.fillColor});`;\n }\n // const height = `height: var(--eui-is-${this.size});`;\n // const width = `width: var(--eui-is-${this.size});`;\n // this.iconStyle = `${fill} ${height} ${width}`;\n this.iconStyle = `${fill}`;\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EuiIconSvgComponent],\n exports: [EuiIconSvgComponent],\n})\nexport class EuiIconModule {}\n","<ng-container *ngIf=\"icon && !iconUrl && !isLoading\">\n <svg\n class=\"eui-sprite-{{icon}}\"\n [class.eui-icon-svg--loading]=\"isLoading\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.role]=\"'img'\"\n [attr.focusable]=\"focusable\"\n attr.style=\"{{iconStyle}}\">\n <use [attr.href]=\"assetsBaseUrl + '/icons/sprites/' + set + '.svg#' + iconName\"></use>\n </svg>\n <ng-content></ng-content>\n</ng-container>\n\n<ng-container *ngIf=\"iconUrl\">\n <svg class=\"eui-icon-svg\"\n attr.style=\"{{iconStyle}} {{style}}\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.role]=\"'img'\"\n [attr.focusable]=\"focusable\">\n <image [attr.href]=\"iconUrl\" [class]=\"'eui-icon-svg'\" attr.style=\"{{iconStyle}} {{style}}\"></image>\n </svg>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-icon.mjs","sources":["../../eui-icon/eui-icon-svg.component.ts","../../eui-icon/eui-icon-svg.component.html","../../eui-icon/eui-components-eui-icon.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Input,\n HostBinding,\n OnInit,\n ViewEncapsulation,\n OnChanges,\n SimpleChanges,\n AfterContentInit,\n Inject,\n Optional,\n booleanAttribute,\n NgModule,\n} from '@angular/core';\nimport { EUI_CONFIG_TOKEN } from '@eui/core';\nimport { EuiConfig } from '@eui/core';\nimport { CommonModule } from '@angular/common';\n\n@Component({\n selector: 'eui-icon-svg, span[euiIconSvg], i[euiIconSvg]',\n templateUrl: './eui-icon-svg.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiIconSvgComponent implements AfterContentInit, OnChanges, OnInit {\n @HostBinding('attr.role') ariaRole = 'img';\n\n @Input() icon: string; // could be the form of \"icon:set\" to pass them both in a single input\n @Input() fillColor: string;\n @Input() set = 'eui';\n @Input() size: '2xs' | 'xs' | 's' | 'm' | 'l' | 'xl' | '2xl' | '3xl' | '4xl' | string = 'm';\n @Input() style = '';\n @Input() iconUrl: string;\n @Input() transform = '';\n @Input() euiVariant: string; // fake it as used in showcase on samples loops (eui-tabs f.e.) shouldn't be\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n // Always refer to the baseStatesDirective\n 'eui-icon-svg',\n `eui-icon-svg--size-${this.size}`,\n this.transform ? `eui-icon-svg--${this.transform}` : '',\n\n // own cmp state => reflected with the scss states\n this.euiStart ? 'eui-icon-svg--start' : '',\n this.euiEnd ? 'eui-icon-svg--end' : '',\n this.isInputIcon ? 'eui-icon-svg--input-icon': '',\n this.isLoading ? 'eui-icon-svg--loading': '',\n ]\n .join(' ')\n .trim();\n }\n\n @HostBinding('attr.aria-label')\n @Input('aria-label') ariaLabel = 'Icon';\n\n public iconName: string;\n public assetsBaseUrl = 'assets';\n public iconStyle: string;\n\n @Input({ transform: booleanAttribute }) ariaHidden = true;\n @Input({ transform: booleanAttribute }) focusable = false;\n @Input({ transform: booleanAttribute }) isLoading = false;\n @Input({ transform: booleanAttribute }) isInputIcon = false;\n\n @Input({ transform: booleanAttribute }) euiStart = false;\n @Input({ transform: booleanAttribute }) euiEnd = false;\n\n constructor(\n @Optional() @Inject(EUI_CONFIG_TOKEN) private config: EuiConfig,\n ) {\n }\n\n ngOnInit(): void {\n const assetsBaseUrl = this.config?.appConfig?.global?.eui?.assetsBaseUrl;\n if (assetsBaseUrl) {\n this.assetsBaseUrl = this.config.appConfig.global.eui.assetsBaseUrl;\n }\n if (!this.size || this.size === '') {\n this.size = 'm';\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.set) {\n if (c.set.currentValue !== c.set.previousValue) {\n this._setIconAndSet();\n }\n }\n\n if (c && c.icon) {\n if (c.icon.currentValue !== c.icon.previousValue) {\n this._setIconAndSet();\n }\n }\n\n if (c && c.size) {\n if (c.size.currentValue !== c.size.previousValue) {\n this._setStyle();\n }\n }\n if (c && c.fillColor) {\n if (c.fillColor.currentValue !== c.fillColor.previousValue) {\n this._setStyle();\n }\n }\n }\n\n ngAfterContentInit(): void {\n this._setIconAndSet();\n this._setStyle();\n }\n\n private _setIconAndSet(): void {\n if (this.icon && this.icon.indexOf(':') > -1) {\n const iconSet = this.icon.split(':');\n this.icon = iconSet[0];\n this.set = iconSet[1];\n }\n\n if (!this.set || this.set === '') {\n this.set = 'eui';\n } else {\n if (this.set === 'sharp' || this.set === 'outline') {\n this.iconName = `${this.icon}-${this.set}`;\n } else {\n this.iconName = this.icon;\n }\n }\n }\n\n private _setStyle(): void {\n let fill = '';\n if (this.fillColor) {\n fill = `fill: var(--eui-c-${this.fillColor}); color: var(--eui-c-${this.fillColor});`;\n }\n // const height = `height: var(--eui-is-${this.size});`;\n // const width = `width: var(--eui-is-${this.size});`;\n // this.iconStyle = `${fill} ${height} ${width}`;\n this.iconStyle = `${fill}`;\n }\n}\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EuiIconSvgComponent],\n exports: [EuiIconSvgComponent],\n})\nexport class EuiIconModule {}\n","<ng-container *ngIf=\"icon && !iconUrl && !isLoading\">\n <svg\n class=\"eui-sprite-{{icon}}\"\n [class.eui-icon-svg--loading]=\"isLoading\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.role]=\"'img'\"\n [attr.focusable]=\"focusable\"\n attr.style=\"{{iconStyle}}\">\n <use [attr.href]=\"assetsBaseUrl + '/icons/sprites/' + set + '.svg#' + iconName\"></use>\n </svg>\n <ng-content></ng-content>\n</ng-container>\n\n<ng-container *ngIf=\"iconUrl\">\n <svg class=\"eui-icon-svg\"\n attr.style=\"{{iconStyle}} {{style}}\"\n [attr.aria-hidden]=\"ariaHidden\"\n [attr.role]=\"'img'\"\n [attr.focusable]=\"focusable\">\n <image [attr.href]=\"iconUrl\" [class]=\"'eui-icon-svg'\" attr.style=\"{{iconStyle}} {{style}}\"></image>\n </svg>\n</ng-container>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
@@ -11,11 +11,11 @@ class EuiInputGroupComponent {
|
|
11
11
|
return 'eui-input-group';
|
12
12
|
}
|
13
13
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EuiInputGroupComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
14
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: EuiInputGroupComponent, selector: "div[euiInputGroup]", inputs: { e2eAttr: "e2eAttr" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.cssClasses", "attr.type": "this.type" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-input-group{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:var(--eui-s-m);position:relative;width:100%}.eui-input-group>.eui-label{align-items:center;display:inline-flex}.eui-input-group>.eui-label:first-child{font:var(--eui-f-m-bold);margin-bottom:var(--eui-s-2xs);min-height:var(--eui-s-l)}.eui-input-group:not(.row) .eui-input-radio+label,.eui-input-group:not(.row) .eui-input-checkbox+label{left:calc(var(--eui-s-2xl));margin-bottom:calc(-1 * var(--eui-s-2xs));position:relative;vertical-align:middle;white-space:inherit;bottom:var(--eui-s-xl)}.eui-input-group:not(.row) div{align-items:center
|
14
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.1.0", type: EuiInputGroupComponent, selector: "div[euiInputGroup]", inputs: { e2eAttr: "e2eAttr" }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.cssClasses", "attr.type": "this.type" } }, ngImport: i0, template: '<ng-content></ng-content>', isInline: true, styles: [".eui-input-group{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:var(--eui-s-m);position:relative;width:100%}.eui-input-group>.eui-label{align-items:center;display:inline-flex}.eui-input-group>.eui-label:first-child{font:var(--eui-f-m-bold);margin-bottom:var(--eui-s-2xs);min-height:var(--eui-s-l)}.eui-input-group:not(.row) .eui-input-radio+label,.eui-input-group:not(.row) .eui-input-checkbox+label{left:calc(var(--eui-s-2xl));margin-bottom:calc(-1 * var(--eui-s-2xs));position:relative;vertical-align:middle;white-space:inherit;bottom:var(--eui-s-xl)}.eui-input-group:not(.row) div{align-items:center}.eui-input-group:not(.row) div .eui-input-checkbox+label{margin-bottom:0;padding-right:0;top:0;left:0}.eui-input-group:not(.row) div .eui-input-radio+label{padding-right:0;top:0;left:0}.eui-input-group.row{align-items:center;flex-direction:row}.eui-input-group.row .eui-label{align-items:center;display:flex;justify-content:flex-end;margin-bottom:0!important;margin-top:0;padding-right:0;text-align:right;font:var(--eui-f-m);white-space:normal}.eui-input-group.row .eui-label:first-child{font:var(--eui-f-m-bold)}@media screen and (max-width: 767px){.eui-input-group.row{flex-direction:column}.eui-input-group.row label,.eui-input-group.row .eui-label{justify-content:flex-start;text-align:left}}.eui-input-group-addon{align-items:stretch;display:flex;position:relative;width:100%}.eui-input-group-addon-item{align-items:center;align-self:stretch;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-none);box-shadow:none;color:var(--eui-c-neutral);display:flex;flex-shrink:0;font:var(--eui-f-m-compact);height:auto;justify-content:center;min-height:var(--eui-s-3xl);min-width:var(--eui-s-3xl);padding:0 var(--eui-s-xs)}.eui-input-group-addon>:not(:first-child){border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none)}.eui-input-group-addon>:not(:last-child){border-bottom-left-radius:var(--eui-br-m);border-top-left-radius:var(--eui-br-m);border-bottom-right-radius:var(--eui-br-none);border-top-right-radius:var(--eui-br-none)}.eui-input-group-addon>:not(:first-child):not(:last-child){border-radius:var(--eui-br-none)}.eui-input-group-addon>:last-child:not(:first-child){border-radius:var(--eui-br-none) var(--eui-br-m) var(--eui-br-m) var(--eui-br-none)}.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-select{border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none);margin-left:-1px}.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-select,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-select,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-select{border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none);margin-left:-1px}.eui-input-group-addon .eui-select,.eui-input-group-addon .eui-button,.eui-input-group-addon eui-dropdown{margin-left:-2px}.eui-input-group-addon .eui-input-text+.eui-input-group-addon-item,.eui-input-group-addon .eui-input-number+.eui-input-group-addon-item{border-left-color:transparent}.eui-input-group-addon .eui-button,.eui-input-group-addon .eui-textarea{margin-left:-1px}\n"], encapsulation: i0.ViewEncapsulation.None }); }
|
15
15
|
}
|
16
16
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EuiInputGroupComponent, decorators: [{
|
17
17
|
type: Component,
|
18
|
-
args: [{ selector: 'div[euiInputGroup]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: [".eui-input-group{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:var(--eui-s-m);position:relative;width:100%}.eui-input-group>.eui-label{align-items:center;display:inline-flex}.eui-input-group>.eui-label:first-child{font:var(--eui-f-m-bold);margin-bottom:var(--eui-s-2xs);min-height:var(--eui-s-l)}.eui-input-group:not(.row) .eui-input-radio+label,.eui-input-group:not(.row) .eui-input-checkbox+label{left:calc(var(--eui-s-2xl));margin-bottom:calc(-1 * var(--eui-s-2xs));position:relative;vertical-align:middle;white-space:inherit;bottom:var(--eui-s-xl)}.eui-input-group:not(.row) div{align-items:center
|
18
|
+
args: [{ selector: 'div[euiInputGroup]', template: '<ng-content></ng-content>', encapsulation: ViewEncapsulation.None, styles: [".eui-input-group{align-items:flex-start;display:flex;flex-direction:column;margin-bottom:var(--eui-s-m);position:relative;width:100%}.eui-input-group>.eui-label{align-items:center;display:inline-flex}.eui-input-group>.eui-label:first-child{font:var(--eui-f-m-bold);margin-bottom:var(--eui-s-2xs);min-height:var(--eui-s-l)}.eui-input-group:not(.row) .eui-input-radio+label,.eui-input-group:not(.row) .eui-input-checkbox+label{left:calc(var(--eui-s-2xl));margin-bottom:calc(-1 * var(--eui-s-2xs));position:relative;vertical-align:middle;white-space:inherit;bottom:var(--eui-s-xl)}.eui-input-group:not(.row) div{align-items:center}.eui-input-group:not(.row) div .eui-input-checkbox+label{margin-bottom:0;padding-right:0;top:0;left:0}.eui-input-group:not(.row) div .eui-input-radio+label{padding-right:0;top:0;left:0}.eui-input-group.row{align-items:center;flex-direction:row}.eui-input-group.row .eui-label{align-items:center;display:flex;justify-content:flex-end;margin-bottom:0!important;margin-top:0;padding-right:0;text-align:right;font:var(--eui-f-m);white-space:normal}.eui-input-group.row .eui-label:first-child{font:var(--eui-f-m-bold)}@media screen and (max-width: 767px){.eui-input-group.row{flex-direction:column}.eui-input-group.row label,.eui-input-group.row .eui-label{justify-content:flex-start;text-align:left}}.eui-input-group-addon{align-items:stretch;display:flex;position:relative;width:100%}.eui-input-group-addon-item{align-items:center;align-self:stretch;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lighter);border-radius:var(--eui-br-none);box-shadow:none;color:var(--eui-c-neutral);display:flex;flex-shrink:0;font:var(--eui-f-m-compact);height:auto;justify-content:center;min-height:var(--eui-s-3xl);min-width:var(--eui-s-3xl);padding:0 var(--eui-s-xs)}.eui-input-group-addon>:not(:first-child){border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none)}.eui-input-group-addon>:not(:last-child){border-bottom-left-radius:var(--eui-br-m);border-top-left-radius:var(--eui-br-m);border-bottom-right-radius:var(--eui-br-none);border-top-right-radius:var(--eui-br-none)}.eui-input-group-addon>:not(:first-child):not(:last-child){border-radius:var(--eui-br-none)}.eui-input-group-addon>:last-child:not(:first-child){border-radius:var(--eui-br-none) var(--eui-br-m) var(--eui-br-m) var(--eui-br-none)}.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-select{border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none);margin-left:-1px}.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-autocomplete__wrapper .eui-select,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-textarea__wrapper .eui-select,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-textarea,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-input-text,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-input-number,.eui-input-group-addon .eui-input-group-addon-item+.eui-input-maxlength-wrapper .eui-select{border-bottom-left-radius:var(--eui-br-none);border-top-left-radius:var(--eui-br-none);margin-left:-1px}.eui-input-group-addon .eui-select,.eui-input-group-addon .eui-button,.eui-input-group-addon eui-dropdown{margin-left:-2px}.eui-input-group-addon .eui-input-text+.eui-input-group-addon-item,.eui-input-group-addon .eui-input-number+.eui-input-group-addon-item{border-left-color:transparent}.eui-input-group-addon .eui-button,.eui-input-group-addon .eui-textarea{margin-left:-1px}\n"] }]
|
19
19
|
}], propDecorators: { e2eAttr: [{
|
20
20
|
type: HostBinding,
|
21
21
|
args: ['attr.data-e2e']
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-input-group.mjs","sources":["../../eui-input-group/eui-input-group.component.ts","../../eui-input-group/eui-input-group.module.ts","../../eui-input-group/eui-components-eui-input-group.ts"],"sourcesContent":["import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroup]',\n styleUrls: ['./styles/_index.scss'],\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiInputGroupComponent {\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group';\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group';\n }\n\n @HostBinding('attr.type') protected type = 'inputGroup';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputGroupComponent } from './eui-input-group.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EuiInputGroupComponent],\n exports: [EuiInputGroupComponent],\n})\nexport class EuiInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQ2C,IAAO,CAAA,OAAA,GAAG,iBAAiB,CAAC;QAM/B,IAAI,CAAA,IAAA,GAAG,YAAY,CAAC;AAC3D,KAAA;AANG,IAAA,IACW,UAAU,GAAA;AACjB,QAAA,OAAO,iBAAiB,CAAC;KAC5B;8GALQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2MAHrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,
|
1
|
+
{"version":3,"file":"eui-components-eui-input-group.mjs","sources":["../../eui-input-group/eui-input-group.component.ts","../../eui-input-group/eui-input-group.module.ts","../../eui-input-group/eui-components-eui-input-group.ts"],"sourcesContent":["import { Component, HostBinding, Input, ViewEncapsulation } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'div[euiInputGroup]',\n styleUrls: ['./styles/_index.scss'],\n template: '<ng-content></ng-content>',\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiInputGroupComponent {\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-input-group';\n @HostBinding('class')\n public get cssClasses(): string {\n return 'eui-input-group';\n }\n\n @HostBinding('attr.type') protected type = 'inputGroup';\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiInputGroupComponent } from './eui-input-group.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [EuiInputGroupComponent],\n exports: [EuiInputGroupComponent],\n})\nexport class EuiInputGroupModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;MASa,sBAAsB,CAAA;AAPnC,IAAA,WAAA,GAAA;QAQ2C,IAAO,CAAA,OAAA,GAAG,iBAAiB,CAAC;QAM/B,IAAI,CAAA,IAAA,GAAG,YAAY,CAAC;AAC3D,KAAA;AANG,IAAA,IACW,UAAU,GAAA;AACjB,QAAA,OAAO,iBAAiB,CAAC;KAC5B;8GALQ,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,2MAHrB,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,uwIAAA,CAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAG5B,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAPlC,SAAS;AAEI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,oBAAoB,EAEpB,QAAA,EAAA,2BAA2B,EACtB,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAAA,MAAA,EAAA,CAAA,uwIAAA,CAAA,EAAA,CAAA;8BAGE,OAAO,EAAA,CAAA;sBAA7C,WAAW;uBAAC,eAAe,CAAA;;sBAAG,KAAK;gBAEzB,UAAU,EAAA,CAAA;sBADpB,WAAW;uBAAC,OAAO,CAAA;gBAKgB,IAAI,EAAA,CAAA;sBAAvC,WAAW;uBAAC,WAAW,CAAA;;;MCPf,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA,EAAA;AAAnB,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,mBAAmB,EAHb,YAAA,EAAA,CAAA,sBAAsB,CAD3B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,sBAAsB,CAAA,EAAA,CAAA,CAAA,EAAA;AAEvB,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,mBAAmB,YAJlB,YAAY,CAAA,EAAA,CAAA,CAAA,EAAA;;2FAIb,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACN,OAAO,EAAE,CAAC,YAAY,CAAC;oBACvB,YAAY,EAAE,CAAC,sBAAsB,CAAC;oBACtC,OAAO,EAAE,CAAC,sBAAsB,CAAC;AACpC,iBAAA,CAAA;;;ACRD;;AAEG;;;;"}
|
@@ -250,6 +250,7 @@ class EuiMenuComponent {
|
|
250
250
|
this.hasBoldRootLevel = false;
|
251
251
|
this.isClick = new EventEmitter();
|
252
252
|
this.itemClick = new EventEmitter();
|
253
|
+
this.expandToggle = new EventEmitter();
|
253
254
|
this.hasExpandIcon = true;
|
254
255
|
}
|
255
256
|
/**
|
@@ -469,6 +470,7 @@ class EuiMenuComponent {
|
|
469
470
|
}
|
470
471
|
onExpandToggle(item) {
|
471
472
|
if (item.children) {
|
473
|
+
this.expandToggle.emit(item);
|
472
474
|
this.onExpandToggled(item, this.items);
|
473
475
|
// TODO: investigate why the above is needed. Can it be simply "item.expanded = !item.expanded;" ?
|
474
476
|
}
|
@@ -717,7 +719,7 @@ class EuiMenuComponent {
|
|
717
719
|
return this.filterInput?.nativeElement?.value.length > 0;
|
718
720
|
}
|
719
721
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EuiMenuComponent, deps: [{ token: i1$1.Router }, { token: i1$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
720
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute] }, outputs: { isClick: "isClick", itemClick: "itemClick" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef }, { propertyName: "menuItemsComponents", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-filter--collapsed{padding:0;height:0}.eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-info-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$1.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5$1.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasExpandIcon", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials", "hasBoldRootLevel"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
722
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.1.0", type: EuiMenuComponent, selector: "eui-menu", inputs: { items: "items", searchFilterLabel: "searchFilterLabel", externalLinkLabel: "externalLinkLabel", fragmentId: "fragmentId", filterValue: "filterValue", isCollapsed: ["isCollapsed", "isCollapsed", booleanAttribute], hasCollapsedInitials: ["hasCollapsedInitials", "hasCollapsedInitials", booleanAttribute], hasFilter: ["hasFilter", "hasFilter", booleanAttribute], hasIcons: ["hasIcons", "hasIcons", booleanAttribute], hasTooltip: ["hasTooltip", "hasTooltip", booleanAttribute], expandAllItems: ["expandAllItems", "expandAllItems", booleanAttribute], isFlat: ["isFlat", "isFlat", booleanAttribute], hasScrollToItem: ["hasScrollToItem", "hasScrollToItem", booleanAttribute], hasBoldRootLevel: ["hasBoldRootLevel", "hasBoldRootLevel", booleanAttribute] }, outputs: { isClick: "isClick", itemClick: "itemClick", expandToggle: "expandToggle" }, host: { listeners: { "click": "stopPropagation($event)" }, properties: { "class": "this.cssClasses" } }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filterInput"], descendants: true, read: ElementRef }, { propertyName: "menuItemsComponents", predicate: EuiMenuItemComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n", styles: [".eui-menu{display:flex;flex-direction:column;gap:0;list-style:none;margin-block-start:0;margin-block-end:0;margin:0;padding:0;width:100%}.eui-menu:focus:not([readonly]){outline:2px solid var(--eui-c-focus)!important;outline-offset:-2px!important;transition:none}.eui-menu:focus-visible:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu [tabindex=\"0\"]:focus:not([readonly]){outline:2px solid var(--eui-c-focus-visible)!important;outline-offset:-2px!important;transition:none}.eui-menu--collapsed .eui-menu-filter{transition:none;visibility:hidden}.eui-menu--collapsed .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item__link-start-block{gap:0}.eui-menu--collapsed .eui-menu-item__link-content-block,.eui-menu--collapsed .eui-menu-item__link-end-block{visibility:hidden}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-action-icon{display:none}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-dotted-badge{position:absolute;top:var(--eui-s-2xs);right:var(--eui-s-2xs);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-end-block .eui-menu-item__link-toggle{display:inherit;position:absolute;right:calc(-1 * var(--eui-s-xs));transform:scale(.75);visibility:visible}.eui-menu--collapsed .eui-menu-item__link-initials{display:flex;background-color:var(--eui-c-neutral-bg-light);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-s-xs);font:var(--eui-f-s-bold);justify-content:center;margin-left:calc(-1 * var(--eui-s-2xs));min-width:var(--eui-s-2xl)}.eui-menu--collapsed .eui-menu-item--expanded:first-child{border-bottom:none;padding-bottom:0}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-m)}.eui-menu--collapsed .eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-s)}.eui-menu--no-items{color:var(--eui-c-neutral-lighter);text-align:center}.eui-menu-filter{display:flex;padding:var(--eui-s-m);position:relative;width:100%}.eui-menu-filter--collapsed{padding:0;height:0}.eui-menu-filter--collapsed .eui-icon-svg{display:none}.eui-menu-item{display:flex;position:relative;width:100%;border:var(--eui-bw-xs) solid transparent}.eui-menu-item:focus-visible>.eui-menu-item__content{outline:1px solid var(--eui-c-primary);outline-offset:-2px}.eui-menu-item .eui-menu-item__content{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link{align-items:center;color:var(--eui-c-text);cursor:pointer;display:flex;font:var(--eui-f-m);gap:var(--eui-s-xs);min-height:var(--eui-s-4xl);padding:0 var(--eui-s-xs) 0 var(--eui-s-m);margin-bottom:calc(-1 * var(--eui-s-2xs));border-top:1px solid var(--eui-c-neutral-bg);text-decoration:none;width:100%}.eui-menu-item__link-start-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link-start-block:empty{display:none}.eui-menu-item__link-content-block{display:flex;flex-direction:column;width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container{align-items:center;display:flex;position:relative;width:100%}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label{color:var(--eui-c-text);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-content-block .eui-menu-item__link-label-container .eui-menu-item__link-label-category{cursor:default;color:var(--eui-c-info-darker);font:var(--eui-f-bold);opacity:var(--eui-o-75);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eui-menu-item__link-end-block{align-items:center;display:flex;gap:var(--eui-s-xs)}.eui-menu-item__link:hover:not(.eui-menu-item--disabled):not(.eui-menu-item__link-category){background-color:var(--eui-c-primary-bg);text-decoration:none}.eui-menu-item__link--disabled{opacity:var(--eui-o-50);pointer-events:none}.eui-menu-item__link--active:not(.eui-menu-item--disabled){background-color:var(--eui-c-primary-bg);font:var(--eui-f-m-bold)}.eui-menu-item__link--active:not(.eui-menu-item--disabled) .eui-menu-item__link-label{color:var(--eui-c-primary)}.eui-menu-item--expanded{display:flex;flex-direction:column}.eui-menu-item--expanded .eui-menu-item--expanded .eui-menu-sub .eui-menu-item__link{padding-left:var(--eui-s-3xl)}.eui-menu-item .eui-menu-sub .eui-menu-item__link{min-height:var(--eui-s-3xl);padding-left:var(--eui-s-xl);border-top:0}.eui-menu-item--bold>.eui-menu-item__content>.eui-menu-item__link{font:var(--eui-f-m-bold)}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i3$1.EuiIconInputComponent, selector: "eui-icon-input", inputs: ["euiIconPositionStart", "euiIconPositionEnd"] }, { kind: "component", type: i3.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "style", "iconUrl", "transform", "euiVariant", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "component", type: i5$1.EuiInputTextComponent, selector: "input[euiInputText]", inputs: ["isInvalid"] }, { kind: "component", type: EuiMenuItemComponent, selector: "eui-menu-item", inputs: ["item", "parent", "hasExpandIcon", "hasIcon", "hasTooltip", "isCollapsed", "hasCollapsedInitials", "hasBoldRootLevel"], outputs: ["expandToggle", "itemClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
721
723
|
}
|
722
724
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImport: i0, type: EuiMenuComponent, decorators: [{
|
723
725
|
type: Component,
|
@@ -772,6 +774,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.0", ngImpor
|
|
772
774
|
type: Output
|
773
775
|
}], itemClick: [{
|
774
776
|
type: Output
|
777
|
+
}], expandToggle: [{
|
778
|
+
type: Output
|
775
779
|
}],
|
776
780
|
/**
|
777
781
|
* @deprecated pass the event as MouseEvent. Will be removed on next eUI release.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"eui-components-eui-menu.mjs","sources":["../../eui-menu/eui-menu-item.component.ts","../../eui-menu/eui-menu-item.component.html","../../eui-menu/eui-menu.component.ts","../../eui-menu/eui-menu.component.html","../../eui-menu/eui-menu.module.ts","../../eui-menu/eui-components-eui-menu.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, OnChanges, FocusableOption {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.aria-haspopup')\n get ariaHasPopup(): boolean {\n return this.item?.children?.length > 0 ? true : undefined;\n }\n @HostBinding('attr.aria-expanded')\n get ariaExpanded(): boolean {\n return this.item.children ? coerceBooleanProperty(this.item.expanded) : undefined;\n }\n @HostBinding('attr.aria-disabled')\n get ariaDisabled(): boolean {\n return this.item.disabled\n }\n\n @Input() item: EuiMenuItem;\n @Input() parent: EuiMenuItem;\n @Input() hasExpandIcon = true;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n isActionIconFocused = false;\n\n @Input({ transform: booleanAttribute }) hasIcon: boolean;\n @Input({ transform: booleanAttribute }) hasTooltip: boolean;\n @Input({ transform: booleanAttribute }) isCollapsed: boolean;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials: boolean;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.item && changes.item.isFirstChange()) {\n this.item = changes.item.currentValue;\n if(!this.item.urlExternalTarget) {\n this.item.urlExternalTarget = '_blank';\n }\n if(this.item.filtered === undefined) {\n this.item.filtered = true;\n }\n if(this.item.disabled === undefined) {\n this.item.visible = true;\n }\n }\n }\n\n public stopPropagation(event: MouseEvent): void;\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n return this.item.tooltip || this.getTooltipFromItem(this.item);\n }\n return null;\n }\n\n public onClick(event: MouseEvent | KeyboardEvent): void;\n /**\n * @deprecated pass the event as MouseEvent or KeyboardEvent. Will be removed on next eUI release.\n * @param event\n */\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n this.focus();\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick(event: MouseEvent): void;\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n public onActionIconClick(event: Event): void {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n public onActionIconKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n }\n\n public focusActionIcon(): void {\n this.elementRef.nativeElement.querySelector('.eui-menu-item__link-action-icon').focus();\n this.isActionIconFocused = true;\n }\n\n onActionIconFocusOut(): void {\n this.isActionIconFocused = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Check if an element is visible in the viewport\n * @param partiallyVisible\n */\n elementIsVisibleInViewport(partiallyVisible = false): boolean {\n const { top, left, bottom, right } = this.elementRef.nativeElement.getBoundingClientRect();\n const { innerHeight, innerWidth } = window as Window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n }\n\n /**\n * Scroll the element into view\n * @param properties\n */\n scrollIntoView(properties: unknown): void {\n this.elementRef.nativeElement.scrollIntoView(properties);\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n return item.label && item.tagLabel ? `${item.label} (${item.tagLabel})` : item.label ||\n item.tagLabel ||\n null;\n }\n\n private getAriaLabel(): string {\n return this.item.label ||\n this.item.tagLabel ||\n (this.item.actionIcon && this.item.actionIcon.label) ||\n this.item.iconLabel ||\n 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [\n 'eui-menu-item',\n !this.parent && this.hasBoldRootLevel ? 'eui-menu-item--bold' : '',\n ].join(' ').trim();\n }\n}\n","@if (item.visible && item.filtered) {\n @if (isLabelItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item__content\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n tabindex=\"-1\"\n position=\"after\">\n\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link eui-menu-item__link-category\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label-category\">{{ item.label }}</span>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n </a>\n </li>\n }\n\n @if (isUrlItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded || item.filtered\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n [routerLink]=\"item.url ? item.url : null\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\"\n tabindex=\"-1\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n\n @if (isLinkItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded || item.filtered\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n}\n\n<ng-template #linkContent>\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label\">{{ item.label }}</span>\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"2xs\"\n aria-label=\"external link icon\"\n euiEnd>\n </eui-icon-svg>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n</ng-template>\n\n<!-- PROJECTED CONTENT BLOCK -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- PROJECTED START BLOCK -->\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n @if (hasIcon) {\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\">\n </eui-icon-svg>\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n @else if (!isLabelItem) {\n <!-- DEFAULT for non category items -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"ellipse:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\">\n </eui-icon-svg>\n }\n } @else if (item.hasMarker) {\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (hasIcon) {\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\">\n </eui-icon-svg>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n } @else {\n <!-- DEFAULT -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"ellipse:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon eui-u-ml-2xs\"\n icon=\"square:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n\n<!-- PROJECTED END BLOCK -->\n<ng-template #itemEndContent>\n @if (item.tagLabel) {\n @if (isCollapsed) {\n <eui-badge [euiVariant]=\"item.tagTypeClass\" class=\"eui-menu-item__link-dotted-badge\"></eui-badge>\n } @else {\n <eui-badge [euiVariant]=\"item.tagTypeClass\">\n {{ item.tagLabel }}\n </eui-badge>\n }\n }\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n tabindex=\"-1\"\n (keydown)=\"onActionIconKeyDown($event)\"\n (focusout)=\"onActionIconFocusOut()\"\n (focus)=\"focusActionIcon()\"\n class=\"eui-menu-item__link-action-icon\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n @if (hasExpandIcon) {\n <eui-icon-button *ngIf=\"item.children?.length > 0\"\n class=\"eui-menu-item__link-toggle\"\n [icon]=\"item.expanded ? 'chevron-up:sharp': 'chevron-down:sharp'\"\n (buttonClick)=\"onExpandToggle($event)\"\n [ariaLabel]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n euiRounded\n size=\"s\"\n [tabindex]=\"-1\"\n [euiDisabled]=\"item.disabled\"/>\n }\n</ng-template>\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\n\nimport { consumeEvent } from '@eui/core';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\n\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) protected menuItemsComponents: QueryList<EuiMenuItemComponent>;\n @ViewChild('filterInput', { read: ElementRef }) protected filterInput: ElementRef<HTMLInputElement>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n 'eui-menu',\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n @Input() filterValue = '';\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = true;\n /**\n * Expand all items in the menu. Affects only items that have no expanded property set.\n * e.g. items = [{label: test, expanded: true}, {label: test2, expanded: false}, {label: test3}] will expand only test3.\n */\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n protected hasExpandIcon = true;\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private cd: ChangeDetectorRef,\n ) {}\n\n stopPropagation(event: MouseEvent): void;\n @HostListener('click', ['$event'])\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n onKeydown(event: KeyboardEvent): void {\n // finds first child when ArrowDown\n const firstChild = this.focusKeyManager.activeItem?.item.children? this.findFirstFilteredItem(this.focusKeyManager.activeItem?.item.children) : undefined;\n const firstFocusableItem = this.findFocusableItem(firstChild);\n // finds the parent element\n const parent = this.focusKeyManager.activeItem?.item.parent;\n const parentFocusableItem = this.findFocusableItem(parent);\n switch (event.key) {\n case 'Enter': {\n if (\n (this.focusKeyManager.activeItem.isLinkItem || this.focusKeyManager.activeItem.isUrlItem) &&\n !this.focusKeyManager.activeItem.disabled\n ) {\n this.focusKeyManager.activeItem.onClick(event);\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.isFilterEnabled()) {\n break;\n }\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (!this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem?.onExpandToggle(event);\n this.cd.detectChanges();\n }\n break;\n }\n }\n case 'ArrowLeft': {\n if(this.isFilterEnabled()) {\n break;\n }\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem.onExpandToggle(event);\n this.cd.detectChanges();\n event.preventDefault();\n }\n break;\n }\n }\n case 'ArrowDown': {\n event.preventDefault();\n if (this.shouldRenderChild(this.focusKeyManager.activeItem?.item)) {\n //focuses first child\n firstFocusableItem?.focus();\n this.focusKeyManager.updateActiveItem(firstFocusableItem);\n } else if (parent) {\n // finds last filtered child when ArrowDown and navigating within submenu\n const filteredChildren = this.findFilteredItems(parent.children);\n const lastChildIndex = (filteredChildren?.length) - 1;\n const lastChild = filteredChildren[lastChildIndex];\n const lastFocusableItem = this.findFocusableItem(lastChild);\n // if the active item is the last child, puts the focus on the next parent\n if(this.focusKeyManager.activeItem === lastFocusableItem){\n this.focusKeyManager.updateActiveItem(parentFocusableItem);\n this.focusKeyManager.setNextItemActive();\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex +1);\n }\n } else {\n // skips remaining children in the query list when there is expanded node\n this.focusKeyManager.skipPredicate(menuItem => menuItem.parent != undefined || menuItem.item.visible === false);\n this.focusKeyManager.onKeydown(event);\n }\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n if (parent) {\n // finds first filtered child when ArrowUp\n const filteredChildren = this.findFilteredItems(parent.children);\n const firstChildUp = filteredChildren['0']\n const firstFocusableItemUp = this.findFocusableItem(firstChildUp);\n // when navigating up on a submenu focuses the parent if the active item is the first child\n if(this.focusKeyManager.activeItem === firstFocusableItemUp){\n this.focusKeyManager.setActiveItem(parentFocusableItem);\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex -1);\n }\n } else {\n this.focusKeyManager.onKeydown(event);\n // when navigating up from a parent element to an expanded submenu, finds the last child and focuses it\n if(this.shouldRenderChild(this.focusKeyManager.activeItem?.item)){\n const filteredChildren = this.findFilteredItems(this.focusKeyManager.activeItem?.item.children);\n const lastChildIndexUp = (filteredChildren.length) - 1;\n const lastFocusableItemUp =this.findFocusableItem(filteredChildren[lastChildIndexUp]);\n this.focusKeyManager.setActiveItem(lastFocusableItemUp);\n }\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n\n if (changes.filterValue && this.hasFilter) {\n this.onFilter(changes.filterValue.currentValue ?? '');\n }\n\n // Refresh when interactive collapsed to initials\n if (changes.hasCollapsedInitials) {\n this.hasCollapsedInitials = changes.hasCollapsedInitials.currentValue;\n this.items = this.configureItems(this.items);\n }\n\n if(changes.hasScrollToItem){\n this.hasScrollToItem = changes.hasScrollToItem.currentValue;\n if(this.hasScrollToItem){\n this.scrollToItem(this.router.url);\n }\n }\n\n if(changes.hasFilter){\n this.hasFilter = changes.hasFilter.currentValue;\n if(!this.hasFilter) {\n // iterate through all items and reset the filtered property\n this.items = this.filterMenuItems(this.items, '')\n }\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n // subscription to routes url changes for activating the scrollIntoView\n this.router.events.subscribe((event) => {\n // Handle route change event\n if (event instanceof NavigationEnd) {\n if (this.hasScrollToItem) {\n this.scrollToItem(event.url);\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.menuItemsComponents).withWrap();\n\n // scrolls to the item that matches the current url\n if(this.hasScrollToItem){\n this.scrollToItem(this.router.url);\n }\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n protected onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget || '_blank');\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n\n const focusedItem = this.findFocusableItem(item);\n this.focusKeyManager.updateActiveItem(focusedItem);\n }\n\n protected onExpandToggle(item: EuiMenuItem): void {\n if (item.children) {\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n }\n\n protected onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n /**\n * Filter the menu items based on the input value\n * @param event\n * @protected\n */\n protected onFilter(event: Event): void;\n protected onFilter(value: string): void;\n protected onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this.items = this.filterMenuItems(this.items, value);\n this.hasExpandIcon = !(this.isFilterEnabled());\n }\n\n /**\n * Check if the children of an item should be rendered. The children should be rendered if the item is expanded\n * or if the item is filtered and the filter input has a value. There are two cases when the filter input has a value:\n * 1. The user has typed something in the filter input\n * 2. The user has typed something in the filter input and the item is filtered\n * In general there are two states to be taken into account, the expanded state and the filtered state.\n *\n * @param item\n * @protected\n */\n protected shouldRenderChild(item: EuiMenuItem): boolean {\n return item?.children &&\n (\n item?.expanded || (\n this.hasFilter &&\n item?.filtered &&\n this.isFilterEnabled()\n )\n )\n }\n\n /**\n * finds the EuiMenuItemComponent in the queried focusableItems[] that matches the passed EuiMenuItem object\n *\n * @param menuItem an EuiMenuItem\n * @private\n */\n private findFocusableItem(menuItem: EuiMenuItem ): EuiMenuItemComponent {\n return this.menuItemsComponents.find(\n (focusableItem) => focusableItem.item.label === menuItem?.label && focusableItem.item.id === menuItem.id,\n );\n }\n\n /**\n * finds the first item that is filtered\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFirstFilteredItem(menuItems: EuiMenuItem []): EuiMenuItem {\n return menuItems.find((item) => item.filtered);\n }\n\n /**\n * finds all filtered menu items\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFilteredItems(menuItems: EuiMenuItem []): EuiMenuItem [] {\n return menuItems.filter((items) => items.filtered);\n }\n\n /**\n * checks the focus state of the action icon\n *\n * @private\n */\n private checkActionIconFocusState(): void {\n // check if the action icon is focused and if not focus it, otherwise focus the active item\n !this.focusKeyManager.activeItem.isActionIconFocused ? this.focusKeyManager.activeItem.focusActionIcon() : this.focusKeyManager.activeItem.focus();\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems?.map((item: EuiMenuItem) => {\n const found = item.label?.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n }) || [];\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded: boolean, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = item.expanded ?? isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n // make sure the items are configured with a unique id\n this.items = this.items?.map((item) => this.setRandomId(item));\n\n if (item.label && this.hasCollapsedInitials) {\n const words = item.label.split(' ');\n if (words.length === 1) {\n item.initials = `${item.label.substring(0, 1)}${item.label.substring(1, 1)}`;\n\n } else {\n item.initials = `${words[0].substring(0, 1)}${words[1].substring(0, 1)}`;\n }\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param url\n * @param items\n * @param relevantItem\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substring(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n\n /**\n * Set a random id to an item and its child if they don't have one\n * @param item\n * @private\n */\n private setRandomId(item: EuiMenuItem): EuiMenuItem {\n item.id = item.id || crypto.randomUUID();\n if(item.children){\n item.children = item.children.map((child) => {\n return this.setRandomId(child);\n });\n }\n return item;\n }\n\n /**\n * Scroll to an item if it's not visible in the viewport\n * @param url\n * @private\n */\n private scrollToItem(url: string): void {\n const item = this.findMostRelevantItem(url, this.items);\n if (item) {\n // change the state of that item to expanded if it's not\n this.expandToGivenItem(item);\n setTimeout(_ => {\n const menuItem = this.menuItemsComponents?.find((menuItem) => menuItem.item.id === item.id);\n if(menuItem && !menuItem.elementIsVisibleInViewport()){\n menuItem.scrollIntoView({ behavior: 'smooth' });\n }\n }, 300);\n }\n }\n\n /**\n * Check if the filter input has a value\n * @private\n */\n private isFilterEnabled(): boolean {\n return this.filterInput?.nativeElement?.value.length > 0\n }\n}\n","@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconInputModule } from '@eui/components/eui-icon-input';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n EuiIconInputModule,\n EuiIconModule,\n EuiIconButtonModule,\n EuiChipModule,\n EuiButtonModule,\n EuiInputTextModule,\n EuiTooltipDirectiveModule,\n EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4","i5","i6.EuiMenuItemComponent"],"mappings":"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"}
|
1
|
+
{"version":3,"file":"eui-components-eui-menu.mjs","sources":["../../eui-menu/eui-menu-item.component.ts","../../eui-menu/eui-menu-item.component.html","../../eui-menu/eui-menu.component.ts","../../eui-menu/eui-menu.component.html","../../eui-menu/eui-menu.module.ts","../../eui-menu/eui-components-eui-menu.ts"],"sourcesContent":["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, OnChanges, FocusableOption {\n\n @HostBinding('attr.role') role = 'menuitem';\n @HostBinding('attr.aria-label') ariaLabel = '';\n\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.tabindex') tabindex = '-1';\n @HostBinding('attr.aria-haspopup')\n get ariaHasPopup(): boolean {\n return this.item?.children?.length > 0 ? true : undefined;\n }\n @HostBinding('attr.aria-expanded')\n get ariaExpanded(): boolean {\n return this.item.children ? coerceBooleanProperty(this.item.expanded) : undefined;\n }\n @HostBinding('attr.aria-disabled')\n get ariaDisabled(): boolean {\n return this.item.disabled\n }\n\n @Input() item: EuiMenuItem;\n @Input() parent: EuiMenuItem;\n @Input() hasExpandIcon = true;\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n @Output() itemClick = new EventEmitter<EuiMenuItem>();\n\n expandMenuLabel = 'Expand';\n collapseMenuLabel = 'Collapse';\n\n isUrlItem = false;\n isLinkItem = false;\n isLabelItem = false;\n isActionIconFocused = false;\n\n @Input({ transform: booleanAttribute }) hasIcon: boolean;\n @Input({ transform: booleanAttribute }) hasTooltip: boolean;\n @Input({ transform: booleanAttribute }) isCollapsed: boolean;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials: boolean;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel: boolean;\n\n constructor(private elementRef: ElementRef) {}\n\n ngOnInit(): void {\n this.isUrlItem = (this.item.url || this.item.urlExternal || this.item.children || this.item.command) && !this.item.link;\n this.isLabelItem = !this.item.url && !this.item.urlExternal && !this.item.command && !this.item.children && !this.item.link;\n\n this.isLinkItem = !this.isUrlItem && !this.isLabelItem;\n this.ariaLabel = this.getAriaLabel();\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.item && changes.item.isFirstChange()) {\n this.item = changes.item.currentValue;\n if(!this.item.urlExternalTarget) {\n this.item.urlExternalTarget = '_blank';\n }\n if(this.item.filtered === undefined) {\n this.item.filtered = true;\n }\n if(this.item.disabled === undefined) {\n this.item.visible = true;\n }\n }\n }\n\n public stopPropagation(event: MouseEvent): void;\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n @HostListener('click', ['$event'])\n public stopPropagation(event: Event): void {\n this.itemClick.emit(this.item);\n consumeEvent(event);\n }\n\n get menuItemTooltip(): string {\n if (this.hasTooltip && this.isCollapsed) {\n return this.item.tooltip || this.getTooltipFromItem(this.item);\n }\n return null;\n }\n\n public onClick(event: MouseEvent | KeyboardEvent): void;\n /**\n * @deprecated pass the event as MouseEvent or KeyboardEvent. Will be removed on next eUI release.\n * @param event\n */\n public onClick(event: Event): void {\n this.itemClick.emit(this.item);\n this.focus();\n consumeEvent(event);\n }\n\n public onExpandToggle(event: Event): void {\n this.expandToggle.emit(this.item);\n consumeEvent(event);\n }\n\n public onActionIconClick(event: MouseEvent): void;\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n public onActionIconClick(event: Event): void {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n public onActionIconKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n }\n\n public focusActionIcon(): void {\n this.elementRef.nativeElement.querySelector('.eui-menu-item__link-action-icon').focus();\n this.isActionIconFocused = true;\n }\n\n onActionIconFocusOut(): void {\n this.isActionIconFocused = false;\n }\n\n public focus(): void {\n this.elementRef.nativeElement.focus();\n }\n\n /**\n * Check if an element is visible in the viewport\n * @param partiallyVisible\n */\n elementIsVisibleInViewport(partiallyVisible = false): boolean {\n const { top, left, bottom, right } = this.elementRef.nativeElement.getBoundingClientRect();\n const { innerHeight, innerWidth } = window as Window;\n return partiallyVisible\n ? ((top > 0 && top < innerHeight) ||\n (bottom > 0 && bottom < innerHeight)) &&\n ((left > 0 && left < innerWidth) || (right > 0 && right < innerWidth))\n : top >= 0 && left >= 0 && bottom <= innerHeight && right <= innerWidth;\n }\n\n /**\n * Scroll the element into view\n * @param properties\n */\n scrollIntoView(properties: unknown): void {\n this.elementRef.nativeElement.scrollIntoView(properties);\n }\n\n private getTooltipFromItem(item: EuiMenuItem): string {\n return item.label && item.tagLabel ? `${item.label} (${item.tagLabel})` : item.label ||\n item.tagLabel ||\n null;\n }\n\n private getAriaLabel(): string {\n return this.item.label ||\n this.item.tagLabel ||\n (this.item.actionIcon && this.item.actionIcon.label) ||\n this.item.iconLabel ||\n 'Eui menu item';\n }\n\n /**\n * Returns the default eui-menu-item class on the HostBinding function\n * @private\n */\n private getCssClasses(): string {\n return [\n 'eui-menu-item',\n !this.parent && this.hasBoldRootLevel ? 'eui-menu-item--bold' : '',\n ].join(' ').trim();\n }\n}\n","@if (item.visible && item.filtered) {\n @if (isLabelItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item__content\"\n [attr.data-e2e]=\"item.e2eAttr\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [attr.aria-disabled]=\"item.disabled\"\n [euiTooltip]=\"menuItemTooltip\"\n tabindex=\"-1\"\n position=\"after\">\n\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link eui-menu-item__link-category\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label-category\">{{ item.label }}</span>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n </a>\n </li>\n }\n\n @if (isUrlItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded || item.filtered\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n [routerLink]=\"item.url ? item.url : null\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\"\n tabindex=\"-1\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n\n @if (isLinkItem) {\n <li\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item__content\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item--expanded]=\"item.expanded || item.filtered\"\n [attr.aria-disabled]=\"item.disabled\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item__link--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\n [class.eui-menu-item__link--has-sub]=\"item.children?.length > 0\"\n href=\"javascript:void(0)\"\n [euiTooltip]=\"menuItemTooltip\"\n position=\"after\">\n <ng-template *ngTemplateOutlet=\"linkContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </a>\n\n <ng-template *ngTemplateOutlet=\"content\"></ng-template>\n </li>\n }\n}\n\n<ng-template #linkContent>\n <div class=\"eui-menu-item__link-start-block\">\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n\n <div class=\"eui-menu-item__link-content-block\">\n <div class=\"eui-menu-item__link-label-container\">\n <span class=\"eui-menu-item__link-label\">{{ item.label }}</span>\n <eui-icon-svg\n *ngIf=\"item.urlExternal && item.urlExternalTarget === '_blank'\"\n class=\"eui-menu-item__label-external\"\n icon=\"eui-ecl-external\"\n size=\"2xs\"\n aria-label=\"external link icon\"\n euiEnd>\n </eui-icon-svg>\n </div>\n </div>\n\n <div class=\"eui-menu-item__link-end-block\">\n <ng-template *ngTemplateOutlet=\"itemEndContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n </div>\n</ng-template>\n\n<!-- PROJECTED CONTENT BLOCK -->\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<!-- PROJECTED START BLOCK -->\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n @if (hasIcon) {\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\">\n </eui-icon-svg>\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n @else if (!isLabelItem) {\n <!-- DEFAULT for non category items -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"ellipse:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\">\n </eui-icon-svg>\n }\n } @else if (item.hasMarker) {\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n }\n\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-c-bg-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (hasIcon) {\n @if (item.iconSvgName) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\">\n </eui-icon-svg>\n\n } @else if (item.hasMarker) {\n <!-- MARKER -->\n <eui-icon-svg\n class=\"eui-menu-item__link-marker\"\n fillColor=\"{{ item?.markerTypeClass }}\"\n icon=\"ellipse:sharp\"\n size=\"2xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n } @else {\n <!-- DEFAULT -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"ellipse:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon eui-u-ml-2xs\"\n icon=\"square:sharp\"\n fillColor=\"neutral-light\"\n size=\"2xs\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n\n<!-- PROJECTED END BLOCK -->\n<ng-template #itemEndContent>\n @if (item.tagLabel) {\n @if (isCollapsed) {\n <eui-badge [euiVariant]=\"item.tagTypeClass\" class=\"eui-menu-item__link-dotted-badge\"></eui-badge>\n } @else {\n <eui-badge [euiVariant]=\"item.tagTypeClass\">\n {{ item.tagLabel }}\n </eui-badge>\n }\n }\n\n <button\n *ngIf=\"item.actionIcon\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n type=\"button\"\n tabindex=\"-1\"\n (keydown)=\"onActionIconKeyDown($event)\"\n (focusout)=\"onActionIconFocusOut()\"\n (focus)=\"focusActionIcon()\"\n class=\"eui-menu-item__link-action-icon\"\n [euiDisabled]=\"item.disabled\"\n [attr.aria-label]=\"item.actionIcon?.label\"\n (click)=\"onActionIconClick($event)\">\n <eui-icon-svg [icon]=\"item.actionIcon?.icon\" [fillColor]=\"item.actionIcon?.color\"></eui-icon-svg>\n </button>\n\n @if (hasExpandIcon) {\n <eui-icon-button *ngIf=\"item.children?.length > 0\"\n class=\"eui-menu-item__link-toggle\"\n [icon]=\"item.expanded ? 'chevron-up:sharp': 'chevron-down:sharp'\"\n (buttonClick)=\"onExpandToggle($event)\"\n [ariaLabel]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n euiRounded\n size=\"s\"\n [tabindex]=\"-1\"\n [euiDisabled]=\"item.disabled\"/>\n }\n</ng-template>\n","import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\n\nimport { consumeEvent } from '@eui/core';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from './models/eui-menu-item.model';\n\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) protected menuItemsComponents: QueryList<EuiMenuItemComponent>;\n @ViewChild('filterInput', { read: ElementRef }) protected filterInput: ElementRef<HTMLInputElement>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n 'eui-menu',\n this.isCollapsed ? 'eui-menu--collapsed' : '',\n !this.hasIcons ? 'eui-menu--no-icons' : '',\n this.isFlat ? 'eui-menu--flat': '',\n ].join(' ').trim();\n }\n\n @Input() items: EuiMenuItem[];\n @Input() searchFilterLabel: string;\n @Input() externalLinkLabel: string;\n @Input() fragmentId: string;\n @Input() filterValue = '';\n\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n @Input({ transform: booleanAttribute }) hasFilter = false;\n @Input({ transform: booleanAttribute }) hasIcons = false;\n @Input({ transform: booleanAttribute }) hasTooltip = true;\n /**\n * Expand all items in the menu. Affects only items that have no expanded property set.\n * e.g. items = [{label: test, expanded: true}, {label: test2, expanded: false}, {label: test3}] will expand only test3.\n */\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n @Input({ transform: booleanAttribute }) hasBoldRootLevel = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n @Output() expandToggle = new EventEmitter<EuiMenuItem>();\n\n protected hasExpandIcon = true;\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n private cd: ChangeDetectorRef,\n ) {}\n\n stopPropagation(event: MouseEvent): void;\n @HostListener('click', ['$event'])\n /**\n * @deprecated pass the event as MouseEvent. Will be removed on next eUI release.\n * @param event\n */\n stopPropagation(event: Event): void {\n event.stopPropagation();\n }\n\n onKeydown(event: KeyboardEvent): void {\n // finds first child when ArrowDown\n const firstChild = this.focusKeyManager.activeItem?.item.children? this.findFirstFilteredItem(this.focusKeyManager.activeItem?.item.children) : undefined;\n const firstFocusableItem = this.findFocusableItem(firstChild);\n // finds the parent element\n const parent = this.focusKeyManager.activeItem?.item.parent;\n const parentFocusableItem = this.findFocusableItem(parent);\n switch (event.key) {\n case 'Enter': {\n if (\n (this.focusKeyManager.activeItem.isLinkItem || this.focusKeyManager.activeItem.isUrlItem) &&\n !this.focusKeyManager.activeItem.disabled\n ) {\n this.focusKeyManager.activeItem.onClick(event);\n event.preventDefault();\n }\n break;\n }\n case 'ArrowRight': {\n if(this.isFilterEnabled()) {\n break;\n }\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (!this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem?.onExpandToggle(event);\n this.cd.detectChanges();\n }\n break;\n }\n }\n case 'ArrowLeft': {\n if(this.isFilterEnabled()) {\n break;\n }\n if(this.focusKeyManager.activeItem?.item.actionIcon){\n this.checkActionIconFocusState();\n break;\n } else {\n if (this.focusKeyManager.activeItem?.item.expanded) {\n this.focusKeyManager.activeItem.onExpandToggle(event);\n this.cd.detectChanges();\n event.preventDefault();\n }\n break;\n }\n }\n case 'ArrowDown': {\n event.preventDefault();\n if (this.shouldRenderChild(this.focusKeyManager.activeItem?.item)) {\n //focuses first child\n firstFocusableItem?.focus();\n this.focusKeyManager.updateActiveItem(firstFocusableItem);\n } else if (parent) {\n // finds last filtered child when ArrowDown and navigating within submenu\n const filteredChildren = this.findFilteredItems(parent.children);\n const lastChildIndex = (filteredChildren?.length) - 1;\n const lastChild = filteredChildren[lastChildIndex];\n const lastFocusableItem = this.findFocusableItem(lastChild);\n // if the active item is the last child, puts the focus on the next parent\n if(this.focusKeyManager.activeItem === lastFocusableItem){\n this.focusKeyManager.updateActiveItem(parentFocusableItem);\n this.focusKeyManager.setNextItemActive();\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex +1);\n }\n } else {\n // skips remaining children in the query list when there is expanded node\n this.focusKeyManager.skipPredicate(menuItem => menuItem.parent != undefined || menuItem.item.visible === false);\n this.focusKeyManager.onKeydown(event);\n }\n break;\n }\n case 'ArrowUp': {\n event.preventDefault();\n if (parent) {\n // finds first filtered child when ArrowUp\n const filteredChildren = this.findFilteredItems(parent.children);\n const firstChildUp = filteredChildren['0']\n const firstFocusableItemUp = this.findFocusableItem(firstChildUp);\n // when navigating up on a submenu focuses the parent if the active item is the first child\n if(this.focusKeyManager.activeItem === firstFocusableItemUp){\n this.focusKeyManager.setActiveItem(parentFocusableItem);\n } else {\n this.focusKeyManager.setActiveItem(this.focusKeyManager.activeItemIndex -1);\n }\n } else {\n this.focusKeyManager.onKeydown(event);\n // when navigating up from a parent element to an expanded submenu, finds the last child and focuses it\n if(this.shouldRenderChild(this.focusKeyManager.activeItem?.item)){\n const filteredChildren = this.findFilteredItems(this.focusKeyManager.activeItem?.item.children);\n const lastChildIndexUp = (filteredChildren.length) - 1;\n const lastFocusableItemUp =this.findFocusableItem(filteredChildren[lastChildIndexUp]);\n this.focusKeyManager.setActiveItem(lastFocusableItemUp);\n }\n }\n break;\n }\n default: {\n this.focusKeyManager.onKeydown(event);\n break;\n }\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.items) {\n this.items = this.configureItems(this.items);\n // get current url\n const currentUrl = this.router.url;\n // find an item that matches the current url or the most relevant one\n const item = this.findMostRelevantItem(currentUrl, this.items);\n // expand to that item\n if (item) {\n this.expandToGivenItem(item);\n }\n }\n\n // Expand / Collapse All items\n if (changes.expandAllItems) {\n this.items = this.setExpandedToAllItems(coerceBooleanProperty(changes.expandAllItems.currentValue), this.items);\n }\n\n if (changes.filterValue && this.hasFilter) {\n this.onFilter(changes.filterValue.currentValue ?? '');\n }\n\n // Refresh when interactive collapsed to initials\n if (changes.hasCollapsedInitials) {\n this.hasCollapsedInitials = changes.hasCollapsedInitials.currentValue;\n this.items = this.configureItems(this.items);\n }\n\n if(changes.hasScrollToItem){\n this.hasScrollToItem = changes.hasScrollToItem.currentValue;\n if(this.hasScrollToItem){\n this.scrollToItem(this.router.url);\n }\n }\n\n if(changes.hasFilter){\n this.hasFilter = changes.hasFilter.currentValue;\n if(!this.hasFilter) {\n // iterate through all items and reset the filtered property\n this.items = this.filterMenuItems(this.items, '')\n }\n }\n }\n\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n // subscription to routes url changes for activating the scrollIntoView\n this.router.events.subscribe((event) => {\n // Handle route change event\n if (event instanceof NavigationEnd) {\n if (this.hasScrollToItem) {\n this.scrollToItem(event.url);\n }\n }\n });\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.menuItemsComponents).withWrap();\n\n // scrolls to the item that matches the current url\n if(this.hasScrollToItem){\n this.scrollToItem(this.router.url);\n }\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n protected onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget || '_blank');\n } else if (item.url) {\n this.router.navigate([item.url], { relativeTo: this.route, fragment: this.fragmentId });\n } else {\n if (typeof item.command === 'function') {\n item.command();\n } else {\n this.onExpandToggle(item);\n }\n }\n\n if (item.link) {\n this.items = this.items?.map((it) => {\n it.active = false;\n if (it.id === item.id) {\n it.active = true;\n }\n return it;\n });\n }\n }\n\n this.isClick.emit(true);\n this.itemClick.emit(item);\n\n const focusedItem = this.findFocusableItem(item);\n this.focusKeyManager.updateActiveItem(focusedItem);\n }\n\n protected onExpandToggle(item: EuiMenuItem): void {\n if (item.children) {\n this.expandToggle.emit(item);\n this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\n }\n }\n\n protected onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n /**\n * Filter the menu items based on the input value\n * @param event\n * @protected\n */\n protected onFilter(event: Event): void;\n protected onFilter(value: string): void;\n protected onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this.items = this.filterMenuItems(this.items, value);\n this.hasExpandIcon = !(this.isFilterEnabled());\n }\n\n /**\n * Check if the children of an item should be rendered. The children should be rendered if the item is expanded\n * or if the item is filtered and the filter input has a value. There are two cases when the filter input has a value:\n * 1. The user has typed something in the filter input\n * 2. The user has typed something in the filter input and the item is filtered\n * In general there are two states to be taken into account, the expanded state and the filtered state.\n *\n * @param item\n * @protected\n */\n protected shouldRenderChild(item: EuiMenuItem): boolean {\n return item?.children &&\n (\n item?.expanded || (\n this.hasFilter &&\n item?.filtered &&\n this.isFilterEnabled()\n )\n )\n }\n\n /**\n * finds the EuiMenuItemComponent in the queried focusableItems[] that matches the passed EuiMenuItem object\n *\n * @param menuItem an EuiMenuItem\n * @private\n */\n private findFocusableItem(menuItem: EuiMenuItem ): EuiMenuItemComponent {\n return this.menuItemsComponents.find(\n (focusableItem) => focusableItem.item.label === menuItem?.label && focusableItem.item.id === menuItem.id,\n );\n }\n\n /**\n * finds the first item that is filtered\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFirstFilteredItem(menuItems: EuiMenuItem []): EuiMenuItem {\n return menuItems.find((item) => item.filtered);\n }\n\n /**\n * finds all filtered menu items\n *\n * @param menuItems an array of EuiMenuItem\n * @private\n */\n private findFilteredItems(menuItems: EuiMenuItem []): EuiMenuItem [] {\n return menuItems.filter((items) => items.filtered);\n }\n\n /**\n * checks the focus state of the action icon\n *\n * @private\n */\n private checkActionIconFocusState(): void {\n // check if the action icon is focused and if not focus it, otherwise focus the active item\n !this.focusKeyManager.activeItem.isActionIconFocused ? this.focusKeyManager.activeItem.focusActionIcon() : this.focusKeyManager.activeItem.focus();\n }\n\n /**\n * filter all menu items given a value\n *\n * @param menuItems an array of menu items\n * @param filterValue the value to filter menu items\n * @private\n */\n private filterMenuItems(menuItems: EuiMenuItem[], filterValue: string): EuiMenuItem[] {\n return menuItems?.map((item: EuiMenuItem) => {\n const found = item.label?.toLowerCase().indexOf(filterValue.toLowerCase()) !== -1;\n if (item.children) {\n item.children = this.filterMenuItems(item.children, filterValue);\n item.filtered = item.children.filter((l) => l['filtered'] === true).length > 0;\n } else if (found) {\n item.filtered = found;\n } else {\n item.filtered = false;\n }\n return item;\n }) || [];\n }\n\n /**\n * expand / collapse all items\n *\n * @param isExpanded\n * @param items\n * @private\n */\n private setExpandedToAllItems(isExpanded: boolean, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n item.expanded = item.expanded ?? isExpanded;\n item.children = this.setExpandedToAllItems(isExpanded, item.children);\n }\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible });\n });\n }\n\n /**\n * expand / collapse a menu item\n *\n * @param item The item where the \"expand\" had been toggled\n * @param items The items list (used for recursion)\n * @private\n */\n private onExpandToggled(item: EuiMenuItem, items: EuiMenuItem[]): void {\n const itemIdx = items?.indexOf(item);\n if (itemIdx > -1) {\n items[itemIdx].expanded = !items[itemIdx].expanded;\n } else {\n items.forEach((i) => {\n if (i.children) {\n this.onExpandToggled(item, i.children);\n }\n });\n }\n }\n\n /**\n * configure an array of items with visible, filtered and expand (in case of expandAllItems flag enabled) properties\n *\n * @param items An array of EuiMenuItem\n * @param parent the parent item of items if exists\n * @private\n */\n private configureItems(items: EuiMenuItem[], parent?: EuiMenuItem): EuiMenuItem[] {\n return items?.map((item) => {\n // recursion in case there are children\n if (item.children) {\n item.children = this.configureItems(item.children, item);\n // expand all parents with children\n if (this.expandAllItems) {\n item.expanded = true;\n }\n }\n // point to the parent\n if (parent) {\n item.parent = parent;\n }\n\n // make sure the items are configured with a unique id\n this.items = this.items?.map((item) => this.setRandomId(item));\n\n if (item.label && this.hasCollapsedInitials) {\n const words = item.label.split(' ');\n if (words.length === 1) {\n item.initials = `${item.label.substring(0, 1)}${item.label.substring(1, 1)}`;\n\n } else {\n item.initials = `${words[0].substring(0, 1)}${words[1].substring(0, 1)}`;\n }\n }\n\n return Object.assign(item, { visible: item.visible === undefined ? true : item.visible, filtered: true });\n });\n }\n\n /**\n * Given a URL and a list of items, it will expand the item that matches the URL. If not item matches exactly the url, then it will\n * match the item that is most relevant to that url.\n *\n * @param url\n * @param items\n * @param relevantItem\n * @private\n */\n private findMostRelevantItem(url: string, items: EuiMenuItem[], relevantItem?: EuiMenuItem): EuiMenuItem {\n if (!items) {\n return null;\n }\n\n items.forEach((item) => {\n if (item.url && url.indexOf(item.url.substring(1)) > -1) {\n relevantItem = this.getMostRelevantItem(url, relevantItem, item);\n }\n\n if (item.children) {\n relevantItem = this.findMostRelevantItem(url, item.children, relevantItem);\n }\n });\n\n return relevantItem;\n }\n\n /**\n * Given two items with url return the one with the most relevant url that matches given url\n *\n * @param url A URL to be matched with the one of given items\n * @param item1\n * @param item2\n * @private\n */\n private getMostRelevantItem(url: string, item1: EuiMenuItem, item2: EuiMenuItem): EuiMenuItem {\n const remainder1 = url.replace(item1?.url || '', '');\n const remainder2 = url.replace(item2?.url || '', '');\n\n return remainder1.length < remainder2.length ? item1 : item2;\n }\n\n /**\n * Given an item, if there's a parent expand it until you reach the root item\n *\n * @param item Given menu item\n * @private\n */\n private expandToGivenItem(item: EuiMenuItem): void {\n if (item.parent) {\n setTimeout(() => (item.parent.expanded = true));\n this.expandToGivenItem(item.parent);\n }\n }\n\n /**\n * Set a random id to an item and its child if they don't have one\n * @param item\n * @private\n */\n private setRandomId(item: EuiMenuItem): EuiMenuItem {\n item.id = item.id || crypto.randomUUID();\n if(item.children){\n item.children = item.children.map((child) => {\n return this.setRandomId(child);\n });\n }\n return item;\n }\n\n /**\n * Scroll to an item if it's not visible in the viewport\n * @param url\n * @private\n */\n private scrollToItem(url: string): void {\n const item = this.findMostRelevantItem(url, this.items);\n if (item) {\n // change the state of that item to expanded if it's not\n this.expandToGivenItem(item);\n setTimeout(_ => {\n const menuItem = this.menuItemsComponents?.find((menuItem) => menuItem.item.id === item.id);\n if(menuItem && !menuItem.elementIsVisibleInViewport()){\n menuItem.scrollIntoView({ behavior: 'smooth' });\n }\n }, 300);\n }\n }\n\n /**\n * Check if the filter input has a value\n * @private\n */\n private isFilterEnabled(): boolean {\n return this.filterInput?.nativeElement?.value.length > 0\n }\n}\n","@if (hasFilter) {\n <div class=\"eui-menu-filter\" [class.eui-menu-filter--collapsed]=\"isCollapsed\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\n #filterInput\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n </eui-icon-input>\n </div>\n}\n\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\" (keydown)=\"onKeydown($event)\">\n @if (items) {\n @for (item of items; track item.id; let index = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"></ng-template>\n }\n } @else {\n <span class=\"eui-menu--no-items\">No menu items defined</span>\n }\n</ul>\n\n<!-- describe the recursive template of the menu item -->\n<ng-template #menuItemTemplateRef let-item=\"menuItem\" let-parent=\"parent\" let-i=\"index\">\n <!-- render the menu item-->\n <eui-menu-item\n *ngIf=\"item.filtered\"\n [item]=\"item\"\n [parent]=\"parent\"\n [hasIcon]=\"hasIcons\"\n [hasTooltip]=\"hasTooltip\"\n [isCollapsed]=\"isCollapsed\"\n [hasBoldRootLevel]=\"hasBoldRootLevel\"\n [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\"\n [hasExpandIcon]=\"hasExpandIcon\">\n <!-- if the menu item has children, render the children -->\n @if (shouldRenderChild(item)) {\n <ul euiList class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n @for (child of item.children; track child.id; let childIndex = $index) {\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n }\n </ul>\n }\n </eui-menu-item>\n</ng-template>\n","import { CommonModule } from '@angular/common';\nimport { RouterModule } from '@angular/router';\nimport { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconInputModule } from '@eui/components/eui-icon-input';\nimport { EuiChipModule } from '@eui/components/eui-chip';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiInputTextModule } from '@eui/components/eui-input-text';\n\nimport { EuiMenuComponent } from './eui-menu.component';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiTooltipDirectiveModule } from '@eui/components/directives';\nimport { EuiBadgeModule } from '@eui/components/eui-badge';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n@NgModule({\n imports: [\n CommonModule,\n RouterModule,\n EuiIconInputModule,\n EuiIconModule,\n EuiIconButtonModule,\n EuiChipModule,\n EuiButtonModule,\n EuiInputTextModule,\n EuiTooltipDirectiveModule,\n EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i2","i1","i3","i4","i5","i6.EuiMenuItemComponent"],"mappings":"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"}
|