@eui/components 18.0.0-next.29 → 18.0.0-next.30

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 (178) hide show
  1. package/docs/classes/EuiMessageBoxConfig.html +1 -1
  2. package/docs/components/EuiAlertComponent.html +1 -1
  3. package/docs/components/EuiButtonComponent.html +1 -1
  4. package/docs/components/EuiDialogComponent.html +96 -687
  5. package/docs/components/EuiDialogContainerComponent.html +1 -1
  6. package/docs/components/EuiMenuItemComponent.html +1 -1
  7. package/docs/components/EuiMessageBoxComponent.html +123 -1227
  8. package/docs/components/EuiPopoverComponent.html +81 -995
  9. package/docs/components/EuiTabComponent.html +88 -1004
  10. package/docs/components/EuiTabContentComponent.html +5 -78
  11. package/docs/components/EuiTableComponent.html +586 -2166
  12. package/docs/components/EuiTableFilterComponent.html +122 -787
  13. package/docs/components/EuiTableSelectableHeaderComponent.html +11 -141
  14. package/docs/components/EuiTableSelectableRowComponent.html +11 -125
  15. package/docs/components/EuiTableSortableColComponent.html +23 -263
  16. package/docs/components/EuiTabsComponent.html +21 -265
  17. package/docs/dependencies.html +1 -1
  18. package/docs/interfaces/EuiDialogInterface.html +2 -2
  19. package/docs/js/menu-wc.js +6 -6
  20. package/docs/js/menu-wc_es5.js +1 -1
  21. package/docs/js/search/search_index.js +2 -2
  22. package/esm2022/directives/eui-tooltip/container/eui-tooltip-container.component.mjs +2 -2
  23. package/esm2022/eui-alert/eui-alert.component.mjs +4 -3
  24. package/esm2022/eui-avatar/eui-avatar.component.mjs +2 -2
  25. package/esm2022/eui-badge/eui-badge.component.mjs +2 -2
  26. package/esm2022/eui-block-content/eui-block-content.component.mjs +2 -2
  27. package/esm2022/eui-button/eui-button.component.mjs +4 -5
  28. package/esm2022/eui-button-group/eui-button-group.component.mjs +1 -1
  29. package/esm2022/eui-button-v2/eui-button-v2.component.mjs +2 -2
  30. package/esm2022/eui-card/eui-card.component.mjs +2 -2
  31. package/esm2022/eui-chip/eui-chip.component.mjs +2 -2
  32. package/esm2022/eui-chip-list/eui-chip-list.component.mjs +2 -6
  33. package/esm2022/eui-dialog/container/eui-dialog-container.component.mjs +10 -10
  34. package/esm2022/eui-dialog/eui-dialog.component.mjs +29 -33
  35. package/esm2022/eui-dialog/models/eui-dialog.config.mjs +1 -1
  36. package/esm2022/eui-discussion-thread/eui-discussion-thread.component.mjs +2 -2
  37. package/esm2022/eui-ecl-date-block/eui-ecl-date-block.component.mjs +2 -2
  38. package/esm2022/eui-ecl-label/eui-ecl-label.component.mjs +2 -2
  39. package/esm2022/eui-feedback-message/eui-feedback-message.component.mjs +2 -2
  40. package/esm2022/eui-fieldset/eui-fieldset.component.mjs +2 -2
  41. package/esm2022/eui-file-upload/eui-file-upload.component.mjs +2 -2
  42. package/esm2022/eui-growl/eui-growl.component.mjs +2 -2
  43. package/esm2022/eui-input-checkbox/eui-input-checkbox.component.mjs +2 -2
  44. package/esm2022/eui-label/eui-label.component.mjs +2 -2
  45. package/esm2022/eui-language-selector/language-selector.component.mjs +2 -2
  46. package/esm2022/eui-list/eui-list-item/eui-list-item.component.mjs +2 -2
  47. package/esm2022/eui-list/eui-list.component.mjs +2 -2
  48. package/esm2022/eui-menu/eui-menu-item.component.mjs +4 -4
  49. package/esm2022/eui-menu/eui-menu.component.mjs +2 -2
  50. package/esm2022/eui-message-box/eui-message-box.component.mjs +51 -110
  51. package/esm2022/eui-message-box/models/eui-message-box.config.mjs +1 -1
  52. package/esm2022/eui-page/eui-page.component.mjs +2 -2
  53. package/esm2022/eui-popover/eui-popover.component.mjs +50 -72
  54. package/esm2022/eui-progress-bar/eui-progress-bar.component.mjs +2 -2
  55. package/esm2022/eui-progress-circle/eui-progress-circle.component.mjs +2 -2
  56. package/esm2022/eui-table/eui-table.component.mjs +82 -160
  57. package/esm2022/eui-table/filter/eui-table-filter.component.mjs +28 -32
  58. package/esm2022/eui-table/selectable-header/eui-table-selectable-header.component.mjs +12 -25
  59. package/esm2022/eui-table/selectable-row/eui-table-selectable-row.component.mjs +12 -25
  60. package/esm2022/eui-table/sortable-col/eui-table-sortable-col.component.mjs +20 -43
  61. package/esm2022/eui-tabs/eui-tab/eui-tab.component.mjs +44 -59
  62. package/esm2022/eui-tabs/eui-tab-content/eui-tab-content.component.mjs +6 -12
  63. package/esm2022/eui-tabs/eui-tabs.component.mjs +22 -45
  64. package/esm2022/eui-timebar/eui-timebar.component.mjs +2 -2
  65. package/esm2022/eui-timepicker/eui-timepicker.component.mjs +2 -2
  66. package/esm2022/eui-tree-list/eui-tree-list.component.mjs +2 -2
  67. package/esm2022/eui-wizard/eui-wizard-step.component.mjs +2 -2
  68. package/esm2022/eui-wizard/eui-wizard.component.mjs +2 -2
  69. package/esm2022/externals/eui-editor/eui-editor.component.mjs +2 -2
  70. package/esm2022/layout/eui-app/eui-app-toolbar/toolbar.component.mjs +2 -2
  71. package/esm2022/layout/eui-app/eui-app-top-message/top-message.component.mjs +2 -2
  72. package/esm2022/layout/eui-footer/footer.component.mjs +2 -2
  73. package/esm2022/layout/eui-notifications/eui-notifications.component.mjs +2 -2
  74. package/esm2022/layout/eui-notifications-v2/eui-notifications.component.mjs +2 -2
  75. package/esm2022/layout/eui-search/search.component.mjs +2 -2
  76. package/esm2022/layout/eui-toolbar/toolbar.component.mjs +2 -2
  77. package/esm2022/layout/eui-user-profile/user-profile.component.mjs +2 -2
  78. package/esm2022/shared/base/base-states.directive.mjs +2 -1
  79. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  80. package/eui-button/eui-button.component.d.ts.map +1 -1
  81. package/eui-button-group/eui-button-group.component.d.ts.map +1 -1
  82. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  83. package/eui-dialog/eui-dialog.component.d.ts +11 -6
  84. package/eui-dialog/eui-dialog.component.d.ts.map +1 -1
  85. package/eui-dialog/models/eui-dialog.config.d.ts +1 -1
  86. package/eui-dialog/models/eui-dialog.config.d.ts.map +1 -1
  87. package/eui-menu/eui-menu-item.component.d.ts.map +1 -1
  88. package/eui-message-box/eui-message-box.component.d.ts +26 -42
  89. package/eui-message-box/eui-message-box.component.d.ts.map +1 -1
  90. package/eui-message-box/models/eui-message-box.config.d.ts +1 -1
  91. package/eui-message-box/models/eui-message-box.config.d.ts.map +1 -1
  92. package/eui-popover/eui-popover.component.d.ts +18 -21
  93. package/eui-popover/eui-popover.component.d.ts.map +1 -1
  94. package/eui-table/eui-table.component.d.ts +36 -51
  95. package/eui-table/eui-table.component.d.ts.map +1 -1
  96. package/eui-table/filter/eui-table-filter.component.d.ts +9 -9
  97. package/eui-table/filter/eui-table-filter.component.d.ts.map +1 -1
  98. package/eui-table/selectable-header/eui-table-selectable-header.component.d.ts +4 -7
  99. package/eui-table/selectable-header/eui-table-selectable-header.component.d.ts.map +1 -1
  100. package/eui-table/selectable-row/eui-table-selectable-row.component.d.ts +4 -7
  101. package/eui-table/selectable-row/eui-table-selectable-row.component.d.ts.map +1 -1
  102. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts +10 -16
  103. package/eui-table/sortable-col/eui-table-sortable-col.component.d.ts.map +1 -1
  104. package/eui-tabs/eui-tab/eui-tab.component.d.ts +18 -23
  105. package/eui-tabs/eui-tab/eui-tab.component.d.ts.map +1 -1
  106. package/eui-tabs/eui-tab-content/eui-tab-content.component.d.ts +2 -4
  107. package/eui-tabs/eui-tab-content/eui-tab-content.component.d.ts.map +1 -1
  108. package/eui-tabs/eui-tabs.component.d.ts +8 -13
  109. package/eui-tabs/eui-tabs.component.d.ts.map +1 -1
  110. package/fesm2022/eui-components-directives.mjs +2 -2
  111. package/fesm2022/eui-components-eui-alert.mjs +11 -10
  112. package/fesm2022/eui-components-eui-alert.mjs.map +2 -2
  113. package/fesm2022/eui-components-eui-avatar.mjs +2 -2
  114. package/fesm2022/eui-components-eui-badge.mjs +2 -2
  115. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  116. package/fesm2022/eui-components-eui-block-content.mjs +2 -2
  117. package/fesm2022/eui-components-eui-block-content.mjs.map +1 -1
  118. package/fesm2022/eui-components-eui-button-group.mjs.map +1 -1
  119. package/fesm2022/eui-components-eui-button-v2.mjs +2 -2
  120. package/fesm2022/eui-components-eui-button.mjs +3 -4
  121. package/fesm2022/eui-components-eui-button.mjs.map +2 -2
  122. package/fesm2022/eui-components-eui-card.mjs +2 -2
  123. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  124. package/fesm2022/eui-components-eui-chip-list.mjs +1 -5
  125. package/fesm2022/eui-components-eui-chip-list.mjs.map +2 -2
  126. package/fesm2022/eui-components-eui-chip.mjs +2 -2
  127. package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
  128. package/fesm2022/eui-components-eui-dialog.mjs +236 -212
  129. package/fesm2022/eui-components-eui-dialog.mjs.map +2 -2
  130. package/fesm2022/eui-components-eui-discussion-thread.mjs +2 -2
  131. package/fesm2022/eui-components-eui-discussion-thread.mjs.map +1 -1
  132. package/fesm2022/eui-components-eui-ecl-date-block.mjs +2 -2
  133. package/fesm2022/eui-components-eui-ecl-date-block.mjs.map +1 -1
  134. package/fesm2022/eui-components-eui-ecl-label.mjs +2 -2
  135. package/fesm2022/eui-components-eui-ecl-label.mjs.map +1 -1
  136. package/fesm2022/eui-components-eui-feedback-message.mjs +2 -2
  137. package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
  138. package/fesm2022/eui-components-eui-file-upload.mjs +2 -2
  139. package/fesm2022/eui-components-eui-file-upload.mjs.map +1 -1
  140. package/fesm2022/eui-components-eui-growl.mjs +2 -2
  141. package/fesm2022/eui-components-eui-input-checkbox.mjs +2 -2
  142. package/fesm2022/eui-components-eui-input-checkbox.mjs.map +1 -1
  143. package/fesm2022/eui-components-eui-label.mjs +2 -2
  144. package/fesm2022/eui-components-eui-language-selector.mjs +2 -2
  145. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  146. package/fesm2022/eui-components-eui-list.mjs +4 -4
  147. package/fesm2022/eui-components-eui-menu.mjs +23 -27
  148. package/fesm2022/eui-components-eui-menu.mjs.map +2 -2
  149. package/fesm2022/eui-components-eui-message-box.mjs +49 -105
  150. package/fesm2022/eui-components-eui-message-box.mjs.map +2 -2
  151. package/fesm2022/eui-components-eui-page.mjs +2 -2
  152. package/fesm2022/eui-components-eui-page.mjs.map +1 -1
  153. package/fesm2022/eui-components-eui-popover.mjs +49 -150
  154. package/fesm2022/eui-components-eui-popover.mjs.map +2 -2
  155. package/fesm2022/eui-components-eui-progress-bar.mjs +2 -2
  156. package/fesm2022/eui-components-eui-progress-bar.mjs.map +1 -1
  157. package/fesm2022/eui-components-eui-progress-circle.mjs +2 -2
  158. package/fesm2022/eui-components-eui-progress-circle.mjs.map +1 -1
  159. package/fesm2022/eui-components-eui-table.mjs +254 -418
  160. package/fesm2022/eui-components-eui-table.mjs.map +3 -3
  161. package/fesm2022/eui-components-eui-tabs.mjs +72 -116
  162. package/fesm2022/eui-components-eui-tabs.mjs.map +3 -3
  163. package/fesm2022/eui-components-eui-timebar.mjs +2 -2
  164. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  165. package/fesm2022/eui-components-eui-timepicker.mjs +2 -2
  166. package/fesm2022/eui-components-eui-timepicker.mjs.map +1 -1
  167. package/fesm2022/eui-components-eui-tree-list.mjs +2 -2
  168. package/fesm2022/eui-components-eui-tree-list.mjs.map +1 -1
  169. package/fesm2022/eui-components-eui-wizard.mjs +4 -4
  170. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  171. package/fesm2022/eui-components-externals-eui-editor.mjs +2 -2
  172. package/fesm2022/eui-components-externals-eui-editor.mjs.map +1 -1
  173. package/fesm2022/eui-components-layout.mjs +16 -16
  174. package/fesm2022/eui-components-layout.mjs.map +1 -1
  175. package/fesm2022/eui-components-shared.mjs +1 -1
  176. package/fesm2022/eui-components-shared.mjs.map +2 -2
  177. package/package.json +3 -3
  178. package/shared/base/base-states.directive.d.ts.map +1 -1
