@eui/components 19.1.2-snapshot-1741681025211 → 19.1.2-snapshot-1741955106555

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 (105) hide show
  1. package/docs/components/EuiAutocompleteComponent.html +377 -0
  2. package/docs/components/EuiAutocompleteOptionComponent.html +50 -0
  3. package/docs/components/EuiAutocompleteOptionGroupComponent.html +38 -0
  4. package/docs/components/EuiBlockDocumentComponent.html +64 -0
  5. package/docs/components/EuiDropdownComponent.html +25 -1
  6. package/docs/components/EuiProgressBarComponent.html +115 -109
  7. package/docs/components/EuiTableV2Component.html +228 -63
  8. package/docs/components/EuiTableV2FilterComponent.html +39 -0
  9. package/docs/components/EuiTableV2SelectableHeaderComponent.html +33 -0
  10. package/docs/components/EuiTableV2SelectableRowComponent.html +45 -0
  11. package/docs/components/EuiTableV2SortableColComponent.html +47 -0
  12. package/docs/dependencies.html +2 -2
  13. package/docs/directives/EuiDropdownContentDirective.html +69 -0
  14. package/docs/directives/EuiTableV2ExpandableRowDirective.html +7 -0
  15. package/docs/directives/EuiTableV2StickyColDirective.html +7 -0
  16. package/docs/injectables/EuiTableV2SelectableRowService.html +106 -0
  17. package/docs/injectables/EuiTableV2SortService.html +47 -0
  18. package/docs/js/menu-wc.js +33 -16
  19. package/docs/js/menu-wc_es5.js +1 -1
  20. package/docs/js/search/search_index.js +2 -2
  21. package/docs/modules/EuiAutocompleteModule.html +11 -0
  22. package/docs/modules/EuiBlockDocumentModule.html +22 -4
  23. package/docs/modules/EuiProgressBarModule.html +2 -14
  24. package/docs/modules/EuiTableV2Module.html +11 -0
  25. package/docs/pipes/EuiTableV2HighlightPipe.html +26 -0
  26. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts +29 -0
  27. package/eui-autocomplete/eui-autocomplete-option/eui-autocomplete-option.component.d.ts.map +1 -1
  28. package/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.d.ts +17 -0
  29. package/eui-autocomplete/eui-autocomplete-option-group/eui-autocomplete-option-group.component.d.ts.map +1 -1
  30. package/eui-autocomplete/eui-autocomplete.component.d.ts +311 -1
  31. package/eui-autocomplete/eui-autocomplete.component.d.ts.map +1 -1
  32. package/eui-autocomplete/eui-autocomplete.module.d.ts +12 -0
  33. package/eui-autocomplete/eui-autocomplete.module.d.ts.map +1 -1
  34. package/eui-autocomplete/validators/force-selection-from-data.validator.d.ts +1 -1
  35. package/eui-block-document/eui-block-document.component.d.ts +41 -1
  36. package/eui-block-document/eui-block-document.component.d.ts.map +1 -1
  37. package/eui-block-document/eui-block-document.module.d.ts +12 -2
  38. package/eui-block-document/eui-block-document.module.d.ts.map +1 -1
  39. package/eui-date-range-selector/eui-date-range-selector.component.d.ts +10 -1
  40. package/eui-date-range-selector/eui-date-range-selector.component.d.ts.map +1 -1
  41. package/eui-datepicker/eui-datepicker.component.d.ts +10 -1
  42. package/eui-datepicker/eui-datepicker.component.d.ts.map +1 -1
  43. package/eui-dropdown/directives/eui-dropdown-content.directive.d.ts +1 -0
  44. package/eui-dropdown/directives/eui-dropdown-content.directive.d.ts.map +1 -1
  45. package/eui-dropdown/eui-dropdown.component.d.ts +2 -1
  46. package/eui-dropdown/eui-dropdown.component.d.ts.map +1 -1
  47. package/eui-progress-bar/eui-progress-bar.component.d.ts +16 -9
  48. package/eui-progress-bar/eui-progress-bar.component.d.ts.map +1 -1
  49. package/eui-progress-bar/eui-progress-bar.module.d.ts +5 -17
  50. package/eui-progress-bar/eui-progress-bar.module.d.ts.map +1 -1
  51. package/eui-table-v2/directives/eui-table-v2-expandable-row.directive.d.ts +4 -0
  52. package/eui-table-v2/directives/eui-table-v2-expandable-row.directive.d.ts.map +1 -1
  53. package/eui-table-v2/directives/eui-table-v2-sticky-col.directive.d.ts +4 -0
  54. package/eui-table-v2/directives/eui-table-v2-sticky-col.directive.d.ts.map +1 -1
  55. package/eui-table-v2/eui-table-v2.component.d.ts +273 -1
  56. package/eui-table-v2/eui-table-v2.component.d.ts.map +1 -1
  57. package/eui-table-v2/eui-table-v2.module.d.ts +12 -0
  58. package/eui-table-v2/eui-table-v2.module.d.ts.map +1 -1
  59. package/eui-table-v2/filter/eui-table-v2-filter.component.d.ts +21 -0
  60. package/eui-table-v2/filter/eui-table-v2-filter.component.d.ts.map +1 -1
  61. package/eui-table-v2/pipes/eui-table-v2-highlight.pipe.d.ts +19 -0
  62. package/eui-table-v2/pipes/eui-table-v2-highlight.pipe.d.ts.map +1 -1
  63. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts +19 -0
  64. package/eui-table-v2/selectable-header/eui-table-v2-selectable-header.component.d.ts.map +1 -1
  65. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts +28 -0
  66. package/eui-table-v2/selectable-row/eui-table-v2-selectable-row.component.d.ts.map +1 -1
  67. package/eui-table-v2/services/eui-table-v2-selectable-row.service.d.ts +71 -0
  68. package/eui-table-v2/services/eui-table-v2-selectable-row.service.d.ts.map +1 -1
  69. package/eui-table-v2/services/eui-table-v2-sort.service.d.ts +22 -0
  70. package/eui-table-v2/services/eui-table-v2-sort.service.d.ts.map +1 -1
  71. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts +32 -0
  72. package/eui-table-v2/sortable-col/eui-table-v2-sortable-col.component.d.ts.map +1 -1
  73. package/fesm2022/eui-components-eui-autocomplete.mjs +354 -4
  74. package/fesm2022/eui-components-eui-autocomplete.mjs.map +1 -1
  75. package/fesm2022/eui-components-eui-block-document.mjs +56 -7
  76. package/fesm2022/eui-components-eui-block-document.mjs.map +1 -1
  77. package/fesm2022/eui-components-eui-card.mjs +1 -1
  78. package/fesm2022/eui-components-eui-card.mjs.map +1 -1
  79. package/fesm2022/eui-components-eui-date-range-selector.mjs +7 -3
  80. package/fesm2022/eui-components-eui-date-range-selector.mjs.map +1 -1
  81. package/fesm2022/eui-components-eui-datepicker.mjs +7 -3
  82. package/fesm2022/eui-components-eui-datepicker.mjs.map +1 -1
  83. package/fesm2022/eui-components-eui-dropdown.mjs +12 -5
  84. package/fesm2022/eui-components-eui-dropdown.mjs.map +1 -1
  85. package/fesm2022/eui-components-eui-input-group.mjs +2 -2
  86. package/fesm2022/eui-components-eui-input-group.mjs.map +1 -1
  87. package/fesm2022/eui-components-eui-language-selector.mjs +1 -1
  88. package/fesm2022/eui-components-eui-language-selector.mjs.map +1 -1
  89. package/fesm2022/eui-components-eui-navbar.mjs +1 -1
  90. package/fesm2022/eui-components-eui-navbar.mjs.map +1 -1
  91. package/fesm2022/eui-components-eui-popover.mjs +2 -2
  92. package/fesm2022/eui-components-eui-popover.mjs.map +1 -1
  93. package/fesm2022/eui-components-eui-progress-bar.mjs +37 -31
  94. package/fesm2022/eui-components-eui-progress-bar.mjs.map +1 -1
  95. package/fesm2022/eui-components-eui-table-v2.mjs +482 -5
  96. package/fesm2022/eui-components-eui-table-v2.mjs.map +1 -1
  97. package/fesm2022/eui-components-eui-table.mjs +1 -1
  98. package/fesm2022/eui-components-eui-table.mjs.map +1 -1
  99. package/fesm2022/eui-components-eui-tree.mjs +2 -2
  100. package/fesm2022/eui-components-eui-tree.mjs.map +1 -1
  101. package/fesm2022/eui-components-eui-user-profile.mjs +1 -1
  102. package/fesm2022/eui-components-eui-user-profile.mjs.map +1 -1
  103. package/fesm2022/eui-components-layout.mjs +1 -1
  104. package/fesm2022/eui-components-layout.mjs.map +1 -1
  105. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-navbar.mjs","sources":["../../eui-navbar/eui-navbar-item/eui-navbar-item.component.ts","../../eui-navbar/eui-navbar.component.ts","../../eui-navbar/eui-navbar.component.html","../../eui-navbar/eui-navbar.module.ts","../../eui-navbar/eui-components-eui-navbar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n booleanAttribute,\n forwardRef,\n} from '@angular/core';\nimport { EuiNavbarComponent } from '../eui-navbar.component';\n\n@Component({\n selector: 'eui-navbar-item',\n template: '{{ label }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EuiNavbarItemComponent {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-navbar-item',\n this.isActive ? 'eui-navbar-item--active' : '',\n ].join(' ').trim();\n }\n\n @HostBinding('attr.tabindex') tabindex = 0;\n\n @Input() id: string;\n @Input() label: string;\n @Input({ transform: booleanAttribute }) isActive = false;\n\n navBarComponentParent: EuiNavbarComponent;\n\n constructor(@Host() @Optional() @Inject(forwardRef(() => EuiNavbarComponent)) navBarComponent) {\n this.navBarComponentParent = navBarComponent;\n }\n\n @HostListener('click')\n protected onClick(): void {\n this._click();\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n event.stopPropagation();\n this._click();\n break;\n }\n }\n\n private _click(): void {\n this.navBarComponentParent.itemSelected(this.id);\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n HostBinding,\n ViewEncapsulation,\n Output,\n EventEmitter,\n ContentChildren,\n forwardRef,\n QueryList,\n ElementRef,\n AfterViewInit,\n AfterContentInit,\n} from '@angular/core';\nimport { EuiNavbarItemComponent } from './eui-navbar-item/eui-navbar-item.component';\nimport { EuiAppShellService } from '@eui/core';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { AsyncPipe, NgFor, NgForOf } from '@angular/common';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n@Component({\n selector: 'eui-navbar',\n templateUrl: './eui-navbar.component.html',\n styleUrl: './eui-navbar.scss',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n EuiDropdownModule,\n EuiButtonModule,\n EuiIconModule,\n AsyncPipe,\n NgForOf,\n NgFor,\n ],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiPrimary',\n 'euiSecondary',\n ],\n },\n ],\n})\nexport class EuiNavbarComponent implements AfterContentInit, AfterViewInit {\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-navbar'),\n ]\n .join(' ')\n .trim();\n }\n\n @Output() itemClick: EventEmitter<string> = new EventEmitter();\n\n @ContentChildren(forwardRef(() => EuiNavbarItemComponent)) items: QueryList<EuiNavbarItemComponent>;\n\n public baseItemSelected: EuiNavbarItemComponent;\n public isDropdownView = false;\n\n constructor(\n public asService: EuiAppShellService,\n private elementRef: ElementRef,\n public baseStatesDirective: BaseStatesDirective,\n ) {}\n\n ngAfterContentInit(): void {\n this.baseItemSelected = this.items.filter((i) => i.isActive)[0];\n }\n\n ngAfterViewInit(): void {\n const parentWidth = this.elementRef.nativeElement.parentWidth;\n const width = this.elementRef.nativeElement.clientWidth;\n\n if (width > parentWidth) {\n setTimeout(() => {\n this.isDropdownView = true;\n }, 1);\n }\n }\n\n public itemSelected(id: string): void {\n this.items.forEach((item) => {\n if (item.id === id) {\n item.isActive = true;\n } else {\n item.isActive = false;\n }\n });\n this.itemClick.emit(id);\n }\n}\n","@if ( (asService.breakpoints$ | async).isLtLargeTablet || isDropdownView ) {\n <eui-dropdown isLabelUpdatedFromSelectedItem>\n <button euiButton euiSecondary euiSizeS [attr.aria-label]=\"'Button trigger'\">\n <span class=\"eui-label\">{{ baseItemSelected.label }}</span>\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <button *ngFor=\"let item of items\" euiDropdownItem (click)=\"itemSelected(item.id)\" ariaLabel=\"{{ item.label }}\">\n {{ item.label }}\n </button>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-content></ng-content>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiNavbarComponent } from './eui-navbar.component';\nimport { EuiNavbarItemComponent } from './eui-navbar-item/eui-navbar-item.component';\n\n@NgModule({\n imports: [CommonModule, EuiNavbarComponent, EuiNavbarItemComponent],\n exports: [EuiNavbarComponent, EuiNavbarItemComponent],\n})\nexport class EuiNavbarModule {}\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-navbar.mjs","sources":["../../eui-navbar/eui-navbar-item/eui-navbar-item.component.ts","../../eui-navbar/eui-navbar.component.ts","../../eui-navbar/eui-navbar.component.html","../../eui-navbar/eui-navbar.module.ts","../../eui-navbar/eui-components-eui-navbar.ts"],"sourcesContent":["import {\n ChangeDetectionStrategy,\n Component,\n Host,\n HostBinding,\n HostListener,\n Inject,\n Input,\n Optional,\n booleanAttribute,\n forwardRef,\n} from '@angular/core';\nimport { EuiNavbarComponent } from '../eui-navbar.component';\n\n@Component({\n selector: 'eui-navbar-item',\n template: '{{ label }}',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n})\nexport class EuiNavbarItemComponent {\n @HostBinding('class')\n get cssClasses(): string {\n return [\n 'eui-navbar-item',\n this.isActive ? 'eui-navbar-item--active' : '',\n ].join(' ').trim();\n }\n\n @HostBinding('attr.tabindex') tabindex = 0;\n\n @Input() id: string;\n @Input() label: string;\n @Input({ transform: booleanAttribute }) isActive = false;\n\n navBarComponentParent: EuiNavbarComponent;\n\n constructor(@Host() @Optional() @Inject(forwardRef(() => EuiNavbarComponent)) navBarComponent) {\n this.navBarComponentParent = navBarComponent;\n }\n\n @HostListener('click')\n protected onClick(): void {\n this._click();\n }\n\n @HostListener('keydown', ['$event'])\n protected onKeydown(event: KeyboardEvent): void {\n switch (event.code) {\n case 'Enter':\n case 'Space':\n event.preventDefault();\n event.stopPropagation();\n this._click();\n break;\n }\n }\n\n private _click(): void {\n this.navBarComponentParent.itemSelected(this.id);\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n HostBinding,\n ViewEncapsulation,\n Output,\n EventEmitter,\n ContentChildren,\n forwardRef,\n QueryList,\n ElementRef,\n AfterViewInit,\n AfterContentInit,\n} from '@angular/core';\nimport { EuiNavbarItemComponent } from './eui-navbar-item/eui-navbar-item.component';\nimport { EuiAppShellService } from '@eui/core';\nimport { EuiDropdownModule } from '@eui/components/eui-dropdown';\nimport { EuiButtonModule } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { AsyncPipe, NgFor, NgForOf } from '@angular/common';\nimport { BaseStatesDirective } from '@eui/components/shared';\n\n@Component({\n selector: 'eui-navbar',\n templateUrl: './eui-navbar.component.html',\n styleUrl: './eui-navbar.scss',\n changeDetection: ChangeDetectionStrategy.Default,\n encapsulation: ViewEncapsulation.None,\n standalone: true,\n imports: [\n EuiDropdownModule,\n EuiButtonModule,\n EuiIconModule,\n AsyncPipe,\n NgForOf,\n NgFor,\n ],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiPrimary',\n 'euiSecondary',\n ],\n },\n ],\n})\nexport class EuiNavbarComponent implements AfterContentInit, AfterViewInit {\n @HostBinding('class')\n public get cssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-navbar'),\n ]\n .join(' ')\n .trim();\n }\n\n @Output() itemClick: EventEmitter<string> = new EventEmitter();\n\n @ContentChildren(forwardRef(() => EuiNavbarItemComponent)) items: QueryList<EuiNavbarItemComponent>;\n\n public baseItemSelected: EuiNavbarItemComponent;\n public isDropdownView = false;\n\n constructor(\n public asService: EuiAppShellService,\n private elementRef: ElementRef,\n public baseStatesDirective: BaseStatesDirective,\n ) {}\n\n ngAfterContentInit(): void {\n this.baseItemSelected = this.items.filter((i) => i.isActive)[0];\n }\n\n ngAfterViewInit(): void {\n const parentWidth = this.elementRef.nativeElement.parentWidth;\n const width = this.elementRef.nativeElement.clientWidth;\n\n if (width > parentWidth) {\n setTimeout(() => {\n this.isDropdownView = true;\n }, 1);\n }\n }\n\n public itemSelected(id: string): void {\n this.items.forEach((item) => {\n if (item.id === id) {\n item.isActive = true;\n } else {\n item.isActive = false;\n }\n });\n this.itemClick.emit(id);\n }\n}\n","@if ( (asService.breakpoints$ | async).isLtLargeTablet || isDropdownView ) {\n <eui-dropdown isLabelUpdatedFromSelectedItem>\n <button euiButton euiSecondary euiSizeS [attr.aria-label]=\"'Button trigger'\">\n <span class=\"eui-label\">{{ baseItemSelected.label }}</span>\n <eui-icon-svg icon=\"chevron-down:sharp\" size=\"s\"></eui-icon-svg>\n </button>\n <eui-dropdown-content>\n <button *ngFor=\"let item of items\" euiDropdownItem (click)=\"itemSelected(item.id)\" ariaLabel=\"{{ item.label }}\">\n {{ item.label }}\n </button>\n </eui-dropdown-content>\n </eui-dropdown>\n} @else {\n <ng-content></ng-content>\n}\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { EuiNavbarComponent } from './eui-navbar.component';\nimport { EuiNavbarItemComponent } from './eui-navbar-item/eui-navbar-item.component';\n\n@NgModule({\n imports: [CommonModule, EuiNavbarComponent, EuiNavbarItemComponent],\n exports: [EuiNavbarComponent, EuiNavbarItemComponent],\n})\nexport class EuiNavbarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -108,7 +108,7 @@ class EuiPopoverArrowPositionDirective {
108
108
  return `top: ${originRect.top + originRect.height / 2}px`;
109
109
  }
110
110
  else if (verticalDiff < 0) {
111
- return `top: unset; bottom: ${this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height}px`;
111
+ return `bottom: ${this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height}px`;
112
112
  }
113
113
  }
