@eui/components 18.0.0-next.56 → 18.0.0-next.57

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (112) hide show
  1. package/docs/components/EuiMenuItemComponent.html +1 -1
  2. package/docs/dependencies.html +1 -1
  3. package/docs/js/search/search_index.js +2 -2
  4. package/esm2022/eui-accordion/eui-accordion.component.mjs +2 -2
  5. package/esm2022/eui-autocomplete/eui-autocomplete.component.mjs +3 -3
  6. package/esm2022/eui-badge/eui-badge.component.mjs +2 -2
  7. package/esm2022/eui-block-document/eui-block-document.component.mjs +2 -2
  8. package/esm2022/eui-button/eui-button.component.mjs +2 -2
  9. package/esm2022/eui-button-v2/eui-button-v2.component.mjs +2 -2
  10. package/esm2022/eui-card/eui-card.component.mjs +2 -2
  11. package/esm2022/eui-chip/eui-chip.component.mjs +6 -3
  12. package/esm2022/eui-dashboard-button/eui-dashboard-button.component.mjs +2 -2
  13. package/esm2022/eui-dashboard-card/eui-dashboard-card.component.mjs +2 -2
  14. package/esm2022/eui-date-range-selector/eui-date-range-selector.component.mjs +2 -2
  15. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +2 -2
  16. package/esm2022/eui-dialog/eui-dialog.component.mjs +2 -2
  17. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +2 -2
  18. package/esm2022/eui-dropdown/dropdown-item/eui-dropdown-item.component.mjs +2 -2
  19. package/esm2022/eui-dropdown/eui-dropdown.component.mjs +3 -3
  20. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +2 -2
  21. package/esm2022/eui-icon/eui-icon-button/eui-icon-button.component.mjs +2 -2
  22. package/esm2022/eui-icon/eui-icon-button-expander/eui-icon-button-expander.component.mjs +2 -2
  23. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +2 -2
  24. package/esm2022/eui-input-group/eui-input-group.component.mjs +2 -2
  25. package/esm2022/eui-input-radio/eui-input-radio.component.mjs +2 -2
  26. package/esm2022/eui-language-selector/language-selector.component.mjs +2 -2
  27. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +2 -2
  28. package/esm2022/eui-list/eui-list.component.mjs +2 -2
  29. package/esm2022/eui-menu/eui-menu-item.component.mjs +3 -3
  30. package/esm2022/eui-menu/eui-menu.component.mjs +2 -2
  31. package/esm2022/eui-popover/eui-popover.component.mjs +2 -2
  32. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +2 -2
  33. package/esm2022/eui-table/eui-table.component.mjs +2 -2
  34. package/esm2022/eui-table-v2/eui-table-v2.component.mjs +2 -2
  35. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +2 -2
  36. package/esm2022/eui-tabs/eui-tabs.component.mjs +2 -2
  37. package/esm2022/eui-textarea/eui-textarea.component.mjs +2 -2
  38. package/esm2022/eui-timeline/eui-timeline-item.component.mjs +2 -2
  39. package/esm2022/eui-timeline/eui-timeline.component.mjs +2 -2
  40. package/esm2022/eui-user-profile/user-profile.component.mjs +2 -2
  41. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +2 -2
  42. package/esm2022/eui-wizard/eui-wizard.component.mjs +2 -2
  43. package/esm2022/externals/eui-editor/eui-editor.component.mjs +3 -3
  44. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
  45. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  46. package/fesm2022/eui-components-eui-accordion.mjs +2 -2
  47. package/fesm2022/eui-components-eui-accordion.mjs.map +1 -1
  48. package/fesm2022/eui-components-eui-autocomplete.mjs +2 -2
  49. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  50. package/fesm2022/eui-components-eui-badge.mjs +2 -2
  51. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  52. package/fesm2022/eui-components-eui-block-document.mjs +2 -2
  53. package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
  54. package/fesm2022/eui-components-eui-button-v2.mjs +2 -2
  55. package/fesm2022/eui-components-eui-button-v2.mjs.map +1 -1
  56. package/fesm2022/eui-components-eui-button.mjs +2 -2
  57. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  58. package/fesm2022/eui-components-eui-card.mjs +2 -2
  59. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  60. package/fesm2022/eui-components-eui-chip.mjs +5 -2
  61. package/fesm2022/eui-components-eui-chip.mjs.map +2 -2
  62. package/fesm2022/eui-components-eui-dashboard-button.mjs +2 -2
  63. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  64. package/fesm2022/eui-components-eui-dashboard-card.mjs +2 -2
  65. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  66. package/fesm2022/eui-components-eui-date-range-selector.mjs +2 -2
  67. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  68. package/fesm2022/eui-components-eui-dialog.mjs +4 -4
  69. package/fesm2022/eui-components-eui-dialog.mjs.map +1 -1
  70. package/fesm2022/eui-components-eui-discussion-thread.mjs +2 -2
  71. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  72. package/fesm2022/eui-components-eui-dropdown.mjs +4 -4
  73. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  74. package/fesm2022/eui-components-eui-file-upload.mjs +2 -2
  75. package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
  76. package/fesm2022/eui-components-eui-icon.mjs +4 -4
  77. package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
  78. package/fesm2022/eui-components-eui-input-checkbox.mjs +2 -2
  79. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  80. package/fesm2022/eui-components-eui-input-group.mjs +2 -2
  81. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  82. package/fesm2022/eui-components-eui-input-radio.mjs +2 -2
  83. package/fesm2022/eui-components-eui-input-radio.mjs.map +1 -1
  84. package/fesm2022/eui-components-eui-language-selector.mjs +2 -2
  85. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  86. package/fesm2022/eui-components-eui-list.mjs +4 -4
  87. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  88. package/fesm2022/eui-components-eui-menu.mjs +6 -6
  89. package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
  90. package/fesm2022/eui-components-eui-popover.mjs +2 -2
  91. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  92. package/fesm2022/eui-components-eui-progress-circle.mjs +2 -2
  93. package/fesm2022/eui-components-eui-progress-circle.mjs.map +1 -1
  94. package/fesm2022/eui-components-eui-table-v2.mjs +2 -2
  95. package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
  96. package/fesm2022/eui-components-eui-table.mjs +2 -2
  97. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  98. package/fesm2022/eui-components-eui-tabs.mjs +4 -4
  99. package/fesm2022/eui-components-eui-tabs.mjs.map +1 -1
  100. package/fesm2022/eui-components-eui-textarea.mjs +2 -2
  101. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  102. package/fesm2022/eui-components-eui-timeline.mjs +4 -4
  103. package/fesm2022/eui-components-eui-timeline.mjs.map +1 -1
  104. package/fesm2022/eui-components-eui-user-profile.mjs +2 -2
  105. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  106. package/fesm2022/eui-components-eui-wizard.mjs +4 -4
  107. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  108. package/fesm2022/eui-components-externals-eui-editor.mjs +2 -2
  109. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  110. package/fesm2022/eui-components-layout.mjs +2 -2
  111. package/fesm2022/eui-components-layout.mjs.map +1 -1
  112. package/package.json +3 -3
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "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"],
4
- "sourcesContent": ["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, 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 if(this.item.children) {\n return this.item.expanded ? true : false;\n } else {\n return undefined;\n }\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 @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 = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective, 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 @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 if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\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 this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n 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 private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return '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 this.baseStatesDirective.getCssClasses('eui-menu-item'),\n // this.isLabelLowercase ? 'eui-menu-item--lowercase': '',\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\"\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\"\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\n @if (hasIcon) {\n\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 size=\"s\">\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=\"eui-ellipse\"\n size=\"xs\"\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=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"xs\">\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=\"eui-ellipse\"\n size=\"xs\"\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 && !item.iconClass) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.iconClass && !item.iconSvgName) {\n <!-- WEBFONT -->\n <span class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\" [attr.aria-label]=\"item.iconLabel\"></span>\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=\"eui-ellipse\"\n size=\"s\"\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=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\">\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 euiSizeS [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 <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n tabindex=\"-1\"\n [attr.aria-label]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\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} from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport * as uuid from 'uuid';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from '@eui/base';\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) focusableItems: QueryList<EuiMenuItemComponent>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('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 = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n private cd: ChangeDetectorRef,\n ) {}\n\n @HostListener('click', ['$event'])\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.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.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.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded) {\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 childen 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.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded){\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\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = 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 // subscription to routes url changes for activating the scrollIntoView (optional)\n if (this.hasScrollToItem) {\n const item = this.findMostRelevantItem(this.router.url, this.items);\n if (item) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.focusableItems).withWrap();\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\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 public 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 public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event)\n public onFilter(value: string)\n public onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\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.focusableItems.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, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n 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 if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\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 items\n * @param value\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.substr(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", "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\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 <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\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 [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\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 { 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';\n\n@NgModule({\n imports: [\n CommonModule, RouterModule,\n EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule, EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n Output,\n EventEmitter,\n HostListener,\n OnInit,\n booleanAttribute,\n ElementRef,\n} from '@angular/core';\nimport { FocusableOption } from '@angular/cdk/a11y';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItem } from '@eui/base';\n\n@Component({\n selector: 'eui-menu-item',\n templateUrl: './eui-menu-item.component.html',\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuItemComponent implements OnInit, 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 if(this.item.children) {\n return this.item.expanded ? true : false;\n } else {\n return undefined;\n }\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 @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 = false;\n @Input({ transform: booleanAttribute }) hasTooltip = false;\n @Input({ transform: booleanAttribute }) isCollapsed = false;\n @Input({ transform: booleanAttribute }) hasCollapsedInitials = false;\n\n constructor(public baseStatesDirective: BaseStatesDirective, 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 @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 if (this.item.tooltip) {\n return this.item.tooltip;\n } else {\n return this.getTooltipFromItem(this.item);\n }\n } else {\n return null;\n }\n }\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 this.item.actionIcon?.action(event);\n consumeEvent(event);\n }\n\n 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 private getTooltipFromItem(item: EuiMenuItem): string {\n if (item.tagLabel && item.label) {\n return item.label + ' (' + item.tagLabel + ')';\n } else if (item.label) {\n return item.label;\n } else if (item.tagLabel) {\n return item.tagLabel;\n }\n return null;\n }\n\n private getAriaLabel(): string {\n if (this.item.label) {\n return this.item.label;\n } else if (this.item.tagLabel) {\n return this.item.tagLabel;\n } else if (this.item.actionIcon && this.item.actionIcon.label) {\n return this.item.actionIcon.label;\n } else if (this.item.iconLabel) {\n return this.item.iconLabel;\n }\n return '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 this.baseStatesDirective.getCssClasses('eui-menu-item'),\n // this.isLabelLowercase ? 'eui-menu-item--lowercase': '',\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\"\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\"\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\n @if (hasIcon) {\n\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 size=\"s\">\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=\"eui-ellipse\"\n size=\"xs\"\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=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"xs\">\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=\"eui-ellipse\"\n size=\"xs\"\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 && !item.iconClass) {\n <!-- SVG -->\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n } @else if (item.iconClass && !item.iconSvgName) {\n <!-- WEBFONT -->\n <span class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\" [attr.aria-label]=\"item.iconLabel\"></span>\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=\"eui-ellipse\"\n size=\"s\"\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=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon\"\n icon=\"eui-ellipse\"\n fillColor=\"neutral-light\"\n size=\"s\">\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 <button\n *ngIf=\"item.children?.length > 0\"\n euiButton\n euiRounded\n euiIconButton\n euiSizeS\n euiBasicButton\n euiSecondary\n type=\"button\"\n [euiDisabled]=\"item.disabled\"\n class=\"eui-menu-item__link-toggle\"\n tabindex=\"-1\"\n [attr.aria-label]=\"item.expanded ? collapseMenuLabel : expandMenuLabel\"\n (click)=\"onExpandToggle($event)\">\n <eui-icon-svg *ngIf=\"item.expanded\" icon=\"eui-chevron-up\"></eui-icon-svg>\n <eui-icon-svg *ngIf=\"!item.expanded\" icon=\"eui-chevron-down\"></eui-icon-svg>\n </button>\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} from '@angular/core';\nimport { Router, ActivatedRoute } from '@angular/router';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Subscription } from 'rxjs';\nimport * as uuid from 'uuid';\n\nimport { consumeEvent } from '@eui/core';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiMenuItemComponent } from './eui-menu-item.component';\nimport { EuiMenuItem } from '@eui/base';\n@Component({\n selector: 'eui-menu',\n templateUrl: './eui-menu.component.html',\n styleUrls: ['./styles/_index.scss'],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n },\n ],\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMenuComponent implements OnInit, OnChanges, OnDestroy, AfterViewInit {\n @ViewChildren(EuiMenuItemComponent) focusableItems: QueryList<EuiMenuItemComponent>;\n\n @HostBinding('class')\n public get cssClasses(): string {\n return [this.baseStatesDirective.getCssClasses('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 = false;\n @Input({ transform: booleanAttribute }) expandAllItems = false;\n @Input({ transform: booleanAttribute }) isFlat = false;\n @Input({ transform: booleanAttribute }) hasScrollToItem = false;\n\n @Output() isClick: EventEmitter<boolean> = new EventEmitter();\n @Output() itemClick: EventEmitter<EuiMenuItem> = new EventEmitter<EuiMenuItem>();\n\n // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n itemsState: any[];\n private subscription: Subscription;\n private focusKeyManager: FocusKeyManager<EuiMenuItemComponent>;\n\n constructor(\n private router: Router,\n private route: ActivatedRoute,\n public baseStatesDirective: BaseStatesDirective,\n private cd: ChangeDetectorRef,\n ) {}\n\n @HostListener('click', ['$event'])\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.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.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.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded) {\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 childen 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.focusKeyManager.activeItem?.item.children && this.focusKeyManager.activeItem?.item.expanded){\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\n ngOnInit(): void {\n // Labels default values - TODO : translations\n if (!this.searchFilterLabel) {\n this.searchFilterLabel = 'Search filter';\n }\n\n const elementIsVisibleInViewport = (el, partiallyVisible = false): boolean => {\n const { top, left, bottom, right } = el.getBoundingClientRect();\n const { innerHeight, innerWidth } = 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 // subscription to routes url changes for activating the scrollIntoView (optional)\n if (this.hasScrollToItem) {\n const item = this.findMostRelevantItem(this.router.url, this.items);\n if (item) {\n setTimeout(_ => {\n const element = document.getElementById(item.id);\n if (!elementIsVisibleInViewport(element)) {\n element.scrollIntoView({ behavior: 'smooth' });\n }\n }, 1);\n }\n }\n }\n\n ngAfterViewInit(): void {\n // instantiates FocusKeyManager with the query list of items enabling wrapping\n this.focusKeyManager = new FocusKeyManager(this.focusableItems).withWrap();\n }\n\n ngOnDestroy():void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n public onClick(item: EuiMenuItem): void {\n if (!item.disabled) {\n if (item.urlExternal) {\n window.open(item.urlExternal, item.urlExternalTarget);\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 public 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 public onMenuFilterClick(event: MouseEvent): void {\n consumeEvent(event);\n }\n\n public onFilter(event: Event)\n public onFilter(value: string)\n public onFilter(eventOrValue: Event | string): void {\n const value = eventOrValue instanceof Event\n ? (eventOrValue.target as HTMLInputElement).value\n : eventOrValue;\n this._onToggleExpandAllItems(value ? true : false);\n\n this.items = this.filterMenuItems(this.items, value);\n }\n\n private _onToggleExpandAllItems(state: boolean): void {\n this.items = this.setExpandedToAllItems(state, this.items);\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.focusableItems.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, items: EuiMenuItem[]): EuiMenuItem[] {\n return items?.map((item) => {\n if (item.children) {\n 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 if (!item.id && this.hasScrollToItem) {\n item.id = uuid.v4();\n }\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 items\n * @param value\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.substr(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", "@if (hasFilter && !isCollapsed) {\n <div class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\"></eui-icon-svg>\n <input\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 <ng-template ngFor let-item let-index [ngForOf]=\"items\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: item, index: index }\"> </ng-template>\n </ng-template>\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 [hasCollapsedInitials]=\"hasCollapsedInitials\"\n (expandToggle)=\"onExpandToggle($event)\"\n (itemClick)=\"onClick($event)\">\n <!-- if the menu item has children, render the children -->\n <ul euiList *ngIf=\"item.children && item.expanded\" class=\"eui-menu eui-menu-sub\" role=\"menu\" [attr.aria-label]=\"item.label\" tabindex=\"-1\">\n <ng-container *ngFor=\"let child of item.children; let childIndex = index\">\n <ng-template [ngTemplateOutlet]=\"menuItemTemplateRef\" [ngTemplateOutletContext]=\"{ menuItem: child, index: childIndex, parent: item }\">\n </ng-template>\n </ng-container>\n </ul>\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 { 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';\n\n@NgModule({\n imports: [\n CommonModule, RouterModule,\n EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule, EuiBadgeModule,\n ],\n declarations: [EuiMenuComponent, EuiMenuItemComponent],\n exports: [EuiMenuComponent],\n})\nexport class EuiMenuModule {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["Component", "HostBinding", "ViewEncapsulation", "Input", "Output", "EventEmitter", "HostListener", "booleanAttribute", "consumeEvent", "BaseStatesDirective", "i0"]
7
7
  }