@@ -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 isCategoryItem = 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 @Input({ transform: booleanAttribute }) isLabelLowercase = 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 this.isCategoryItem = this.item.label && !this.item.url && !this.item.urlExternal && !this.item.hasMarker && !this.item.children;\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", "<li\n *ngIf=\"isLabelItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item eui-menu-item__category\"\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 <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <span class=\"eui-menu-item__category-label\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n </span>\n</li>\n\n<li\n *ngIf=\"isUrlItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n [routerLink]=\"item.url ? item.url : null\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [class.eui-menu-item__link--active]=\"item.active\"\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<li\n *ngIf=\"isLinkItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\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<ng-template #linkContent>\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <eui-icon-svg\n *ngIf=\"item.hasMarker && !hasCollapsedInitials\"\n class=\"eui-menu-item__link-marker eui-menu-item__link-marker--default\"\n fillColor=\"{{ item?.markerTypeClass }}-100\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n\n <span class=\"eui-menu-item__link-label\" [class.eui-menu-item--disabled]=\"item.disabled\" [attr.aria-disabled]=\"item.disabled\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n\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 </eui-icon-svg>\n </span>\n\n <div class=\"eui-menu-item__link-right-content\">\n <eui-chip *ngIf=\"item.tagLabel\" euiSizeXS euiOutline class=\"eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}\" [ariaLabel]=\"item.tagLabel\">\n <span euiLabel class=\"eui-label\">{{ item.tagLabel }}</span>\n </eui-chip>\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 eui-button--secondary\"\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 </div>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n <eui-icon-svg\n *ngIf=\"hasIcon && item.iconSvgName && !item.iconClass\"\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n <span *ngIf=\"hasIcon && item.iconClass && !item.iconSvgName\" [attr.aria-label]=\"item.iconLabel\"\n class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\">\n </span>\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-bg-color-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (isCategoryItem) {\n <eui-icon-svg\n *ngIf=\"!item.iconSvgName\"\n class=\"eui-menu-item__category-icon--default\"\n icon=\"eui-ellipse\"\n fillColor=\"grey-75\"\n size=\"xs\">\n </eui-icon-svg>\n\n } @else {\n <eui-icon-svg\n *ngIf=\"hasIcon && item.iconSvgName\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n <eui-icon-svg\n *ngIf=\"hasIcon && !isCategoryItem && !item.hasMarker && !item.iconSvgName && !item.iconClass\"\n class=\"eui-menu-item__link-icon--default\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n", "import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd, Event as RouterEvent } 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-wrapper'),\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 @Input({ transform: booleanAttribute }) hasLowercaseItems = 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 @HostListener('keydown', ['$event'])\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 this.subscription = this.router.events.subscribe((event: RouterEvent) => {\n if (event instanceof NavigationEnd) {\n const item = this.findMostRelevantItem(event.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 }\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 this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\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", "<div *ngIf=\"hasFilter && !isCollapsed\" class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <div class=\"eui-menu-filter__input-wrapper\">\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n class=\"eui-menu-filter__input\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n <eui-icon-svg icon=\"eui-search\" class=\"eui-menu-filter__input-search\" fillColor=\"grey-50\" aria-label=\"Search Icon\"></eui-icon-svg>\n </div>\n</div>\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\">\n <span *ngIf=\"!items\" class=\"eui-menu--no-items\">No menu items defined</span>\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</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 [isLabelLowercase]=\"hasLowercaseItems\"\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';\n\n@NgModule({\n imports: [CommonModule, RouterModule, EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule],\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 isCategoryItem = 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 @Input({ transform: booleanAttribute }) isLabelLowercase = 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 this.isCategoryItem = this.item.label && !this.item.url && !this.item.urlExternal && !this.item.hasMarker && !this.item.children && !this.item.command && !this.item.actionIcon;\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", "<li\n *ngIf=\"isLabelItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n class=\"eui-menu-item eui-menu-item__category\"\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 <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <span class=\"eui-menu-item__category-label\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n </span>\n</li>\n\n<li\n *ngIf=\"isUrlItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n [routerLink]=\"item.url ? item.url : null\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [routerLinkActive]=\"item.url ? 'eui-menu-item__link--active' : ''\"\n [class.eui-menu-item__link--active]=\"item.active\"\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<li\n *ngIf=\"isLinkItem && item.visible && item.filtered\"\n role=\"none\"\n id=\"{{item.id}}\"\n [attr.data-e2e]=\"item.e2eAttr\"\n class=\"eui-menu-item\"\n [class.eui-menu-item--expanded]=\"item.expanded\">\n <a\n (click)=\"onClick($event)\"\n tabindex=\"-1\"\n class=\"eui-menu-item__link\"\n [class.eui-menu-item--disabled]=\"item.disabled\"\n [class.eui-menu-item__link--active]=\"item.active\"\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<ng-template #linkContent>\n <ng-template *ngTemplateOutlet=\"itemIconContent\" [ngTemplateOutletContext]=\"{ $implicit: item }\"></ng-template>\n\n <eui-icon-svg\n *ngIf=\"item.hasMarker && !hasCollapsedInitials\"\n class=\"eui-menu-item__link-marker eui-menu-item__link-marker--default\"\n fillColor=\"{{ item?.markerTypeClass }}-100\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.markerTypeClass + ' ' + 'marker'\">\n </eui-icon-svg>\n\n <span class=\"eui-menu-item__link-label\" [class.eui-menu-item--disabled]=\"item.disabled\" [attr.aria-disabled]=\"item.disabled\">\n <span class=\"eui-menu-item__label\">{{ item.label }}</span>\n\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 </eui-icon-svg>\n </span>\n\n <div class=\"eui-menu-item__link-right-content\">\n <eui-chip *ngIf=\"item.tagLabel\" euiSizeXS euiOutline class=\"eui-menu-item__link-tag-label eui-chip--{{ item.tagTypeClass }}\" [ariaLabel]=\"item.tagLabel\">\n <span euiLabel class=\"eui-label\">{{ item.tagLabel }}</span>\n </eui-chip>\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 </div>\n</ng-template>\n\n<ng-template #content>\n <ng-content></ng-content>\n</ng-template>\n\n<ng-template #itemIconContent>\n @if (!isCollapsed) {\n <eui-icon-svg\n *ngIf=\"hasIcon && item.iconSvgName && !item.iconClass\"\n class=\"eui-menu-item__link-icon\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n <span *ngIf=\"hasIcon && item.iconClass && !item.iconSvgName\" [attr.aria-label]=\"item.iconLabel\"\n class=\"eui-menu-item__link-icon eui-icon {{item.iconClass}}\">\n </span>\n } @else {\n @if (hasCollapsedInitials) {\n <span class=\"eui-menu-item__link-initials eui-u-bg-color-{{item.iconTypeClass}}\">\n {{ item.initials }}\n </span>\n } @else {\n @if (hasIcon) { \n <eui-icon-svg\n *ngIf=\"item.iconSvgName\"\n icon=\"{{ item.iconSvgName }}\"\n fillColor=\"{{ item.iconTypeClass }}\"\n size=\"s\">\n </eui-icon-svg>\n\n <eui-icon-svg\n *ngIf=\"!item.iconSvgName\"\n class=\"eui-menu-item__category-icon--default\"\n icon=\"eui-ellipse\"\n fillColor=\"grey-75\"\n size=\"xs\">\n </eui-icon-svg>\n } @else {\n <eui-icon-svg\n class=\"eui-menu-item__link-icon--default\"\n icon=\"eui-ellipse\"\n size=\"xs\"\n [aria-label]=\"item.iconLabel\">\n </eui-icon-svg>\n }\n }\n }\n</ng-template>\n", "import {\n Component,\n HostBinding,\n ViewEncapsulation,\n Input,\n OnInit,\n Output,\n EventEmitter,\n OnChanges,\n SimpleChanges,\n HostListener,\n booleanAttribute,\n OnDestroy,\n AfterViewInit,\n ViewChildren,\n QueryList,\n ChangeDetectorRef,\n} from '@angular/core';\nimport { Router, ActivatedRoute, NavigationEnd, Event as RouterEvent } 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-wrapper'),\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 @Input({ transform: booleanAttribute }) hasLowercaseItems = 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 @HostListener('keydown', ['$event'])\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 this.subscription = this.router.events.subscribe((event: RouterEvent) => {\n if (event instanceof NavigationEnd) {\n const item = this.findMostRelevantItem(event.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 }\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 this.onExpandToggled(item, this.items);\n // TODO: investigate why the above is needed. Can it be simply \"item.expanded = !item.expanded;\" ?\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", "<div *ngIf=\"hasFilter && !isCollapsed\" class=\"eui-menu-filter\" (click)=\"onMenuFilterClick($event)\">\n <div class=\"eui-menu-filter__input-wrapper\">\n <input\n euiInputText\n [euiClearable]=\"true\"\n (input)=\"onFilter($event)\"\n class=\"eui-menu-filter__input\"\n [placeholder]=\"searchFilterLabel\"\n [attr.aria-label]=\"searchFilterLabel\"\n [value]=\"filterValue\" />\n <eui-icon-svg icon=\"eui-search\" class=\"eui-menu-filter__input-search\" fillColor=\"grey-50\" aria-label=\"Search Icon\"></eui-icon-svg>\n </div>\n</div>\n<ul euiList class=\"eui-menu\" role=\"menubar\" aria-orientation=\"vertical\" tabindex=\"0\">\n <span *ngIf=\"!items\" class=\"eui-menu--no-items\">No menu items defined</span>\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</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 [isLabelLowercase]=\"hasLowercaseItems\"\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';\n\n@NgModule({\n imports: [CommonModule, RouterModule, EuiIconModule, EuiChipModule, EuiButtonModule, EuiInputTextModule, EuiTooltipDirectiveModule],\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
  }