114
114
  if (position === 'top' || position === 'bottom') {
@@ -117,7 +117,7 @@ class EuiPopoverArrowPositionDirective {
117
117
  return `left: ${originRect.left + originRect.width / 2}px`;
118
118
  }
119
119
  else if (horizontalDiff < 0) {
120
- return `left: unset; right: ${this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width}px`;
120
+ return `right: ${this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width}px`;
121
121
  }
122
122
  }
123
123
  return '';
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-popover.mjs","sources":["../../eui-popover/models/eui-popover-position.model.ts","../../eui-popover/directives/eui-popover-arrow-position.directive.ts","../../eui-popover/eui-popover.component.ts","../../eui-popover/eui-popover.component.html","../../eui-popover/eui-popover.module.ts","../../eui-popover/eui-components-eui-popover.ts"],"sourcesContent":["import { ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\n\n/**\n * Represents the four possible positions for a popover element.\n */\nexport type EuiPopoverPosition = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * Position configuration for a popover appearing above its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const TOP = new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--top'],\n);\n\n/**\n * Position configuration for a popover appearing below its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const BOTTOM = new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--bottom'],\n);\n\n/**\n * Position configuration for a popover appearing to the left of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const LEFT = new ConnectionPositionPair(\n { originX: 'start', originY: 'center' },\n { overlayX: 'end', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--left'],\n);\n\n/**\n * Position configuration for a popover appearing to the right of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const RIGHT = new ConnectionPositionPair(\n { originX: 'end', originY: 'center' },\n { overlayX: 'start', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--right'],\n);\n\n/**\n * Converts a ConnectedOverlayPositionChange object to an EuiPopoverPosition string.\n * Used to determine which predefined position the overlay has settled on.\n *\n * @param connectionPair - The position change event from the CDK overlay\n * @returns The string representation of the popover position ('top', 'right', 'bottom', 'left')\n */\nexport const getPosition = ({ connectionPair }: ConnectedOverlayPositionChange): EuiPopoverPosition => {\n switch (connectionPair) {\n case TOP:\n return 'top';\n case BOTTOM:\n return 'bottom';\n case LEFT:\n return 'left';\n case RIGHT:\n return 'right';\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EuiPopoverPosition } from '../models/eui-popover-position.model';\n\n/**\n * @description\n * Directive that positions an arrow element for a popover relative to its origin element.\n *\n * This directive calculates and applies the appropriate positioning style to ensure\n * the arrow correctly points to the origin element regardless of the popover's position.\n * It adjusts arrow placement dynamically based on the position strategy ('top', 'bottom',\n * 'left', or 'right') and the dimensions and position of the origin element.\n *\n * @example\n * // Basic usage in an arrow element inside a popover:\n * <div class=\"popover-arrow\"\n * [euiPopoverArrowPosition]=\"positionAndRect$\">\n * </div>\n *\n * @example\n * // In the component class:\n * // Position and rect as an Observable\n * positionAndRect$ = new BehaviorSubject<[EuiPopoverPosition, DOMRect]>(['bottom', originRect]);\n *\n * // Update when position changes\n * updatePosition(position: EuiPopoverPosition, rect: DOMRect) {\n * this.positionAndRect$.next([position, rect]);\n * }\n */\n@Directive({\n selector: '[euiPopoverArrowPosition]',\n standalone: false,\n})\nexport class EuiPopoverArrowPositionDirective implements OnInit, OnDestroy {\n /**\n * Observable that emits a tuple containing the popover position strategy\n * and the DOMRect of the origin element.\n *\n * The directive uses this information to calculate the appropriate\n * position for the arrow element.\n */\n @Input('euiPopoverArrowPosition')\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n private destroy$: Subject<void> = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n ngOnInit(): void {\n this.position$.pipe(takeUntil(this.destroy$)).subscribe(([position, originRect]) => {\n this.renderer.setProperty(this.elementRef.nativeElement, 'style', this.getStyle(position, originRect));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getStyle(position: EuiPopoverPosition, originRect: DOMRect): string {\n const arrowRect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (position === 'left' || position === 'right') {\n const verticalDiff: number =\n Math.floor(arrowRect.top + arrowRect.height / 2) - Math.floor(originRect.top + originRect.height / 2);\n\n if (verticalDiff > 0) {\n return `top: ${originRect.top + originRect.height / 2}px`;\n } else if (verticalDiff < 0) {\n return `top: unset; bottom: ${\n this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height\n }px`;\n }\n }\n if (position === 'top' || position === 'bottom') {\n const horizontalDiff: number =\n Math.floor(arrowRect.left + arrowRect.width / 2) - Math.floor(originRect.left + originRect.width / 2);\n\n if (horizontalDiff > 0) {\n return `left: ${originRect.left + originRect.width / 2}px`;\n } else if (horizontalDiff < 0) {\n return `left: unset; right: ${\n this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width\n }px`;\n }\n }\n return '';\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Overlay,\n OverlayRef,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n ScrollDispatcher,\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiPopoverPosition, BOTTOM, LEFT, RIGHT, TOP, getPosition } from './models/eui-popover-position.model';\n\n/**\n * @description\n * A flexible popover component that displays content in an overlay positioned relative to an origin element.\n *\n * The popover can be positioned at four different positions (top, right, bottom, left) relative to the\n * origin element, with automatic fallback positions if the preferred position doesn't fit in the viewport.\n * It supports various visual styles, dismissal behaviors, and size variants.\n *\n * @example\n * // Basic usage with a trigger element:\n * <button #triggerButton (click)=\"popover.openPopover(triggerButton)\">Open Popover</button>\n * <eui-popover #popover>\n * <div>Popover content</div>\n * </eui-popover>\n *\n * @example\n * // With custom configuration:\n * <eui-popover\n * position=\"right\"\n * type=\"colored-header\"\n * [hasBackDrop]=\"true\"\n * [hasCloseButton]=\"false\"\n * (popoverOpen)=\"onPopoverOpen()\"\n * title=\"Popover Title\">\n * <div>Popover content</div>\n * </eui-popover>\n */\n@Component({\n selector: 'eui-popover',\n templateUrl: './eui-popover.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiSize2XL',\n 'euiSizeAuto',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiPopoverComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * Optional title text to display in the popover header.\n * When provided, adds a title element at the top of the popover content.\n */\n @Input() title: string;\n\n /**\n * Determines the preferred placement of the popover relative to its origin element.\n * The component will attempt to use this position first, falling back to alternatives\n * if there's not enough space in the viewport.\n *\n * @default 'bottom'\n */\n @Input() position: EuiPopoverPosition = 'bottom';\n\n /**\n * Visual styling variant for the popover.\n * - 'default': Standard popover with subtle border and drop shadow\n * - 'flat': Popover without shadows, using only border for definition\n * - 'colored-header': Popover with an accent-colored header area\n * - 'colored-solid': Popover with accent color applied to the entire component\n *\n * @default 'default'\n */\n @Input() type: 'default' | 'flat' | 'colored-header' | 'colored-solid' = 'default';\n\n /**\n * Custom width for the popover.\n * Can be specified in any valid CSS unit (px, %, em, etc).\n * When null, the popover width is determined by its content.\n *\n * @default null\n */\n @Input() width: string = null;\n\n /**\n * Whether to show a semi-transparent backdrop behind the popover.\n * When true, creates a visual overlay that dims the rest of the UI.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) hasBackDrop = false;\n\n /**\n * Whether to show a close button in the top-right corner of the popover.\n * When clicked, the close button will dismiss the popover.\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) hasCloseButton = true;\n\n /**\n * Whether the popover can be dismissed by clicking outside its boundaries.\n * When false, the popover will remain open until explicitly closed via code\n * or by clicking the close button (if available).\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) isDismissable = true;\n\n /**\n * Event emitted when a click occurs outside the popover boundaries.\n * Only emitted when isDismissable is true.\n */\n @Output() outsideClick = new EventEmitter();\n\n /**\n * Event emitted when the popover is opened.\n * Fires after the popover content has been attached to the DOM and positioned.\n */\n @Output() popoverOpen = new EventEmitter();\n\n /**\n * Event emitted when the popover is closed.\n * Fires after the popover content has been removed from the DOM.\n */\n @Output() popoverClose = new EventEmitter();\n\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private origin: ElementRef;\n private preferredPositons: ConnectionPositionPair[] = [BOTTOM, TOP, LEFT, RIGHT];\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private positionStrategyUpdate$: Subject<void> = new Subject();\n\n constructor(private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private baseStatesDirective: BaseStatesDirective){\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (this.position === 'top') {\n this.preferredPositons = [TOP, BOTTOM, LEFT, RIGHT];\n } else if (this.position === 'right') {\n this.preferredPositons = [RIGHT, LEFT, TOP, BOTTOM];\n } else if (this.position === 'left') {\n this.preferredPositons = [LEFT, RIGHT, TOP, BOTTOM];\n } else {\n this.preferredPositons = [BOTTOM, TOP, LEFT, RIGHT];\n }\n }\n\n ngOnInit(): void {\n this.setPositionStream();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n /**\n * Whether the eui-popover is open.\n *\n * @usageNotes\n * ```html\n * <eui-popover #popover>\n * @if (popover.isOpen) {\n * <my-component></my-component>\n * }\n * </eui-popover>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Updates the position strategy when content changes.\n * Recalculates and updates the overlay position to handle content size changes.\n */\n public onContentChange(): void {\n this.positionStrategy = this.getPositionStrategy();\n this.positionStrategyUpdate$.next();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n\n /**\n * Opens the popover relative to the provided origin element.\n * Sets up scroll monitoring, position strategy, and attaches the popover content to the overlay.\n * Emits the popoverOpen event when complete.\n *\n * @param origin - Reference to the element that triggers the popover\n */\n public openPopover(origin: ElementRef): void {\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(origin as unknown as HTMLElement, scrollableParent)) {\n this.closePopover();\n }\n });\n\n this.origin = origin;\n const positionStrategy = this.getPositionStrategy();\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n width: this.width,\n panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),\n });\n this.overlayRef.attach(this.templatePortal);\n\n document.querySelectorAll('.cdk-overlay-container')?.forEach(el => {\n if (!el.classList.contains('eui-19')) {\n el.classList.add('eui-19');\n }\n });\n\n this.positionStrategy = positionStrategy;\n this.positionStrategyUpdate$.next();\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isDismissable) {\n this.outsideClick.emit();\n this.closePopover();\n }\n });\n\n this.isOpen$.next(true);\n this.popoverOpen.emit();\n }\n }\n\n /**\n * Closes the popover.\n * Cleans up subscriptions, disposes the overlay, and emits the popoverClose event.\n */\n public closePopover(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.isOpen$.next(false);\n this.popoverClose.emit();\n }\n\n /**\n * Handles keyboard events to allow closing the popover with the Escape key.\n * Can be used as an alternative to the close button or when hasCloseButton is false.\n *\n * @param event - The keyboard event\n */\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closePopover();\n }\n }\n\n /**\n * Checks whether the origin element is currently visible within the scrollable parent's viewport.\n * Used to determine if the popover should remain open during scroll events.\n *\n * @param origin - The HTML element that triggers the popover\n * @param scrollableParent - The scrollable container element\n * @returns True if the origin element is visible in the viewport, otherwise false\n */\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n /**\n * Creates and returns a position strategy for the overlay.\n * Configures the overlay to be positioned relative to the origin element\n * with fallback positions if the preferred one doesn't fit.\n *\n * @returns A flexible connected position strategy configured for the popover\n */\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions(this.preferredPositons)\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n /**\n * Sets up the position stream for the arrow positioning directive.\n * Creates an observable that emits the current popover position and the origin element's bounding rectangle\n * whenever the popover's position changes.\n */\n private setPositionStream(): void {\n this.position$ = this.positionStrategyUpdate$.pipe(\n switchMap(() => this.positionStrategy.positionChanges),\n map(getPosition),\n distinctUntilChanged(),\n map((position) => {\n const rect = this.origin.nativeElement ?\n this.origin.nativeElement.getBoundingClientRect() :\n (this.origin as unknown as HTMLElement).getBoundingClientRect();\n return [position, rect];\n }),\n );\n }\n}\n","<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiButtonComponent } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiPopoverComponent } from './eui-popover.component';\nimport { EuiPopoverArrowPositionDirective } from './directives/eui-popover-arrow-position.directive';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n/**\n * Module that provides the EUI Popover component and related directives.\n *\n * This module exports the EuiPopoverComponent which allows for creating popover overlays\n * positioned relative to trigger elements. Popovers can be configured with various\n * positioning options, visual styles, and dismissal behaviors.\n *\n * @example\n * import { EuiPopoverModule } from '@eui/components/eui-popover';\n *\n * @NgModule({\n * imports: [\n * EuiPopoverModule\n * ]\n * })\n * export class MyModule {}\n */\n@NgModule({\n imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],\n declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],\n exports: [EuiPopoverComponent],\n})\nexport class EuiPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i8.EuiPopoverArrowPositionDirective"],"mappings":"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"}
1
+ {"version":3,"file":"eui-components-eui-popover.mjs","sources":["../../eui-popover/models/eui-popover-position.model.ts","../../eui-popover/directives/eui-popover-arrow-position.directive.ts","../../eui-popover/eui-popover.component.ts","../../eui-popover/eui-popover.component.html","../../eui-popover/eui-popover.module.ts","../../eui-popover/eui-components-eui-popover.ts"],"sourcesContent":["import { ConnectedOverlayPositionChange, ConnectionPositionPair } from '@angular/cdk/overlay';\n\n/**\n * Represents the four possible positions for a popover element.\n */\nexport type EuiPopoverPosition = 'top' | 'right' | 'bottom' | 'left';\n\n/**\n * Position configuration for a popover appearing above its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const TOP = new ConnectionPositionPair(\n { originX: 'center', originY: 'top' },\n { overlayX: 'center', overlayY: 'bottom' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--top'],\n);\n\n/**\n * Position configuration for a popover appearing below its origin element.\n * Centers the popover horizontally relative to the origin.\n */\nexport const BOTTOM = new ConnectionPositionPair(\n { originX: 'center', originY: 'bottom' },\n { overlayX: 'center', overlayY: 'top' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--bottom'],\n);\n\n/**\n * Position configuration for a popover appearing to the left of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const LEFT = new ConnectionPositionPair(\n { originX: 'start', originY: 'center' },\n { overlayX: 'end', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--left'],\n);\n\n/**\n * Position configuration for a popover appearing to the right of its origin element.\n * Centers the popover vertically relative to the origin.\n */\nexport const RIGHT = new ConnectionPositionPair(\n { originX: 'end', originY: 'center' },\n { overlayX: 'start', overlayY: 'center' },\n 0, 0,\n ['eui-popover-position', 'eui-popover-position--right'],\n);\n\n/**\n * Converts a ConnectedOverlayPositionChange object to an EuiPopoverPosition string.\n * Used to determine which predefined position the overlay has settled on.\n *\n * @param connectionPair - The position change event from the CDK overlay\n * @returns The string representation of the popover position ('top', 'right', 'bottom', 'left')\n */\nexport const getPosition = ({ connectionPair }: ConnectedOverlayPositionChange): EuiPopoverPosition => {\n switch (connectionPair) {\n case TOP:\n return 'top';\n case BOTTOM:\n return 'bottom';\n case LEFT:\n return 'left';\n case RIGHT:\n return 'right';\n }\n};\n","import { DOCUMENT } from '@angular/common';\nimport { Directive, ElementRef, Inject, Input, OnDestroy, OnInit, Renderer2 } from '@angular/core';\nimport { Observable, Subject, takeUntil } from 'rxjs';\n\nimport { EuiPopoverPosition } from '../models/eui-popover-position.model';\n\n/**\n * @description\n * Directive that positions an arrow element for a popover relative to its origin element.\n *\n * This directive calculates and applies the appropriate positioning style to ensure\n * the arrow correctly points to the origin element regardless of the popover's position.\n * It adjusts arrow placement dynamically based on the position strategy ('top', 'bottom',\n * 'left', or 'right') and the dimensions and position of the origin element.\n *\n * @example\n * // Basic usage in an arrow element inside a popover:\n * <div class=\"popover-arrow\"\n * [euiPopoverArrowPosition]=\"positionAndRect$\">\n * </div>\n *\n * @example\n * // In the component class:\n * // Position and rect as an Observable\n * positionAndRect$ = new BehaviorSubject<[EuiPopoverPosition, DOMRect]>(['bottom', originRect]);\n *\n * // Update when position changes\n * updatePosition(position: EuiPopoverPosition, rect: DOMRect) {\n * this.positionAndRect$.next([position, rect]);\n * }\n */\n@Directive({\n selector: '[euiPopoverArrowPosition]',\n standalone: false,\n})\nexport class EuiPopoverArrowPositionDirective implements OnInit, OnDestroy {\n /**\n * Observable that emits a tuple containing the popover position strategy\n * and the DOMRect of the origin element.\n *\n * The directive uses this information to calculate the appropriate\n * position for the arrow element.\n */\n @Input('euiPopoverArrowPosition')\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n private destroy$: Subject<void> = new Subject();\n\n constructor(\n private renderer: Renderer2,\n private elementRef: ElementRef,\n @Inject(DOCUMENT) private document: Document,\n ) {}\n\n ngOnInit(): void {\n this.position$.pipe(takeUntil(this.destroy$)).subscribe(([position, originRect]) => {\n this.renderer.setProperty(this.elementRef.nativeElement, 'style', this.getStyle(position, originRect));\n });\n }\n\n ngOnDestroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private getStyle(position: EuiPopoverPosition, originRect: DOMRect): string {\n const arrowRect: DOMRect = this.elementRef.nativeElement.getBoundingClientRect();\n\n if (position === 'left' || position === 'right') {\n const verticalDiff: number =\n Math.floor(arrowRect.top + arrowRect.height / 2) - Math.floor(originRect.top + originRect.height / 2);\n\n if (verticalDiff > 0) {\n return `top: ${originRect.top + originRect.height / 2}px`;\n } else if (verticalDiff < 0) {\n return `bottom: ${\n this.document.body.clientHeight - originRect.bottom + originRect.height / 2 - arrowRect.height\n }px`;\n }\n }\n if (position === 'top' || position === 'bottom') {\n const horizontalDiff: number =\n Math.floor(arrowRect.left + arrowRect.width / 2) - Math.floor(originRect.left + originRect.width / 2);\n\n if (horizontalDiff > 0) {\n return `left: ${originRect.left + originRect.width / 2}px`;\n } else if (horizontalDiff < 0) {\n return `right: ${\n this.document.body.clientWidth - originRect.right + originRect.width / 2 - arrowRect.width\n }px`;\n }\n }\n return '';\n }\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n Input,\n ViewChild,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n Output,\n EventEmitter,\n ElementRef,\n OnChanges,\n SimpleChanges,\n booleanAttribute,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n Overlay,\n OverlayRef,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategyOrigin,\n ScrollDispatcher,\n CdkScrollable,\n FlexibleConnectedPositionStrategy,\n} from '@angular/cdk/overlay';\nimport { BehaviorSubject, Observable, Subject, Subscription } from 'rxjs';\nimport { distinctUntilChanged, map, switchMap, takeUntil } from 'rxjs/operators';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\n\nimport { EuiPopoverPosition, BOTTOM, LEFT, RIGHT, TOP, getPosition } from './models/eui-popover-position.model';\n\n/**\n * @description\n * A flexible popover component that displays content in an overlay positioned relative to an origin element.\n *\n * The popover can be positioned at four different positions (top, right, bottom, left) relative to the\n * origin element, with automatic fallback positions if the preferred position doesn't fit in the viewport.\n * It supports various visual styles, dismissal behaviors, and size variants.\n *\n * @example\n * // Basic usage with a trigger element:\n * <button #triggerButton (click)=\"popover.openPopover(triggerButton)\">Open Popover</button>\n * <eui-popover #popover>\n * <div>Popover content</div>\n * </eui-popover>\n *\n * @example\n * // With custom configuration:\n * <eui-popover\n * position=\"right\"\n * type=\"colored-header\"\n * [hasBackDrop]=\"true\"\n * [hasCloseButton]=\"false\"\n * (popoverOpen)=\"onPopoverOpen()\"\n * title=\"Popover Title\">\n * <div>Popover content</div>\n * </eui-popover>\n */\n@Component({\n selector: 'eui-popover',\n templateUrl: './eui-popover.component.html',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiSize2XL',\n 'euiSizeAuto',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiPopoverComponent implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * Optional title text to display in the popover header.\n * When provided, adds a title element at the top of the popover content.\n */\n @Input() title: string;\n\n /**\n * Determines the preferred placement of the popover relative to its origin element.\n * The component will attempt to use this position first, falling back to alternatives\n * if there's not enough space in the viewport.\n *\n * @default 'bottom'\n */\n @Input() position: EuiPopoverPosition = 'bottom';\n\n /**\n * Visual styling variant for the popover.\n * - 'default': Standard popover with subtle border and drop shadow\n * - 'flat': Popover without shadows, using only border for definition\n * - 'colored-header': Popover with an accent-colored header area\n * - 'colored-solid': Popover with accent color applied to the entire component\n *\n * @default 'default'\n */\n @Input() type: 'default' | 'flat' | 'colored-header' | 'colored-solid' = 'default';\n\n /**\n * Custom width for the popover.\n * Can be specified in any valid CSS unit (px, %, em, etc).\n * When null, the popover width is determined by its content.\n *\n * @default null\n */\n @Input() width: string = null;\n\n /**\n * Whether to show a semi-transparent backdrop behind the popover.\n * When true, creates a visual overlay that dims the rest of the UI.\n *\n * @default false\n */\n @Input({ transform: booleanAttribute }) hasBackDrop = false;\n\n /**\n * Whether to show a close button in the top-right corner of the popover.\n * When clicked, the close button will dismiss the popover.\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) hasCloseButton = true;\n\n /**\n * Whether the popover can be dismissed by clicking outside its boundaries.\n * When false, the popover will remain open until explicitly closed via code\n * or by clicking the close button (if available).\n *\n * @default true\n */\n @Input({ transform: booleanAttribute }) isDismissable = true;\n\n /**\n * Event emitted when a click occurs outside the popover boundaries.\n * Only emitted when isDismissable is true.\n */\n @Output() outsideClick = new EventEmitter();\n\n /**\n * Event emitted when the popover is opened.\n * Fires after the popover content has been attached to the DOM and positioned.\n */\n @Output() popoverOpen = new EventEmitter();\n\n /**\n * Event emitted when the popover is closed.\n * Fires after the popover content has been removed from the DOM.\n */\n @Output() popoverClose = new EventEmitter();\n\n public position$: Observable<[EuiPopoverPosition, DOMRect]>;\n\n @ViewChild('templatePortalContent') templatePortalContent: TemplateRef<unknown>;\n\n private templatePortal: TemplatePortal;\n private overlayRef: OverlayRef;\n private destroy$: Subject<boolean> = new Subject<boolean>();\n private isOpen$: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false);\n private scrollDispatcherSubscription = new Subscription();\n private origin: ElementRef;\n private preferredPositons: ConnectionPositionPair[] = [BOTTOM, TOP, LEFT, RIGHT];\n private positionStrategy: FlexibleConnectedPositionStrategy;\n private positionStrategyUpdate$: Subject<void> = new Subject();\n\n constructor(private overlay: Overlay,\n private viewContainerRef: ViewContainerRef,\n private scrollDispatcher: ScrollDispatcher,\n private baseStatesDirective: BaseStatesDirective){\n }\n\n ngOnChanges(c: SimpleChanges): void {\n if (this.position === 'top') {\n this.preferredPositons = [TOP, BOTTOM, LEFT, RIGHT];\n } else if (this.position === 'right') {\n this.preferredPositons = [RIGHT, LEFT, TOP, BOTTOM];\n } else if (this.position === 'left') {\n this.preferredPositons = [LEFT, RIGHT, TOP, BOTTOM];\n } else {\n this.preferredPositons = [BOTTOM, TOP, LEFT, RIGHT];\n }\n }\n\n ngOnInit(): void {\n this.setPositionStream();\n }\n\n ngAfterViewInit(): void {\n this.templatePortal = new TemplatePortal(this.templatePortalContent, this.viewContainerRef);\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n\n /**\n * Whether the eui-popover is open.\n *\n * @usageNotes\n * ```html\n * <eui-popover #popover>\n * @if (popover.isOpen) {\n * <my-component></my-component>\n * }\n * </eui-popover>\n * ```\n * @returns A boolean with value `true` when open, otherwise `false`.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Updates the position strategy when content changes.\n * Recalculates and updates the overlay position to handle content size changes.\n */\n public onContentChange(): void {\n this.positionStrategy = this.getPositionStrategy();\n this.positionStrategyUpdate$.next();\n this.overlayRef.updatePositionStrategy(this.positionStrategy);\n }\n\n /**\n * Opens the popover relative to the provided origin element.\n * Sets up scroll monitoring, position strategy, and attaches the popover content to the overlay.\n * Emits the popoverOpen event when complete.\n *\n * @param origin - Reference to the element that triggers the popover\n */\n public openPopover(origin: ElementRef): void {\n if (!this.isOpen) {\n this.scrollDispatcherSubscription = this.scrollDispatcher.ancestorScrolled(origin).subscribe((event: CdkScrollable) => {\n const scrollableParent = event ? event.getElementRef().nativeElement : document.querySelector('body');\n if (!this.isVisible(origin as unknown as HTMLElement, scrollableParent)) {\n this.closePopover();\n }\n });\n\n this.origin = origin;\n const positionStrategy = this.getPositionStrategy();\n\n const scrollStrategy = this.overlay.scrollStrategies.reposition({ scrollThrottle: 10 });\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n width: this.width,\n panelClass: this.baseStatesDirective.getCssClasses('eui-popover').split(' '),\n });\n this.overlayRef.attach(this.templatePortal);\n\n document.querySelectorAll('.cdk-overlay-container')?.forEach(el => {\n if (!el.classList.contains('eui-19')) {\n el.classList.add('eui-19');\n }\n });\n\n this.positionStrategy = positionStrategy;\n this.positionStrategyUpdate$.next();\n\n this.overlayRef\n .outsidePointerEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (this.isDismissable) {\n this.outsideClick.emit();\n this.closePopover();\n }\n });\n\n this.isOpen$.next(true);\n this.popoverOpen.emit();\n }\n }\n\n /**\n * Closes the popover.\n * Cleans up subscriptions, disposes the overlay, and emits the popoverClose event.\n */\n public closePopover(): void {\n this.scrollDispatcherSubscription.unsubscribe();\n this.overlayRef.dispose();\n this.overlayRef = null;\n this.isOpen$.next(false);\n this.popoverClose.emit();\n }\n\n /**\n * Handles keyboard events to allow closing the popover with the Escape key.\n * Can be used as an alternative to the close button or when hasCloseButton is false.\n *\n * @param event - The keyboard event\n */\n public onKeyDown(event: KeyboardEvent): void {\n if (event.key === 'Escape') {\n this.closePopover();\n }\n }\n\n /**\n * Checks whether the origin element is currently visible within the scrollable parent's viewport.\n * Used to determine if the popover should remain open during scroll events.\n *\n * @param origin - The HTML element that triggers the popover\n * @param scrollableParent - The scrollable container element\n * @returns True if the origin element is visible in the viewport, otherwise false\n */\n private isVisible(origin: HTMLElement, scrollableParent: HTMLElement): boolean {\n const originY = origin.getBoundingClientRect().y;\n const scrollableParentY = Math.abs(scrollableParent.getBoundingClientRect().y);\n const scrollableParentHeight = scrollableParent.getBoundingClientRect().height - 50;\n\n return (\n (originY > 0 && originY < scrollableParentHeight) ||\n (originY - scrollableParentY > 0 && originY < scrollableParentY + scrollableParentHeight)\n );\n }\n\n /**\n * Creates and returns a position strategy for the overlay.\n * Configures the overlay to be positioned relative to the origin element\n * with fallback positions if the preferred one doesn't fit.\n *\n * @returns A flexible connected position strategy configured for the popover\n */\n private getPositionStrategy(): FlexibleConnectedPositionStrategy {\n return this.overlay\n .position()\n .flexibleConnectedTo(this.origin as FlexibleConnectedPositionStrategyOrigin)\n .withPositions(this.preferredPositons)\n .withFlexibleDimensions(false)\n .withLockedPosition(true);\n }\n\n /**\n * Sets up the position stream for the arrow positioning directive.\n * Creates an observable that emits the current popover position and the origin element's bounding rectangle\n * whenever the popover's position changes.\n */\n private setPositionStream(): void {\n this.position$ = this.positionStrategyUpdate$.pipe(\n switchMap(() => this.positionStrategy.positionChanges),\n map(getPosition),\n distinctUntilChanged(),\n map((position) => {\n const rect = this.origin.nativeElement ?\n this.origin.nativeElement.getBoundingClientRect() :\n (this.origin as unknown as HTMLElement).getBoundingClientRect();\n return [position, rect];\n }),\n );\n }\n}\n","<ng-template #templatePortalContent>\n <ng-container *ngTemplateOutlet=\"template\"></ng-container>\n</ng-template>\n\n<ng-template #template>\n <div class=\"eui-popover__container eui-popover__container--{{ type }}\" cdkTrapFocus cdkTrapFocusAutoCapture (keydown)=\"onKeyDown($event)\">\n <div class=\"eui-popover__arrow\" [euiPopoverArrowPosition]=\"position$\">\n <div class=\"eui-popover__arrow-inner\"></div>\n </div>\n @if (title) {\n <div class=\"eui-popover__header\">\n <div class=\"eui-popover__header-title\">{{ title }}</div>\n @if (hasCloseButton) {\n <button\n class=\"eui-popover__header-close\"\n (click)=\"closePopover()\"\n euiButton\n euiSizeS\n euiIconButton\n euiRounded\n euiBasicButton\n aria-label=\"Dialog close icon\">\n <eui-icon-svg icon=\"close:outline\"></eui-icon-svg>\n </button>\n }\n </div>\n }\n <div (cdkObserveContent)=\"onContentChange()\" class=\"eui-popover__content\">\n <ng-content></ng-content>\n </div>\n </div>\n</ng-template>\n","import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { OverlayModule } from '@angular/cdk/overlay';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { ObserversModule } from '@angular/cdk/observers';\n\nimport { EuiButtonComponent } from '@eui/components/eui-button';\nimport { EuiIconModule } from '@eui/components/eui-icon';\n\nimport { EuiPopoverComponent } from './eui-popover.component';\nimport { EuiPopoverArrowPositionDirective } from './directives/eui-popover-arrow-position.directive';\nimport { EuiIconButtonModule } from '@eui/components/eui-icon-button';\n\n/**\n * Module that provides the EUI Popover component and related directives.\n *\n * This module exports the EuiPopoverComponent which allows for creating popover overlays\n * positioned relative to trigger elements. Popovers can be configured with various\n * positioning options, visual styles, and dismissal behaviors.\n *\n * @example\n * import { EuiPopoverModule } from '@eui/components/eui-popover';\n *\n * @NgModule({\n * imports: [\n * EuiPopoverModule\n * ]\n * })\n * export class MyModule {}\n */\n@NgModule({\n imports: [CommonModule, OverlayModule, EuiButtonComponent, EuiIconModule, EuiIconButtonModule, A11yModule, ObserversModule],\n declarations: [EuiPopoverComponent, EuiPopoverArrowPositionDirective],\n exports: [EuiPopoverComponent],\n})\nexport class EuiPopoverModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["takeUntil","i8.EuiPopoverArrowPositionDirective"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { numberAttribute, input, booleanAttribute, inject, HostBinding, Input, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
2
+ import { numberAttribute, inject, booleanAttribute, Input, HostBinding, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
3
3
  import * as i1 from '@eui/components/shared';
4
4
  import { BaseStatesDirective } from '@eui/components/shared';
5
5
  import { EuiIconModule } from '@eui/components/eui-icon';
@@ -29,29 +29,34 @@ class EuiProgressBarComponent {
29
29
  /** Element attribute for e2e testing */
30
30
  this.e2eAttr = 'eui-progress-bar';
31
31
  /** Optional label displayed above the progress bar */
32
- this.label = input();
33
- /**
34
- * Current progress value (0-100)
35
- * Values greater than 100 will be capped at 100
36
- */
37
- this.progress = input(null, { transform: progressAttribute });
32
+ this.label = '';
38
33
  /**
39
34
  * When true, shows an indeterminate progress animation
40
35
  * instead of a specific progress value
41
36
  */
42
- this.isIndeterminate = input(false, { transform: booleanAttribute });
37
+ this.isIndeterminate = false;
43
38
  /**
44
39
  * When true, displays a status icon based on the current state
45
40
  * (success, warning, error, etc.)
46
41
  */
47
- this.hasStatusIcon = input(false, { transform: booleanAttribute });
48
- /** Reference to the BaseStatesDirective for managing component states */
42
+ this.hasStatusIcon = false;
43
+ /**
44
+ * Reference to the BaseStatesDirective for managing component states
45
+ */
49
46
  this.baseStatesDirective = inject(BaseStatesDirective);
50
47
  }
51
48
  /** CSS classes applied to the host element */
52
49
  get cssClasses() {
53
50
  return this.getCssClasses();
54
51
  }
52
+ ngOnChanges(changes) {
53
+ if (changes['progress']) {
54
+ this.progress = changes['progress'].currentValue;
55
+ if (this?.progress > 100) {
56
+ this.progress = 100;
57
+ }
58
+ }
59
+ }
55
60
  /**
56
61
  * Generates CSS classes for the component based on current state
57
62
  * @returns Space-separated string of CSS class names
@@ -59,18 +64,18 @@ class EuiProgressBarComponent {
59
64
  getCssClasses() {
60
65
  return [
61
66
  this.baseStatesDirective.getCssClasses('eui-progress-bar'),
62
- this.isIndeterminate() ? 'eui-progress-bar--indeterminate' : '',
63
- this.hasStatusIcon() ? 'eui-progress-bar--hasStatusIcon' : '',
67
+ this.isIndeterminate ? 'eui-progress-bar--indeterminate' : '',
68
+ this.hasStatusIcon ? 'eui-progress-bar--hasStatusIcon' : '',
64
69
  ]
65
70
  .join(' ')
66
71
  .trim();
67
72
  }
68
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
69
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiProgressBarComponent, isStandalone: true, selector: "eui-progress-bar", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: false, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: false, transformFunction: null }, progress: { classPropertyName: "progress", publicName: "progress", isSignal: true, isRequired: false, transformFunction: null }, isIndeterminate: { classPropertyName: "isIndeterminate", publicName: "isIndeterminate", isSignal: true, isRequired: false, transformFunction: null }, hasStatusIcon: { classPropertyName: "hasStatusIcon", publicName: "hasStatusIcon", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.cssClasses" } }, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiSize2XS", "euiSize2XS", "euiSizeXS", "euiSizeXS", "euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiVariant", "euiVariant", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "@if(label() || hasStatusIcon()) {\n <div class=\"eui-progress-bar__header\">\n @if(label()) {\n <div class=\"eui-progress-bar__header-label\">{{ label() }}</div>\n }\n @if(hasStatusIcon()) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate() ? progress() + '%' : null\"></div>\n</div>\n", styles: [".eui-19 :host.eui-progress-bar{align-items:center;display:flex;flex-direction:column;position:relative}.eui-19 :host.eui-progress-bar .eui-progress-bar__header{align-items:center;display:flex;justify-content:space-between;height:var(--eui-s-l);margin-bottom:var(--eui-s-s);width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-label{display:flex;justify-content:flex-start;font:var(--eui-f-m-bold)}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-status{display:flex;justify-content:flex-end}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container{margin-bottom:var(--eui-s-2xs);background-color:var(--eui-c-neutral-lightest);height:var(--eui-s-2xs);position:relative;width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-primary);height:100%;transition:width .25s ease}.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-2xs)}.eui-19 :host.eui-progress-bar--size-xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}.eui-19 :host.eui-progress-bar--size-s .eui-progress-bar__indicator-container{height:var(--eui-s-s)}.eui-19 :host.eui-progress-bar--size-m .eui-progress-bar__indicator-container{height:var(--eui-s-m)}.eui-19 :host.eui-progress-bar--size-l .eui-progress-bar__indicator-container{height:var(--eui-s-l)}.eui-19 :host.eui-progress-bar--size-xl .eui-progress-bar__indicator-container{height:var(--eui-s-xl)}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}@media screen and (max-width: 767px){.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}}.eui-19 :host.eui-progress-bar--secondary .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-neutral-light)}.eui-19 :host.eui-progress-bar--success .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-success-dark)}.eui-19 :host.eui-progress-bar--info .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-info)}.eui-19 :host.eui-progress-bar--warning .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-warning)}.eui-19 :host.eui-progress-bar--danger .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-danger-dark)}.eui-19 :host.eui-progress-bar--accent .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-accent)}.eui-19 :host.eui-progress-bar--indeterminate .eui-progress-bar__indicator-container .eui-progress-bar__indicator{animation:progress-linear-indeterminate 2s infinite linear;background-color:var(--eui-c-neutral-lightest);background-size:200% 100%;background-image:linear-gradient(to right,transparent 50%,var(--eui-c-primary) 50%,var(--eui-c-primary) 60%,transparent 60%,transparent 71.5%,var(--eui-c-primary) 71.5%,var(--eui-c-primary) 84%,transparent 84%);transition:all .2s}@keyframes progress-linear-indeterminate{0%{background-size:200% 100%;background-position:left -31.25% top 0%}50%{background-size:800% 100%;background-position:left -49% top 0%}to{background-size:400% 100%;background-position:left -102% top 0%}}\n"], dependencies: [{ kind: "ngmodule", type: EuiIconModule }, { kind: "ngmodule", type: EuiIconStateModule }, { kind: "component", type: i2.EuiIconStateComponent, selector: "eui-icon-state", inputs: ["size", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
74
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: EuiProgressBarComponent, isStandalone: true, selector: "eui-progress-bar", inputs: { e2eAttr: "e2eAttr", label: "label", progress: ["progress", "progress", numberAttribute], isIndeterminate: ["isIndeterminate", "isIndeterminate", booleanAttribute], hasStatusIcon: ["hasStatusIcon", "hasStatusIcon", booleanAttribute] }, host: { properties: { "attr.data-e2e": "this.e2eAttr", "class": "this.cssClasses" } }, usesOnChanges: true, hostDirectives: [{ directive: i1.BaseStatesDirective, inputs: ["euiSecondary", "euiSecondary", "euiSuccess", "euiSuccess", "euiInfo", "euiInfo", "euiWarning", "euiWarning", "euiDanger", "euiDanger", "euiAccent", "euiAccent", "euiSize2XS", "euiSize2XS", "euiSizeXS", "euiSizeXS", "euiSizeS", "euiSizeS", "euiSizeM", "euiSizeM", "euiSizeL", "euiSizeL", "euiSizeXL", "euiSizeXL", "euiVariant", "euiVariant", "euiSizeVariant", "euiSizeVariant"] }], ngImport: i0, template: "@if(label || hasStatusIcon) {\n <div class=\"eui-progress-bar__header\">\n @if(label) {\n <div class=\"eui-progress-bar__header-label\">{{ label }}</div>\n }\n @if(hasStatusIcon) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate ? progress + '%' : null\"></div>\n</div>\n", styles: [".eui-19 :host.eui-progress-bar{align-items:center;display:flex;flex-direction:column;position:relative}.eui-19 :host.eui-progress-bar .eui-progress-bar__header{align-items:center;display:flex;justify-content:space-between;height:var(--eui-s-l);margin-bottom:var(--eui-s-s);width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-label{display:flex;justify-content:flex-start;font:var(--eui-f-m-bold)}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-status{display:flex;justify-content:flex-end}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container{margin-bottom:var(--eui-s-2xs);background-color:var(--eui-c-neutral-lightest);height:var(--eui-s-2xs);position:relative;width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-primary);height:100%;transition:width .25s ease}.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-2xs)}.eui-19 :host.eui-progress-bar--size-xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}.eui-19 :host.eui-progress-bar--size-s .eui-progress-bar__indicator-container{height:var(--eui-s-s)}.eui-19 :host.eui-progress-bar--size-m .eui-progress-bar__indicator-container{height:var(--eui-s-m)}.eui-19 :host.eui-progress-bar--size-l .eui-progress-bar__indicator-container{height:var(--eui-s-l)}.eui-19 :host.eui-progress-bar--size-xl .eui-progress-bar__indicator-container{height:var(--eui-s-xl)}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}@media screen and (max-width: 767px){.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}}.eui-19 :host.eui-progress-bar--secondary .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-neutral-light)}.eui-19 :host.eui-progress-bar--success .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-success-dark)}.eui-19 :host.eui-progress-bar--info .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-info)}.eui-19 :host.eui-progress-bar--warning .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-warning)}.eui-19 :host.eui-progress-bar--danger .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-danger-dark)}.eui-19 :host.eui-progress-bar--accent .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-accent)}.eui-19 :host.eui-progress-bar--indeterminate .eui-progress-bar__indicator-container .eui-progress-bar__indicator{animation:progress-linear-indeterminate 2s infinite linear;background-color:var(--eui-c-neutral-lightest);background-size:200% 100%;background-image:linear-gradient(to right,transparent 50%,var(--eui-c-primary) 50%,var(--eui-c-primary) 60%,transparent 60%,transparent 71.5%,var(--eui-c-primary) 71.5%,var(--eui-c-primary) 84%,transparent 84%);transition:all .2s}@keyframes progress-linear-indeterminate{0%{background-size:200% 100%;background-position:left -31.25% top 0%}50%{background-size:800% 100%;background-position:left -49% top 0%}to{background-size:400% 100%;background-position:left -102% top 0%}}\n"], dependencies: [{ kind: "ngmodule", type: EuiIconModule }, { kind: "ngmodule", type: EuiIconStateModule }, { kind: "component", type: i2.EuiIconStateComponent, selector: "eui-icon-state", inputs: ["size", "ariaLabel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
70
75
  }
71
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarComponent, decorators: [{
72
77
  type: Component,
73
- args: [{ selector: 'eui-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [EuiIconModule, EuiIconStateModule], hostDirectives: [
78
+ args: [{ selector: 'eui-progress-bar', changeDetection: ChangeDetectionStrategy.OnPush, imports: [EuiIconModule, EuiIconStateModule], hostDirectives: [
74
79
  {
75
80
  directive: BaseStatesDirective,
76
81
  inputs: [
@@ -90,7 +95,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
90
95
  'euiSizeVariant',
91
96
  ],
92
97
  },
93
- ], template: "@if(label() || hasStatusIcon()) {\n <div class=\"eui-progress-bar__header\">\n @if(label()) {\n <div class=\"eui-progress-bar__header-label\">{{ label() }}</div>\n }\n @if(hasStatusIcon()) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate() ? progress() + '%' : null\"></div>\n</div>\n", styles: [".eui-19 :host.eui-progress-bar{align-items:center;display:flex;flex-direction:column;position:relative}.eui-19 :host.eui-progress-bar .eui-progress-bar__header{align-items:center;display:flex;justify-content:space-between;height:var(--eui-s-l);margin-bottom:var(--eui-s-s);width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-label{display:flex;justify-content:flex-start;font:var(--eui-f-m-bold)}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-status{display:flex;justify-content:flex-end}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container{margin-bottom:var(--eui-s-2xs);background-color:var(--eui-c-neutral-lightest);height:var(--eui-s-2xs);position:relative;width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-primary);height:100%;transition:width .25s ease}.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-2xs)}.eui-19 :host.eui-progress-bar--size-xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}.eui-19 :host.eui-progress-bar--size-s .eui-progress-bar__indicator-container{height:var(--eui-s-s)}.eui-19 :host.eui-progress-bar--size-m .eui-progress-bar__indicator-container{height:var(--eui-s-m)}.eui-19 :host.eui-progress-bar--size-l .eui-progress-bar__indicator-container{height:var(--eui-s-l)}.eui-19 :host.eui-progress-bar--size-xl .eui-progress-bar__indicator-container{height:var(--eui-s-xl)}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}@media screen and (max-width: 767px){.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}}.eui-19 :host.eui-progress-bar--secondary .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-neutral-light)}.eui-19 :host.eui-progress-bar--success .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-success-dark)}.eui-19 :host.eui-progress-bar--info .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-info)}.eui-19 :host.eui-progress-bar--warning .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-warning)}.eui-19 :host.eui-progress-bar--danger .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-danger-dark)}.eui-19 :host.eui-progress-bar--accent .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-accent)}.eui-19 :host.eui-progress-bar--indeterminate .eui-progress-bar__indicator-container .eui-progress-bar__indicator{animation:progress-linear-indeterminate 2s infinite linear;background-color:var(--eui-c-neutral-lightest);background-size:200% 100%;background-image:linear-gradient(to right,transparent 50%,var(--eui-c-primary) 50%,var(--eui-c-primary) 60%,transparent 60%,transparent 71.5%,var(--eui-c-primary) 71.5%,var(--eui-c-primary) 84%,transparent 84%);transition:all .2s}@keyframes progress-linear-indeterminate{0%{background-size:200% 100%;background-position:left -31.25% top 0%}50%{background-size:800% 100%;background-position:left -49% top 0%}to{background-size:400% 100%;background-position:left -102% top 0%}}\n"] }]
98
+ ], template: "@if(label || hasStatusIcon) {\n <div class=\"eui-progress-bar__header\">\n @if(label) {\n <div class=\"eui-progress-bar__header-label\">{{ label }}</div>\n }\n @if(hasStatusIcon) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate ? progress + '%' : null\"></div>\n</div>\n", styles: [".eui-19 :host.eui-progress-bar{align-items:center;display:flex;flex-direction:column;position:relative}.eui-19 :host.eui-progress-bar .eui-progress-bar__header{align-items:center;display:flex;justify-content:space-between;height:var(--eui-s-l);margin-bottom:var(--eui-s-s);width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-label{display:flex;justify-content:flex-start;font:var(--eui-f-m-bold)}.eui-19 :host.eui-progress-bar .eui-progress-bar__header-status{display:flex;justify-content:flex-end}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container{margin-bottom:var(--eui-s-2xs);background-color:var(--eui-c-neutral-lightest);height:var(--eui-s-2xs);position:relative;width:100%}.eui-19 :host.eui-progress-bar .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-primary);height:100%;transition:width .25s ease}.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-2xs)}.eui-19 :host.eui-progress-bar--size-xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}.eui-19 :host.eui-progress-bar--size-s .eui-progress-bar__indicator-container{height:var(--eui-s-s)}.eui-19 :host.eui-progress-bar--size-m .eui-progress-bar__indicator-container{height:var(--eui-s-m)}.eui-19 :host.eui-progress-bar--size-l .eui-progress-bar__indicator-container{height:var(--eui-s-l)}.eui-19 :host.eui-progress-bar--size-xl .eui-progress-bar__indicator-container{height:var(--eui-s-xl)}:root{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-lightest)}html.eui-t-dark{--_eui-scrollbars-foreground-color: var(--eui-c-neutral-light)}@media screen and (max-width: 767px){.eui-19 :host.eui-progress-bar--size-2xs .eui-progress-bar__indicator-container{height:var(--eui-s-xs)}}.eui-19 :host.eui-progress-bar--secondary .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-neutral-light)}.eui-19 :host.eui-progress-bar--success .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-success-dark)}.eui-19 :host.eui-progress-bar--info .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-info)}.eui-19 :host.eui-progress-bar--warning .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-warning)}.eui-19 :host.eui-progress-bar--danger .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-danger-dark)}.eui-19 :host.eui-progress-bar--accent .eui-progress-bar__indicator-container .eui-progress-bar__indicator{background-color:var(--eui-c-accent)}.eui-19 :host.eui-progress-bar--indeterminate .eui-progress-bar__indicator-container .eui-progress-bar__indicator{animation:progress-linear-indeterminate 2s infinite linear;background-color:var(--eui-c-neutral-lightest);background-size:200% 100%;background-image:linear-gradient(to right,transparent 50%,var(--eui-c-primary) 50%,var(--eui-c-primary) 60%,transparent 60%,transparent 71.5%,var(--eui-c-primary) 71.5%,var(--eui-c-primary) 84%,transparent 84%);transition:all .2s}@keyframes progress-linear-indeterminate{0%{background-size:200% 100%;background-position:left -31.25% top 0%}50%{background-size:800% 100%;background-position:left -49% top 0%}to{background-size:400% 100%;background-position:left -102% top 0%}}\n"] }]
94
99
  }], propDecorators: { e2eAttr: [{
95
100
  type: HostBinding,
96
101
  args: ['attr.data-e2e']
@@ -99,6 +104,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
99
104
  }], cssClasses: [{
100
105
  type: HostBinding,
101
106
  args: ['class']
107
+ }], label: [{
108
+ type: Input
109
+ }], progress: [{
110
+ type: Input,
111
+ args: [{ transform: numberAttribute }]
112
+ }], isIndeterminate: [{
113
+ type: Input,
114
+ args: [{ transform: booleanAttribute }]
115
+ }], hasStatusIcon: [{
116
+ type: Input,
117
+ args: [{ transform: booleanAttribute }]
102
118
  }] } });
103
119
 
104
120
  /**
@@ -108,32 +124,22 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImpor
108
124
  * This module is maintained for backward compatibility.
109
125
  *
110
126
  * @example
111
- * // Instead of importing the module:
112
- * // import { EuiProgressBarModule } from '@eui/components/eui-progress-bar';
113
- *
114
- * // Import the standalone component:
115
- * import { EuiProgressBarComponent } from '@eui/components/eui-progress-bar';
116
- *
117
- * @example
118
- * // Instead of adding to NgModule imports:
119
- * // @NgModule({
120
- * // imports: [EuiProgressBarModule]
121
- * // })
127
+ * Instead of importing the module:
128
+ * import { EuiProgressBarModule } from '@eui/components/eui-progress-bar';
122
129
  *
123
- * // Add the standalone component:
124
130
  * @NgModule({
125
- * imports: [EuiProgressBarComponent]
131
+ * imports: [EuiProgressBarModule]
126
132
  * })
127
133
  */
128
134
  class EuiProgressBarModule {
129
135
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
130
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, imports: [EuiIconModule, EuiIconStateModule, EuiProgressBarComponent], exports: [EuiProgressBarComponent] }); }
131
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, imports: [EuiIconModule, EuiIconStateModule, EuiProgressBarComponent] }); }
136
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, imports: [EuiProgressBarComponent], exports: [EuiProgressBarComponent] }); }
137
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, imports: [EuiProgressBarComponent] }); }
132
138
  }