@@ -241,7 +241,7 @@ var EuiPopoverComponent = class _EuiPopoverComponent {
241
241
  this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i02, type: _EuiPopoverComponent, deps: [{ token: i1.Overlay }, { token: i02.ViewContainerRef }, { token: i1.ScrollDispatcher }, { token: i2.BaseStatesDirective }], target: i02.ɵɵFactoryTarget.Component });
242
242
  }
243
243
  static {
244
- this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i02, template: '<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: true }"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: false }"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class="eui-popover__container" cdkTrapFocus [cdkTrapFocusAutoCapture]="autoCapture" (keydown)="onKeyDown($event)">\n <div class="eui-popover__arrow" [euiPopoverArrowPosition]="position$">\n <div class="eui-popover__arrow-inner"></div>\n </div>\n @if (title) {\n <div class="eui-popover__header">\n <div class="eui-popover__header-title">{{ title }}</div>\n @if (hasCloseButton) {\n <button euiButton euiRounded euiIconButton euiBasicButton euiSizeS class="eui-popover__header-close" aria-label="Close Icon Button" (click)="closePopover()">\n <eui-icon-svg icon="eui-close" fillColor="primary" aria-label="Close Icon" class="eui-popover__header-close-icon"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)="onContentChange()" class="eui-popover__content">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n', styles: ['.eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:" ";display:block;height:0;position:absolute;width:0}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow,.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{display:block}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-popover-position--top .eui-popover__arrow-inner,.eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-popover-position--left .eui-popover__arrow-inner,.eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-popover{background-color:var(--eui-c-white);border:1px solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);max-width:25rem;width:25rem}.eui-popover__container{width:100%}.eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-popover__content{padding:var(--eui-s-xs)}.eui-popover--has-custom-width{width:100%!important}.eui-popover--size-s{max-width:12rem;width:12rem}.eui-popover--size-m{max-width:25rem;width:25rem}.eui-popover--size-l{max-width:35rem;width:35rem}.eui-popover--size-xl{max-width:50rem;width:50rem}.eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-popover--size-auto{max-width:none;width:auto}.eui-popover--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-popover--colored-header{background:none;border:none;border-color:var(--eui-c-neutral)}.eui-popover--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:0;color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-popover--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-popover--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-primary)}.eui-popover--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-popover--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-popover--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-popover--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-popover--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-popover--colored-header .eui-popover__arrow-inner{border:none}.eui-popover--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-popover--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-popover--colored-solid .eui-popover__header-title,.eui-popover--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-info)}.eui-popover--colored-solid .eui-popover__arrow-inner{border:none}\n'], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i02.ChangeDetectionStrategy.OnPush, encapsulation: i02.ViewEncapsulation.None });
244
+ this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.0.0-rc.0", type: _EuiPopoverComponent, selector: "eui-popover", inputs: { title: "title", position: "position", size: "size", type: "type", width: "width", hasBackDrop: ["hasBackDrop", "hasBackDrop", booleanAttribute], hasCloseButton: ["hasCloseButton", "hasCloseButton", booleanAttribute], isDismissable: ["isDismissable", "isDismissable", booleanAttribute] }, outputs: { outsideClick: "outsideClick", popoverOpen: "popoverOpen", popoverClose: "popoverClose" }, viewQueries: [{ propertyName: "templatePortalContent", first: true, predicate: ["templatePortalContent"], descendants: true }], usesOnChanges: true, hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiSize2XL", "euiSize2XL", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i02, template: '<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: true }"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: false }"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class="eui-popover__container" cdkTrapFocus [cdkTrapFocusAutoCapture]="autoCapture" (keydown)="onKeyDown($event)">\n <div class="eui-popover__arrow" [euiPopoverArrowPosition]="position$">\n <div class="eui-popover__arrow-inner"></div>\n </div>\n @if (title) {\n <div class="eui-popover__header">\n <div class="eui-popover__header-title">{{ title }}</div>\n @if (hasCloseButton) {\n <button euiButton euiRounded euiIconButton euiBasicButton euiSizeS class="eui-popover__header-close" aria-label="Close Icon Button" (click)="closePopover()">\n <eui-icon-svg icon="eui-close" fillColor="primary" aria-label="Close Icon" class="eui-popover__header-close-icon"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)="onContentChange()" class="eui-popover__content">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n', styles: ['.eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:" ";display:block;height:0;position:absolute;width:0}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow,.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{display:block}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-popover-position--top .eui-popover__arrow-inner,.eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-popover-position--left .eui-popover__arrow-inner,.eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);max-width:25rem;width:25rem}.eui-popover__container{width:100%}.eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-popover__content{padding:var(--eui-s-xs)}.eui-popover--has-custom-width{width:100%!important}.eui-popover--size-s{max-width:12rem;width:12rem}.eui-popover--size-m{max-width:25rem;width:25rem}.eui-popover--size-l{max-width:35rem;width:35rem}.eui-popover--size-xl{max-width:50rem;width:50rem}.eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-popover--size-auto{max-width:none;width:auto}.eui-popover--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-popover--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-popover--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-popover--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-popover--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-primary)}.eui-popover--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-popover--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-popover--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-popover--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-popover--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-popover--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-popover--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-popover--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-popover--colored-solid .eui-popover__header-title,.eui-popover--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-info)}.eui-popover--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n'], dependencies: [{ kind: "directive", type: i3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i4.EuiButtonComponent, selector: "button[euiButton], a[euiButton]", inputs: ["e2eAttr", "id", "euiBasicButton", "euiButtonCall", "euiBlockButton", "euiIconButton", "euiLineWrap", "isChecked", "euiDisabled"], outputs: ["buttonClick"] }, { kind: "component", type: i5.EuiIconSvgComponent, selector: "eui-icon-svg, span[euiIconSvg], i[euiIconSvg]", inputs: ["icon", "fillColor", "set", "size", "ariaLabelledby", "role", "style", "iconUrl", "transform", "aria-label", "ariaHidden", "focusable", "isLoading", "isInputIcon", "euiStart", "euiEnd"] }, { kind: "directive", type: i6.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "directive", type: i7.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }, { kind: "directive", type: EuiPopoverArrowPositionDirective, selector: "[euiPopoverArrowPosition]", inputs: ["euiPopoverArrowPosition"] }], changeDetection: i02.ChangeDetectionStrategy.OnPush, encapsulation: i02.ViewEncapsulation.None });
245
245
  }
