@eui/components 19.2.2-snapshot-1746687278530 → 19.2.2-snapshot-1746819960742

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 (132) hide show
  1. package/README.md +0 -1
  2. package/docs/components/EuiAccordionComponent.html +4 -4
  3. package/docs/components/EuiAccordionItemComponent.html +1 -1
  4. package/docs/components/EuiAlertComponent.html +1 -1
  5. package/docs/components/EuiAlertTitleComponent.html +1 -1
  6. package/docs/components/EuiAvatarComponent.html +1 -1
  7. package/docs/components/EuiBadgeComponent.html +4 -4
  8. package/docs/components/EuiCardComponent.html +4 -4
  9. package/docs/components/EuiChipComponent.html +5 -5
  10. package/docs/components/EuiChipListComponent.html +4 -4
  11. package/docs/components/EuiDashboardButtonComponent.html +1 -1
  12. package/docs/components/EuiDashboardCardComponent.html +4 -4
  13. package/docs/components/EuiDashboardCardContentComponent.html +2 -2
  14. package/docs/components/EuiDashboardCardStatusContentComponent.html +1 -1
  15. package/docs/components/EuiFeedbackMessageComponent.html +4 -4
  16. package/docs/components/EuiFieldsetComponent.html +4 -4
  17. package/docs/components/EuiInputGroupAddOnComponent.html +4 -4
  18. package/docs/components/EuiInputGroupAddOnItemComponent.html +4 -4
  19. package/docs/components/EuiInputGroupComponent.html +4 -4
  20. package/docs/components/EuiLabelComponent.html +4 -4
  21. package/docs/components/EuiListComponent.html +4 -4
  22. package/docs/components/EuiListItemComponent.html +4 -4
  23. package/docs/components/EuiNavbarItemComponent.html +1 -1
  24. package/docs/components/EuiPaginatorComponent.html +4 -4
  25. package/docs/components/EuiProgressBarComponent.html +4 -4
  26. package/docs/components/EuiProgressCircleComponent.html +4 -4
  27. package/docs/components/EuiSidebarMenuComponent.html +4 -4
  28. package/docs/components/EuiSkeletonComponent.html +1 -1
  29. package/docs/components/EuiSlideToggleComponent.html +4 -4
  30. package/docs/components/EuiTabsV2Component.html +4 -4
  31. package/docs/components/EuiTextareaComponent.html +4 -4
  32. package/docs/components/EuiTimebarComponent.html +4 -4
  33. package/docs/components/EuiTreeComponent.html +4 -4
  34. package/docs/components/EuiTreeListItemComponent.html +1 -0
  35. package/docs/components/EuiWizardComponent.html +4 -4
  36. package/docs/components/EuiWizardStepComponent.html +0 -4
  37. package/docs/dependencies.html +2 -2
  38. package/docs/js/menu-wc.js +21 -21
  39. package/docs/js/menu-wc_es5.js +1 -1
  40. package/docs/js/search/search_index.js +2 -2
  41. package/eui-alert/eui-alert-title.component.d.ts.map +1 -0
  42. package/eui-alert/eui-alert.component.d.ts +1 -1
  43. package/eui-alert/eui-alert.component.d.ts.map +1 -1
  44. package/eui-alert/eui-alert.module.d.ts +1 -1
  45. package/eui-alert/index.d.ts +2 -2
  46. package/eui-alert/index.d.ts.map +1 -1
  47. package/eui-avatar/eui-avatar.component.d.ts.map +1 -1
  48. package/eui-badge/eui-badge.component.d.ts.map +1 -1
  49. package/eui-card/eui-card.component.d.ts.map +1 -1
  50. package/eui-chip/eui-chip.component.d.ts.map +1 -1
  51. package/eui-chip-list/eui-chip-list.component.d.ts.map +1 -1
  52. package/eui-dashboard-card/{eui-dashboard-card-content/dashboard-card-content.component.d.ts → eui-dashboard-card-content.component.d.ts} +1 -1
  53. package/eui-dashboard-card/eui-dashboard-card-content.component.d.ts.map +1 -0
  54. package/eui-dashboard-card/{eui-dashboard-card-status-content/dashboard-card-status-content.component.d.ts → eui-dashboard-card-status-content.component.d.ts} +1 -1
  55. package/eui-dashboard-card/eui-dashboard-card-status-content.component.d.ts.map +1 -0
  56. package/eui-dashboard-card/eui-dashboard-card.component.d.ts +3 -3
  57. package/eui-dashboard-card/eui-dashboard-card.component.d.ts.map +1 -1
  58. package/eui-dashboard-card/index.d.ts +4 -4
  59. package/eui-dashboard-card/index.d.ts.map +1 -1
  60. package/eui-feedback-message/eui-feedback-message.component.d.ts.map +1 -1
  61. package/eui-fieldset/eui-fieldset.component.d.ts.map +1 -1
  62. package/eui-label/eui-label.component.d.ts.map +1 -1
  63. package/eui-list/eui-list-item/eui-list-item.component.d.ts.map +1 -1
  64. package/eui-navbar/{eui-navbar-item/eui-navbar-item.component.d.ts → eui-navbar-item.component.d.ts} +1 -1
  65. package/eui-navbar/eui-navbar-item.component.d.ts.map +1 -0
  66. package/eui-navbar/eui-navbar.component.d.ts +1 -1
  67. package/eui-navbar/eui-navbar.component.d.ts.map +1 -1
  68. package/eui-navbar/eui-navbar.module.d.ts +1 -1
  69. package/eui-navbar/index.d.ts +2 -2
  70. package/eui-navbar/index.d.ts.map +1 -1
  71. package/eui-paginator/eui-paginator.component.d.ts.map +1 -1
  72. package/eui-progress-circle/eui-progress-circle.component.d.ts.map +1 -1
  73. package/eui-sidebar-menu/eui-sidebar-menu.component.d.ts.map +1 -1
  74. package/eui-skeleton/eui-skeleton.component.d.ts.map +1 -1
  75. package/eui-slide-toggle/eui-slide-toggle.component.d.ts.map +1 -1
  76. package/eui-tabs-v2/eui-tabs-v2.component.d.ts.map +1 -1
  77. package/eui-textarea/eui-textarea.component.d.ts.map +1 -1
  78. package/eui-timebar/eui-timebar.component.d.ts.map +1 -1
  79. package/eui-tree/eui-tree.component.d.ts.map +1 -1
  80. package/eui-tree-list/eui-tree-list-item.component.d.ts.map +1 -1
  81. package/eui-wizard/eui-wizard-step.component.d.ts.map +1 -1
  82. package/eui-wizard/eui-wizard.component.d.ts.map +1 -1
  83. package/fesm2022/eui-components-eui-accordion.mjs.map +1 -1
  84. package/fesm2022/eui-components-eui-alert.mjs +2 -2
  85. package/fesm2022/eui-components-eui-alert.mjs.map +1 -1
  86. package/fesm2022/eui-components-eui-avatar.mjs +10 -10
  87. package/fesm2022/eui-components-eui-avatar.mjs.map +1 -1
  88. package/fesm2022/eui-components-eui-badge.mjs +2 -2
  89. package/fesm2022/eui-components-eui-badge.mjs.map +1 -1
  90. package/fesm2022/eui-components-eui-button.mjs +2 -2
  91. package/fesm2022/eui-components-eui-button.mjs.map +1 -1
  92. package/fesm2022/eui-components-eui-card.mjs +8 -8
  93. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  94. package/fesm2022/eui-components-eui-chip-group.mjs +2 -2
  95. package/fesm2022/eui-components-eui-chip-group.mjs.map +1 -1
  96. package/fesm2022/eui-components-eui-chip-list.mjs.map +1 -1
  97. package/fesm2022/eui-components-eui-chip.mjs +2 -2
  98. package/fesm2022/eui-components-eui-chip.mjs.map +1 -1
  99. package/fesm2022/eui-components-eui-dashboard-button.mjs +2 -2
  100. package/fesm2022/eui-components-eui-dashboard-button.mjs.map +1 -1
  101. package/fesm2022/eui-components-eui-dashboard-card.mjs.map +1 -1
  102. package/fesm2022/eui-components-eui-feedback-message.mjs.map +1 -1
  103. package/fesm2022/eui-components-eui-fieldset.mjs +2 -2
  104. package/fesm2022/eui-components-eui-fieldset.mjs.map +1 -1
  105. package/fesm2022/eui-components-eui-icon.mjs +2 -2
  106. package/fesm2022/eui-components-eui-icon.mjs.map +1 -1
  107. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  108. package/fesm2022/eui-components-eui-label.mjs.map +1 -1
  109. package/fesm2022/eui-components-eui-list.mjs.map +1 -1
  110. package/fesm2022/eui-components-eui-navbar.mjs.map +1 -1
  111. package/fesm2022/eui-components-eui-paginator.mjs.map +1 -1
  112. package/fesm2022/eui-components-eui-progress-bar.mjs +2 -2
  113. package/fesm2022/eui-components-eui-progress-bar.mjs.map +1 -1
  114. package/fesm2022/eui-components-eui-progress-circle.mjs.map +1 -1
  115. package/fesm2022/eui-components-eui-sidebar-menu.mjs.map +1 -1
  116. package/fesm2022/eui-components-eui-skeleton.mjs.map +1 -1
  117. package/fesm2022/eui-components-eui-slide-toggle.mjs.map +1 -1
  118. package/fesm2022/eui-components-eui-tabs-v2.mjs.map +1 -1
  119. package/fesm2022/eui-components-eui-textarea.mjs +2 -2
  120. package/fesm2022/eui-components-eui-textarea.mjs.map +1 -1
  121. package/fesm2022/eui-components-eui-timebar.mjs.map +1 -1
  122. package/fesm2022/eui-components-eui-tree-list.mjs +3 -1
  123. package/fesm2022/eui-components-eui-tree-list.mjs.map +1 -1
  124. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  125. package/fesm2022/eui-components-eui-wizard.mjs +2 -2
  126. package/fesm2022/eui-components-eui-wizard.mjs.map +1 -1
  127. package/package.json +7 -7
  128. package/eui-alert/components/eui-alert-title.component.d.ts.map +0 -1
  129. package/eui-dashboard-card/eui-dashboard-card-content/dashboard-card-content.component.d.ts.map +0 -1
  130. package/eui-dashboard-card/eui-dashboard-card-status-content/dashboard-card-status-content.component.d.ts.map +0 -1
  131. package/eui-navbar/eui-navbar-item/eui-navbar-item.component.d.ts.map +0 -1
  132. /package/eui-alert/{components/eui-alert-title.component.d.ts → eui-alert-title.component.d.ts} +0 -0
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-timebar.mjs","sources":["../../eui-timebar/eui-timebar.component.ts","../../eui-timebar/eui-timebar.component.html","../../eui-timebar/eui-timebar-item.model.ts","../../eui-timebar/index.ts","../../eui-timebar/eui-components-eui-timebar.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChange,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { EuiAppShellService, formatNumber, LocaleService, LocaleState } from '@eui/core';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EuiTimebarItem } from './eui-timebar-item.model';\nimport { AsyncPipe, DatePipe, NgClass } from '@angular/common';\n\nexport class EuiTimebarItemUI {\n perc: number;\n /**\n * info success warning danger\n */\n stepTypeClass: 'info'|'success'|'warning'|'danger'|string;\n tooltipColor: string;\n isGrouped?: boolean;\n groupIndex?: number;\n groupLabel?: string;\n groupEndDate?: Date;\n item: EuiTimebarItem;\n}\n\n/**\n * @description\n * A component for displaying chronological events or milestones on a horizontal timeline.\n *\n * The EuiTimebarComponent renders a horizontal timeline with customizable items, labels,\n * markers, and optional grouping for overlapping items. It supports responsive behavior,\n * current date indication, and multiple display options.\n *\n */\n@Component({\n selector: 'eui-timebar',\n templateUrl: './eui-timebar.component.html',\n styleUrls: ['./styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgClass,\n AsyncPipe,\n DatePipe,\n ...EUI_ICON,\n ...EUI_BADGE,\n ],\n})\nexport class EuiTimebarComponent implements OnInit, AfterContentInit, AfterViewChecked, OnChanges, OnDestroy {\n itemsUI: EuiTimebarItemUI[] = [];\n currentDate = new Date();\n currentPerc: number;\n markedPerc: number;\n /**\n * The class to be applied to the timebar column.\n *\n * @deprecated Calculation of it happens internally and will be removed in the future\n */\n timebarColumnClass = '';\n subscription: Subscription;\n isShowLegendGenerated: boolean;\n isShowLegendAsIndexGenerated: boolean;\n isGroupOverlappingLabelsGenerated: boolean;\n isMobile = false;\n isSomeStepsAreGrouped = false;\n extraTimelineLabelSpace = 21;\n\n @ViewChild('container') container: ElementRef<HTMLDivElement>;\n @Input() e2eAttr = 'eui-timebar';\n /**\n * Date to be highlighted on the timeline.\n * Separate from currentDateMarker, which shows today's date.\n */\n @Input() markedDate: Date;\n /**\n * Collection of items to be displayed on the timeline.\n */\n @Input() items: EuiTimebarItem[];\n /**\n * Label displayed at the beginning of the timeline.\n */\n @Input() startLabel: string;\n\n /**\n * Label displayed at the end of the timeline.\n */\n @Input() endLabel: string;\n\n /**\n * Format for displaying dates in the timeline.\n * @default 'yyyy-MM-dd'\n */\n @Input() dateFormat: 'short'|'medium'|'long'|'full'|'shortDate'|'mediumDate'|'longDate'|'fullDate'|'shortTime'|'mediumTime'|'longTime'|'fullTime'|string = 'yyyy-MM-dd';\n\n /**\n * Whether to show a legend with timeline item labels.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowLegend = false;\n\n /**\n * Whether to display indices instead of colors in the legend.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isShowLegendAsIndex = true;\n\n /**\n * Whether to display a marker for the current date on the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowCurrentDateMarker = false;\n\n /**\n * When true, keeps the current date marker visible even if the current date\n * is outside the timeline range by placing it at the edge of the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isCurrentDateMarkerAlwaysInRange = false;\n\n /**\n * Whether to group timeline items with overlapping labels to improve readability.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isGroupOverlappingLabels = false;\n\n protected maxStepWidth = 112; // 112px = 8rem = 2 x 4rem margin around starting and ending bullet.\n protected locale: LocaleService<LocaleState> = inject(LocaleService);\n\n constructor(\n private asService: EuiAppShellService,\n private cd: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.subscription = this.asService.breakpoints$.subscribe((bkps) => {\n this.onBreakpointChange(bkps);\n });\n }\n\n ngAfterContentInit(): void {\n this.removeNullItems();\n this.sortItems();\n\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.items.forEach((item) => {\n let stepTypeClass = '';\n let tooltipColor = 'none';\n\n if (item.stepType) {\n stepTypeClass = 'eui-timebar__step--' + item.stepType;\n tooltipColor = item.stepType;\n }\n\n const isNumber = /^\\d+\\.\\d+$/.test(item.label) || /^\\d+$/.test(item.label);\n\n if (isNumber) {\n item.label = formatNumber(item.label, 2);\n }\n\n this.itemsUI.push({\n perc: this.calculatePercentage(item.date, startDate, endDate),\n item,\n stepTypeClass,\n tooltipColor,\n });\n });\n\n this.currentPerc = this.calculatePercentage(this.currentDate, startDate, endDate, true);\n this.markedPerc = this.calculatePercentage(this.markedDate, startDate, endDate, true);\n\n // initialize attributes\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isGroupOverlappingLabelsGenerated = this.isGroupOverlappingLabels;\n this.isMobile = false;\n }\n\n ngAfterViewChecked(): void {\n this.groupOverlappingLabels();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['markedDate']) {\n const change: SimpleChange = changes['markedDate'];\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.markedPerc = this.calculatePercentage(change.currentValue as Date, startDate, endDate);\n }\n }\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 onBreakpointChange(bkps: any): void {\n if (bkps.isMobile) {\n this.isShowLegendGenerated = this.isShowLegendAsIndexGenerated = this.isMobile = true;\n } else {\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isMobile = false;\n }\n }\n\n trackByFn(index: number, item: EuiTimebarItemUI): string {\n return item.item.label;\n }\n\n /**\n * Removes null and undefined items from the timeline collection.\n */\n protected removeNullItems(): void {\n if (this.items) {\n for (let i = 0; i < this.items.length; i++) {\n if (!this.items[i]) {\n this.items.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n /**\n * Sorts the timeline items chronologically by their dates in ascending order.\n * Items with invalid or missing dates are treated as equal during comparison.\n */\n protected sortItems(): void {\n if (!this.items?.length) {\n return;\n }\n\n this.items = this.items\n .filter(a => this.areValidDates(a?.date))\n .sort(this.compareTimebarDates);\n }\n\n protected groupOverlappingLabels(): void {\n if (!this.isGroupOverlappingLabelsGenerated || !this.container || !this.itemsUI) {\n return;\n }\n\n this.clearGrouping();\n\n const containerWidth = this.container.nativeElement.clientWidth;\n const groupingThreshold = (this.maxStepWidth * 100) / containerWidth;\n\n let currentGroup = {\n startIndex: 0,\n items: [] as EuiTimebarItemUI[],\n };\n\n for (let i = 0; i < this.itemsUI.length; i++) {\n const currentItem = this.itemsUI[i];\n const previousItem = i > 0 ? this.itemsUI[i - 1] : null;\n\n if (!previousItem) {\n currentGroup.items.push(currentItem);\n continue;\n }\n\n const distance = Math.abs(currentItem.perc - previousItem.perc);\n\n if (distance <= groupingThreshold) {\n currentGroup.items.push(currentItem);\n } else {\n this.processGroup(currentGroup);\n currentGroup = {\n startIndex: i,\n items: [currentItem],\n };\n }\n }\n\n // Process the last group\n if (currentGroup.items.length > 0) {\n this.processGroup(currentGroup);\n }\n\n this.isSomeStepsAreGrouped = this.itemsUI.some(item => item.isGrouped);\n this.cd.detectChanges();\n }\n\n protected clearGrouping(): void {\n this.isSomeStepsAreGrouped = false;\n if (this.itemsUI) {\n for (const item of this.itemsUI) {\n delete item.isGrouped;\n delete item.groupIndex;\n delete item.groupLabel;\n delete item.groupEndDate;\n }\n }\n this.extraTimelineLabelSpace = 21;\n }\n\n /**\n * @deprecated it's not used anymore\n */\n protected calculateExtraTimelineLabelSpace(): void {\n if (this.itemsUI) {\n let maxLabelLength = 0;\n this.itemsUI\n .filter(i => i.item?.label)\n .forEach((i) => {\n maxLabelLength = Math.max(maxLabelLength, i.item.label.length);\n });\n\n if (maxLabelLength > 56) {\n // 56px = 4rem margin of the timeline itself.\n this.extraTimelineLabelSpace = maxLabelLength + 28; // 28px = 2rem = 1 line of text in height + margins\n }\n }\n }\n\n /**\n * Calculates the percentage position of a date within a given date range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n * @param compensateForRange - When true, adjusts out-of-range values to maintain visualization constraints\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n * @returns The calculated percentage (0-100), or adjusted values (-3 or 103) if compensating for out-of-range dates\n *\n * @example\n * // Basic usage within range\n * calculatePercentage(new Date('2024-02-15'), new Date('2024-01-01'), new Date('2024-12-31'))\n *\n * // With range compensation\n * calculatePercentage(new Date('2025-01-01'), new Date('2024-01-01'), new Date('2024-12-31'), true)\n */\n protected calculatePercentage(date: Date, startDate: Date, endDate: Date, compensateForRange = false, alwaysInRange = this.isCurrentDateMarkerAlwaysInRange): number {\n if (!this.areValidDates(date, startDate, endDate)) {\n return 0;\n }\n const percentage = this.calculateBasePercentage(date, startDate, endDate);\n\n return compensateForRange\n ? this.adjustPercentageForRange(percentage, alwaysInRange)\n : percentage;\n }\n\n private processGroup(group: { startIndex: number; items: EuiTimebarItemUI[] }): void {\n if (group.items.length <= 1) {\n return;\n }\n\n const firstItem = group.items[0];\n const lastItem = group.items[group.items.length - 1];\n\n // Update the first item in the group\n firstItem.groupEndDate = lastItem.item.date;\n firstItem.stepTypeClass = lastItem.item.stepType;\n\n const groupLabels = this.generateGroupLabels(group);\n firstItem.groupLabel = groupLabels.join(', ');\n firstItem.groupIndex = group.startIndex + 1;\n\n // Mark remaining items as grouped\n for (let i = 1; i < group.items.length; i++) {\n const item = group.items[i];\n item.isGrouped = true;\n item.groupIndex = group.startIndex + i + 1;\n }\n }\n\n private generateGroupLabels(group: { startIndex: number; items: EuiTimebarItemUI[] }): string[] {\n return group.items.map((_, index) =>\n (group.startIndex + index + 1).toString(),\n );\n }\n\n /**\n * Verifies that all required dates are valid Date objects.\n *\n * @param dates - The dates to validate\n * @returns True if all dates are valid, otherwise false\n */\n private areValidDates(...dates: Date[]): boolean {\n return dates.every(date => date instanceof Date);\n }\n\n /**\n * Calculates the raw percentage position of a date within the range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n *\n * @returns The calculated percentage (0-100) position on the range\n */\n private calculateBasePercentage(date: Date, startDate: Date, endDate: Date): number {\n const timespan = endDate.getTime() - startDate.getTime();\n const position = date.getTime() - startDate.getTime();\n return (position / timespan) * 100;\n }\n\n /**\n * Handles date positions that fall outside the specified range by applying boundary adjustments.\n *\n * For dates beyond the range boundaries, this method adjusts their position values\n * to maintain consistent TimeBar visualization. When isCurrentDateMarkerAlwaysInRange\n * is enabled, positions are clamped to the boundaries (0-100). Otherwise, they extend\n * slightly beyond (-3 or 103) to indicate out-of-range status.\n *\n * @param percentage - The calculated percentage position\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n *\n * @returns The adjusted percentage value\n */\n private adjustPercentageForRange(percentage: number, alwaysInRange: boolean): number {\n if (percentage > 100) {\n return alwaysInRange ? 100 : 103;\n }\n\n if (percentage <= 0) {\n return alwaysInRange ? 0 : -3;\n }\n\n return percentage;\n }\n\n /**\n * Compares two timeline items by their dates for sorting.\n *\n * @param firstItem - The first item to compare\n * @param secondItem - The second item to compare\n * @returns Negative if first date is earlier, positive if later, zero if equal\n */\n private compareTimebarDates(firstItem: EuiTimebarItem, secondItem: EuiTimebarItem): number {\n return firstItem.date.getTime() - secondItem.date.getTime();\n }\n}\n\n/**\n * @description\n * Angular module that provides the EuiTimebarComponent.\n *\n * @deprecated Use {@link EUI_TIMEBAR} instead\n */\n@NgModule({\n imports: [EuiTimebarComponent],\n exports: [EuiTimebarComponent],\n})\nexport class EuiTimebarModule {}\n","<div class=\"row eui-u-flex\" #container>\n @if(startLabel) {\n <div class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n }\n <div class=\"{{timebarColumnClass}} {{ 'col-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n }\n @if(markedDate) {\n <div class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n }\n\n @for (item of itemsUI; let i = $index; track i) {\n @if(!item.isGrouped) {\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n @if(!isMobile) {\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n @if(item.groupEndDate) {\n <span\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''}}\">\n {{ item.groupEndDate | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n }\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n </div>\n }\n @if(!isShowLegendGenerated) {\n <div [style.left.%]=\"!isMobile ? item.perc : null\" class=\"eui-timebar__step-label\">\n @if(!item.groupLabel) {\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n }\n @if(item.groupLabel) {\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n }\n </div>\n }\n @if(isShowLegendGenerated && isShowLegendAsIndexGenerated) {\n <div\n [style.left.%]=\"!isMobile ? item.perc : null\"\n class=\"eui-timebar__step-label\">\n {{ !item.groupLabel ? i + 1 : item.groupLabel }}\n </div>\n }\n </div>\n }\n }\n\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\"></eui-icon-svg>\n </div>\n }\n @if(markedDate) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\"></eui-icon-svg>\n </div>\n }\n </div>\n </div>\n @if(endLabel) {\n <div class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n }\n</div>\n<div class=\"row eui-u-flex-justify-content-center\">\n <div class=\"{{timebarColumnClass}} {{ 'col-md-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n @if (isShowLegendGenerated || isSomeStepsAreGrouped) {\n <div class=\"eui-timebar__legend\">\n @for (item of itemsUI; let i = $index; track i){\n @if(isShowLegendGenerated) {\n <div class=\"eui-timebar__legend-item\">\n @if(!isShowLegendAsIndexGenerated) {\n <div class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n } @else {\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ i + 1 }}</eui-badge>\n </div>\n }\n <div class=\"eui-timebar__legend-item-label\">\n @if(isMobile) {\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> -\n }\n {{ item.item.label }}\n </div>\n </div>\n }\n @if(!isShowLegendGenerated && (item.groupLabel || item.isGrouped)) {\n <div class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ item.groupIndex }}</eui-badge>\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> - {{ item.item.label }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n</div>\n","/**\n * Represents a single item in the TimeBar component.\n * Used to define the data points that will be displayed on the timeline.\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport interface EuiTimebarItem {\n /**\n * The date to be displayed on the timeline.\n * Used to calculate the item's position in chronological order.\n */\n date: Date;\n\n /**\n * The text label that appears below the timeline marker.\n * Can be a string, a Date or a formatted number value.\n */\n label: string;\n\n /**\n * Optional visual style indicator for the timeline marker.\n * Supported values: 'info', 'success', 'warning', 'danger'\n */\n stepType?: 'info' | 'success' | 'warning' | 'danger' | string;\n}\n\n/**\n * @deprecated use the {@link EuiTimebarItem} interface instead.\n */\n// TODO: v17 remove this class - unnecessary\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport class EuiTimebarItem implements EuiTimebarItem {\n date: Date;\n label: string;\n stepType?: string;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\n","import { EuiTimebarComponent } from './eui-timebar.component';\n\nexport * from './eui-timebar.component';\nexport * from './eui-timebar-item.model';\n\nexport const EUI_TIMEBAR = [\n EuiTimebarComponent,\n] as const;\n\n// export { EuiTimebarComponent as EuiTimebar } from './eui-timebar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-timebar.mjs","sources":["../../eui-timebar/eui-timebar.component.ts","../../eui-timebar/eui-timebar.component.html","../../eui-timebar/eui-timebar-item.model.ts","../../eui-timebar/index.ts","../../eui-timebar/eui-components-eui-timebar.ts"],"sourcesContent":["import {\n AfterContentInit,\n AfterViewChecked,\n ChangeDetectorRef,\n Component,\n ElementRef,\n Input,\n NgModule,\n OnChanges,\n OnDestroy,\n OnInit,\n SimpleChange,\n SimpleChanges,\n ViewChild,\n ViewEncapsulation,\n booleanAttribute,\n inject,\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { EuiAppShellService, formatNumber, LocaleService, LocaleState } from '@eui/core';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_BADGE } from '@eui/components/eui-badge';\nimport { EuiTimebarItem } from './eui-timebar-item.model';\nimport { AsyncPipe, DatePipe, NgClass } from '@angular/common';\n\nexport class EuiTimebarItemUI {\n perc: number;\n /**\n * info success warning danger\n */\n stepTypeClass: 'info'|'success'|'warning'|'danger'|string;\n tooltipColor: string;\n isGrouped?: boolean;\n groupIndex?: number;\n groupLabel?: string;\n groupEndDate?: Date;\n item: EuiTimebarItem;\n}\n\n/**\n * @description\n * A component for displaying chronological events or milestones on a horizontal timeline.\n *\n * The EuiTimebarComponent renders a horizontal timeline with customizable items, labels,\n * markers, and optional grouping for overlapping items. It supports responsive behavior,\n * current date indication, and multiple display options.\n *\n */\n@Component({\n selector: 'eui-timebar',\n templateUrl: './eui-timebar.component.html',\n styleUrl: './eui-timebar.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [\n NgClass,\n AsyncPipe,\n DatePipe,\n ...EUI_ICON,\n ...EUI_BADGE,\n ],\n})\nexport class EuiTimebarComponent implements OnInit, AfterContentInit, AfterViewChecked, OnChanges, OnDestroy {\n itemsUI: EuiTimebarItemUI[] = [];\n currentDate = new Date();\n currentPerc: number;\n markedPerc: number;\n /**\n * The class to be applied to the timebar column.\n *\n * @deprecated Calculation of it happens internally and will be removed in the future\n */\n timebarColumnClass = '';\n subscription: Subscription;\n isShowLegendGenerated: boolean;\n isShowLegendAsIndexGenerated: boolean;\n isGroupOverlappingLabelsGenerated: boolean;\n isMobile = false;\n isSomeStepsAreGrouped = false;\n extraTimelineLabelSpace = 21;\n\n @ViewChild('container') container: ElementRef<HTMLDivElement>;\n @Input() e2eAttr = 'eui-timebar';\n /**\n * Date to be highlighted on the timeline.\n * Separate from currentDateMarker, which shows today's date.\n */\n @Input() markedDate: Date;\n /**\n * Collection of items to be displayed on the timeline.\n */\n @Input() items: EuiTimebarItem[];\n /**\n * Label displayed at the beginning of the timeline.\n */\n @Input() startLabel: string;\n\n /**\n * Label displayed at the end of the timeline.\n */\n @Input() endLabel: string;\n\n /**\n * Format for displaying dates in the timeline.\n * @default 'yyyy-MM-dd'\n */\n @Input() dateFormat: 'short'|'medium'|'long'|'full'|'shortDate'|'mediumDate'|'longDate'|'fullDate'|'shortTime'|'mediumTime'|'longTime'|'fullTime'|string = 'yyyy-MM-dd';\n\n /**\n * Whether to show a legend with timeline item labels.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowLegend = false;\n\n /**\n * Whether to display indices instead of colors in the legend.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isShowLegendAsIndex = true;\n\n /**\n * Whether to display a marker for the current date on the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowCurrentDateMarker = false;\n\n /**\n * When true, keeps the current date marker visible even if the current date\n * is outside the timeline range by placing it at the edge of the timeline.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isCurrentDateMarkerAlwaysInRange = false;\n\n /**\n * Whether to group timeline items with overlapping labels to improve readability.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isGroupOverlappingLabels = false;\n\n protected maxStepWidth = 112; // 112px = 8rem = 2 x 4rem margin around starting and ending bullet.\n protected locale: LocaleService<LocaleState> = inject(LocaleService);\n\n constructor(\n private asService: EuiAppShellService,\n private cd: ChangeDetectorRef,\n ) {}\n\n ngOnInit(): void {\n this.subscription = this.asService.breakpoints$.subscribe((bkps) => {\n this.onBreakpointChange(bkps);\n });\n }\n\n ngAfterContentInit(): void {\n this.removeNullItems();\n this.sortItems();\n\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.items.forEach((item) => {\n let stepTypeClass = '';\n let tooltipColor = 'none';\n\n if (item.stepType) {\n stepTypeClass = 'eui-timebar__step--' + item.stepType;\n tooltipColor = item.stepType;\n }\n\n const isNumber = /^\\d+\\.\\d+$/.test(item.label) || /^\\d+$/.test(item.label);\n\n if (isNumber) {\n item.label = formatNumber(item.label, 2);\n }\n\n this.itemsUI.push({\n perc: this.calculatePercentage(item.date, startDate, endDate),\n item,\n stepTypeClass,\n tooltipColor,\n });\n });\n\n this.currentPerc = this.calculatePercentage(this.currentDate, startDate, endDate, true);\n this.markedPerc = this.calculatePercentage(this.markedDate, startDate, endDate, true);\n\n // initialize attributes\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isGroupOverlappingLabelsGenerated = this.isGroupOverlappingLabels;\n this.isMobile = false;\n }\n\n ngAfterViewChecked(): void {\n this.groupOverlappingLabels();\n }\n\n ngOnDestroy(): void {\n if (this.subscription) {\n this.subscription.unsubscribe();\n }\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['markedDate']) {\n const change: SimpleChange = changes['markedDate'];\n const startDate: Date = this.items[0].date;\n const endDate: Date = this.items[this.items.length - 1].date;\n this.markedPerc = this.calculatePercentage(change.currentValue as Date, startDate, endDate);\n }\n }\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 onBreakpointChange(bkps: any): void {\n if (bkps.isMobile) {\n this.isShowLegendGenerated = this.isShowLegendAsIndexGenerated = this.isMobile = true;\n } else {\n this.isShowLegendGenerated = this.isShowLegend;\n this.isShowLegendAsIndexGenerated = this.isShowLegendAsIndex;\n this.isMobile = false;\n }\n }\n\n trackByFn(index: number, item: EuiTimebarItemUI): string {\n return item.item.label;\n }\n\n /**\n * Removes null and undefined items from the timeline collection.\n */\n protected removeNullItems(): void {\n if (this.items) {\n for (let i = 0; i < this.items.length; i++) {\n if (!this.items[i]) {\n this.items.splice(i, 1);\n i--;\n }\n }\n }\n }\n\n /**\n * Sorts the timeline items chronologically by their dates in ascending order.\n * Items with invalid or missing dates are treated as equal during comparison.\n */\n protected sortItems(): void {\n if (!this.items?.length) {\n return;\n }\n\n this.items = this.items\n .filter(a => this.areValidDates(a?.date))\n .sort(this.compareTimebarDates);\n }\n\n protected groupOverlappingLabels(): void {\n if (!this.isGroupOverlappingLabelsGenerated || !this.container || !this.itemsUI) {\n return;\n }\n\n this.clearGrouping();\n\n const containerWidth = this.container.nativeElement.clientWidth;\n const groupingThreshold = (this.maxStepWidth * 100) / containerWidth;\n\n let currentGroup = {\n startIndex: 0,\n items: [] as EuiTimebarItemUI[],\n };\n\n for (let i = 0; i < this.itemsUI.length; i++) {\n const currentItem = this.itemsUI[i];\n const previousItem = i > 0 ? this.itemsUI[i - 1] : null;\n\n if (!previousItem) {\n currentGroup.items.push(currentItem);\n continue;\n }\n\n const distance = Math.abs(currentItem.perc - previousItem.perc);\n\n if (distance <= groupingThreshold) {\n currentGroup.items.push(currentItem);\n } else {\n this.processGroup(currentGroup);\n currentGroup = {\n startIndex: i,\n items: [currentItem],\n };\n }\n }\n\n // Process the last group\n if (currentGroup.items.length > 0) {\n this.processGroup(currentGroup);\n }\n\n this.isSomeStepsAreGrouped = this.itemsUI.some(item => item.isGrouped);\n this.cd.detectChanges();\n }\n\n protected clearGrouping(): void {\n this.isSomeStepsAreGrouped = false;\n if (this.itemsUI) {\n for (const item of this.itemsUI) {\n delete item.isGrouped;\n delete item.groupIndex;\n delete item.groupLabel;\n delete item.groupEndDate;\n }\n }\n this.extraTimelineLabelSpace = 21;\n }\n\n /**\n * @deprecated it's not used anymore\n */\n protected calculateExtraTimelineLabelSpace(): void {\n if (this.itemsUI) {\n let maxLabelLength = 0;\n this.itemsUI\n .filter(i => i.item?.label)\n .forEach((i) => {\n maxLabelLength = Math.max(maxLabelLength, i.item.label.length);\n });\n\n if (maxLabelLength > 56) {\n // 56px = 4rem margin of the timeline itself.\n this.extraTimelineLabelSpace = maxLabelLength + 28; // 28px = 2rem = 1 line of text in height + margins\n }\n }\n }\n\n /**\n * Calculates the percentage position of a date within a given date range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n * @param compensateForRange - When true, adjusts out-of-range values to maintain visualization constraints\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n * @returns The calculated percentage (0-100), or adjusted values (-3 or 103) if compensating for out-of-range dates\n *\n * @example\n * // Basic usage within range\n * calculatePercentage(new Date('2024-02-15'), new Date('2024-01-01'), new Date('2024-12-31'))\n *\n * // With range compensation\n * calculatePercentage(new Date('2025-01-01'), new Date('2024-01-01'), new Date('2024-12-31'), true)\n */\n protected calculatePercentage(date: Date, startDate: Date, endDate: Date, compensateForRange = false, alwaysInRange = this.isCurrentDateMarkerAlwaysInRange): number {\n if (!this.areValidDates(date, startDate, endDate)) {\n return 0;\n }\n const percentage = this.calculateBasePercentage(date, startDate, endDate);\n\n return compensateForRange\n ? this.adjustPercentageForRange(percentage, alwaysInRange)\n : percentage;\n }\n\n private processGroup(group: { startIndex: number; items: EuiTimebarItemUI[] }): void {\n if (group.items.length <= 1) {\n return;\n }\n\n const firstItem = group.items[0];\n const lastItem = group.items[group.items.length - 1];\n\n // Update the first item in the group\n firstItem.groupEndDate = lastItem.item.date;\n firstItem.stepTypeClass = lastItem.item.stepType;\n\n const groupLabels = this.generateGroupLabels(group);\n firstItem.groupLabel = groupLabels.join(', ');\n firstItem.groupIndex = group.startIndex + 1;\n\n // Mark remaining items as grouped\n for (let i = 1; i < group.items.length; i++) {\n const item = group.items[i];\n item.isGrouped = true;\n item.groupIndex = group.startIndex + i + 1;\n }\n }\n\n private generateGroupLabels(group: { startIndex: number; items: EuiTimebarItemUI[] }): string[] {\n return group.items.map((_, index) =>\n (group.startIndex + index + 1).toString(),\n );\n }\n\n /**\n * Verifies that all required dates are valid Date objects.\n *\n * @param dates - The dates to validate\n * @returns True if all dates are valid, otherwise false\n */\n private areValidDates(...dates: Date[]): boolean {\n return dates.every(date => date instanceof Date);\n }\n\n /**\n * Calculates the raw percentage position of a date within the range.\n *\n * @param date - The target date to calculate the position for\n * @param startDate - The beginning of the date range\n * @param endDate - The end of the date range\n *\n * @returns The calculated percentage (0-100) position on the range\n */\n private calculateBasePercentage(date: Date, startDate: Date, endDate: Date): number {\n const timespan = endDate.getTime() - startDate.getTime();\n const position = date.getTime() - startDate.getTime();\n return (position / timespan) * 100;\n }\n\n /**\n * Handles date positions that fall outside the specified range by applying boundary adjustments.\n *\n * For dates beyond the range boundaries, this method adjusts their position values\n * to maintain consistent TimeBar visualization. When isCurrentDateMarkerAlwaysInRange\n * is enabled, positions are clamped to the boundaries (0-100). Otherwise, they extend\n * slightly beyond (-3 or 103) to indicate out-of-range status.\n *\n * @param percentage - The calculated percentage position\n * @param alwaysInRange - When true, clamps the percentage to the 0-100 range\n *\n * @returns The adjusted percentage value\n */\n private adjustPercentageForRange(percentage: number, alwaysInRange: boolean): number {\n if (percentage > 100) {\n return alwaysInRange ? 100 : 103;\n }\n\n if (percentage <= 0) {\n return alwaysInRange ? 0 : -3;\n }\n\n return percentage;\n }\n\n /**\n * Compares two timeline items by their dates for sorting.\n *\n * @param firstItem - The first item to compare\n * @param secondItem - The second item to compare\n * @returns Negative if first date is earlier, positive if later, zero if equal\n */\n private compareTimebarDates(firstItem: EuiTimebarItem, secondItem: EuiTimebarItem): number {\n return firstItem.date.getTime() - secondItem.date.getTime();\n }\n}\n\n/**\n * @description\n * Angular module that provides the EuiTimebarComponent.\n *\n * @deprecated Use {@link EUI_TIMEBAR} instead\n */\n@NgModule({\n imports: [EuiTimebarComponent],\n exports: [EuiTimebarComponent],\n})\nexport class EuiTimebarModule {}\n","<div class=\"row eui-u-flex\" #container>\n @if(startLabel) {\n <div class=\"col-2 eui-timebar__start-label\">\n {{ startLabel }}\n </div>\n }\n <div class=\"{{timebarColumnClass}} {{ 'col-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n <div class=\"eui-timebar\" [style.marginBottom.px]=\"extraTimelineLabelSpace\" attr.data-e2e=\"{{ e2eAttr }}\">\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-progress\"\n [style.width.%]=\"currentPerc >= 100 ? 100 : currentPerc\"></div>\n }\n @if(markedDate) {\n <div class=\"eui-timebar__current-progress\" [style.width.%]=\"markedPerc >= 100 ? 100 : markedPerc\"></div>\n }\n\n @for (item of itemsUI; let i = $index; track i) {\n @if(!item.isGrouped) {\n <div\n class=\"eui-timebar__step\"\n [ngClass]=\"item.stepTypeClass\"\n [style.left.%]=\"item.perc\"\n [class.eui-timebar__step--with-current-date-marker]=\"isShowCurrentDateMarker || markedDate\">\n @if(!isMobile) {\n <div class=\"eui-timebar__step-date-item\" [class.eui-timebar__step-date-item--with-end-date]=\"item.groupEndDate\">\n @if(item.groupEndDate) {\n <span\n class=\"eui-timebar__grouped__step {{\n item.stepTypeClass ? 'eui-timebar__step--' + item.stepTypeClass : ''}}\">\n {{ item.groupEndDate | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n }\n <span\n class=\"{{ item.tooltipColor ? 'eui-timebar__step--' + item.tooltipColor : '' }}\"\n [class.eui-timebar__grouped__step]=\"item.groupEndDate\">\n {{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}\n </span>\n </div>\n }\n @if(!isShowLegendGenerated) {\n <div [style.left.%]=\"!isMobile ? item.perc : null\" class=\"eui-timebar__step-label\">\n @if(!item.groupLabel) {\n <span title=\"{{ item.item.label }}\">{{ item.item.label }}</span>\n }\n @if(item.groupLabel) {\n <span title=\"{{ item.groupLabel }}\">{{ item.groupLabel }}</span>\n }\n </div>\n }\n @if(isShowLegendGenerated && isShowLegendAsIndexGenerated) {\n <div\n [style.left.%]=\"!isMobile ? item.perc : null\"\n class=\"eui-timebar__step-label\">\n {{ !item.groupLabel ? i + 1 : item.groupLabel }}\n </div>\n }\n </div>\n }\n }\n\n @if(isShowCurrentDateMarker) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"currentPerc\"\n title=\"{{ currentDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"currentPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\"></eui-icon-svg>\n </div>\n }\n @if(markedDate) {\n <div\n class=\"eui-timebar__current-date-marker\"\n [style.left.%]=\"markedPerc\"\n title=\"{{ markedDate | date: dateFormat: null: (locale.getState() | async).id }}\">\n <eui-icon-svg icon=\"location\" set=\"sharp\" size=\"m\"></eui-icon-svg>\n </div>\n <div class=\"eui-timebar__current-date-marker-step\" [style.left.%]=\"markedPerc\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\"></eui-icon-svg>\n </div>\n }\n </div>\n </div>\n @if(endLabel) {\n <div class=\"col-2 eui-timebar__end-label\">\n {{ endLabel }}\n </div>\n }\n</div>\n<div class=\"row eui-u-flex-justify-content-center\">\n <div class=\"{{timebarColumnClass}} {{ 'col-md-' + ((startLabel ? -2 : 0) + (endLabel ? -2 : 0) + 12) }}\">\n @if (isShowLegendGenerated || isSomeStepsAreGrouped) {\n <div class=\"eui-timebar__legend\">\n @for (item of itemsUI; let i = $index; track i){\n @if(isShowLegendGenerated) {\n <div class=\"eui-timebar__legend-item\">\n @if(!isShowLegendAsIndexGenerated) {\n <div class=\"eui-timebar__legend-item-icon\">\n <eui-icon-svg icon=\"ellipse:sharp\" size=\"s\" fillColor=\"{{ item.item.stepType }}\"></eui-icon-svg>\n </div>\n } @else {\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ i + 1 }}</eui-badge>\n </div>\n }\n <div class=\"eui-timebar__legend-item-label\">\n @if(isMobile) {\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> -\n }\n {{ item.item.label }}\n </div>\n </div>\n }\n @if(!isShowLegendGenerated && (item.groupLabel || item.isGrouped)) {\n <div class=\"eui-timebar__legend-item\">\n <div class=\"eui-timebar__legend-item-index-wrapper\">\n <eui-badge euiSizeL euiPrimary>{{ item.groupIndex }}</eui-badge>\n </div>\n <div class=\"eui-timebar__legend-item-label\">\n <strong>{{ item.item.date | date: dateFormat: null: (locale.getState() | async).id }}</strong> - {{ item.item.label }}\n </div>\n </div>\n }\n }\n </div>\n }\n </div>\n</div>\n","/**\n * Represents a single item in the TimeBar component.\n * Used to define the data points that will be displayed on the timeline.\n */\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport interface EuiTimebarItem {\n /**\n * The date to be displayed on the timeline.\n * Used to calculate the item's position in chronological order.\n */\n date: Date;\n\n /**\n * The text label that appears below the timeline marker.\n * Can be a string, a Date or a formatted number value.\n */\n label: string;\n\n /**\n * Optional visual style indicator for the timeline marker.\n * Supported values: 'info', 'success', 'warning', 'danger'\n */\n stepType?: 'info' | 'success' | 'warning' | 'danger' | string;\n}\n\n/**\n * @deprecated use the {@link EuiTimebarItem} interface instead.\n */\n// TODO: v17 remove this class - unnecessary\n// eslint-disable-next-line @typescript-eslint/no-unsafe-declaration-merging\nexport class EuiTimebarItem implements EuiTimebarItem {\n date: Date;\n label: string;\n stepType?: string;\n\n constructor(values = {}) {\n Object.assign(this, values);\n }\n}\n","import { EuiTimebarComponent } from './eui-timebar.component';\n\nexport * from './eui-timebar.component';\nexport * from './eui-timebar-item.model';\n\nexport const EUI_TIMEBAR = [\n EuiTimebarComponent,\n] as const;\n\n// export { EuiTimebarComponent as EuiTimebar } from './eui-timebar.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -19,6 +19,7 @@ import * as i2$1 from '@eui/components/eui-label';
19
19
  import { EUI_LABEL } from '@eui/components/eui-label';
20
20
  import * as i3$1 from '@eui/components/eui-icon-button-expander';
21
21
  import { EUI_ICON_BUTTON_EXPANDER } from '@eui/components/eui-icon-button-expander';
22
+ import { NgTemplateOutlet } from '@angular/common';
22
23
 
23
24
  class EuiTreeListToolbarComponent {
24
25
  constructor() {
@@ -748,13 +749,14 @@ class EuiTreeListItemComponent {
748
749
  .trim();
749
750
  }
750
751
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: EuiTreeListItemComponent, deps: [{ token: forwardRef(() => EuiTreeListComponent), host: true, optional: true }, { token: i0.ElementRef }, { token: i1$2.BaseStatesDirective }], target: i0.ɵɵFactoryTarget.Component }); }
751
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: EuiTreeListItemComponent, isStandalone: true, selector: "eui-tree-list-item", inputs: { id: "id", ariaLabel: "ariaLabel", e2eAttr: "e2eAttr", label: "label", linkUrl: "linkUrl", subLabel: "subLabel", url: "url", subLinks: "subLinks", isActive: ["isActive", "isActive", booleanAttribute], isExpanded: ["isExpanded", "isExpanded", booleanAttribute], isAlwaysExpanded: ["isAlwaysExpanded", "isAlwaysExpanded", booleanAttribute], isVisible: ["isVisible", "isVisible", booleanAttribute], isDisplaySubLinksOnHover: ["isDisplaySubLinksOnHover", "isDisplaySubLinksOnHover", booleanAttribute], isNavigateOnlyOnLabelClick: ["isNavigateOnlyOnLabelClick", "isNavigateOnlyOnLabelClick", booleanAttribute] }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.cssClasses", "attr.tabindex": "this.tabIndex", "attr.role": "this.ariaRole", "attr.id": "this.id", "attr.aria-label": "this.ariaLabel", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "customLabel", first: true, predicate: i0.forwardRef(() => EuiTreeListItemLabelTagDirective), descendants: true }, { propertyName: "customDetailContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemDetailsContentTagDirective), descendants: true }, { propertyName: "customSubContainerContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemSubContainerContentTagDirective), descendants: true }, { propertyName: "subTreeList", predicate: i0.forwardRef(() => EuiTreeListComponent), descendants: true }, { propertyName: "customContent", predicate: i0.forwardRef(() => EuiTreeListItemContentComponent) }], viewQueries: [{ propertyName: "focusable", first: true, predicate: ["focusable"], descendants: true }], hostDirectives: [{ directive: i1$2.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiInfo", "euiInfo", "euiSuccess", "euiSuccess", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\">\n\n @if (hasCustomContent) {\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n } @else {\n <div class=\"eui-u-flex\">\n <eui-label>\n @if (!customLabel) {\n {{label}}\n @if (subLabel) {\n <eui-label euiSublabel>{{subLabel}}</eui-label>\n }\n } @else {\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n }\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n }\n </div>\n\n @if (customDetailContent) {\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n }\n\n @if (customSubContainerContent) {\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n }\n</div>\n\n@if (isExpanded || isAlwaysExpanded) {\n <ng-content />\n}\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n @if (hasSub && !isAlwaysExpanded) {\n <eui-icon-button-expander\n (buttonClick)=\"toggle($event)\"\n [isExpanded]=\"isExpanded\"\n isDirectionForward>\n </eui-icon-button-expander>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: i2$1.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i3$1.EuiIconButtonExpanderComponent, selector: "eui-icon-button-expander", inputs: ["fillColor", "size", "ariaLabel", "isExpanded", "isDirectionForward", "euiDisabled"], outputs: ["buttonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
752
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.9", type: EuiTreeListItemComponent, isStandalone: true, selector: "eui-tree-list-item", inputs: { id: "id", ariaLabel: "ariaLabel", e2eAttr: "e2eAttr", label: "label", linkUrl: "linkUrl", subLabel: "subLabel", url: "url", subLinks: "subLinks", isActive: ["isActive", "isActive", booleanAttribute], isExpanded: ["isExpanded", "isExpanded", booleanAttribute], isAlwaysExpanded: ["isAlwaysExpanded", "isAlwaysExpanded", booleanAttribute], isVisible: ["isVisible", "isVisible", booleanAttribute], isDisplaySubLinksOnHover: ["isDisplaySubLinksOnHover", "isDisplaySubLinksOnHover", booleanAttribute], isNavigateOnlyOnLabelClick: ["isNavigateOnlyOnLabelClick", "isNavigateOnlyOnLabelClick", booleanAttribute] }, outputs: { toggled: "toggled" }, host: { properties: { "class": "this.cssClasses", "attr.tabindex": "this.tabIndex", "attr.role": "this.ariaRole", "attr.id": "this.id", "attr.aria-label": "this.ariaLabel", "attr.data-e2e": "this.e2eAttr" } }, queries: [{ propertyName: "customLabel", first: true, predicate: i0.forwardRef(() => EuiTreeListItemLabelTagDirective), descendants: true }, { propertyName: "customDetailContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemDetailsContentTagDirective), descendants: true }, { propertyName: "customSubContainerContent", first: true, predicate: i0.forwardRef(() => EuiTreeListItemSubContainerContentTagDirective), descendants: true }, { propertyName: "subTreeList", predicate: i0.forwardRef(() => EuiTreeListComponent), descendants: true }, { propertyName: "customContent", predicate: i0.forwardRef(() => EuiTreeListItemContentComponent) }], viewQueries: [{ propertyName: "focusable", first: true, predicate: ["focusable"], descendants: true }], hostDirectives: [{ directive: i1$2.BaseStatesDirective, inputs: ["euiPrimary", "euiPrimary", "euiSecondary", "euiSecondary", "euiInfo", "euiInfo", "euiSuccess", "euiSuccess", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiVariant", "euiVariant"] }], ngImport: i0, template: "<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\">\n\n @if (hasCustomContent) {\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n } @else {\n <div class=\"eui-u-flex\">\n <eui-label>\n @if (!customLabel) {\n {{label}}\n @if (subLabel) {\n <eui-label euiSublabel>{{subLabel}}</eui-label>\n }\n } @else {\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n }\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n }\n </div>\n\n @if (customDetailContent) {\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n }\n\n @if (customSubContainerContent) {\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n }\n</div>\n\n@if (isExpanded || isAlwaysExpanded) {\n <ng-content />\n}\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n @if (hasSub && !isAlwaysExpanded) {\n <eui-icon-button-expander\n (buttonClick)=\"toggle($event)\"\n [isExpanded]=\"isExpanded\"\n isDirectionForward>\n </eui-icon-button-expander>\n }\n </div>\n </div>\n</ng-template>\n", dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i2$1.EuiLabelComponent, selector: "label[euiLabel], span[euiLabel], div[euiLabel], a[euiLabel], eui-label, label[euiSublabel], span[euiSublabel], div[euiSublabel], a[euiSublabel], eui-sublabel", inputs: ["euiRequired", "euiReadonly", "euiSublabel"] }, { kind: "component", type: i3$1.EuiIconButtonExpanderComponent, selector: "eui-icon-button-expander", inputs: ["fillColor", "size", "ariaLabel", "isExpanded", "isDirectionForward", "euiDisabled"], outputs: ["buttonClick"] }], encapsulation: i0.ViewEncapsulation.None }); }
752
753
  }