133
139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EuiProgressBarModule, decorators: [{
134
140
  type: NgModule,
135
141
  args: [{
136
- imports: [EuiIconModule, EuiIconStateModule, EuiProgressBarComponent],
142
+ imports: [EuiProgressBarComponent],
137
143
  exports: [EuiProgressBarComponent],
138
144
  }]
139
145
  }] });
@@ -1 +1 @@
1
- {"version":3,"file":"eui-components-eui-progress-bar.mjs","sources":["../../eui-progress-bar/eui-progress-bar.component.ts","../../eui-progress-bar/eui-progress-bar.component.html","../../eui-progress-bar/eui-progress-bar.module.ts","../../eui-progress-bar/eui-components-eui-progress-bar.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n HostBinding,\n booleanAttribute,\n numberAttribute,\n input,\n InputSignalWithTransform,\n inject,\n} from '@angular/core';\nimport { NumberInput } from '@angular/cdk/coercion';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconStateModule } from '@eui/components/eui-icon-state';\n\n/**\n * Transform function that ensures progress value doesn't exceed 100\n * @param value - The input progress value\n * @returns A number between 0 and 100\n */\nconst progressAttribute = (value: NumberInput): number => Math.min(numberAttribute(value), 100);\n\n/**\n * Progress bar component that displays a horizontal progress indicator\n * with optional label and status icon.\n *\n * @example\n * <eui-progress-bar\n * [progress]=\"75\"\n * label=\"Loading...\"\n * [hasStatusIcon]=\"true\"\n * euiSuccess>\n * </eui-progress-bar>\n */\n@Component({\n templateUrl: './eui-progress-bar.component.html',\n selector: 'eui-progress-bar',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [EuiIconModule, EuiIconStateModule],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSecondary',\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiSize2XS',\n 'euiSizeXS',\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiVariant',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiProgressBarComponent {\n /** Element attribute for e2e testing */\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-progress-bar';\n\n /** CSS classes applied to the host element */\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n /** Optional label displayed above the progress bar */\n label = input<string>();\n\n /**\n * Current progress value (0-100)\n * Values greater than 100 will be capped at 100\n */\n progress: InputSignalWithTransform<number, unknown> = input(null, { transform: progressAttribute });\n\n /**\n * When true, shows an indeterminate progress animation\n * instead of a specific progress value\n */\n isIndeterminate: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n /**\n * When true, displays a status icon based on the current state\n * (success, warning, error, etc.)\n */\n hasStatusIcon: InputSignalWithTransform<boolean, unknown> = input(false, { transform: booleanAttribute });\n\n /** Reference to the BaseStatesDirective for managing component states */\n protected baseStatesDirective: BaseStatesDirective = inject(BaseStatesDirective);\n\n /**\n * Generates CSS classes for the component based on current state\n * @returns Space-separated string of CSS class names\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-progress-bar'),\n this.isIndeterminate() ? 'eui-progress-bar--indeterminate' : '',\n this.hasStatusIcon() ? 'eui-progress-bar--hasStatusIcon' : '',\n ]\n .join(' ')\n .trim();\n }\n}\n","@if(label() || hasStatusIcon()) {\n <div class=\"eui-progress-bar__header\">\n @if(label()) {\n <div class=\"eui-progress-bar__header-label\">{{ label() }}</div>\n }\n @if(hasStatusIcon()) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate() ? progress() + '%' : null\"></div>\n</div>\n","import { NgModule } from '@angular/core';\n\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconStateModule } from '@eui/components/eui-icon-state';\nimport { EuiProgressBarComponent } from './eui-progress-bar.component';\n\n/**\n * Module providing the EuiProgressBar component and its dependencies.\n *\n * @deprecated Use standalone {@link EuiProgressBarComponent} instead.\n * This module is maintained for backward compatibility.\n *\n * @example\n * // Instead of importing the module:\n * // import { EuiProgressBarModule } from '@eui/components/eui-progress-bar';\n *\n * // Import the standalone component:\n * import { EuiProgressBarComponent } from '@eui/components/eui-progress-bar';\n *\n * @example\n * // Instead of adding to NgModule imports:\n * // @NgModule({\n * // imports: [EuiProgressBarModule]\n * // })\n *\n * // Add the standalone component:\n * @NgModule({\n * imports: [EuiProgressBarComponent]\n * })\n */\n@NgModule({\n imports: [EuiIconModule, EuiIconStateModule, EuiProgressBarComponent],\n exports: [EuiProgressBarComponent],\n})\nexport class EuiProgressBarModule {}\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-progress-bar.mjs","sources":["../../eui-progress-bar/eui-progress-bar.component.ts","../../eui-progress-bar/eui-progress-bar.component.html","../../eui-progress-bar/eui-progress-bar.module.ts","../../eui-progress-bar/eui-components-eui-progress-bar.ts"],"sourcesContent":["import {\n Component,\n Input,\n ChangeDetectionStrategy,\n SimpleChanges,\n OnChanges,\n HostBinding,\n booleanAttribute,\n numberAttribute,\n inject,\n} from '@angular/core';\nimport { BooleanInput, NumberInput } from '@angular/cdk/coercion';\n\nimport { BaseStatesDirective } from '@eui/components/shared';\nimport { EuiIconModule } from '@eui/components/eui-icon';\nimport { EuiIconStateModule } from '@eui/components/eui-icon-state';\n\n/**\n * Transform function that ensures progress value doesn't exceed 100\n * @param value - The input progress value\n * @returns A number between 0 and 100\n */\nconst progressAttribute = (value: NumberInput): number => Math.min(numberAttribute(value), 100);\n\n/**\n * Progress bar component that displays a horizontal progress indicator\n * with optional label and status icon.\n *\n * @example\n * <eui-progress-bar\n * [progress]=\"75\"\n * label=\"Loading...\"\n * [hasStatusIcon]=\"true\"\n * euiSuccess>\n * </eui-progress-bar>\n */\n@Component({\n templateUrl: './eui-progress-bar.component.html',\n selector: 'eui-progress-bar',\n styleUrls: ['./styles/_index.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [EuiIconModule, EuiIconStateModule],\n hostDirectives: [\n {\n directive: BaseStatesDirective,\n inputs: [\n 'euiSecondary',\n 'euiSuccess',\n 'euiInfo',\n 'euiWarning',\n 'euiDanger',\n 'euiAccent',\n 'euiSize2XS',\n 'euiSizeXS',\n 'euiSizeS',\n 'euiSizeM',\n 'euiSizeL',\n 'euiSizeXL',\n 'euiVariant',\n 'euiSizeVariant',\n ],\n },\n ],\n})\nexport class EuiProgressBarComponent implements OnChanges {\n /** Element attribute for e2e testing */\n @HostBinding('attr.data-e2e')\n @Input()\n e2eAttr = 'eui-progress-bar';\n\n /** CSS classes applied to the host element */\n @HostBinding('class')\n public get cssClasses(): string {\n return this.getCssClasses();\n }\n\n /** Optional label displayed above the progress bar */\n @Input() label = '';\n\n /**\n * Current progress value (0-100)\n * Values greater than 100 will be capped at 100\n */\n @Input({ transform: numberAttribute })\n progress: NumberInput;\n\n /**\n * When true, shows an indeterminate progress animation\n * instead of a specific progress value\n */\n @Input({ transform: booleanAttribute })\n isIndeterminate: BooleanInput = false;\n\n /**\n * When true, displays a status icon based on the current state\n * (success, warning, error, etc.)\n */\n @Input({ transform: booleanAttribute })\n hasStatusIcon: BooleanInput = false;\n\n /**\n * Reference to the BaseStatesDirective for managing component states\n */\n public baseStatesDirective: BaseStatesDirective = inject(BaseStatesDirective);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['progress']) {\n this.progress = changes['progress'].currentValue;\n if ((this?.progress as number) > 100) {\n this.progress = 100;\n }\n }\n }\n\n /**\n * Generates CSS classes for the component based on current state\n * @returns Space-separated string of CSS class names\n */\n private getCssClasses(): string {\n return [\n this.baseStatesDirective.getCssClasses('eui-progress-bar'),\n this.isIndeterminate ? 'eui-progress-bar--indeterminate' : '',\n this.hasStatusIcon ? 'eui-progress-bar--hasStatusIcon' : '',\n ]\n .join(' ')\n .trim();\n }\n}\n","@if(label || hasStatusIcon) {\n <div class=\"eui-progress-bar__header\">\n @if(label) {\n <div class=\"eui-progress-bar__header-label\">{{ label }}</div>\n }\n @if(hasStatusIcon) {\n <div class=\"eui-progress-bar__header-status\">\n <eui-icon-state [euiVariant]=\"baseStatesDirective.euiVariant\"/>\n </div>\n }\n </div>\n}\n<div class=\"eui-progress-bar__indicator-container\">\n <div class=\"eui-progress-bar__indicator\" [style.width]=\"!isIndeterminate ? progress + '%' : null\"></div>\n</div>\n","import { NgModule } from '@angular/core';\nimport { EuiProgressBarComponent } from './eui-progress-bar.component';\n\n/**\n * Module providing the EuiProgressBar component and its dependencies.\n *\n * @deprecated Use standalone {@link EuiProgressBarComponent} instead.\n * This module is maintained for backward compatibility.\n *\n * @example\n * Instead of importing the module:\n * import { EuiProgressBarModule } from '@eui/components/eui-progress-bar';\n *\n * @NgModule({\n * imports: [EuiProgressBarModule]\n * })\n */\n@NgModule({\n imports: [EuiProgressBarComponent],\n exports: [EuiProgressBarComponent],\n})\nexport class EuiProgressBarModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}