246
246
  };
247
247
  i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", ngImport: i02, type: EuiPopoverComponent, decorators: [{
@@ -258,7 +258,7 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-rc.0", n
258
258
  "euiSizeVariant"
259
259
  ]
260
260
  }
261
- ], template: '<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: true }"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: false }"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class="eui-popover__container" cdkTrapFocus [cdkTrapFocusAutoCapture]="autoCapture" (keydown)="onKeyDown($event)">\n <div class="eui-popover__arrow" [euiPopoverArrowPosition]="position$">\n <div class="eui-popover__arrow-inner"></div>\n </div>\n @if (title) {\n <div class="eui-popover__header">\n <div class="eui-popover__header-title">{{ title }}</div>\n @if (hasCloseButton) {\n <button euiButton euiRounded euiIconButton euiBasicButton euiSizeS class="eui-popover__header-close" aria-label="Close Icon Button" (click)="closePopover()">\n <eui-icon-svg icon="eui-close" fillColor="primary" aria-label="Close Icon" class="eui-popover__header-close-icon"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)="onContentChange()" class="eui-popover__content">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n', styles: ['.eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:" ";display:block;height:0;position:absolute;width:0}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow,.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{display:block}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-popover-position--top .eui-popover__arrow-inner,.eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-popover-position--left .eui-popover__arrow-inner,.eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-popover{background-color:var(--eui-c-white);border:1px solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);max-width:25rem;width:25rem}.eui-popover__container{width:100%}.eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-popover__content{padding:var(--eui-s-xs)}.eui-popover--has-custom-width{width:100%!important}.eui-popover--size-s{max-width:12rem;width:12rem}.eui-popover--size-m{max-width:25rem;width:25rem}.eui-popover--size-l{max-width:35rem;width:35rem}.eui-popover--size-xl{max-width:50rem;width:50rem}.eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-popover--size-auto{max-width:none;width:auto}.eui-popover--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-popover--colored-header{background:none;border:none;border-color:var(--eui-c-neutral)}.eui-popover--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:0;color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-popover--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-popover--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-primary)}.eui-popover--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-popover--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-popover--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-popover--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-popover--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-popover--colored-header .eui-popover__arrow-inner{border:none}.eui-popover--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-popover--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-popover--colored-solid .eui-popover__header-title,.eui-popover--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-info)}.eui-popover--colored-solid .eui-popover__arrow-inner{border:none}\n'] }]
261
+ ], template: '<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: true }"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet="template; context: { $implicit: false }"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class="eui-popover__container" cdkTrapFocus [cdkTrapFocusAutoCapture]="autoCapture" (keydown)="onKeyDown($event)">\n <div class="eui-popover__arrow" [euiPopoverArrowPosition]="position$">\n <div class="eui-popover__arrow-inner"></div>\n </div>\n @if (title) {\n <div class="eui-popover__header">\n <div class="eui-popover__header-title">{{ title }}</div>\n @if (hasCloseButton) {\n <button euiButton euiRounded euiIconButton euiBasicButton euiSizeS class="eui-popover__header-close" aria-label="Close Icon Button" (click)="closePopover()">\n <eui-icon-svg icon="eui-close" fillColor="primary" aria-label="Close Icon" class="eui-popover__header-close-icon"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)="onContentChange()" class="eui-popover__content">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n', styles: ['.eui-popover-position .eui-popover__arrow{border-color:inherit;border-style:solid;border-width:8px;display:none;height:0;position:absolute;width:0}.eui-popover-position .eui-popover__arrow-inner{border-color:var(--eui-c-white);border-style:solid;border-width:7px;content:" ";display:block;height:0;position:absolute;width:0}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow,.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{display:block}.eui-popover-position--top .eui-popover__arrow,.eui-popover-position--bottom .eui-popover__arrow{border-left-color:transparent;border-right-color:transparent;left:50%;transform:translate(-8px)}.eui-popover-position--top .eui-popover__arrow-inner,.eui-popover-position--bottom .eui-popover__arrow-inner{border-left-color:transparent;border-right-color:transparent;margin-left:-7px}.eui-popover-position--top .eui-popover__arrow{border-bottom-width:0;bottom:-7px}.eui-popover-position--top .eui-popover__arrow-inner{border-bottom-width:0;bottom:2px}.eui-popover-position--bottom .eui-popover__arrow{border-top-width:0;top:-7px}.eui-popover-position--bottom .eui-popover__arrow-inner{border-top-width:0;top:1px}.eui-popover-position--left .eui-popover__arrow,.eui-popover-position--right .eui-popover__arrow{border-bottom-color:transparent;border-top-color:transparent;top:50%;transform:translateY(-8px)}.eui-popover-position--left .eui-popover__arrow-inner,.eui-popover-position--right .eui-popover__arrow-inner{border-bottom-color:transparent;border-top-color:transparent;top:-7px}.eui-popover-position--left .eui-popover__arrow{border-right-width:0;right:-7px}.eui-popover-position--left .eui-popover__arrow-inner{border-right-width:0;right:2px}.eui-popover-position--right .eui-popover__arrow{border-left-width:0;left:-7px}.eui-popover-position--right .eui-popover__arrow-inner{border-left-width:0;border-right-color:var(--eui-c-white);left:2px}.eui-popover{background-color:var(--eui-c-white);border:var(--eui-bw-xs) solid var(--eui-c-neutral-lightest);border-radius:var(--eui-br-m);box-shadow:var(--eui-sh-2);max-width:25rem;width:25rem}.eui-popover__container{width:100%}.eui-popover__header{align-items:center;border-bottom:1px solid var(--eui-c-neutral-lightest);display:flex;justify-content:space-between;padding:var(--eui-s-xs)}.eui-popover__header-title{font:var(--eui-f-m-bold)}.eui-popover__content{padding:var(--eui-s-xs)}.eui-popover--has-custom-width{width:100%!important}.eui-popover--size-s{max-width:12rem;width:12rem}.eui-popover--size-m{max-width:25rem;width:25rem}.eui-popover--size-l{max-width:35rem;width:35rem}.eui-popover--size-xl{max-width:50rem;width:50rem}.eui-popover--size-2xl{max-width:75rem;width:75rem}.eui-popover--size-auto{max-width:none;width:auto}.eui-popover--flat .eui-popover__header{border-bottom:none;padding-bottom:0}.eui-popover--colored-header{background:none;border:var(--eui-bw-none);border-color:var(--eui-c-neutral)}.eui-popover--colored-header .eui-popover__header{background-color:var(--eui-c-neutral);border:var(--eui-bw-none);color:var(--eui-c-white);border-top-left-radius:var(--eui-br-m);border-top-right-radius:var(--eui-br-m)}.eui-popover--colored-header .eui-popover__header+.eui-popover__content{border-top:0;border-top-left-radius:0;border-top-right-radius:0}.eui-popover--colored-header .eui-popover__header-title{color:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-header .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-header .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-primary)}.eui-popover--colored-header .eui-popover__content{background-color:var(--eui-c-white);border-color:inherit;border-radius:var(--eui-br-m);border-style:solid;border-width:2px}.eui-popover--colored-header.eui-popover--left .eui-popover__arrow-inner{right:3px}.eui-popover--colored-header.eui-popover--right .eui-popover__arrow-inner{left:3px}.eui-popover--colored-header.eui-popover--top .eui-popover__arrow-inner{bottom:3px}.eui-popover--colored-header.eui-popover--bottom .eui-popover__arrow-inner,.eui-popover--colored-header .eui-popover__arrow-inner{border:var(--eui-bw-none)}.eui-popover--colored-solid{background-color:var(--eui-c-neutral);border-color:var(--eui-c-neutral);border-style:none}.eui-popover--colored-solid .eui-popover__header{border-bottom-color:var(--eui-c-neutral-bg-light)}.eui-popover--colored-solid .eui-popover__header-title,.eui-popover--colored-solid .eui-popover__content{color:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close .eui-popover__header-close-icon>svg{fill:var(--eui-c-white)}.eui-popover--colored-solid .eui-popover__header-close:hover .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:focus .eui-popover__header-close-icon>svg,.eui-popover--colored-solid .eui-popover__header-close:active .eui-popover__header-close-icon>svg{fill:var(--eui-c-info)}.eui-popover--colored-solid .eui-popover__arrow-inner{border:var(--eui-bw-none)}\n'] }]
262
262
  }], ctorParameters: () => [{ type: i1.Overlay }, { type: i02.ViewContainerRef }, { type: i1.ScrollDispatcher }, { type: i2.BaseStatesDirective }], propDecorators: { title: [{
263
263
  type: Input2
264
264
  }], position: [{
@@ -2,6 +2,6 @@
2
2
  "version": 3,
3
3
  "sources": ["../../eui-popover/models/eui-popover-position.model.ts", "../../eui-popover/directives/eui-popover-arrow-position.directive.ts", "../../eui-popover/eui-popover.component.ts", "../../eui-popover/eui-popover.component.html", "../../eui-popover/eui-popover.module.ts"],
4
4
  "sourcesContent": ["import { ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\n\nexport type EuiPopoverPosition = 'top' | 'right' | 'bottom' | 'left';\n\nexport const TOP = new ConnectionPositionPair({ originX: 'center', originY: 'top' }, { overlayX: 'center', overlayY: 'bottom' }, 0, 0, ['eui-popover-position', 'eui-popover-position--top']);\nexport const BOTTOM = new ConnectionPositionPair({ originX: 'center', originY: 'bottom' }, { overlayX: 'center', overlayY: 'top' }, 0, 0, ['eui-popover-position', 'eui-popover-position--bottom']);\nexport const LEFT = new ConnectionPositionPair({ originX: 'start', originY: 'center' }, { overlayX: 'end', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--left']);\nexport const RIGHT = new ConnectionPositionPair({ originX: 'end', originY: 'center' }, { overlayX: 'start', overlayY: 'center' }, 0, 0, ['eui-popover-position', 'eui-popover-position--right']);\n\nexport const getPosition = ({ connectionPair }: ConnectedOverlayPositionChange): EuiPopoverPosition => {\n switch (connectionPair) {\n case TOP:\n return 'top';\n case BOTTOM:\n return 'bottom';\n case LEFT:\n return 'left';\n case RIGHT:\n return 'right';\n }\n};\n", "import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EuiPopoverPosition } from '../models/eui-popover-position.model';\n\n@Directive({\n selector: '[euiPopoverArrowPosition]',\n})\nexport class EuiPopoverArrowPositionDirective implements OnInit, OnDestroy {\n @Input('euiPopoverArrowPosition')\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n private destroy$: Subject<void> = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n ngOnInit(): void {\n this.position$.pipe(takeUntil(this.destroy$)).subscribe(([position, originRect]) => {\n this.renderer.setProperty(this.elementRef.nativeElement, 'style', this.getStyle(position, originRect));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getStyle(position: EuiPopoverPosition, originRect: DOMRect): string {\n const arrowRect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (position === 'left' || position === 'right') {\n const verticalDiff: number =\n Math.floor(arrowRect.top + arrowRect.height / 2) - Math.floor(originRect.top + originRect.height / 2);\n\n if (verticalDiff > 0) {\n return `top: ${originRect.top + originRect.height / 2}px`;\n } else if (verticalDiff < 0) {\n return `top: unset; bottom: ${\n this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height\n }px`;\n }\n }\n if (position === 'top' || position === 'bottom') {\n const horizontalDiff: number =\n Math.floor(arrowRect.left + arrowRect.width / 2) - Math.floor(originRect.left + originRect.width / 2);\n\n if (horizontalDiff > 0) {\n return `left: ${originRect.left + originRect.width / 2}px`;\n } else if (horizontalDiff < 0) {\n return `left: unset; right: ${\n this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width\n }px`;\n }\n }\n return '';\n }\n}\n", "import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Overlay,\n OverlayRef,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n ScrollDispatcher,\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiPopoverPosition, BOTTOM, LEFT, RIGHT, TOP, getPosition } from './models/eui-popover-position.model';\n\n@Component({\n selector: 'eui-popover',\n templateUrl: './eui-popover.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiSize2XL',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiPopoverComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n @Input() title: string;\n @Input() position: EuiPopoverPosition = 'bottom';\n @Input() size: 'default' | 'small' | 'large' | 'auto' | 's' | 'm' | 'l' | 'xl' | string = 'default';\n @Input() type: 'default' | 'flat' | 'colored-header' | 'colored-solid' = 'default';\n @Input() width: string = null;\n @Input({ transform: booleanAttribute }) hasBackDrop = false;\n @Input({ transform: booleanAttribute }) hasCloseButton = true;\n @Input({ transform: booleanAttribute }) isDismissable = true;\n\n @Output() outsideClick = new EventEmitter();\n @Output() popoverOpen = new EventEmitter();\n @Output() popoverClose = new EventEmitter();\n\n public cdkTrapFocusAutoCapture = true;\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private origin: ElementRef;\n private preferredPositons: ConnectionPositionPair[] = [BOTTOM, TOP, LEFT, RIGHT];\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private positionStrategyUpdate$: Subject<void> = new Subject();\n\n constructor(private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private baseStatesDirective: BaseStatesDirective){\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (this.position === 'top') {\n this.preferredPositons = [TOP, BOTTOM, LEFT, RIGHT];\n } else if (this.position === 'right') {\n this.preferredPositons = [RIGHT, LEFT, TOP, BOTTOM];\n } else if (this.position === 'left') {\n this.preferredPositons = [LEFT, RIGHT, TOP, BOTTOM];\n } else {\n this.preferredPositons = [BOTTOM, TOP, LEFT, RIGHT];\n }\n }\n\n ngOnInit(): void {\n this.setPositionStream();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n /** @deprecated This will be removed in next version of eui in favor of isOpen */\n get isPopoverOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Whether the eui-popover is open.\n *\n * @usageNotes\n * ```html\n * <eui-popover #popover>\n * \\@if (popover.isOpen) {\n * <my-component></my-component>\n * }\n * </eui-popover>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n public onContentChange(): void {\n this.positionStrategy = this.getPositionStrategy();\n this.positionStrategyUpdate$.next();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n\n /**\n * Open a popover\n *\n * @param origin Origin of the popover position\n */\n public openPopover(origin: ElementRef): void {\n if (!this.isPopoverOpen) {\n this.cdkTrapFocusAutoCapture = true;\n this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(origin as unknown as HTMLElement, scrollableParent)) {\n this.closePopover();\n }\n });\n\n this.origin = origin;\n const positionStrategy = this.getPositionStrategy();\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n width: this.width,\n panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),\n });\n this.overlayRef.attach(this.templatePortal);\n\n this.positionStrategy = positionStrategy;\n this.positionStrategyUpdate$.next();\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isDismissable) {\n this.outsideClick.emit();\n this.closePopover();\n }\n });\n\n this.isOpen$.next(true);\n this.popoverOpen.emit();\n }\n }\n\n /**\n * Close a popover\n */\n public closePopover(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.isOpen$.next(false);\n this.popoverClose.emit();\n }\n\n /**\n * Reacts on the Esc keydown event to close the popup. Can be used as alternative to the close icon button,\n * or as the main way to close the popup when hasCloseButton is false\n *\n * @param event The key event pressed\n */\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closePopover();\n }\n }\n\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions(this.preferredPositons)\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n private setPositionStream(): void {\n this.position$ = this.positionStrategyUpdate$.pipe(\n switchMap(() => this.positionStrategy.positionChanges),\n map(getPosition),\n distinctUntilChanged(),\n map((position) => {\n const rect = this.origin.nativeElement ?\n this.origin.nativeElement.getBoundingClientRect() :\n (this.origin as unknown as HTMLElement).getBoundingClientRect();\n return [position, rect];\n }),\n );\n }\n}\n", "<ng-template #templatePortalContent>\n @if (cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: true }\"></ng-container>\n }\n @if (!cdkTrapFocusAutoCapture) {\n <ng-container *ngTemplateOutlet=\"template; context: { $implicit: false }\"></ng-container>\n }\n</ng-template>\n\n<ng-template #template let-autoCapture>\n <div class=\"eui-popover__container\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"autoCapture\" (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button euiButton euiRounded euiIconButton euiBasicButton euiSizeS class=\"eui-popover__header-close\" aria-label=\"Close Icon Button\" (click)=\"closePopover()\">\n <eui-icon-svg icon=\"eui-close\" fillColor=\"primary\" aria-label=\"Close Icon\" class=\"eui-popover__header-close-icon\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiPopoverComponent } from './eui-popover.component';\nimport { EuiPopoverArrowPositionDirective } from './directives/eui-popover-arrow-position.directive';\n\n@NgModule({\n imports: [CommonModule, OverlayModule, EuiButtonModule, EuiIconModule, A11yModule, ObserversModule],\n declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],\n exports: [EuiPopoverComponent],\n})\nexport class EuiPopoverModule {}\n"],
5
- "mappings": "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",
5
+ "mappings": "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",
6
6
  "names": ["document", "Input", "Subject", "takeUntil", "i0"]
7
7
  }