753
754
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.9", ngImport: i0, type: EuiTreeListItemComponent, decorators: [{
754
755
  type: Component,
755
756
  args: [{ selector: 'eui-tree-list-item', encapsulation: ViewEncapsulation.None, imports: [
756
757
  TranslateModule,
757
758
  FormsModule,
759
+ NgTemplateOutlet,
758
760
  ...EUI_LABEL,
759
761
  ...EUI_ICON_INPUT,
760
762
  ...EUI_ICON_BUTTON_EXPANDER,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-tree-list.mjs","sources":["../../eui-tree-list/toolbar/toolbar.component.ts","../../eui-tree-list/toolbar/toolbar.component.html","../../eui-tree-list/eui-tree-list.component.ts","../../eui-tree-list/eui-tree-list.component.html","../../eui-tree-list/item-content/item-content.component.ts","../../eui-tree-list/eui-tree-list-item.component.ts","../../eui-tree-list/eui-tree-list-item.component.html","../../eui-tree-list/eui-tree-list.module.ts","../../eui-tree-list/index.ts","../../eui-tree-list/eui-components-eui-tree-list.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n booleanAttribute,\n HostBinding,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\n\n@Component({\n selector: 'eui-tree-list-toolbar',\n templateUrl: './toolbar.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n ...EUI_INPUT_TEXT,\n ...EUI_BUTTON,\n ...EUI_ICON,\n ...EUI_ICON_INPUT,\n ],\n})\nexport class EuiTreeListToolbarComponent implements OnInit, OnChanges {\n @HostBinding('class') classes = 'eui-tree-list-toolbar';\n\n @Input() e2eAttr = 'eui-tree-list-toolbar';\n /**\n * Shows or hides the toolbar\n * @default false\n */\n @Input({ transform: booleanAttribute }) isVisible = false;\n /**\n * The value of the filter placeholder\n * @type {string}\n */\n @Input() filterLabel: string;\n /**\n * The label for the expand all button\n * @type {string}\n */\n @Input() expandAllLabel: string;\n /**\n * The label for the collapse all button\n * @type {string}\n */\n @Input() collapseAllLabel: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isFilterVisible = true;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isToggleVisible = true;\n /**\n * Option that toggles the expanded/collapsed state of the corresponding button\n * @default false\n */\n @Input({ transform: booleanAttribute }) isToggleExpanded = false;\n /**\n * The value of the filter input\n * @default ''\n */\n @Input() filterValue = '';\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) hasLabels = true;\n /**\n * Event emitted if there is or if a filter value changes.\n */\n @Output() filter = new EventEmitter<string>();\n /**\n * Event emitted when the expand all button is clicked.\n */\n @Output() expandAll = new EventEmitter<MouseEvent>();\n /**\n * Event emitted when the collapse all button is clicked.\n */\n @Output() collapseAll = new EventEmitter<MouseEvent>();\n\n ngOnInit(): void {\n if (this.filterValue !== '' && this.filterValue !== undefined) {\n this.filter.emit(this.filterValue);\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.filterValue && this.filterValue !== undefined) {\n this.filter.emit(this.filterValue);\n }\n }\n /**\n * This method is called when the filter input value changes.\n * It emits the filter value to the parent component.\n * @protected\n */\n protected onFilter(): void {\n if (this.filterValue === '') {\n if (!this.isToggleExpanded) {\n this.collapseAll.emit(null);\n }\n }\n this.filter.emit(this.filterValue);\n }\n /**\n * This method is called when the expand all button is clicked.\n * It emits the expand all event to the parent component.\n * @param event The mouse event\n * @protected\n */\n protected onExpandAll(event: MouseEvent): void {\n this.isToggleExpanded = !this.isToggleExpanded;\n this.expandAll.emit(event);\n }\n /**\n * This method is called when the collapse all button is clicked.\n * It emits the collapse all event to the parent component.\n * @param event The mouse event\n * @protected\n */\n protected onCollapseAll(event: MouseEvent): void {\n this.isToggleExpanded = !this.isToggleExpanded;\n this.collapseAll.emit(event);\n }\n}\n","@if (isVisible) {\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\" />\n <input\n euiInputText\n euiClearable\n [(ngModel)]=\"filterValue\"\n [placeholder]=\"filterLabel\"\n (ngModelChange)=\"onFilter()\" />\n </eui-icon-input>\n\n @if (!isToggleExpanded) {\n <button euiButton euiSecondary euiOutline (click)=\"onExpandAll($event)\" [euiIconButton]=\"expandAllLabel === ''\" aria-label=\"Expand all\">\n @if (expandAllLabel !== '') {\n {{ expandAllLabel }}\n }\n <eui-icon-svg icon=\"eui-level-down\" aria-label=\"Expand all tree items icon\" />\n </button>\n } @else {\n <button euiButton euiSecondary euiOutline (click)=\"onCollapseAll($event)\" [euiIconButton]=\"collapseAllLabel === ''\" aria-label=\"Collapse all\">\n @if (collapseAllLabel !== '') {\n {{ collapseAllLabel }}\n }\n <eui-icon-svg icon=\"eui-level-up\" aria-label=\"Collapse all tree items icon\" />\n </button>\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChildren,\n QueryList,\n forwardRef,\n AfterViewInit,\n OnChanges,\n SimpleChanges,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { EuiTreeListItemComponent } from './eui-tree-list-item.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\nexport interface EuiTreeListFilterParams {\n readonly level: number;\n readonly item: EuiTreeListItemComponent;\n readonly keyword: string;\n}\n\n@Component({\n selector: 'eui-tree-list',\n templateUrl: './eui-tree-list.component.html',\n styleUrls: ['./_styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n EuiTreeListToolbarComponent,\n TranslateModule,\n ],\n})\nexport class EuiTreeListComponent implements AfterViewInit, OnChanges {\n /**\n * Option to show the toolbar\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowToolbar = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isShowToolbarToggle = true;\n /**\n * Sets the expanded state of the tree list\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) hasItemsUrl = false;\n /**\n * Sets the label for the filter input\n * @type {string}\n */\n @Input() filterLabel: string;\n /**\n * Function to filter the tree list items based on the provided params\n * @param {EuiTreeListFilterParams} params\n * @returns {boolean}\n */\n @Input() filterFunction: (params: EuiTreeListFilterParams) => boolean;\n /**\n * Sets the label for the expand all button\n * @type {string}\n */\n @Input() expandAllLabel: string;\n /**\n * Sets the label for the collapse all button\n * @type {string}\n */\n @Input() collapseAllLabel: string;\n /**\n * Sets the tabindex attribute to handle the focus state\n * @default '0'\n */\n @Input() tabindex = '0';\n /**\n * Sets the aria-label attribute for the tree list\n * @default ''\n */\n @Input() ariaLabel = '';\n /**\n * Sets the filter value of the toolbar\n * @default ''\n */\n @Input() toolbarFilterValue = '';\n /**\n * Sets the end to end attribute for the tree list\n * @default 'eui-tree-list'\n */\n @Input() e2eAttr = 'eui-tree-list';\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Output() itemSelected = new EventEmitter<string>();\n /**\n * Event that emits the filter value upon filtering.\n */\n @Output() filter = new EventEmitter<string>();\n /**\n * Event emitted upon expanding all items.\n */\n @Output() expandAll = new EventEmitter();\n /**\n * Event emitted upon collapsing all items.\n */\n @Output() collapseAll = new EventEmitter();\n\n @ContentChildren(forwardRef(() => EuiTreeListItemComponent)) items: QueryList<EuiTreeListItemComponent>;\n\n public ariaOwns = '';\n public originalTabindex = '0';\n public classes = '';\n public ariaRoleTree = 'tree';\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n const treeItemIds = [];\n if (this.items) {\n this.items.forEach((treeItem: EuiTreeListItemComponent) => {\n treeItemIds.push(treeItem.id);\n });\n }\n setTimeout(() => {\n this.ariaOwns = treeItemIds.join(' ');\n this.originalTabindex = this.tabindex;\n if (this.isExpanded) {\n this.setExpandedState(true);\n }\n }, 0);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['tabindex']) {\n this.originalTabindex = this.tabindex;\n }\n }\n /**\n * Getter function that returns true if the expandAllLabel exists.\n * @returns {boolean}\n */\n get hasExpandAllLabel(): boolean {\n return this.expandAllLabel !== undefined && this.expandAllLabel !== null;\n }\n /**\n * Getter function that returns true if the collapseAllLabel exists.\n * @returns {boolean}\n */\n get hasCollapseAllLabel(): boolean {\n return this.collapseAllLabel !== undefined && this.collapseAllLabel !== null;\n }\n /**\n * Method that sets the expanded state and emits the expand all event.\n */\n onExpandAll(event: Event): void {\n this.setExpandedState(true);\n this.expandAll.next(void 0);\n }\n /**\n * Method that sets the collapsed state and emits the collapse all event.\n */\n onCollapseAll(event: Event): void {\n this.setExpandedState(false);\n this.collapseAll.next(void 0);\n }\n /**\n * Method that handles the visibility of the items based on the filter value and emits the filter event.\n * @param {string} filterValue - The filter value to set.\n */\n onFilter(filterValue: string): void {\n // TODO find a recursive way of doing the filtering throughout the tree structure\n if (filterValue && filterValue !== '') {\n this.setVisibleState(false);\n this.items.toArray().forEach((item1) => {\n item1.isVisible = this.filterMatched(0, item1, filterValue);\n if (item1.subTreeList.length !== 0) {\n item1.subTreeList.toArray().forEach((item1SubTreeList) => {\n item1SubTreeList.items.toArray().forEach((item2) => {\n if (this.filterMatched(1, item2, filterValue)) {\n item2.isVisible = true;\n item1.isVisible = true;\n item1.isExpanded = true;\n\n if (item2.subTreeList.length !== 0) {\n item2.subTreeList.toArray().forEach((item2SubTreeList) => {\n item2SubTreeList.items.toArray().forEach((item3) => {\n item3.isVisible = true;\n });\n });\n }\n }\n\n if (item2.subTreeList.length !== 0) {\n item2.subTreeList.toArray().forEach((item2SubTreeList) => {\n item2SubTreeList.items.toArray().forEach((item4) => {\n if (this.filterMatched(2, item4, filterValue)) {\n item4.isVisible = true;\n item2.isVisible = true;\n item2.isExpanded = true;\n item1.isVisible = true;\n item1.isExpanded = true;\n }\n });\n });\n }\n });\n });\n }\n });\n } else {\n this.setVisibleState(true);\n }\n\n this.filter.next(filterValue);\n }\n /**\n * @deprecated This method is not used anymore and will be removed in the next major version. You can use the `focus()` method instead.\n */\n onFocus(): void {\n this.focus();\n }\n /**\n * Method that sets the visibility state of the tree list items.\n * @param {boolean} state \n */\n public setVisibleState(state: boolean): void {\n this.items.toArray().forEach((item) => item.setVisibleState(state));\n }\n /**\n * Method that sets the expanded state of the tree list items.\n * @param {boolean} state \n */\n public setExpandedState(state: boolean): void {\n this.items.toArray().forEach((item) => item.setExpandedState(state));\n }\n /**\n * Method that puts the focus on the first child tree item.\n */\n public focus(): void {\n // Focus on the first child tree item:\n if (this.items && this.items.length > 0) {\n this.items.first.focus();\n }\n }\n /**\n * Method that makes the tree list not focusable.\n */\n public disableFocus(): void {\n this.tabindex = '-1';\n }\n /**\n * Method used to focus on the previous tree item in the list.\n * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.\n * @return {boolean} - Returns true if the focus was set on the previous tree item, false otherwise.\n */\n public focusOnPreviousTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean {\n if (this.items && this.items.length > 0) {\n let previousTreeListItem: EuiTreeListItemComponent = null;\n for (const treeListItem of this.items.toArray()) {\n if (treeListItem !== currentTreeListItem) {\n previousTreeListItem = treeListItem;\n } else if (previousTreeListItem) {\n previousTreeListItem.focusOnLastExpandedTreeItem();\n return true;\n }\n }\n\n // Focus on the last item of the previous parent:\n // First find the parent list item:\n if (this.elementRef) {\n let parent = this.elementRef.nativeElement.parentElement;\n while (parent && !parent.classList.contains('eui-tree-list-item')) {\n parent = parent.parentElement;\n }\n\n if (parent) {\n // parent tree-item is found\n const content = parent.querySelector('.eui-tree-list-item-header__content');\n if (content) {\n content.setAttribute('tabindex', '0');\n content.focus();\n return true;\n }\n }\n }\n }\n\n return false;\n }\n /**\n * Method used to focus on the next tree item in the list.\n * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.\n * @return {boolean} - Returns true if the focus was set on the next tree item, false otherwise.\n */\n public focusOnNextTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean {\n if (this.items && this.items.length > 0) {\n if (currentTreeListItem !== this.items.last) {\n let previousTreeListItem: EuiTreeListItemComponent = null;\n for (const treeListItem of this.items.toArray()) {\n if (previousTreeListItem !== currentTreeListItem) {\n previousTreeListItem = treeListItem;\n } else {\n treeListItem.focus();\n return true;\n }\n }\n } else {\n // The current focused tree item is the last one; find the first next tree item:\n if (this.elementRef) {\n // First find the parent tree list item:\n let parent = this.elementRef.nativeElement.parentElement;\n // Find the parent that is not a last child itself:\n while (parent && (parent.tagName.toLowerCase() !== 'eui-tree-list-item' || parent.nextElementSibling === null)) {\n parent = parent.parentElement;\n }\n\n if (parent) {\n // parent tree list item is found; focus on the first child of the next list item\n const nextTreeListItem = parent.nextElementSibling;\n if (nextTreeListItem) {\n const next = nextTreeListItem.querySelector('.eui-tree-list-item-header__content');\n next.setAttribute('tabindex', '0');\n next.focus();\n return true;\n }\n }\n }\n }\n }\n\n return false;\n }\n /**\n * Method that sets the default filter function to filter the tree list items.\n * @param {EuiTreeListFilterParams} params - The filter parameters.\n * @returns {boolean} - Returns true if the item matches the filter, false otherwise.\n * @private\n */\n private defaultFilterFunction(params: EuiTreeListFilterParams): boolean {\n if (!params.item.label) {\n return false;\n } else if (params.item.label.toUpperCase().indexOf(params.keyword.toUpperCase()) !== -1) {\n return true;\n } else {\n return false;\n }\n }\n /**\n * Method that filters the tree list items based on the provided params.\n * @param {number} level - The level of the item in the tree list.\n * @param {EuiTreeListItemComponent} item - The tree list item to filter.\n * @param {string} keyword - The keyword to filter by.\n * @returns {boolean} - Returns true if the item matches the filter, false otherwise.\n * @private\n */\n private filterMatched(level: number, item: EuiTreeListItemComponent, keyword: string): boolean {\n if (this.filterFunction) {\n return this.filterFunction({ level, item, keyword });\n } else {\n return this.defaultFilterFunction({ level, item, keyword });\n }\n }\n}\n","@if (isShowToolbar) {\n <eui-tree-list-toolbar\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"isShowToolbarToggle\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"toolbarFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n [filterLabel]=\"filterLabel ? filterLabel : 'eui.FILTER' | translate\"\n [expandAllLabel]=\"hasExpandAllLabel ? expandAllLabel : 'eui.EXPANDALL' | translate\"\n [collapseAllLabel]=\"hasCollapseAllLabel ? collapseAllLabel : 'eui.COLLAPSEALL' | translate\"\n [isToggleExpanded]=\"isExpanded\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\" />\n}\n\n<div\n class=\"eui-tree-list\"\n [attr.role]=\"ariaRoleTree\"\n [attr.data-tabindex]=\"originalTabindex\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-owns]=\"ariaOwns\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eui-tree-list-item-content',\n template: '<ng-content />',\n})\nexport class EuiTreeListItemContentComponent {\n @HostBinding('class') string = 'eui-tree-list-item-content';\n}\n","import {\n AfterContentInit,\n booleanAttribute,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Host,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { UxLinkLegacy } from '@eui/core';\n\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport { consumeEvent, uniqueId } from '@eui/core';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { EUI_LABEL } from '@eui/components/eui-label';\nimport { EUI_ICON_BUTTON_EXPANDER } from '@eui/components/eui-icon-button-expander';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\n\n@Component({\n selector: 'eui-tree-list-item',\n templateUrl: './eui-tree-list-item.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [\n TranslateModule,\n FormsModule,\n ...EUI_LABEL,\n ...EUI_ICON_INPUT,\n ...EUI_ICON_BUTTON_EXPANDER,\n ],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: ['euiPrimary', 'euiSecondary', 'euiInfo', 'euiSuccess', 'euiWarning', 'euiDanger', 'euiAccent', 'euiVariant'],\n },\n ],\n})\nexport class EuiTreeListItemComponent implements AfterContentInit {\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.tabindex') tabIndex = '0';\n @HostBinding('attr.role') protected ariaRole = 'treeitem';\n\n @HostBinding('attr.id') @Input() id: string;\n @HostBinding('attr.aria-label') @Input() ariaLabel: string;\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-tree-list-item';\n /**\n * The label of the tree list item if there is no customLabel.\n * @type {string}\n */\n @Input() label: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() linkUrl: string;\n /**\n * The sublabel of the tree list item if there is no customLabel.\n * @type {string}\n */\n @Input() subLabel: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() url: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() subLinks: UxLinkLegacy[] = [];\n /**\n * Option that enables a corresponding class if it is set to true.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isActive = false;\n /**\n * Option to set the expanded state of the list item.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n /**\n * Option to set the expanded state of the list item when it is always expanded.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isAlwaysExpanded = false;\n /**\n * Option to set the visible state of the list item and apply the corresponding hidden class if it is set to false.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isVisible = true;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isDisplaySubLinksOnHover = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isNavigateOnlyOnLabelClick = false;\n /**\n * Event emitted upon toggling the expanded state.\n */\n @Output() toggled = new EventEmitter<EuiTreeListItemComponent>();\n\n isHovered = false;\n treeListComponent: EuiTreeListComponent;\n\n // tree states\n hasSub = false;\n\n // custom content\n hasCustomContent = false;\n\n @ViewChild('focusable') focusable: ElementRef<HTMLDivElement>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemLabelTagDirective))\n customLabel: QueryList<EuiTreeListItemLabelTagDirective>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemDetailsContentTagDirective))\n customDetailContent: QueryList<EuiTreeListItemDetailsContentTagDirective>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemSubContainerContentTagDirective))\n customSubContainerContent: QueryList<EuiTreeListItemSubContainerContentTagDirective>;\n\n @ContentChildren(forwardRef(() => EuiTreeListComponent), { descendants: true })\n subTreeList: QueryList<EuiTreeListComponent>;\n\n @ContentChildren(forwardRef(() => EuiTreeListItemContentComponent), { descendants: false })\n customContent: QueryList<EuiTreeListItemContentComponent>;\n\n constructor(\n @Host() @Optional() @Inject(forwardRef(() => EuiTreeListComponent)) treeListComponent,\n protected elementRef: ElementRef,\n public baseStatesDirective: BaseStatesDirective,\n ) {\n this.treeListComponent = treeListComponent as EuiTreeListComponent;\n }\n\n ngAfterContentInit(): void {\n if (!this.ariaLabel) {\n this.ariaLabel = this.label ? this.label : 'Custom content';\n }\n\n // make sure that the tree item can be aria-owned by a parent tree for WAI-ARIA attributes:\n if (!this.id) {\n this.id = uniqueId();\n }\n\n // setting tree states\n if (this.subTreeList.length !== 0) {\n this.hasSub = true;\n }\n\n // checking if customContent set\n if (this.customContent.length !== 0) {\n this.hasCustomContent = true;\n }\n\n // make sure that any child tree-list is non-focusable and that it has the role of a WAI-ARIA group:\n if (this.subTreeList) {\n this.subTreeList.forEach((subtree: EuiTreeListComponent) => {\n subtree.disableFocus();\n subtree.ariaRoleTree = 'group';\n });\n }\n }\n /**\n * Method fired when the expander button is clicked.\n * @param {Event} event - The click event.\n */\n toggle(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.isExpanded = !this.isExpanded;\n this.toggled.next(this);\n }\n /**\n * Method fired when a key is pressed down.\n * @param {KeyboardEvent} event - The keyboard event.\n */\n onKeyDown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case 13: // ENTER\n case 32: // SPACE\n this.isExpanded = !this.isExpanded;\n consumeEvent(event);\n break;\n case 37: // ARROW LEFT\n this.isExpanded = false;\n consumeEvent(event);\n break;\n case 38: // ARROW UP\n if (this.treeListComponent) {\n if (this.treeListComponent.focusOnPreviousTreeItem(this)) {\n this.disableFocus();\n }\n }\n\n consumeEvent(event);\n break;\n case 39: // ARROW RIGHT\n this.isExpanded = true;\n consumeEvent(event);\n break;\n case 40: // ARROW DOWN\n if (this.focusOnNextTreeItem()) {\n this.disableFocus();\n }\n\n consumeEvent(event);\n break;\n }\n }\n /**\n * Method that sets the visible state.\n * @param {boolean} state - The visible state.\n */\n public setVisibleState(state: boolean): void {\n this.isVisible = state;\n\n if (this.subTreeList && this.subTreeList.length !== 0) {\n this.subTreeList.toArray().forEach((item) => {\n item.setVisibleState(state);\n });\n }\n }\n /**\n * Method that sets the expanded state.\n * @param {boolean} state - The expanded state.\n */\n public setExpandedState(state: boolean): void {\n this.isExpanded = state;\n\n if (this.subTreeList.length !== 0) {\n this.subTreeList.toArray().forEach((item) => {\n item.setExpandedState(state);\n });\n }\n }\n /**\n * Method used to enable/disable the focus state.\n */\n public focus(): void {\n if (this.focusable) {\n this.enableFocus();\n this.focusable.nativeElement.focus();\n }\n if (this.treeListComponent) {\n this.treeListComponent.disableFocus();\n }\n }\n /**\n * Method used to focus on the last expanded tree item.\n */\n public focusOnLastExpandedTreeItem(): void {\n const lastExpanded = this.elementRef.nativeElement.querySelectorAll('.eui-tree-list-item-header__content');\n if (lastExpanded && lastExpanded.length > 0) {\n const element = lastExpanded[lastExpanded.length - 1];\n element.setAttribute('tabindex', '0');\n element.focus();\n } else {\n this.focus();\n }\n }\n /**\n * Method used to focus on the next tree item.\n * @returns {boolean} - Returns true if the focus was set, false otherwise.\n * @protected\n */\n protected focusOnNextTreeItem(): boolean {\n if (this.isExpanded && this.subTreeList && this.subTreeList.length > 0) {\n this.subTreeList.first.focus();\n return true;\n } else if (this.treeListComponent) {\n return this.treeListComponent.focusOnNextTreeItem(this);\n }\n\n return false;\n }\n /**\n * Method used to disable the focus state.\n * @protected\n */\n protected disableFocus(): void {\n if (this.focusable) {\n this.focusable.nativeElement.setAttribute('tabindex', '-1');\n }\n }\n /**\n * Method used to enable the focus state.\n * @protected\n */\n protected enableFocus(): void {\n if (this.focusable) {\n this.focusable.nativeElement.setAttribute('tabindex', '0');\n }\n }\n /**\n * Method used to get the CSS classes for the tree list item.\n * @returns {string} - The CSS classes.\n * @private\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-tree-list-item'),\n this.isActive ? 'eui-tree-list-item--active' : '',\n !this.isVisible ? 'eui-tree-list-item--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'eui-tree-list-item-label', })\nexport class EuiTreeListItemLabelTagDirective {}\n@Directive({ selector: 'eui-tree-list-item-details', })\nexport class EuiTreeListItemDetailsContentTagDirective {}\n@Directive({ selector: 'eui-tree-list-item-sub-container', })\nexport class EuiTreeListItemSubContainerContentTagDirective {}\n/* eslint-enable */\n","<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\">\n\n @if (hasCustomContent) {\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n } @else {\n <div class=\"eui-u-flex\">\n <eui-label>\n @if (!customLabel) {\n {{label}}\n @if (subLabel) {\n <eui-label euiSublabel>{{subLabel}}</eui-label>\n }\n } @else {\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n }\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n }\n </div>\n\n @if (customDetailContent) {\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n }\n\n @if (customSubContainerContent) {\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n }\n</div>\n\n@if (isExpanded || isAlwaysExpanded) {\n <ng-content />\n}\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n @if (hasSub && !isAlwaysExpanded) {\n <eui-icon-button-expander\n (buttonClick)=\"toggle($event)\"\n [isExpanded]=\"isExpanded\"\n isDirectionForward>\n </eui-icon-button-expander>\n }\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport {\n EuiTreeListItemComponent,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemLabelTagDirective,\n} from './eui-tree-list-item.component';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\n\n/**\n * @description\n * This module provides the EuiTreeListComponent which is used to create\n * tree lists with various styles and functionalities.\n *\n * @deprecated Use {@link EUI_TREE_LIST} instead\n */\n@NgModule({\n imports: [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n ],\n exports: [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n ],\n})\nexport class EuiTreeListModule {}\n","import { EuiTreeListItemComponent, EuiTreeListItemDetailsContentTagDirective, EuiTreeListItemLabelTagDirective, EuiTreeListItemSubContainerContentTagDirective } from './eui-tree-list-item.component';\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\n\nexport * from './eui-tree-list.component';\nexport * from './eui-tree-list-item.component';\nexport * from './eui-tree-list.module';\n\nexport * from './item-content/item-content.component';\nexport * from './toolbar/toolbar.component';\n\nexport const EUI_TREE_LIST = [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-tree-list.mjs","sources":["../../eui-tree-list/toolbar/toolbar.component.ts","../../eui-tree-list/toolbar/toolbar.component.html","../../eui-tree-list/eui-tree-list.component.ts","../../eui-tree-list/eui-tree-list.component.html","../../eui-tree-list/item-content/item-content.component.ts","../../eui-tree-list/eui-tree-list-item.component.ts","../../eui-tree-list/eui-tree-list-item.component.html","../../eui-tree-list/eui-tree-list.module.ts","../../eui-tree-list/index.ts","../../eui-tree-list/eui-components-eui-tree-list.ts"],"sourcesContent":["import {\n Component,\n Input,\n Output,\n EventEmitter,\n OnInit,\n OnChanges,\n SimpleChanges,\n ViewEncapsulation,\n booleanAttribute,\n HostBinding,\n} from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { EUI_BUTTON } from '@eui/components/eui-button';\nimport { EUI_ICON } from '@eui/components/eui-icon';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { EUI_INPUT_TEXT } from '@eui/components/eui-input-text';\n\n@Component({\n selector: 'eui-tree-list-toolbar',\n templateUrl: './toolbar.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [\n FormsModule,\n ...EUI_INPUT_TEXT,\n ...EUI_BUTTON,\n ...EUI_ICON,\n ...EUI_ICON_INPUT,\n ],\n})\nexport class EuiTreeListToolbarComponent implements OnInit, OnChanges {\n @HostBinding('class') classes = 'eui-tree-list-toolbar';\n\n @Input() e2eAttr = 'eui-tree-list-toolbar';\n /**\n * Shows or hides the toolbar\n * @default false\n */\n @Input({ transform: booleanAttribute }) isVisible = false;\n /**\n * The value of the filter placeholder\n * @type {string}\n */\n @Input() filterLabel: string;\n /**\n * The label for the expand all button\n * @type {string}\n */\n @Input() expandAllLabel: string;\n /**\n * The label for the collapse all button\n * @type {string}\n */\n @Input() collapseAllLabel: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isFilterVisible = true;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isToggleVisible = true;\n /**\n * Option that toggles the expanded/collapsed state of the corresponding button\n * @default false\n */\n @Input({ transform: booleanAttribute }) isToggleExpanded = false;\n /**\n * The value of the filter input\n * @default ''\n */\n @Input() filterValue = '';\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) hasLabels = true;\n /**\n * Event emitted if there is or if a filter value changes.\n */\n @Output() filter = new EventEmitter<string>();\n /**\n * Event emitted when the expand all button is clicked.\n */\n @Output() expandAll = new EventEmitter<MouseEvent>();\n /**\n * Event emitted when the collapse all button is clicked.\n */\n @Output() collapseAll = new EventEmitter<MouseEvent>();\n\n ngOnInit(): void {\n if (this.filterValue !== '' && this.filterValue !== undefined) {\n this.filter.emit(this.filterValue);\n }\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (c && c.filterValue && this.filterValue !== undefined) {\n this.filter.emit(this.filterValue);\n }\n }\n /**\n * This method is called when the filter input value changes.\n * It emits the filter value to the parent component.\n * @protected\n */\n protected onFilter(): void {\n if (this.filterValue === '') {\n if (!this.isToggleExpanded) {\n this.collapseAll.emit(null);\n }\n }\n this.filter.emit(this.filterValue);\n }\n /**\n * This method is called when the expand all button is clicked.\n * It emits the expand all event to the parent component.\n * @param event The mouse event\n * @protected\n */\n protected onExpandAll(event: MouseEvent): void {\n this.isToggleExpanded = !this.isToggleExpanded;\n this.expandAll.emit(event);\n }\n /**\n * This method is called when the collapse all button is clicked.\n * It emits the collapse all event to the parent component.\n * @param event The mouse event\n * @protected\n */\n protected onCollapseAll(event: MouseEvent): void {\n this.isToggleExpanded = !this.isToggleExpanded;\n this.collapseAll.emit(event);\n }\n}\n","@if (isVisible) {\n <eui-icon-input>\n <eui-icon-svg icon=\"eui-ecl-search\" fillColor=\"neutral-lighter\" aria-label=\"Search Icon\" />\n <input\n euiInputText\n euiClearable\n [(ngModel)]=\"filterValue\"\n [placeholder]=\"filterLabel\"\n (ngModelChange)=\"onFilter()\" />\n </eui-icon-input>\n\n @if (!isToggleExpanded) {\n <button euiButton euiSecondary euiOutline (click)=\"onExpandAll($event)\" [euiIconButton]=\"expandAllLabel === ''\" aria-label=\"Expand all\">\n @if (expandAllLabel !== '') {\n {{ expandAllLabel }}\n }\n <eui-icon-svg icon=\"eui-level-down\" aria-label=\"Expand all tree items icon\" />\n </button>\n } @else {\n <button euiButton euiSecondary euiOutline (click)=\"onCollapseAll($event)\" [euiIconButton]=\"collapseAllLabel === ''\" aria-label=\"Collapse all\">\n @if (collapseAllLabel !== '') {\n {{ collapseAllLabel }}\n }\n <eui-icon-svg icon=\"eui-level-up\" aria-label=\"Collapse all tree items icon\" />\n </button>\n }\n}\n","import {\n Component,\n Input,\n Output,\n EventEmitter,\n ContentChildren,\n QueryList,\n forwardRef,\n AfterViewInit,\n OnChanges,\n SimpleChanges,\n ElementRef,\n ViewEncapsulation,\n booleanAttribute,\n} from '@angular/core';\nimport { EuiTreeListItemComponent } from './eui-tree-list-item.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\nimport { TranslateModule } from '@ngx-translate/core';\n\nexport interface EuiTreeListFilterParams {\n readonly level: number;\n readonly item: EuiTreeListItemComponent;\n readonly keyword: string;\n}\n\n@Component({\n selector: 'eui-tree-list',\n templateUrl: './eui-tree-list.component.html',\n styleUrls: ['./_styles/_index.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [\n EuiTreeListToolbarComponent,\n TranslateModule,\n ],\n})\nexport class EuiTreeListComponent implements AfterViewInit, OnChanges {\n /**\n * Option to show the toolbar\n * @default false\n */\n @Input({ transform: booleanAttribute }) isShowToolbar = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isShowToolbarToggle = true;\n /**\n * Sets the expanded state of the tree list\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) hasItemsUrl = false;\n /**\n * Sets the label for the filter input\n * @type {string}\n */\n @Input() filterLabel: string;\n /**\n * Function to filter the tree list items based on the provided params\n * @param {EuiTreeListFilterParams} params\n * @returns {boolean}\n */\n @Input() filterFunction: (params: EuiTreeListFilterParams) => boolean;\n /**\n * Sets the label for the expand all button\n * @type {string}\n */\n @Input() expandAllLabel: string;\n /**\n * Sets the label for the collapse all button\n * @type {string}\n */\n @Input() collapseAllLabel: string;\n /**\n * Sets the tabindex attribute to handle the focus state\n * @default '0'\n */\n @Input() tabindex = '0';\n /**\n * Sets the aria-label attribute for the tree list\n * @default ''\n */\n @Input() ariaLabel = '';\n /**\n * Sets the filter value of the toolbar\n * @default ''\n */\n @Input() toolbarFilterValue = '';\n /**\n * Sets the end to end attribute for the tree list\n * @default 'eui-tree-list'\n */\n @Input() e2eAttr = 'eui-tree-list';\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Output() itemSelected = new EventEmitter<string>();\n /**\n * Event that emits the filter value upon filtering.\n */\n @Output() filter = new EventEmitter<string>();\n /**\n * Event emitted upon expanding all items.\n */\n @Output() expandAll = new EventEmitter();\n /**\n * Event emitted upon collapsing all items.\n */\n @Output() collapseAll = new EventEmitter();\n\n @ContentChildren(forwardRef(() => EuiTreeListItemComponent)) items: QueryList<EuiTreeListItemComponent>;\n\n public ariaOwns = '';\n public originalTabindex = '0';\n public classes = '';\n public ariaRoleTree = 'tree';\n constructor(private elementRef: ElementRef) {}\n\n ngAfterViewInit(): void {\n const treeItemIds = [];\n if (this.items) {\n this.items.forEach((treeItem: EuiTreeListItemComponent) => {\n treeItemIds.push(treeItem.id);\n });\n }\n setTimeout(() => {\n this.ariaOwns = treeItemIds.join(' ');\n this.originalTabindex = this.tabindex;\n if (this.isExpanded) {\n this.setExpandedState(true);\n }\n }, 0);\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes && changes['tabindex']) {\n this.originalTabindex = this.tabindex;\n }\n }\n /**\n * Getter function that returns true if the expandAllLabel exists.\n * @returns {boolean}\n */\n get hasExpandAllLabel(): boolean {\n return this.expandAllLabel !== undefined && this.expandAllLabel !== null;\n }\n /**\n * Getter function that returns true if the collapseAllLabel exists.\n * @returns {boolean}\n */\n get hasCollapseAllLabel(): boolean {\n return this.collapseAllLabel !== undefined && this.collapseAllLabel !== null;\n }\n /**\n * Method that sets the expanded state and emits the expand all event.\n */\n onExpandAll(event: Event): void {\n this.setExpandedState(true);\n this.expandAll.next(void 0);\n }\n /**\n * Method that sets the collapsed state and emits the collapse all event.\n */\n onCollapseAll(event: Event): void {\n this.setExpandedState(false);\n this.collapseAll.next(void 0);\n }\n /**\n * Method that handles the visibility of the items based on the filter value and emits the filter event.\n * @param {string} filterValue - The filter value to set.\n */\n onFilter(filterValue: string): void {\n // TODO find a recursive way of doing the filtering throughout the tree structure\n if (filterValue && filterValue !== '') {\n this.setVisibleState(false);\n this.items.toArray().forEach((item1) => {\n item1.isVisible = this.filterMatched(0, item1, filterValue);\n if (item1.subTreeList.length !== 0) {\n item1.subTreeList.toArray().forEach((item1SubTreeList) => {\n item1SubTreeList.items.toArray().forEach((item2) => {\n if (this.filterMatched(1, item2, filterValue)) {\n item2.isVisible = true;\n item1.isVisible = true;\n item1.isExpanded = true;\n\n if (item2.subTreeList.length !== 0) {\n item2.subTreeList.toArray().forEach((item2SubTreeList) => {\n item2SubTreeList.items.toArray().forEach((item3) => {\n item3.isVisible = true;\n });\n });\n }\n }\n\n if (item2.subTreeList.length !== 0) {\n item2.subTreeList.toArray().forEach((item2SubTreeList) => {\n item2SubTreeList.items.toArray().forEach((item4) => {\n if (this.filterMatched(2, item4, filterValue)) {\n item4.isVisible = true;\n item2.isVisible = true;\n item2.isExpanded = true;\n item1.isVisible = true;\n item1.isExpanded = true;\n }\n });\n });\n }\n });\n });\n }\n });\n } else {\n this.setVisibleState(true);\n }\n\n this.filter.next(filterValue);\n }\n /**\n * @deprecated This method is not used anymore and will be removed in the next major version. You can use the `focus()` method instead.\n */\n onFocus(): void {\n this.focus();\n }\n /**\n * Method that sets the visibility state of the tree list items.\n * @param {boolean} state \n */\n public setVisibleState(state: boolean): void {\n this.items.toArray().forEach((item) => item.setVisibleState(state));\n }\n /**\n * Method that sets the expanded state of the tree list items.\n * @param {boolean} state \n */\n public setExpandedState(state: boolean): void {\n this.items.toArray().forEach((item) => item.setExpandedState(state));\n }\n /**\n * Method that puts the focus on the first child tree item.\n */\n public focus(): void {\n // Focus on the first child tree item:\n if (this.items && this.items.length > 0) {\n this.items.first.focus();\n }\n }\n /**\n * Method that makes the tree list not focusable.\n */\n public disableFocus(): void {\n this.tabindex = '-1';\n }\n /**\n * Method used to focus on the previous tree item in the list.\n * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.\n * @return {boolean} - Returns true if the focus was set on the previous tree item, false otherwise.\n */\n public focusOnPreviousTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean {\n if (this.items && this.items.length > 0) {\n let previousTreeListItem: EuiTreeListItemComponent = null;\n for (const treeListItem of this.items.toArray()) {\n if (treeListItem !== currentTreeListItem) {\n previousTreeListItem = treeListItem;\n } else if (previousTreeListItem) {\n previousTreeListItem.focusOnLastExpandedTreeItem();\n return true;\n }\n }\n\n // Focus on the last item of the previous parent:\n // First find the parent list item:\n if (this.elementRef) {\n let parent = this.elementRef.nativeElement.parentElement;\n while (parent && !parent.classList.contains('eui-tree-list-item')) {\n parent = parent.parentElement;\n }\n\n if (parent) {\n // parent tree-item is found\n const content = parent.querySelector('.eui-tree-list-item-header__content');\n if (content) {\n content.setAttribute('tabindex', '0');\n content.focus();\n return true;\n }\n }\n }\n }\n\n return false;\n }\n /**\n * Method used to focus on the next tree item in the list.\n * @param {EuiTreeListItemComponent} currentTreeListItem - The current tree list item.\n * @return {boolean} - Returns true if the focus was set on the next tree item, false otherwise.\n */\n public focusOnNextTreeItem(currentTreeListItem: EuiTreeListItemComponent): boolean {\n if (this.items && this.items.length > 0) {\n if (currentTreeListItem !== this.items.last) {\n let previousTreeListItem: EuiTreeListItemComponent = null;\n for (const treeListItem of this.items.toArray()) {\n if (previousTreeListItem !== currentTreeListItem) {\n previousTreeListItem = treeListItem;\n } else {\n treeListItem.focus();\n return true;\n }\n }\n } else {\n // The current focused tree item is the last one; find the first next tree item:\n if (this.elementRef) {\n // First find the parent tree list item:\n let parent = this.elementRef.nativeElement.parentElement;\n // Find the parent that is not a last child itself:\n while (parent && (parent.tagName.toLowerCase() !== 'eui-tree-list-item' || parent.nextElementSibling === null)) {\n parent = parent.parentElement;\n }\n\n if (parent) {\n // parent tree list item is found; focus on the first child of the next list item\n const nextTreeListItem = parent.nextElementSibling;\n if (nextTreeListItem) {\n const next = nextTreeListItem.querySelector('.eui-tree-list-item-header__content');\n next.setAttribute('tabindex', '0');\n next.focus();\n return true;\n }\n }\n }\n }\n }\n\n return false;\n }\n /**\n * Method that sets the default filter function to filter the tree list items.\n * @param {EuiTreeListFilterParams} params - The filter parameters.\n * @returns {boolean} - Returns true if the item matches the filter, false otherwise.\n * @private\n */\n private defaultFilterFunction(params: EuiTreeListFilterParams): boolean {\n if (!params.item.label) {\n return false;\n } else if (params.item.label.toUpperCase().indexOf(params.keyword.toUpperCase()) !== -1) {\n return true;\n } else {\n return false;\n }\n }\n /**\n * Method that filters the tree list items based on the provided params.\n * @param {number} level - The level of the item in the tree list.\n * @param {EuiTreeListItemComponent} item - The tree list item to filter.\n * @param {string} keyword - The keyword to filter by.\n * @returns {boolean} - Returns true if the item matches the filter, false otherwise.\n * @private\n */\n private filterMatched(level: number, item: EuiTreeListItemComponent, keyword: string): boolean {\n if (this.filterFunction) {\n return this.filterFunction({ level, item, keyword });\n } else {\n return this.defaultFilterFunction({ level, item, keyword });\n }\n }\n}\n","@if (isShowToolbar) {\n <eui-tree-list-toolbar\n [isVisible]=\"isShowToolbar\"\n [isToggleVisible]=\"isShowToolbarToggle\"\n (filter)=\"onFilter($event)\"\n [filterValue]=\"toolbarFilterValue\"\n (expandAll)=\"onExpandAll($event)\"\n (collapseAll)=\"onCollapseAll($event)\"\n [filterLabel]=\"filterLabel ? filterLabel : 'eui.FILTER' | translate\"\n [expandAllLabel]=\"hasExpandAllLabel ? expandAllLabel : 'eui.EXPANDALL' | translate\"\n [collapseAllLabel]=\"hasCollapseAllLabel ? collapseAllLabel : 'eui.COLLAPSEALL' | translate\"\n [isToggleExpanded]=\"isExpanded\"\n attr.data-e2e=\"{{ e2eAttr }}-a-toolbar-filter\" />\n}\n\n<div\n class=\"eui-tree-list\"\n [attr.role]=\"ariaRoleTree\"\n [attr.data-tabindex]=\"originalTabindex\"\n [attr.aria-label]=\"ariaLabel\"\n [attr.aria-owns]=\"ariaOwns\"\n attr.data-e2e=\"{{ e2eAttr }}\">\n <ng-content></ng-content>\n</div>\n","import { Component, HostBinding } from '@angular/core';\n\n@Component({\n selector: 'eui-tree-list-item-content',\n template: '<ng-content />',\n})\nexport class EuiTreeListItemContentComponent {\n @HostBinding('class') string = 'eui-tree-list-item-content';\n}\n","import {\n AfterContentInit,\n booleanAttribute,\n Component,\n ContentChild,\n ContentChildren,\n Directive,\n ElementRef,\n EventEmitter,\n forwardRef,\n Host,\n HostBinding,\n Inject,\n Input,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewEncapsulation,\n} from '@angular/core';\nimport { UxLinkLegacy } from '@eui/core';\n\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport { consumeEvent, uniqueId } from '@eui/core';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { TranslateModule } from '@ngx-translate/core';\nimport { FormsModule } from '@angular/forms';\nimport { EUI_LABEL } from '@eui/components/eui-label';\nimport { EUI_ICON_BUTTON_EXPANDER } from '@eui/components/eui-icon-button-expander';\nimport { EUI_ICON_INPUT } from '@eui/components/eui-icon-input';\nimport { NgTemplateOutlet } from '@angular/common';\n\n@Component({\n selector: 'eui-tree-list-item',\n templateUrl: './eui-tree-list-item.component.html',\n encapsulation: ViewEncapsulation.None,\n imports: [\n TranslateModule,\n FormsModule,\n NgTemplateOutlet,\n ...EUI_LABEL,\n ...EUI_ICON_INPUT,\n ...EUI_ICON_BUTTON_EXPANDER,\n ],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: ['euiPrimary', 'euiSecondary', 'euiInfo', 'euiSuccess', 'euiWarning', 'euiDanger', 'euiAccent', 'euiVariant'],\n },\n ],\n})\nexport class EuiTreeListItemComponent implements AfterContentInit {\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n @HostBinding('attr.tabindex') tabIndex = '0';\n @HostBinding('attr.role') protected ariaRole = 'treeitem';\n\n @HostBinding('attr.id') @Input() id: string;\n @HostBinding('attr.aria-label') @Input() ariaLabel: string;\n @HostBinding('attr.data-e2e') @Input() e2eAttr = 'eui-tree-list-item';\n /**\n * The label of the tree list item if there is no customLabel.\n * @type {string}\n */\n @Input() label: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() linkUrl: string;\n /**\n * The sublabel of the tree list item if there is no customLabel.\n * @type {string}\n */\n @Input() subLabel: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() url: string;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input() subLinks: UxLinkLegacy[] = [];\n /**\n * Option that enables a corresponding class if it is set to true.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isActive = false;\n /**\n * Option to set the expanded state of the list item.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isExpanded = false;\n /**\n * Option to set the expanded state of the list item when it is always expanded.\n * @default false\n */\n @Input({ transform: booleanAttribute }) isAlwaysExpanded = false;\n /**\n * Option to set the visible state of the list item and apply the corresponding hidden class if it is set to false.\n * @default true\n */\n @Input({ transform: booleanAttribute }) isVisible = true;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isDisplaySubLinksOnHover = false;\n /**\n * @deprecated This property is not used anymore and will be removed in the next major version.\n */\n @Input({ transform: booleanAttribute }) isNavigateOnlyOnLabelClick = false;\n /**\n * Event emitted upon toggling the expanded state.\n */\n @Output() toggled = new EventEmitter<EuiTreeListItemComponent>();\n\n isHovered = false;\n treeListComponent: EuiTreeListComponent;\n\n // tree states\n hasSub = false;\n\n // custom content\n hasCustomContent = false;\n\n @ViewChild('focusable') focusable: ElementRef<HTMLDivElement>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemLabelTagDirective))\n customLabel: QueryList<EuiTreeListItemLabelTagDirective>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemDetailsContentTagDirective))\n customDetailContent: QueryList<EuiTreeListItemDetailsContentTagDirective>;\n\n @ContentChild(forwardRef(() => EuiTreeListItemSubContainerContentTagDirective))\n customSubContainerContent: QueryList<EuiTreeListItemSubContainerContentTagDirective>;\n\n @ContentChildren(forwardRef(() => EuiTreeListComponent), { descendants: true })\n subTreeList: QueryList<EuiTreeListComponent>;\n\n @ContentChildren(forwardRef(() => EuiTreeListItemContentComponent), { descendants: false })\n customContent: QueryList<EuiTreeListItemContentComponent>;\n\n constructor(\n @Host() @Optional() @Inject(forwardRef(() => EuiTreeListComponent)) treeListComponent,\n protected elementRef: ElementRef,\n public baseStatesDirective: BaseStatesDirective,\n ) {\n this.treeListComponent = treeListComponent as EuiTreeListComponent;\n }\n\n ngAfterContentInit(): void {\n if (!this.ariaLabel) {\n this.ariaLabel = this.label ? this.label : 'Custom content';\n }\n\n // make sure that the tree item can be aria-owned by a parent tree for WAI-ARIA attributes:\n if (!this.id) {\n this.id = uniqueId();\n }\n\n // setting tree states\n if (this.subTreeList.length !== 0) {\n this.hasSub = true;\n }\n\n // checking if customContent set\n if (this.customContent.length !== 0) {\n this.hasCustomContent = true;\n }\n\n // make sure that any child tree-list is non-focusable and that it has the role of a WAI-ARIA group:\n if (this.subTreeList) {\n this.subTreeList.forEach((subtree: EuiTreeListComponent) => {\n subtree.disableFocus();\n subtree.ariaRoleTree = 'group';\n });\n }\n }\n /**\n * Method fired when the expander button is clicked.\n * @param {Event} event - The click event.\n */\n toggle(event: Event): void {\n event.preventDefault();\n event.stopPropagation();\n this.isExpanded = !this.isExpanded;\n this.toggled.next(this);\n }\n /**\n * Method fired when a key is pressed down.\n * @param {KeyboardEvent} event - The keyboard event.\n */\n onKeyDown(event: KeyboardEvent): void {\n switch (event.keyCode) {\n case 13: // ENTER\n case 32: // SPACE\n this.isExpanded = !this.isExpanded;\n consumeEvent(event);\n break;\n case 37: // ARROW LEFT\n this.isExpanded = false;\n consumeEvent(event);\n break;\n case 38: // ARROW UP\n if (this.treeListComponent) {\n if (this.treeListComponent.focusOnPreviousTreeItem(this)) {\n this.disableFocus();\n }\n }\n\n consumeEvent(event);\n break;\n case 39: // ARROW RIGHT\n this.isExpanded = true;\n consumeEvent(event);\n break;\n case 40: // ARROW DOWN\n if (this.focusOnNextTreeItem()) {\n this.disableFocus();\n }\n\n consumeEvent(event);\n break;\n }\n }\n /**\n * Method that sets the visible state.\n * @param {boolean} state - The visible state.\n */\n public setVisibleState(state: boolean): void {\n this.isVisible = state;\n\n if (this.subTreeList && this.subTreeList.length !== 0) {\n this.subTreeList.toArray().forEach((item) => {\n item.setVisibleState(state);\n });\n }\n }\n /**\n * Method that sets the expanded state.\n * @param {boolean} state - The expanded state.\n */\n public setExpandedState(state: boolean): void {\n this.isExpanded = state;\n\n if (this.subTreeList.length !== 0) {\n this.subTreeList.toArray().forEach((item) => {\n item.setExpandedState(state);\n });\n }\n }\n /**\n * Method used to enable/disable the focus state.\n */\n public focus(): void {\n if (this.focusable) {\n this.enableFocus();\n this.focusable.nativeElement.focus();\n }\n if (this.treeListComponent) {\n this.treeListComponent.disableFocus();\n }\n }\n /**\n * Method used to focus on the last expanded tree item.\n */\n public focusOnLastExpandedTreeItem(): void {\n const lastExpanded = this.elementRef.nativeElement.querySelectorAll('.eui-tree-list-item-header__content');\n if (lastExpanded && lastExpanded.length > 0) {\n const element = lastExpanded[lastExpanded.length - 1];\n element.setAttribute('tabindex', '0');\n element.focus();\n } else {\n this.focus();\n }\n }\n /**\n * Method used to focus on the next tree item.\n * @returns {boolean} - Returns true if the focus was set, false otherwise.\n * @protected\n */\n protected focusOnNextTreeItem(): boolean {\n if (this.isExpanded && this.subTreeList && this.subTreeList.length > 0) {\n this.subTreeList.first.focus();\n return true;\n } else if (this.treeListComponent) {\n return this.treeListComponent.focusOnNextTreeItem(this);\n }\n\n return false;\n }\n /**\n * Method used to disable the focus state.\n * @protected\n */\n protected disableFocus(): void {\n if (this.focusable) {\n this.focusable.nativeElement.setAttribute('tabindex', '-1');\n }\n }\n /**\n * Method used to enable the focus state.\n * @protected\n */\n protected enableFocus(): void {\n if (this.focusable) {\n this.focusable.nativeElement.setAttribute('tabindex', '0');\n }\n }\n /**\n * Method used to get the CSS classes for the tree list item.\n * @returns {string} - The CSS classes.\n * @private\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-tree-list-item'),\n this.isActive ? 'eui-tree-list-item--active' : '',\n !this.isVisible ? 'eui-tree-list-item--hidden' : '',\n ]\n .join(' ')\n .trim();\n }\n}\n\n/* eslint-disable */\n@Directive({ selector: 'eui-tree-list-item-label', })\nexport class EuiTreeListItemLabelTagDirective {}\n@Directive({ selector: 'eui-tree-list-item-details', })\nexport class EuiTreeListItemDetailsContentTagDirective {}\n@Directive({ selector: 'eui-tree-list-item-sub-container', })\nexport class EuiTreeListItemSubContainerContentTagDirective {}\n/* eslint-enable */\n","<div class=\"eui-tree-list-item-header\">\n <div\n #focusable\n class=\"eui-tree-list-item-header__content\"\n (keydown)=\"onKeyDown($event)\"\n attr.aria-label=\"{{ label }} {{ subLabel }}\">\n\n @if (hasCustomContent) {\n <ng-content select=\"eui-tree-list-item-content\"></ng-content>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n } @else {\n <div class=\"eui-u-flex\">\n <eui-label>\n @if (!customLabel) {\n {{label}}\n @if (subLabel) {\n <eui-label euiSublabel>{{subLabel}}</eui-label>\n }\n } @else {\n <div class=\"eui-u-flex\">\n <ng-content select=\"eui-tree-list-item-label\"></ng-content>\n </div>\n }\n </eui-label>\n </div>\n <ng-container *ngTemplateOutlet=\"rightContent\"></ng-container>\n }\n </div>\n\n @if (customDetailContent) {\n <div class=\"eui-tree-list-item-header__details-content\">\n <ng-content select=\"eui-tree-list-item-details\"></ng-content>\n </div>\n }\n\n @if (customSubContainerContent) {\n <ng-content select=\"eui-tree-list-item-sub-container\"></ng-content>\n }\n</div>\n\n@if (isExpanded || isAlwaysExpanded) {\n <ng-content />\n}\n\n<ng-template #rightContent>\n <div class=\"eui-tree-list-item-header__content-right-content\">\n <div class=\"eui-tree-list-item-header__content-expand-toggle-wrapper\">\n @if (hasSub && !isAlwaysExpanded) {\n <eui-icon-button-expander\n (buttonClick)=\"toggle($event)\"\n [isExpanded]=\"isExpanded\"\n isDirectionForward>\n </eui-icon-button-expander>\n }\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\n\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport {\n EuiTreeListItemComponent,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemLabelTagDirective,\n} from './eui-tree-list-item.component';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\n\n/**\n * @description\n * This module provides the EuiTreeListComponent which is used to create\n * tree lists with various styles and functionalities.\n *\n * @deprecated Use {@link EUI_TREE_LIST} instead\n */\n@NgModule({\n imports: [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n ],\n exports: [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n ],\n})\nexport class EuiTreeListModule {}\n","import { EuiTreeListItemComponent, EuiTreeListItemDetailsContentTagDirective, EuiTreeListItemLabelTagDirective, EuiTreeListItemSubContainerContentTagDirective } from './eui-tree-list-item.component';\nimport { EuiTreeListComponent } from './eui-tree-list.component';\nimport { EuiTreeListItemContentComponent } from './item-content/item-content.component';\nimport { EuiTreeListToolbarComponent } from './toolbar/toolbar.component';\n\nexport * from './eui-tree-list.component';\nexport * from './eui-tree-list-item.component';\nexport * from './eui-tree-list.module';\n\nexport * from './item-content/item-content.component';\nexport * from './toolbar/toolbar.component';\n\nexport const EUI_TREE_LIST = [\n EuiTreeListComponent,\n EuiTreeListItemComponent,\n EuiTreeListItemLabelTagDirective,\n EuiTreeListItemDetailsContentTagDirective,\n EuiTreeListItemSubContainerContentTagDirective,\n EuiTreeListItemContentComponent,\n EuiTreeListToolbarComponent,\n] as const;","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i2","i3"],"mappings":"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"}