@@ -40,113 +40,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.4",
40
40
  }], ctorParameters: () => [{ type: i1.EuiDialogService }] });
41
41
 
42
42
  // eui-message-box.component.mjs
43
- import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, EventEmitter, Directive, ContentChild, forwardRef } from "@angular/core";
43
+ import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, Output, EventEmitter, Directive, ContentChild, forwardRef, booleanAttribute } from "@angular/core";
44
44
  import { TemplatePortal } from "@angular/cdk/portal";
45
45
  import { Subject } from "rxjs";
46
46
  import { coerceBooleanProperty } from "@angular/cdk/coercion";
47
- import { BaseDirective } from "@eui/components/shared";
47
+ import { BaseStatesDirective } from "@eui/components/shared";
48
48
  import * as i02 from "@angular/core";
49
- var EuiMessageBoxComponent = class _EuiMessageBoxComponent extends BaseDirective {
50
- get hasAcceptButton() {
51
- return this._hasAcceptButton;
52
- }
53
- set hasAcceptButton(value) {
54
- this._hasAcceptButton = coerceBooleanProperty(value);
55
- }
56
- get hasDismissButton() {
57
- return this._hasDismissButton;
58
- }
59
- set hasDismissButton(value) {
60
- this._hasDismissButton = coerceBooleanProperty(value);
61
- }
62
- get isHandleCloseOnDismiss() {
63
- return this._isHandleCloseOnDismiss;
64
- }
65
- set isHandleCloseOnDismiss(value) {
66
- this._isHandleCloseOnDismiss = coerceBooleanProperty(value);
67
- }
68
- get isHandleCloseOnClose() {
69
- return this._isHandleCloseOnClose;
70
- }
71
- set isHandleCloseOnClose(value) {
72
- this._isHandleCloseOnClose = coerceBooleanProperty(value);
73
- }
74
- get isHandleCloseOnAccept() {
75
- return this._isHandleCloseOnAccept;
76
- }
77
- set isHandleCloseOnAccept(value) {
78
- this._isHandleCloseOnAccept = coerceBooleanProperty(value);
79
- }
80
- get isDraggable() {
81
- return this._isDraggable;
82
- }
83
- set isDraggable(value) {
84
- this._isDraggable = coerceBooleanProperty(value);
85
- }
86
- get hasNoBodyPadding() {
87
- return this._hasNoBodyPadding;
88
- }
89
- set hasNoBodyPadding(value) {
90
- this._hasNoBodyPadding = coerceBooleanProperty(value);
91
- }
92
- /**
93
- * @deprecated eui-message-box is always closed on escape, for accessibility reasons. This input has no effect.
94
- * To be removed in eUI-18
95
- */
96
- get isClosedOnEscape() {
97
- return this._isClosedOnEscape;
98
- }
99
- set isClosedOnEscape(value) {
100
- this._isClosedOnEscape = coerceBooleanProperty(value);
101
- }
102
- constructor(viewContainerRef, euiMessageBoxService) {
103
- super();
49
+ import * as i2 from "@eui/components/shared";
50
+ var EuiMessageBoxComponent = class _EuiMessageBoxComponent {
51
+ constructor(viewContainerRef, euiMessageBoxService, baseStatesDirective) {
104
52
  this.viewContainerRef = viewContainerRef;
105
53
  this.euiMessageBoxService = euiMessageBoxService;
54
+ this.baseStatesDirective = baseStatesDirective;
106
55
  this.e2eAttr = "eui-dialog";
107
56
  this.width = "33rem";
108
57
  this.height = "auto";
58
+ this.hasAcceptButton = true;
59
+ this.hasDismissButton = true;
109
60
  this.acceptLabel = "eui.OK";
110
61
  this.dismissLabel = "eui.CANCEL";
111
62
  this.typeClass = "primary";
112
- this.messageBoxopen = new EventEmitter();
63
+ this.isHandleCloseOnDismiss = false;
64
+ this.isHandleCloseOnClose = false;
65
+ this.isHandleCloseOnAccept = false;
66
+ this.isDraggable = false;
67
+ this.hasNoBodyPadding = false;
68
+ this.isClosedOnEscape = true;
113
69
  this.messageBoxOpen = new EventEmitter();
114
70
  this.messageBoxClose = new EventEmitter();
115
71
  this.dismiss = new EventEmitter();
116
72
  this.accept = new EventEmitter();
117
- this._hasAcceptButton = true;
118
- this._hasDismissButton = true;
119
- this._isHandleCloseOnDismiss = false;
120
- this._isHandleCloseOnClose = false;
121
- this._isHandleCloseOnAccept = false;
122
- this._isDraggable = false;
123
- this._hasNoBodyPadding = false;
124
- this._isClosedOnEscape = true;
125
73
  this.destroy$ = new Subject();
126
74
  }
127
- ngOnInit() {
128
- if (this.euiPrimary) {
129
- this.typeClass = "primary";
130
- }
131
- if (this.euiSecondary) {
132
- this.typeClass = "secondary";
133
- }
134
- if (this.euiInfo) {
135
- this.typeClass = "info";
136
- }
137
- if (this.euiSuccess) {
138
- this.typeClass = "success";
139
- }
140
- if (this.euiWarning) {
141
- this.typeClass = "warning";
142
- }
143
- if (this.euiDanger) {
144
- this.typeClass = "danger";
145
- }
146
- if (this.euiAccent) {
147
- this.typeClass = "accent";
148
- }
149
- }
150
75
  ngAfterViewInit() {
151
76
  this.templatePortalContent = new TemplatePortal(this.templateRefContent, this.viewContainerRef);
152
77
  if (this.euiMessageBoxFooterDirective) {
@@ -166,7 +91,7 @@ var EuiMessageBoxComponent = class _EuiMessageBoxComponent extends BaseDirective
166
91
  title: this.title,
167
92
  width: this.width,
168
93
  height: this.height,
169
- typeClass: this.typeClass,
94
+ typeClass: this.baseStatesDirective.euiVariant.length > 0 ? this.baseStatesDirective.euiVariant : "primary",
170
95
  acceptLabel: this.acceptLabel,
171
96
  dismissLabel: this.dismissLabel,
172
97
  hasCloseButton: false,
@@ -185,7 +110,6 @@ var EuiMessageBoxComponent = class _EuiMessageBoxComponent extends BaseDirective
185
110
  footer: this.templatePortalFooter,
186
111
  isMessageBox: true,
187
112
  open: () => {
188
- this.messageBoxopen.emit();
189
113
  this.messageBoxOpen.emit();
190
114
  },
191
115
  close: () => {
@@ -207,16 +131,30 @@ var EuiMessageBoxComponent = class _EuiMessageBoxComponent extends BaseDirective
207
131
  this.euiMessageBoxService.closeMessageBox();
208
132
  }
209
133
  static {
210
- this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.4", ngImport: i02, type: _EuiMessageBoxComponent, deps: [{ token: i02.ViewContainerRef }, { token: EuiMessageBoxService }], target: i02.ɵɵFactoryTarget.Component });
134
+ this.ɵfac = i02.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.0-next.4", ngImport: i02, type: _EuiMessageBoxComponent, deps: [{ token: i02.ViewContainerRef }, { token: EuiMessageBoxService }, { token: i2.BaseStatesDirective }], target: i02.ɵɵFactoryTarget.Component });
211
135
  }
212
136
  static {
213
- this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.0.0-next.4", type: _EuiMessageBoxComponent, selector: "eui-message-box", inputs: { e2eAttr: "e2eAttr", title: "title", width: "width", height: "height", hasAcceptButton: "hasAcceptButton", hasDismissButton: "hasDismissButton", acceptLabel: "acceptLabel", dismissLabel: "dismissLabel", typeClass: "typeClass", isHandleCloseOnDismiss: "isHandleCloseOnDismiss", isHandleCloseOnClose: "isHandleCloseOnClose", isHandleCloseOnAccept: "isHandleCloseOnAccept", isDraggable: "isDraggable", hasNoBodyPadding: "hasNoBodyPadding", isClosedOnEscape: "isClosedOnEscape" }, outputs: { messageBoxopen: "messageBoxopen", messageBoxOpen: "messageBoxOpen", messageBoxClose: "messageBoxClose", dismiss: "dismiss", accept: "accept" }, queries: [{ propertyName: "euiMessageBoxFooterDirective", first: true, predicate: i02.forwardRef(() => EuiMessageBoxFooterDirective), descendants: true }], viewQueries: [{ propertyName: "templateRefContent", first: true, predicate: ["templateRefContent"], descendants: true }, { propertyName: "templateRefFooter", first: true, predicate: ["templateRefFooter"], descendants: true }], usesInheritance: true, ngImport: i02, template: '<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select="eui-message-box-footer"></ng-content>\n</ng-template>\n', changeDetection: i02.ChangeDetectionStrategy.OnPush, encapsulation: i02.ViewEncapsulation.None });
137
+ this.ɵcmp = i02.ɵɵngDeclareComponent({ minVersion: "16.1.0", version: "18.0.0-next.4", type: _EuiMessageBoxComponent, selector: "eui-message-box", inputs: { e2eAttr: "e2eAttr", title: "title", width: "width", height: "height", hasAcceptButton: ["hasAcceptButton", "hasAcceptButton", booleanAttribute], hasDismissButton: ["hasDismissButton", "hasDismissButton", booleanAttribute], acceptLabel: "acceptLabel", dismissLabel: "dismissLabel", typeClass: "typeClass", isHandleCloseOnDismiss: ["isHandleCloseOnDismiss", "isHandleCloseOnDismiss", booleanAttribute], isHandleCloseOnClose: ["isHandleCloseOnClose", "isHandleCloseOnClose", booleanAttribute], isHandleCloseOnAccept: ["isHandleCloseOnAccept", "isHandleCloseOnAccept", booleanAttribute], isDraggable: ["isDraggable", "isDraggable", booleanAttribute], hasNoBodyPadding: ["hasNoBodyPadding", "hasNoBodyPadding", booleanAttribute], isClosedOnEscape: ["isClosedOnEscape", "isClosedOnEscape", booleanAttribute] }, outputs: { messageBoxOpen: "messageBoxOpen", messageBoxClose: "messageBoxClose", dismiss: "dismiss", accept: "accept" }, queries: [{ propertyName: "euiMessageBoxFooterDirective", first: true, predicate: i02.forwardRef(() => EuiMessageBoxFooterDirective), descendants: true }], viewQueries: [{ propertyName: "templateRefContent", first: true, predicate: ["templateRefContent"], descendants: true }, { propertyName: "templateRefFooter", first: true, predicate: ["templateRefFooter"], descendants: true }], hostDirectives: [{ directive: i2.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiInfo", "euiInfo", "euiSuccess", "euiSuccess", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i02, template: '<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select="eui-message-box-footer"></ng-content>\n</ng-template>\n', changeDetection: i02.ChangeDetectionStrategy.OnPush, encapsulation: i02.ViewEncapsulation.None });
214
138
  }
215
139
  };
216
140
  i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.4", ngImport: i02, type: EuiMessageBoxComponent, decorators: [{
217
141
  type: Component,
218
- args: [{ selector: "eui-message-box", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, template: '<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select="eui-message-box-footer"></ng-content>\n</ng-template>\n' }]
219
- }], ctorParameters: () => [{ type: i02.ViewContainerRef }, { type: EuiMessageBoxService }], propDecorators: { e2eAttr: [{
142
+ args: [{ selector: "eui-message-box", changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, hostDirectives: [
143
+ {
144
+ directive: BaseStatesDirective,
145
+ inputs: [
146
+ "euiPrimary",
147
+ "euiSecondary",
148
+ "euiInfo",
149
+ "euiSuccess",
150
+ "euiWarning",
151
+ "euiDanger",
152
+ "euiAccent",
153
+ "euiVariant"
154
+ ]
155
+ }
156
+ ], template: '<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select="eui-message-box-footer"></ng-content>\n</ng-template>\n' }]
157
+ }], ctorParameters: () => [{ type: i02.ViewContainerRef }, { type: EuiMessageBoxService }, { type: i2.BaseStatesDirective }], propDecorators: { e2eAttr: [{
220
158
  type: Input
221
159
  }], title: [{
222
160
  type: Input
@@ -225,9 +163,11 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.4",
225
163
  }], height: [{
226
164
  type: Input
227
165
  }], hasAcceptButton: [{
228
- type: Input
166
+ type: Input,
167
+ args: [{ transform: booleanAttribute }]
229
168
  }], hasDismissButton: [{
230
- type: Input
169
+ type: Input,
170
+ args: [{ transform: booleanAttribute }]
231
171
  }], acceptLabel: [{
232
172
  type: Input
233
173
  }], dismissLabel: [{
@@ -235,19 +175,23 @@ i02.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.0-next.4",
235
175
  }], typeClass: [{
236
176
  type: Input
237
177
  }], isHandleCloseOnDismiss: [{
238
- type: Input
178
+ type: Input,
179
+ args: [{ transform: booleanAttribute }]
239
180
  }], isHandleCloseOnClose: [{
240
- type: Input
181
+ type: Input,
182
+ args: [{ transform: booleanAttribute }]
241
183
  }], isHandleCloseOnAccept: [{
242
- type: Input
184
+ type: Input,
185
+ args: [{ transform: booleanAttribute }]
243
186
  }], isDraggable: [{
244
- type: Input
187
+ type: Input,
188
+ args: [{ transform: booleanAttribute }]
245
189
  }], hasNoBodyPadding: [{
246
- type: Input
190
+ type: Input,
191
+ args: [{ transform: booleanAttribute }]
247
192
  }], isClosedOnEscape: [{
248
- type: Input
249
- }], messageBoxopen: [{
250
- type: Output
193
+ type: Input,
194
+ args: [{ transform: booleanAttribute }]
251
195
  }], messageBoxOpen: [{
252
196
  type: Output
253
197
  }], messageBoxClose: [{
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../eui-message-box/services/eui-message-box.service.ts", "../../eui-message-box/eui-message-box.component.ts", "../../eui-message-box/eui-message-box.component.html", "../../eui-message-box/models/eui-message-box.config.ts", "../../eui-message-box/eui-message-box.module.ts"],
4
- "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { EuiDialogInterface, EuiDialogService } from '@eui/components/eui-dialog';\n\n@Injectable()\nexport class EuiMessageBoxService {\n constructor(private euiDialogService: EuiDialogService) {}\n\n /**\n * Open a Message box.\n *\n * @param config Configuration applied to the Message box.\n */\n public openMessageBox<HC, HCC, BC, BCC, FC, FCC>(config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {}): void {\n this.euiDialogService.openDialog({\n ...config,\n header: null,\n headerComponent: null,\n hasClosedOnClickOutside: false,\n hasCloseButton: false,\n hasClosedOnEscape: true,\n hasFooter: true,\n });\n }\n\n /**\n * Close a Message box.\n */\n public closeMessageBox(): void {\n this.euiDialogService.closeDialog();\n }\n}\n", "import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n Output,\n EventEmitter,\n Directive,\n ContentChild,\n forwardRef,\n QueryList,\n ElementRef,\n OnInit,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { coerceBooleanProperty, BooleanInput } from '@angular/cdk/coercion';\nimport { BaseDirective } from '@eui/components/shared';\nimport { EuiDialogInterface } from '@eui/components/eui-dialog';\n\nimport { EuiMessageBoxService } from './services/eui-message-box.service';\n\n@Component({\n selector: 'eui-message-box',\n templateUrl: './eui-message-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n})\nexport class EuiMessageBoxComponent extends BaseDirective implements AfterViewInit, OnDestroy, OnInit {\n @Input() e2eAttr = 'eui-dialog';\n @Input() title: string;\n @Input() width = '33rem';\n @Input() height = 'auto';\n @Input()\n get hasAcceptButton(): boolean {\n return this._hasAcceptButton;\n }\n set hasAcceptButton(value: BooleanInput) {\n this._hasAcceptButton = coerceBooleanProperty(value);\n }\n @Input()\n get hasDismissButton(): boolean {\n return this._hasDismissButton;\n }\n set hasDismissButton(value: BooleanInput) {\n this._hasDismissButton = coerceBooleanProperty(value);\n }\n @Input() acceptLabel = 'eui.OK';\n @Input() dismissLabel = 'eui.CANCEL';\n @Input() typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'accent' = 'primary';\n @Input()\n get isHandleCloseOnDismiss(): boolean {\n return this._isHandleCloseOnDismiss;\n }\n set isHandleCloseOnDismiss(value: BooleanInput) {\n this._isHandleCloseOnDismiss = coerceBooleanProperty(value);\n }\n @Input()\n get isHandleCloseOnClose(): boolean {\n return this._isHandleCloseOnClose;\n }\n set isHandleCloseOnClose(value: BooleanInput) {\n this._isHandleCloseOnClose = coerceBooleanProperty(value);\n }\n @Input()\n get isHandleCloseOnAccept(): boolean {\n return this._isHandleCloseOnAccept;\n }\n set isHandleCloseOnAccept(value: BooleanInput) {\n this._isHandleCloseOnAccept = coerceBooleanProperty(value);\n }\n @Input()\n get isDraggable(): boolean {\n return this._isDraggable;\n }\n\n set isDraggable(value: BooleanInput) {\n this._isDraggable = coerceBooleanProperty(value);\n }\n @Input()\n get hasNoBodyPadding(): boolean {\n return this._hasNoBodyPadding;\n }\n set hasNoBodyPadding(value: BooleanInput) {\n this._hasNoBodyPadding = coerceBooleanProperty(value);\n }\n /**\n * @deprecated eui-message-box is always closed on escape, for accessibility reasons. This input has no effect.\n * To be removed in eUI-18\n */\n @Input()\n get isClosedOnEscape(): boolean {\n return this._isClosedOnEscape;\n }\n set isClosedOnEscape(value: BooleanInput) {\n this._isClosedOnEscape = coerceBooleanProperty(value);\n }\n\n /**\n * @deprecated messageBoxopen is deprecated, please use messageBoxOpen instead.\n * To be removed in eUI-18\n */\n @Output() messageBoxopen = new EventEmitter();\n @Output() messageBoxOpen = new EventEmitter();\n @Output() messageBoxClose = new EventEmitter();\n @Output() dismiss = new EventEmitter();\n @Output() accept = new EventEmitter();\n public content: string | TemplatePortal;\n\n @ViewChild('templateRefContent') templateRefContent: TemplateRef<ElementRef>;\n @ViewChild('templateRefFooter') templateRefFooter: TemplateRef<EuiMessageBoxFooterDirective>;\n @ContentChild(forwardRef(() => EuiMessageBoxFooterDirective)) euiMessageBoxFooterDirective: QueryList<EuiMessageBoxFooterDirective>;\n\n private _hasAcceptButton = true;\n private _hasDismissButton = true;\n private _isHandleCloseOnDismiss = false;\n private _isHandleCloseOnClose = false;\n private _isHandleCloseOnAccept = false;\n private _isDraggable = false;\n private _hasNoBodyPadding = false;\n private _isClosedOnEscape = true;\n private templatePortalContent: TemplatePortal<ElementRef>;\n private templatePortalFooter: TemplatePortal<EuiMessageBoxFooterDirective>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(\n private viewContainerRef: ViewContainerRef,\n private euiMessageBoxService: EuiMessageBoxService,\n ) {\n super();\n }\n\n ngOnInit(): void {\n if (this.euiPrimary) {\n this.typeClass = 'primary';\n }\n if (this.euiSecondary) {\n this.typeClass = 'secondary';\n }\n if (this.euiInfo) {\n this.typeClass = 'info';\n }\n if (this.euiSuccess) {\n this.typeClass = 'success';\n }\n if (this.euiWarning) {\n this.typeClass = 'warning';\n }\n if (this.euiDanger) {\n this.typeClass = 'danger';\n }\n if (this.euiAccent) {\n this.typeClass = 'accent';\n }\n }\n\n ngAfterViewInit(): void {\n this.templatePortalContent = new TemplatePortal(this.templateRefContent, this.viewContainerRef);\n\n if (this.euiMessageBoxFooterDirective) {\n this.templatePortalFooter = new TemplatePortal(this.templateRefFooter, this.viewContainerRef);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Open a Message Box.\n */\n public openMessageBox<HC, HCC, BC, BCC, FC, FCC>(): void {\n const config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n e2eAttr: this.e2eAttr,\n title: this.title,\n width: this.width,\n height: this.height,\n typeClass: this.typeClass,\n acceptLabel: this.acceptLabel,\n dismissLabel: this.dismissLabel,\n hasCloseButton: false,\n hasAcceptButton: this.hasAcceptButton,\n hasDismissButton: this.hasDismissButton,\n hasClosedOnClickOutside: false,\n hasClosedOnEscape: true,\n isHandleCloseOnDismiss: this.isHandleCloseOnDismiss,\n isHandleCloseOnClose: this.isHandleCloseOnClose,\n isHandleCloseOnAccept: this.isHandleCloseOnAccept,\n isHandleCloseOnClickOutside: false,\n isHandleCloseOnEscape: false,\n isDraggable: coerceBooleanProperty(this.isDraggable),\n hasNoBodyPadding: coerceBooleanProperty(this.hasNoBodyPadding),\n content: this.templatePortalContent,\n footer: this.templatePortalFooter,\n isMessageBox: true,\n open: () => {\n this.messageBoxopen.emit();\n this.messageBoxOpen.emit();\n },\n close: () => {\n this.messageBoxClose.emit();\n },\n dismiss: () => {\n this.dismiss.emit();\n },\n accept: () => {\n this.accept.emit();\n },\n };\n\n this.euiMessageBoxService.openMessageBox(config);\n }\n\n /**\n * Close a Message Box.\n */\n public closeMessageBox(): void {\n this.euiMessageBoxService.closeMessageBox();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'eui-message-box-footer' })\nexport class EuiMessageBoxFooterDirective {}\n/* eslint-enable */\n", "<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eui-message-box-footer\"></ng-content>\n</ng-template>\n", "import { EuiDialogInterface } from '@eui/components/eui-dialog';\n\nexport class EuiMessageBoxConfig<HC, HCC, BC, BCC, FC, FCC> implements EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n e2eAttr = 'eui-message-box';\n acceptLabel = 'eui.OK';\n dismissLabel = 'eui.CANCEL';\n typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'accent' = 'primary';\n width = '33rem';\n height = 'auto';\n hasCloseButton = false;\n hasAcceptButton = true;\n hasDismissButton = true;\n hasClosedOnClickOutside = false;\n hasClosedOnEscape = false;\n isHandleCloseOnDismiss = false;\n isHandleCloseOnClose = false;\n isHandleCloseOnAccept = false;\n isHandleCloseOnClickOutside = false;\n isHandleCloseOnEscape = false;\n hasFooter = true;\n isMessageBox = true;\n header = null;\n headerComponent = null;\n\n constructor(values: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC>) {\n Object.assign(this, values);\n }\n}\n\nexport class EuiMessageBoxComponentInstances<HC, BC, FC> {\n headerComponent: HC = null;\n bodyComponent: BC = null;\n footerComponent: FC = null;\n}\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiDialogService } from '@eui/components/eui-dialog';\n\nimport { EuiMessageBoxComponent, EuiMessageBoxFooterDirective } from './eui-message-box.component';\nimport { EuiMessageBoxService } from './services/eui-message-box.service';\n\n@NgModule({\n imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule, PortalModule, OverlayModule, A11yModule, DragDropModule],\n exports: [EuiMessageBoxComponent, EuiMessageBoxFooterDirective],\n declarations: [EuiMessageBoxComponent, EuiMessageBoxFooterDirective],\n providers: [EuiMessageBoxService, EuiDialogService],\n})\nexport class EuiMessageBoxModule {}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { Injectable } from '@angular/core';\nimport { EuiDialogInterface, EuiDialogService } from '@eui/components/eui-dialog';\n\n@Injectable()\nexport class EuiMessageBoxService {\n constructor(private euiDialogService: EuiDialogService) {}\n\n /**\n * Open a Message box.\n *\n * @param config Configuration applied to the Message box.\n */\n public openMessageBox<HC, HCC, BC, BCC, FC, FCC>(config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {}): void {\n this.euiDialogService.openDialog({\n ...config,\n header: null,\n headerComponent: null,\n hasClosedOnClickOutside: false,\n hasCloseButton: false,\n hasClosedOnEscape: true,\n hasFooter: true,\n });\n }\n\n /**\n * Close a Message box.\n */\n public closeMessageBox(): void {\n this.euiDialogService.closeDialog();\n }\n}\n", "import { Component, ChangeDetectionStrategy, ViewEncapsulation, Input, ViewChild, TemplateRef, ViewContainerRef, AfterViewInit, OnDestroy, Output, EventEmitter, \n Directive, ContentChild, forwardRef, QueryList, ElementRef, booleanAttribute } from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { Subject } from 'rxjs';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiDialogInterface } from '@eui/components/eui-dialog';\n\nimport { EuiMessageBoxService } from './services/eui-message-box.service';\n\n@Component({\n selector: 'eui-message-box',\n templateUrl: './eui-message-box.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiPrimary',\n 'euiSecondary',\n 'euiInfo',\n 'euiSuccess',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiVariant',\n ],\n },\n ],\n})\nexport class EuiMessageBoxComponent implements AfterViewInit, OnDestroy {\n @Input() e2eAttr = 'eui-dialog';\n @Input() title: string;\n @Input() width = '33rem';\n @Input() height = 'auto';\n @Input({ transform: booleanAttribute }) hasAcceptButton = true;\n @Input({ transform: booleanAttribute }) hasDismissButton = true;\n @Input() acceptLabel = 'eui.OK';\n @Input() dismissLabel = 'eui.CANCEL';\n /** @deprecated This will be removed in next version of eui in favor of euiVariant: primary, secondary, info, success, warning, danger, accent */\n @Input() typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'accent' | string = 'primary';\n @Input({ transform: booleanAttribute }) isHandleCloseOnDismiss = false;\n @Input({ transform: booleanAttribute }) isHandleCloseOnClose = false;\n @Input({ transform: booleanAttribute }) isHandleCloseOnAccept = false;\n @Input({ transform: booleanAttribute }) isDraggable = false;\n @Input({ transform: booleanAttribute }) hasNoBodyPadding = false;\n @Input({ transform: booleanAttribute }) isClosedOnEscape = true;\n\n @Output() messageBoxOpen = new EventEmitter();\n @Output() messageBoxClose = new EventEmitter();\n @Output() dismiss = new EventEmitter();\n @Output() accept = new EventEmitter();\n \n @ViewChild('templateRefContent') templateRefContent: TemplateRef<ElementRef>;\n @ViewChild('templateRefFooter') templateRefFooter: TemplateRef<EuiMessageBoxFooterDirective>;\n @ContentChild(forwardRef(() => EuiMessageBoxFooterDirective)) euiMessageBoxFooterDirective: QueryList<EuiMessageBoxFooterDirective>;\n\n public content: string | TemplatePortal;\n\n private templatePortalContent: TemplatePortal<ElementRef>;\n private templatePortalFooter: TemplatePortal<EuiMessageBoxFooterDirective>;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n\n constructor(private viewContainerRef: ViewContainerRef, private euiMessageBoxService: EuiMessageBoxService, public baseStatesDirective: BaseStatesDirective) {\n }\n\n ngAfterViewInit(): void {\n this.templatePortalContent = new TemplatePortal(this.templateRefContent, this.viewContainerRef);\n\n if (this.euiMessageBoxFooterDirective) {\n this.templatePortalFooter = new TemplatePortal(this.templateRefFooter, this.viewContainerRef);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Open a Message Box.\n */\n public openMessageBox<HC, HCC, BC, BCC, FC, FCC>(): void {\n const config: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n e2eAttr: this.e2eAttr,\n title: this.title,\n width: this.width,\n height: this.height,\n typeClass: this.baseStatesDirective.euiVariant.length > 0 ? this.baseStatesDirective.euiVariant : 'primary',\n acceptLabel: this.acceptLabel,\n dismissLabel: this.dismissLabel,\n hasCloseButton: false,\n hasAcceptButton: this.hasAcceptButton,\n hasDismissButton: this.hasDismissButton,\n hasClosedOnClickOutside: false,\n hasClosedOnEscape: true,\n isHandleCloseOnDismiss: this.isHandleCloseOnDismiss,\n isHandleCloseOnClose: this.isHandleCloseOnClose,\n isHandleCloseOnAccept: this.isHandleCloseOnAccept,\n isHandleCloseOnClickOutside: false,\n isHandleCloseOnEscape: false,\n isDraggable: coerceBooleanProperty(this.isDraggable),\n hasNoBodyPadding: coerceBooleanProperty(this.hasNoBodyPadding),\n content: this.templatePortalContent,\n footer: this.templatePortalFooter,\n isMessageBox: true,\n open: () => {\n this.messageBoxOpen.emit();\n },\n close: () => {\n this.messageBoxClose.emit();\n },\n dismiss: () => {\n this.dismiss.emit();\n },\n accept: () => {\n this.accept.emit();\n },\n };\n\n this.euiMessageBoxService.openMessageBox(config);\n }\n\n /**\n * Close a Message Box.\n */\n public closeMessageBox(): void {\n this.euiMessageBoxService.closeMessageBox();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'eui-message-box-footer' })\nexport class EuiMessageBoxFooterDirective {}\n/* eslint-enable */\n", "<ng-template #templateRefContent>\n <ng-content></ng-content>\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eui-message-box-footer\"></ng-content>\n</ng-template>\n", "import { EuiDialogInterface } from '@eui/components/eui-dialog';\n\nexport class EuiMessageBoxConfig<HC, HCC, BC, BCC, FC, FCC> implements EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n e2eAttr = 'eui-message-box';\n acceptLabel = 'eui.OK';\n dismissLabel = 'eui.CANCEL';\n typeClass: 'primary' | 'secondary' | 'info' | 'success' | 'warning' | 'danger' | 'accent' | string = 'primary';\n width = '33rem';\n height = 'auto';\n hasCloseButton = false;\n hasAcceptButton = true;\n hasDismissButton = true;\n hasClosedOnClickOutside = false;\n hasClosedOnEscape = false;\n isHandleCloseOnDismiss = false;\n isHandleCloseOnClose = false;\n isHandleCloseOnAccept = false;\n isHandleCloseOnClickOutside = false;\n isHandleCloseOnEscape = false;\n hasFooter = true;\n isMessageBox = true;\n header = null;\n headerComponent = null;\n\n constructor(values: EuiDialogInterface<HC, HCC, BC, BCC, FC, FCC>) {\n Object.assign(this, values);\n }\n}\n\nexport class EuiMessageBoxComponentInstances<HC, BC, FC> {\n headerComponent: HC = null;\n bodyComponent: BC = null;\n footerComponent: FC = null;\n}\n", "import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { PortalModule } from '@angular/cdk/portal';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiDialogService } from '@eui/components/eui-dialog';\n\nimport { EuiMessageBoxComponent, EuiMessageBoxFooterDirective } from './eui-message-box.component';\nimport { EuiMessageBoxService } from './services/eui-message-box.service';\n\n@NgModule({\n imports: [CommonModule, EuiButtonModule, EuiIconModule, TranslateModule, PortalModule, OverlayModule, A11yModule, DragDropModule],\n exports: [EuiMessageBoxComponent, EuiMessageBoxFooterDirective],\n declarations: [EuiMessageBoxComponent, EuiMessageBoxFooterDirective],\n providers: [EuiMessageBoxService, EuiDialogService],\n})\nexport class EuiMessageBoxModule {}\n"],
5
+ "mappings": "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",
6
6
  "names": ["i0", "EuiDialogService"]
7
7
  }