@eui/eds 22.0.0-alpha.22 → 22.0.0-alpha.24

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 (200) hide show
  1. package/docs/changelog.html +62 -0
  2. package/docs/components/EdsButton.html +77 -203
  3. package/docs/components/EdsCalendarDay.html +1 -1
  4. package/docs/components/EdsCalendarHeader.html +1 -1
  5. package/docs/components/EdsDatepicker.html +1 -1
  6. package/docs/components/EdsDialogContainer.html +1 -1
  7. package/docs/components/EdsFeedbackMessage.html +35 -73
  8. package/docs/components/EdsFileUpload.html +1 -1
  9. package/docs/components/EdsFlexLayout.html +1 -1
  10. package/docs/components/EdsGridLayout.html +1 -1
  11. package/docs/components/EdsGridLayoutCell.html +1 -1
  12. package/docs/components/EdsGridLayoutRow.html +1 -1
  13. package/docs/components/EdsIconState.html +38 -3
  14. package/docs/components/EdsInputButton.html +0 -57
  15. package/docs/components/EdsInputCheckbox.html +0 -62
  16. package/docs/components/EdsInputIcon.html +0 -53
  17. package/docs/components/EdsInputNumber.html +0 -60
  18. package/docs/components/EdsInputRadio.html +0 -62
  19. package/docs/components/EdsInputText.html +0 -62
  20. package/docs/components/EdsLabel.html +1 -1
  21. package/docs/components/EdsLanguageSelectorDialog.html +3 -5
  22. package/docs/components/EdsLink.html +1 -1
  23. package/docs/components/EdsLoadingIndicator.html +1 -1
  24. package/docs/components/EdsPaginator.html +1 -1
  25. package/docs/components/EdsRating.html +66 -57
  26. package/docs/components/EdsSelect.html +0 -45
  27. package/docs/components/EdsSnc.html +2 -2
  28. package/docs/components/EdsTab.html +8 -133
  29. package/docs/components/EdsTabBody.html +21 -41
  30. package/docs/components/EdsTabHeader.html +13 -25
  31. package/docs/components/EdsTabHeaderLabel.html +4 -126
  32. package/docs/components/EdsTabHeaderLeftContent.html +4 -126
  33. package/docs/components/EdsTabHeaderRightContent.html +4 -126
  34. package/docs/components/EdsTabHeaderSublabel.html +4 -126
  35. package/docs/components/EdsTabs.html +113 -140
  36. package/docs/components/EdsTextarea.html +0 -62
  37. package/docs/components/EdsTreeListToolbar.html +1 -1
  38. package/docs/components/EdsTrend.html +1 -1
  39. package/docs/directives/EdsColorDirective.html +0 -9
  40. package/docs/directives/EdsFlexColDirective.html +1 -1
  41. package/docs/directives/EdsFlexGrowDirective.html +1 -1
  42. package/docs/directives/EdsFlexNoShrinkDirective.html +1 -1
  43. package/docs/directives/EdsSizeDirective.html +0 -3
  44. package/docs/directives/EdsTooltip.html +45 -281
  45. package/docs/js/search/search_index.js +2 -2
  46. package/docs/json/EdsButton.md +15 -24
  47. package/docs/json/EdsFeedbackMessage.md +4 -10
  48. package/docs/json/EdsIconState.md +2 -1
  49. package/docs/json/EdsRating.md +2 -0
  50. package/docs/json/EdsTab.md +1 -1
  51. package/docs/json/EdsTabs.md +7 -8
  52. package/docs/json/EdsTooltip.md +3 -3
  53. package/docs/json/documentation.json +1803 -2031
  54. package/docs/llms.txt +72 -109
  55. package/docs/miscellaneous/typealiases.html +179 -16
  56. package/docs/miscellaneous/variables.html +16 -16
  57. package/docs/properties.html +1 -1
  58. package/eds-flex-layout/package.json +4 -0
  59. package/eds-grid-layout/package.json +4 -0
  60. package/eds-icon-state/package.json +4 -0
  61. package/eds-label/package.json +4 -0
  62. package/eds-link/package.json +4 -0
  63. package/eds-loading-indicator/package.json +4 -0
  64. package/eds-snc/package.json +4 -0
  65. package/eds-trend/package.json +4 -0
  66. package/fesm2022/eui-eds-eds-alert.mjs +3 -3
  67. package/fesm2022/eui-eds-eds-alert.mjs.map +1 -1
  68. package/fesm2022/eui-eds-eds-button.mjs +53 -85
  69. package/fesm2022/eui-eds-eds-button.mjs.map +1 -1
  70. package/fesm2022/eui-eds-eds-calendar.mjs +4 -4
  71. package/fesm2022/eui-eds-eds-calendar.mjs.map +1 -1
  72. package/fesm2022/eui-eds-eds-datepicker.mjs +2 -2
  73. package/fesm2022/eui-eds-eds-datepicker.mjs.map +1 -1
  74. package/fesm2022/eui-eds-eds-dialog.mjs +4 -4
  75. package/fesm2022/eui-eds-eds-dialog.mjs.map +1 -1
  76. package/fesm2022/eui-eds-eds-discussion-thread.mjs +3 -3
  77. package/fesm2022/eui-eds-eds-discussion-thread.mjs.map +1 -1
  78. package/fesm2022/eui-eds-eds-feedback-message.mjs +28 -42
  79. package/fesm2022/eui-eds-eds-feedback-message.mjs.map +1 -1
  80. package/fesm2022/eui-eds-eds-file-upload.mjs +2 -2
  81. package/fesm2022/eui-eds-eds-file-upload.mjs.map +1 -1
  82. package/fesm2022/{eui-eds-utilities-eds-flex-layout.mjs → eui-eds-eds-flex-layout.mjs} +1 -1
  83. package/fesm2022/eui-eds-eds-flex-layout.mjs.map +1 -0
  84. package/fesm2022/{eui-eds-utilities-eds-grid-layout.mjs → eui-eds-eds-grid-layout.mjs} +1 -1
  85. package/fesm2022/eui-eds-eds-grid-layout.mjs.map +1 -0
  86. package/fesm2022/eui-eds-eds-growl.mjs +3 -3
  87. package/fesm2022/eui-eds-eds-growl.mjs.map +1 -1
  88. package/fesm2022/eui-eds-eds-icon-state.mjs +56 -0
  89. package/fesm2022/eui-eds-eds-icon-state.mjs.map +1 -0
  90. package/fesm2022/eui-eds-eds-input-button.mjs +10 -13
  91. package/fesm2022/eui-eds-eds-input-button.mjs.map +1 -1
  92. package/fesm2022/eui-eds-eds-input-checkbox.mjs +6 -17
  93. package/fesm2022/eui-eds-eds-input-checkbox.mjs.map +1 -1
  94. package/fesm2022/eui-eds-eds-input-icon.mjs +10 -9
  95. package/fesm2022/eui-eds-eds-input-icon.mjs.map +1 -1
  96. package/fesm2022/eui-eds-eds-input-number.mjs +5 -14
  97. package/fesm2022/eui-eds-eds-input-number.mjs.map +1 -1
  98. package/fesm2022/eui-eds-eds-input-radio.mjs +6 -17
  99. package/fesm2022/eui-eds-eds-input-radio.mjs.map +1 -1
  100. package/fesm2022/eui-eds-eds-input-text.mjs +5 -16
  101. package/fesm2022/eui-eds-eds-input-text.mjs.map +1 -1
  102. package/fesm2022/{eui-eds-utilities-eds-label.mjs → eui-eds-eds-label.mjs} +1 -1
  103. package/fesm2022/eui-eds-eds-label.mjs.map +1 -0
  104. package/fesm2022/eui-eds-eds-language-selector.mjs +5 -9
  105. package/fesm2022/eui-eds-eds-language-selector.mjs.map +1 -1
  106. package/fesm2022/{eui-eds-utilities-eds-link.mjs → eui-eds-eds-link.mjs} +1 -1
  107. package/fesm2022/eui-eds-eds-link.mjs.map +1 -0
  108. package/fesm2022/{eui-eds-utilities-eds-loading-indicator.mjs → eui-eds-eds-loading-indicator.mjs} +1 -1
  109. package/fesm2022/eui-eds-eds-loading-indicator.mjs.map +1 -0
  110. package/fesm2022/eui-eds-eds-paginator.mjs +2 -2
  111. package/fesm2022/eui-eds-eds-paginator.mjs.map +1 -1
  112. package/fesm2022/eui-eds-eds-progress-bar.mjs +3 -3
  113. package/fesm2022/eui-eds-eds-progress-bar.mjs.map +1 -1
  114. package/fesm2022/eui-eds-eds-rating.mjs +30 -16
  115. package/fesm2022/eui-eds-eds-rating.mjs.map +1 -1
  116. package/fesm2022/eui-eds-eds-select.mjs +10 -33
  117. package/fesm2022/eui-eds-eds-select.mjs.map +1 -1
  118. package/fesm2022/{eui-eds-utilities-eds-snc.mjs → eui-eds-eds-snc.mjs} +3 -3
  119. package/fesm2022/eui-eds-eds-snc.mjs.map +1 -0
  120. package/fesm2022/eui-eds-eds-tabs.mjs +192 -259
  121. package/fesm2022/eui-eds-eds-tabs.mjs.map +1 -1
  122. package/fesm2022/eui-eds-eds-textarea.mjs +5 -16
  123. package/fesm2022/eui-eds-eds-textarea.mjs.map +1 -1
  124. package/fesm2022/eui-eds-eds-tooltip.mjs +71 -86
  125. package/fesm2022/eui-eds-eds-tooltip.mjs.map +1 -1
  126. package/fesm2022/eui-eds-eds-tree-list.mjs +2 -2
  127. package/fesm2022/eui-eds-eds-tree-list.mjs.map +1 -1
  128. package/fesm2022/eui-eds-eds-tree.mjs +2 -2
  129. package/fesm2022/eui-eds-eds-tree.mjs.map +1 -1
  130. package/fesm2022/{eui-eds-utilities-eds-trend.mjs → eui-eds-eds-trend.mjs} +1 -1
  131. package/fesm2022/eui-eds-eds-trend.mjs.map +1 -0
  132. package/package.json +33 -33
  133. package/types/eui-eds-eds-button.d.ts +47 -33
  134. package/types/eui-eds-eds-button.d.ts.map +1 -1
  135. package/types/eui-eds-eds-feedback-message.d.ts +20 -10
  136. package/types/eui-eds-eds-feedback-message.d.ts.map +1 -1
  137. package/types/{eui-eds-utilities-eds-flex-layout.d.ts → eui-eds-eds-flex-layout.d.ts} +1 -1
  138. package/types/eui-eds-eds-flex-layout.d.ts.map +1 -0
  139. package/types/{eui-eds-utilities-eds-grid-layout.d.ts → eui-eds-eds-grid-layout.d.ts} +1 -1
  140. package/types/eui-eds-eds-grid-layout.d.ts.map +1 -0
  141. package/types/{eui-eds-utilities-eds-icon-state.d.ts → eui-eds-eds-icon-state.d.ts} +8 -3
  142. package/types/eui-eds-eds-icon-state.d.ts.map +1 -0
  143. package/types/eui-eds-eds-input-button.d.ts +5 -1
  144. package/types/eui-eds-eds-input-button.d.ts.map +1 -1
  145. package/types/eui-eds-eds-input-checkbox.d.ts +0 -4
  146. package/types/eui-eds-eds-input-checkbox.d.ts.map +1 -1
  147. package/types/eui-eds-eds-input-icon.d.ts +5 -1
  148. package/types/eui-eds-eds-input-icon.d.ts.map +1 -1
  149. package/types/eui-eds-eds-input-number.d.ts +1 -5
  150. package/types/eui-eds-eds-input-number.d.ts.map +1 -1
  151. package/types/eui-eds-eds-input-radio.d.ts +0 -4
  152. package/types/eui-eds-eds-input-radio.d.ts.map +1 -1
  153. package/types/eui-eds-eds-input-text.d.ts +1 -5
  154. package/types/eui-eds-eds-input-text.d.ts.map +1 -1
  155. package/types/{eui-eds-utilities-eds-label.d.ts → eui-eds-eds-label.d.ts} +1 -1
  156. package/types/eui-eds-eds-label.d.ts.map +1 -0
  157. package/types/eui-eds-eds-language-selector.d.ts.map +1 -1
  158. package/types/{eui-eds-utilities-eds-link.d.ts → eui-eds-eds-link.d.ts} +1 -1
  159. package/types/eui-eds-eds-link.d.ts.map +1 -0
  160. package/types/{eui-eds-utilities-eds-loading-indicator.d.ts → eui-eds-eds-loading-indicator.d.ts} +1 -1
  161. package/types/eui-eds-eds-loading-indicator.d.ts.map +1 -0
  162. package/types/eui-eds-eds-rating.d.ts +19 -2
  163. package/types/eui-eds-eds-rating.d.ts.map +1 -1
  164. package/types/eui-eds-eds-select.d.ts +1 -5
  165. package/types/eui-eds-eds-select.d.ts.map +1 -1
  166. package/types/{eui-eds-utilities-eds-snc.d.ts → eui-eds-eds-snc.d.ts} +1 -1
  167. package/types/eui-eds-eds-snc.d.ts.map +1 -0
  168. package/types/eui-eds-eds-tabs.d.ts +87 -100
  169. package/types/eui-eds-eds-tabs.d.ts.map +1 -1
  170. package/types/eui-eds-eds-textarea.d.ts +1 -5
  171. package/types/eui-eds-eds-textarea.d.ts.map +1 -1
  172. package/types/eui-eds-eds-tooltip.d.ts +27 -25
  173. package/types/eui-eds-eds-tooltip.d.ts.map +1 -1
  174. package/types/{eui-eds-utilities-eds-trend.d.ts → eui-eds-eds-trend.d.ts} +1 -1
  175. package/types/eui-eds-eds-trend.d.ts.map +1 -0
  176. package/fesm2022/eui-eds-utilities-eds-flex-layout.mjs.map +0 -1
  177. package/fesm2022/eui-eds-utilities-eds-grid-layout.mjs.map +0 -1
  178. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs +0 -49
  179. package/fesm2022/eui-eds-utilities-eds-icon-state.mjs.map +0 -1
  180. package/fesm2022/eui-eds-utilities-eds-label.mjs.map +0 -1
  181. package/fesm2022/eui-eds-utilities-eds-link.mjs.map +0 -1
  182. package/fesm2022/eui-eds-utilities-eds-loading-indicator.mjs.map +0 -1
  183. package/fesm2022/eui-eds-utilities-eds-snc.mjs.map +0 -1
  184. package/fesm2022/eui-eds-utilities-eds-trend.mjs.map +0 -1
  185. package/types/eui-eds-utilities-eds-flex-layout.d.ts.map +0 -1
  186. package/types/eui-eds-utilities-eds-grid-layout.d.ts.map +0 -1
  187. package/types/eui-eds-utilities-eds-icon-state.d.ts.map +0 -1
  188. package/types/eui-eds-utilities-eds-label.d.ts.map +0 -1
  189. package/types/eui-eds-utilities-eds-link.d.ts.map +0 -1
  190. package/types/eui-eds-utilities-eds-loading-indicator.d.ts.map +0 -1
  191. package/types/eui-eds-utilities-eds-snc.d.ts.map +0 -1
  192. package/types/eui-eds-utilities-eds-trend.d.ts.map +0 -1
  193. package/utilities/eds-flex-layout/package.json +0 -4
  194. package/utilities/eds-grid-layout/package.json +0 -4
  195. package/utilities/eds-icon-state/package.json +0 -4
  196. package/utilities/eds-label/package.json +0 -4
  197. package/utilities/eds-link/package.json +0 -4
  198. package/utilities/eds-loading-indicator/package.json +0 -4
  199. package/utilities/eds-snc/package.json +0 -4
  200. package/utilities/eds-trend/package.json +0 -4
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-dialog.mjs","sources":["../../eds-dialog/eds-dialog-token.ts","../../eds-dialog/eds-dialog-config.ts","../../eds-dialog/eds-dialog-container.ts","../../eds-dialog/eds-dialog-container.html","../../eds-dialog/eds-dialog-ref.ts","../../eds-dialog/eds-dialog.service.ts","../../eds-dialog/eds-dialog-header.ts","../../eds-dialog/eds-dialog-footer.ts","../../eds-dialog/eds-dialog.ts","../../eds-dialog/eds-dialog.html","../../eds-dialog/index.ts","../../eds-dialog/eui-eds-eds-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { EdsDialogInterface } from './eds-dialog-config';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_DIALOG_CONTAINER_CONFIG = new InjectionToken<EdsDialogInterface<any, any, any, any, any, any>>('EDS_DIALOG_CONTAINER_CONFIG');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_DIALOG_COMPONENT_CONFIG = new InjectionToken<any>('EDS_DIALOG_COMPONENT_CONFIG');\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentType, TemplatePortal } from '@angular/cdk/portal';\n\nexport type EdsDialogVerticalPosition = 'top' | 'center' | 'bottom';\n\nexport class EdsDialogConfig<HC = unknown, HCC = unknown, BC = unknown, BCC = unknown, FC = unknown, FCC = unknown>\n implements EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n e2eAttr = 'eds-dialog';\n acceptLabel = 'eui.OK';\n dismissLabel = 'eui.CANCEL';\n width = '50%';\n height = 'auto';\n isFullScreen = false;\n hasCloseButton = true;\n hasAcceptButton = true;\n hasDismissButton = true;\n hasMobileCustomSize = false;\n hasClosedOnClickOutside = false;\n hasClosedOnEscape = true;\n isHandleCloseOnDismiss = false;\n isHandleCloseOnClose = false;\n isHandleCloseOnAccept = false;\n isHandleCloseOnClickOutside = false;\n isHandleCloseOnEscape = false;\n hasFooter = true;\n isMessageBox = false;\n hasNoBodyPadding = false;\n isDraggable = false;\n classList = null;\n\n constructor(values: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC>) {\n Object.assign(this, values);\n }\n}\n\nexport interface EdsDialogInterface<HC = unknown, HCC = unknown, BC = unknown, BCC = unknown, FC = unknown, FCC = unknown> {\n dialogId?: string;\n e2eAttr?: string;\n title?: string;\n variant?: 'primary' | 'info' | 'success' | 'warning' | 'critical' | 'neutral' | string;\n acceptLabel?: string;\n dismissLabel?: string;\n width?: string;\n height?: string;\n isFullScreen?: boolean;\n headerComponent?: {\n component: ComponentType<HC>;\n config?: HCC;\n };\n bodyComponent?: {\n component: ComponentType<BC>;\n config?: BCC;\n };\n footerComponent?: {\n component: ComponentType<FC>;\n config?: FCC;\n };\n header?: TemplatePortal;\n content?: TemplatePortal | string | null;\n footer?: TemplatePortal;\n hasCloseButton?: boolean;\n hasAcceptButton?: boolean;\n hasDismissButton?: boolean;\n hasMobileCustomSize?: boolean;\n hasClosedOnClickOutside?: boolean;\n hasClosedOnEscape?: boolean;\n isHandleCloseOnDismiss?: boolean;\n isHandleCloseOnClose?: boolean;\n isHandleCloseOnAccept?: boolean;\n isHandleCloseOnClickOutside?: boolean;\n isHandleCloseOnEscape?: boolean;\n isDraggable?: boolean;\n hasNoBodyPadding?: boolean;\n hasFooter?: boolean;\n isMessageBox?: boolean;\n verticalPosition?: EdsDialogVerticalPosition;\n classList?: string;\n\n overlayRef?: OverlayRef;\n\n open?: () => void;\n init?: (instances: EdsDialogComponentInstances<HC, BC, FC>) => void;\n clickOutside?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n escape?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n close?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n dismiss?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n accept?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n}\n\nexport class EdsDialogComponentInstances<HC, BC, FC> {\n headerComponent: HC = null;\n bodyComponent: BC = null;\n footerComponent: FC = null;\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n ComponentRef,\n inject,\n Injector,\n StaticProvider,\n OnDestroy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n AfterViewInit,\n signal,\n} from '@angular/core';\nimport {\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n ComponentType,\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_ICON_STATE } from '@eui/eds/utilities/eds-icon-state';\n\nimport { EDS_DIALOG_CONTAINER_CONFIG, EDS_DIALOG_COMPONENT_CONFIG } from './eds-dialog-token';\nimport { EdsDialogInterface, EdsDialogComponentInstances } from './eds-dialog-config';\n\n/**\n * Container component that orchestrates the rendering and lifecycle of dialog content.\n * Manages three distinct sections (header, body, footer) that can be rendered as either\n * template portals or component portals. Handles dialog actions (accept/dismiss), button\n * state management, and accessibility attributes. Instantiated by the dialog service —\n * should not be used directly in application code.\n */\n@Component({\n selector: 'eds-dialog-container',\n templateUrl: './eds-dialog-container.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './eds-dialog.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [\n AsyncPipe,\n TranslatePipe,\n PortalModule,\n A11yModule,\n DragDropModule,\n CdkScrollableModule,\n ...EDS_BUTTON,\n ...EDS_ICON_BUTTON,\n ...EDS_ICON_STATE,\n ],\n host: {\n class: 'eds-dialog-container',\n },\n})\nexport class EdsDialogContainer implements OnInit, OnDestroy, AfterViewInit {\n cd = inject(ChangeDetectorRef);\n dialogContainerConfig = inject<EdsDialogInterface>(EDS_DIALOG_CONTAINER_CONFIG);\n\n isHeaderTemplatePortal = false;\n isBodyTemplatePortal = false;\n isFooterTemplatePortal = false;\n\n isHeaderComponentPortal = false;\n isBodyComponentPortal = false;\n isFooterComponentPortal = false;\n\n headerComponentPortal: ComponentPortal<unknown>;\n bodyComponentPortal: ComponentPortal<unknown>;\n footerComponentPortal: ComponentPortal<unknown>;\n\n componentInstances = new EdsDialogComponentInstances<unknown, unknown, unknown>();\n acceptButtonDisabled$ = new BehaviorSubject<boolean>(false);\n dismissButtonDisabled$ = new BehaviorSubject<boolean>(false);\n\n @ViewChild('dialogBody', { read: ElementRef }) dialogBody: ElementRef<HTMLElement>;\n\n closeButtonAriaLabel = 'Close dialog';\n\n protected isBodyScrollable = signal(false);\n private destroy$ = new Subject<boolean>();\n private injector = inject(Injector);\n\n ngOnInit(): void {\n if (this.dialogContainerConfig.header instanceof TemplatePortal) {\n this.isHeaderTemplatePortal = true;\n }\n if (this.dialogContainerConfig.content instanceof TemplatePortal) {\n this.isBodyTemplatePortal = true;\n }\n if (this.dialogContainerConfig.footer instanceof TemplatePortal) {\n this.isFooterTemplatePortal = true;\n }\n\n if (this.dialogContainerConfig.headerComponent?.component) {\n this.isHeaderComponentPortal = true;\n this.headerComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.headerComponent.component,\n this.dialogContainerConfig.headerComponent.config,\n );\n }\n if (this.dialogContainerConfig.bodyComponent?.component) {\n this.isBodyComponentPortal = true;\n this.bodyComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.bodyComponent.component,\n this.dialogContainerConfig.bodyComponent.config,\n );\n }\n if (this.dialogContainerConfig.footerComponent?.component) {\n this.isFooterComponentPortal = true;\n this.footerComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.footerComponent.component,\n this.dialogContainerConfig.footerComponent.config,\n );\n }\n\n this.dialogContainerConfig.open?.();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n this.checkScrollability();\n }\n\n get getPortalOutlet(): TemplatePortal | null {\n return this.dialogContainerConfig.content as TemplatePortal;\n }\n\n get dialogContainerConfigContent(): string {\n return this.dialogContainerConfig.content as string;\n }\n\n portalAttached(\n attachedRef: CdkPortalOutletAttachedRef,\n component: 'headerComponent' | 'bodyComponent' | 'footerComponent',\n ): void {\n const componentRef = attachedRef as ComponentRef<unknown>;\n\n (componentRef.instance as Record<string, unknown>)['overlayRef'] = this.dialogContainerConfig.overlayRef;\n\n this.componentInstances = {\n ...this.componentInstances,\n [component]: componentRef.instance,\n };\n\n this.dialogContainerConfig.init?.(this.componentInstances);\n\n const configSection = this.dialogContainerConfig[component] as { config?: Record<string, unknown> };\n if (configSection?.config) {\n Object.keys(configSection.config).forEach((c) => {\n if (typeof configSection.config[c] === 'function') {\n const instance = componentRef.instance as Record<string, unknown>;\n if (instance[c] && typeof instance[c] !== 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (instance[c] as any).pipe(takeUntil(this.destroy$)).subscribe((args: unknown) => {\n (configSection.config[c] as (...a: unknown[]) => unknown).apply(instance[c], [args]);\n });\n }\n } else {\n (componentRef.instance as Record<string, unknown>)[c] = configSection.config[c];\n }\n });\n }\n }\n\n closeDialog(): void {\n this.dialogContainerConfig.close?.(this.componentInstances);\n }\n\n onDismiss(): void {\n this.dialogContainerConfig.dismiss?.(this.componentInstances);\n if (!this.dialogContainerConfig.isHandleCloseOnDismiss) {\n this.closeDialog();\n }\n }\n\n onAccept(): void {\n this.dialogContainerConfig.accept?.(this.componentInstances);\n if (!this.dialogContainerConfig.isHandleCloseOnAccept) {\n this.closeDialog();\n }\n }\n\n /**\n * Returns the id of the body content for aria-describedby.\n */\n getContentId(): string {\n if (!this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n return 'containerConfigId';\n } else if (this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n return 'bodyTemplatePortalId';\n } else {\n return 'bodyComponentPortalId';\n }\n }\n\n disableAcceptButton(): void {\n this.acceptButtonDisabled$.next(true);\n }\n\n enableAcceptButton(): void {\n this.acceptButtonDisabled$.next(false);\n }\n\n disableDismissButton(): void {\n this.dismissButtonDisabled$.next(true);\n }\n\n enableDismissButton(): void {\n this.dismissButtonDisabled$.next(false);\n }\n\n onScroll(): void {\n this.cd.detectChanges();\n }\n\n scrollToBottom(): void {\n const el = document.querySelector('.eds-dialog__body');\n if (el) {\n el.scrollTo({ top: el.scrollHeight, behavior: 'smooth' });\n }\n }\n\n scrollToTop(): void {\n const el = document.querySelector('.eds-dialog__body');\n if (el) {\n el.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }\n\n private createComponentPortal(component: ComponentType<unknown>, config: unknown): ComponentPortal<unknown> {\n const extendedConfig = { ...(config as object), id: this.dialogContainerConfig.dialogId, overlayRef: this.dialogContainerConfig.overlayRef };\n return new ComponentPortal(component, null, this.createInjector(extendedConfig));\n }\n\n private createInjector(data: unknown): Injector {\n const injectorTokens: StaticProvider = [{ provide: EDS_DIALOG_COMPONENT_CONFIG, useValue: data }];\n return Injector.create({\n parent: this.injector,\n providers: injectorTokens,\n });\n }\n\n private checkScrollability(): void {\n if (this.dialogBody?.nativeElement) {\n const element = this.dialogBody.nativeElement;\n this.isBodyScrollable.set(element.scrollHeight > element.clientHeight);\n }\n }\n}\n","<div\n class=\"eds-dialog eds-dialog--{{ dialogContainerConfig.variant }} eui-21\"\n [class.eds-dialog--draggable]=\"dialogContainerConfig.isDraggable\"\n [class.eds-dialog--message-box]=\"dialogContainerConfig.isMessageBox\"\n [class.eds-dialog--no-padding]=\"dialogContainerConfig.hasNoBodyPadding\"\n [class.eds-dialog--custom-size]=\"dialogContainerConfig.hasMobileCustomSize\"\n [attr.role]=\"dialogContainerConfig.isMessageBox ? 'alertdialog' : 'dialog'\"\n aria-labelledby=\"dialogContent\"\n [attr.aria-describedby]=\"getContentId()\"\n [attr.aria-modal]=\"true\"\n tabindex=\"-1\"\n attr.data-e2e=\"{{ dialogContainerConfig.e2eAttr }}\"\n cdkDrag\n cdkDragRootElement=\".cdk-overlay-pane\"\n [cdkDragDisabled]=\"!dialogContainerConfig.isDraggable\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture>\n <div class=\"eds-dialog__content\" role=\"document\" id=\"dialogContent\" aria-labelledby=\"headerTitle\">\n <div class=\"eds-dialog__header\" [class.eds-dialog__header--handle-disabled]=\"!dialogContainerConfig.isDraggable\" cdkDragHandle>\n @if (!isHeaderTemplatePortal && !isHeaderComponentPortal) {\n @if (dialogContainerConfig.isMessageBox) {\n <eds-icon-state [color]=\"$any(dialogContainerConfig.variant)\" size=\"xl\" class=\"eds-dialog__header-icon\"/>\n }\n <h2 id=\"headerTitle\" class=\"eds-dialog__header-title\" role=\"heading\" aria-level=\"2\">{{ dialogContainerConfig.title | translate }}</h2>\n\n @if (dialogContainerConfig.hasCloseButton) {\n <div class=\"eds-dialog__header-close-container\">\n <button edsIconButton icon=\"x:core\" (buttonClick)=\"closeDialog()\" rounded [ariaLabel]=\"closeButtonAriaLabel\" class=\"dialog-close-button\"></button>\n </div>\n }\n }\n @if (isHeaderTemplatePortal) {\n <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.header\"></ng-template>\n }\n @if (isHeaderComponentPortal) {\n <ng-template [cdkPortalOutlet]=\"headerComponentPortal\" (attached)=\"portalAttached($event, 'headerComponent')\"></ng-template>\n }\n </div>\n <div\n #dialogBody\n class=\"eds-dialog__body\"\n cdkScrollable\n [style.height]=\"dialogContainerConfig.height\"\n [style.max-height]=\"dialogContainerConfig.height\"\n (scroll)=\"onScroll()\"\n [attr.tabindex]=\"isBodyScrollable() ? '0' : '-1'\">\n @if (!isBodyTemplatePortal && !isBodyComponentPortal) {\n <div\n id=\"containerConfigId\"\n class=\"eds-dialog__body-content\"\n [innerHTML]=\"dialogContainerConfig.content ? (dialogContainerConfigContent | translate) : null\">\n </div>\n }\n @if (isBodyTemplatePortal && !isBodyComponentPortal) {\n <div id=\"bodyTemplatePortalId\" class=\"eds-dialog__body-content\">\n <ng-template [cdkPortalOutlet]=\"getPortalOutlet\"></ng-template>\n </div>\n }\n @if (isBodyComponentPortal) {\n <div id=\"bodyComponentPortalId\" class=\"eds-dialog__body-content\">\n <ng-template [cdkPortalOutlet]=\"bodyComponentPortal\" (attached)=\"portalAttached($event, 'bodyComponent')\"></ng-template>\n </div>\n }\n </div>\n @if (dialogContainerConfig.hasFooter) {\n <div class=\"eds-dialog__footer\">\n @if (!isFooterTemplatePortal && !isFooterComponentPortal) {\n <div class=\"eds-dialog__footer-content\">\n @if (dialogContainerConfig.hasDismissButton) {\n <button\n edsButton\n edsButtonSecondary\n type=\"button\"\n [edsDisabled]=\"dismissButtonDisabled$ | async\"\n class=\"eds-dialog__footer-dismiss-button\"\n [class.eds-dialog__footer-dismiss-button--with-accept-button]=\"dialogContainerConfig.hasAcceptButton\"\n (click)=\"onDismiss()\">\n {{ dialogContainerConfig.dismissLabel | translate }}\n </button>\n }\n @if (dialogContainerConfig.hasAcceptButton) {\n <button\n edsButton\n type=\"button\"\n [edsDisabled]=\"acceptButtonDisabled$ | async\"\n class=\"eds-dialog__footer-accept-button\"\n (click)=\"onAccept()\">\n {{ dialogContainerConfig.acceptLabel | translate }}\n </button>\n }\n </div>\n }\n\n @if (isFooterTemplatePortal) {\n <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.footer\"></ng-template>\n }\n @if (isFooterComponentPortal) {\n <ng-template [cdkPortalOutlet]=\"footerComponentPortal\" (attached)=\"portalAttached($event, 'footerComponent')\"></ng-template>\n }\n </div>\n }\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\n\nimport { EdsDialogContainer } from './eds-dialog-container';\n\nexport class EdsDialogRef implements EdsDialogRefInterface {\n id: string = null;\n order: number = null;\n overlayRef: OverlayRef = null;\n containerRef: ComponentRef<EdsDialogContainer> = null;\n\n constructor(values: EdsDialogRefInterface) {\n Object.assign(this, values);\n }\n}\n\nexport interface EdsDialogRefInterface {\n id: string;\n order: number;\n overlayRef: OverlayRef;\n containerRef: ComponentRef<EdsDialogContainer>;\n}\n","import { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, OnDestroy, StaticProvider, inject } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EdsDialogContainer } from './eds-dialog-container';\nimport { EdsDialogInterface, EdsDialogComponentInstances, EdsDialogConfig } from './eds-dialog-config';\nimport { EdsDialogRef } from './eds-dialog-ref';\nimport { EDS_DIALOG_CONTAINER_CONFIG } from './eds-dialog-token';\nimport { EdsDialogVerticalPosition } from './eds-dialog-config';\n\n/**\n * Service for programmatically creating and managing modal dialog windows.\n * Provides centralized dialog lifecycle management including opening, closing, and tracking multiple dialogs.\n * Built on Angular CDK Overlay for positioning, backdrop, and scroll blocking.\n * Supports custom header, body, and footer components with dependency injection for parent component providers.\n * Manages dialog stack with automatic z-index handling for multiple simultaneous dialogs.\n */\n@Injectable({ providedIn: 'root' })\nexport class EdsDialogService implements OnDestroy {\n private overlay = inject(Overlay);\n private injector = inject(Injector);\n private overlayRef: OverlayRef;\n private openedDialogs$ = new BehaviorSubject<EdsDialogRef[]>([]);\n private destroy$ = new Subject<boolean>();\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.openedDialogs$.next(null);\n }\n\n /**\n * Open a dialog.\n *\n * @param config Configuration applied to the dialog.\n * @param parentInjector The injector of the calling component, used to expose its local providers to the dynamically created component.\n * @returns A dialog ref of type `EdsDialogRef`\n */\n openDialog<HC, HCC, BC, BCC, FC, FCC>(\n config: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {},\n parentInjector?: Injector,\n ): EdsDialogRef {\n const positionStrategy = this.getPositionStrategy(config.verticalPosition);\n const scrollStrategy = this.overlay.scrollStrategies.block();\n const hasClosedOnEscape = config.hasClosedOnEscape;\n const hasCloseButton = config.hasCloseButton;\n const dialogConfig = new EdsDialogConfig({\n ...config,\n hasClosedOnEscape,\n hasCloseButton,\n width: config.isFullScreen ? '98vw' : config.width,\n height: config.isFullScreen ? '97vh' : config.height,\n });\n const dialogId = 'eds-dialog-' + Math.floor(Math.random() * 10000);\n const overlayRef = this.overlay.create({\n backdropClass: ['eds-dialog__backdrop', dialogId + '__backdrop'],\n hasBackdrop: true,\n height: dialogConfig.height,\n width: dialogConfig.width,\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n panelClass: [config.classList, 'eui-21'],\n usePopover: false,\n });\n\n this.overlayRef = overlayRef;\n let openedDialog = new EdsDialogRef({\n id: dialogId,\n order: this.openedDialogs$.value.length + 1,\n overlayRef,\n containerRef: null,\n });\n\n const extendedConfig: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n ...dialogConfig,\n dialogId,\n overlayRef,\n init: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.init?.(instances);\n },\n open: () => {\n config.open?.();\n },\n clickOutside: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.clickOutside?.(instances);\n },\n escape: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.escape?.(instances);\n },\n close: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n if (!config.isHandleCloseOnClose) {\n this.closeDialog(dialogId);\n }\n config.close?.(instances);\n },\n dismiss: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.dismiss?.(instances);\n },\n accept: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.accept?.(instances);\n },\n };\n const containerPortal = new ComponentPortal<EdsDialogContainer>(\n EdsDialogContainer,\n null,\n this.createInjector(extendedConfig, parentInjector),\n );\n const containerRef: ComponentRef<EdsDialogContainer> = openedDialog.overlayRef.attach(containerPortal);\n openedDialog = { ...openedDialog, containerRef };\n\n openedDialog.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (extendedConfig.hasClosedOnClickOutside) {\n config.clickOutside?.(containerRef.instance.componentInstances as EdsDialogComponentInstances<HC, BC, FC>);\n if (!config.isHandleCloseOnClickOutside) {\n containerRef.instance.closeDialog();\n }\n }\n });\n\n if (extendedConfig.hasClosedOnEscape) {\n openedDialog.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe((keyboardEvent) => {\n if (keyboardEvent.key?.toLowerCase() === 'escape') {\n config.escape?.(containerRef.instance.componentInstances as EdsDialogComponentInstances<HC, BC, FC>);\n if (!config.isHandleCloseOnEscape) {\n containerRef.instance.closeDialog();\n }\n }\n });\n }\n\n this.openedDialogs$.next([...this.openedDialogs$.value, openedDialog]);\n\n return openedDialog;\n }\n\n /**\n * Close a dialog.\n *\n * @param dialogId The id of the dialog to close. If not provided the last opened one will be closed.\n */\n closeDialog(dialogId?: string): void {\n if (dialogId) {\n this.openedDialogs$.value.find((o) => o.id === dialogId)?.overlayRef.dispose();\n this.openedDialogs$.next(this.openedDialogs$.value.filter((o) => o.id !== dialogId));\n this.overlayRef =\n this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n } else {\n this.overlayRef?.dispose();\n this.openedDialogs$.next(this.openedDialogs$.value.filter((o, i) => i < this.openedDialogs$.value.length - 1));\n this.overlayRef =\n this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n }\n }\n\n /**\n * Close all dialogs.\n */\n closeAllDialogs(): void {\n this.openedDialogs$.value.forEach((dialog) => {\n dialog.containerRef.instance.dialogContainerConfig.close?.(dialog.containerRef.instance.componentInstances);\n });\n }\n\n /**\n * Returns an Observable with all opened dialogs.\n */\n getOpenedDialogs(): Observable<EdsDialogRef[]> {\n return this.openedDialogs$;\n }\n\n /**\n * Returns a specific dialog by id.\n */\n getDialog(dialogId: string): EdsDialogRef {\n return this.openedDialogs$.value.find((o) => o.id === dialogId);\n }\n\n /**\n * Disable the accept button of the last opened dialog's default footer.\n */\n disableAcceptButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.disableAcceptButton();\n }\n\n /**\n * Enable the accept button of the last opened dialog's default footer.\n */\n enableAcceptButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.enableAcceptButton();\n }\n\n /**\n * Disable the dismiss button of the last opened dialog's default footer.\n */\n disableDismissButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.disableDismissButton();\n }\n\n /**\n * Enable the dismiss button of the last opened dialog's default footer.\n */\n enableDismissButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.enableDismissButton();\n }\n\n private createInjector(data: unknown, parentInjector?: Injector): Injector {\n const injectorTokens: StaticProvider = [{ provide: EDS_DIALOG_CONTAINER_CONFIG, useValue: data }];\n return Injector.create({\n parent: parentInjector ? parentInjector : this.injector,\n providers: injectorTokens,\n });\n }\n\n private getPositionStrategy(verticalPosition: EdsDialogVerticalPosition): GlobalPositionStrategy {\n const positionStrategy = this.overlay.position().global().centerHorizontally();\n if (verticalPosition === 'top') {\n positionStrategy.top();\n } else if (verticalPosition === 'bottom') {\n positionStrategy.bottom();\n } else {\n positionStrategy.centerVertically();\n }\n return positionStrategy;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'eds-dialog-header',\n})\nexport class EdsDialogHeader {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'eds-dialog-footer',\n})\nexport class EdsDialogFooter {}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n booleanAttribute,\n OnChanges,\n SimpleChanges,\n inject,\n output,\n input,\n viewChild,\n contentChild,\n forwardRef,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\n\nimport { EdsDialogService } from './eds-dialog.service';\nimport { EdsDialogInterface } from './eds-dialog-config';\nimport { EdsDialogRef } from './eds-dialog-ref';\nimport { EdsDialogVerticalPosition } from './eds-dialog-config';\nimport { EdsDialogHeader } from './eds-dialog-header';\nimport { EdsDialogFooter } from './eds-dialog-footer';\n\n/**\n * A modal dialog component that displays content in an overlay above the main application.\n * Supports customizable headers, footers, action buttons, and various interaction behaviors.\n * Can be opened programmatically via the `openDialog` method or controlled declaratively.\n * Integrates with `EdsDialogService` for centralized dialog management.\n *\n * @usageNotes\n * ### Using Dialog Service\n * ```typescript\n * private edsDialogService = inject(EdsDialogService);\n *\n * openDialog(): void {\n * const config = new EdsDialogConfig({\n * title: 'Confirm Action',\n * content: 'Are you sure you want to proceed?',\n * accept: () => console.log('Accepted'),\n * dismiss: () => console.log('Dismissed')\n * });\n * this.edsDialogService.openDialog(config);\n * }\n * ```\n *\n * ### Template Reference\n * ```html\n * <button edsButton (click)=\"dialog.openDialog()\" aria-haspopup=\"dialog\">\n * Open Dialog\n * </button>\n *\n * <eds-dialog #dialog\n * [title]=\"'Confirmation'\"\n * [width]=\"'600px'\"\n * (accept)=\"onAccept()\"\n * (dismiss)=\"onDismiss()\">\n * <p>Dialog content goes here</p>\n * </eds-dialog>\n * ```\n *\n * ### Custom Header and Footer\n * ```html\n * <eds-dialog #dialog [hasFooter]=\"false\">\n * <eds-dialog-header>\n * <h2>Custom Header</h2>\n * </eds-dialog-header>\n *\n * <p>Main content</p>\n *\n * <eds-dialog-footer>\n * <button edsButton (click)=\"dialog.closeDialog()\">Close</button>\n * </eds-dialog-footer>\n * </eds-dialog>\n * ```\n */\n@Component({\n selector: 'eds-dialog',\n templateUrl: './eds-dialog.html',\n styleUrl: './eds-dialog.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsNeutral',\n 'edsSuccess',\n 'edsInfo',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[attr.data-e2e]': 'e2eAttr()',\n },\n})\nexport class EdsDialog implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * End-to-end testing attribute identifier.\n * @default 'eds-dialog'\n */\n readonly e2eAttr = input('eds-dialog');\n\n /**\n * Title text displayed in the dialog header.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Translation key or label text for the accept button.\n * @default 'eui.OK'\n */\n readonly acceptLabel = input('eui.OK');\n\n /**\n * Translation key or label text for the dismiss button.\n * @default 'eui.CANCEL'\n */\n readonly dismissLabel = input('eui.CANCEL');\n\n /**\n * Vertical alignment position of the dialog within the viewport.\n */\n readonly verticalPosition = input<EdsDialogVerticalPosition>(undefined);\n\n /**\n * Width of the dialog. Accepts CSS units (px, %, vw, etc.).\n * @default '50%'\n */\n readonly width = input('50%');\n\n /**\n * Height of the dialog. Accepts CSS units (px, %, vh, auto, etc.).\n * @default 'auto'\n */\n readonly height = input('auto');\n\n /**\n * Enables fullscreen mode (width: 98vw, height: 97vh).\n * @default false\n */\n readonly isFullScreen = input(false, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the close (X) button in the dialog header.\n * @default true\n */\n readonly hasCloseButton = input(true, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the accept button in the dialog footer.\n * @default true\n */\n readonly hasAcceptButton = input(true, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the dismiss button in the dialog footer.\n * @default true\n */\n readonly hasDismissButton = input(true, { transform: booleanAttribute });\n\n /**\n * Enables custom sizing behavior on mobile devices.\n * @default false\n */\n readonly hasMobileCustomSize = input(false, { transform: booleanAttribute });\n\n /**\n * Enables automatic dialog closure when clicking outside the dialog boundaries.\n * @default false\n */\n readonly hasClosedOnClickOutside = input(false, { transform: booleanAttribute });\n\n /**\n * Enables automatic dialog closure when pressing the Escape key.\n * @default true\n */\n readonly hasClosedOnEscape = input(true, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when dismiss button is clicked.\n * @default false\n */\n readonly isHandleCloseOnDismiss = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when close (X) button is clicked.\n * @default false\n */\n readonly isHandleCloseOnClose = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when accept button is clicked.\n * @default false\n */\n readonly isHandleCloseOnAccept = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when clicking outside the dialog.\n * @default false\n */\n readonly isHandleCloseOnClickOutside = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when pressing Escape key.\n * @default false\n */\n readonly isHandleCloseOnEscape = input(false, { transform: booleanAttribute });\n\n /**\n * Enables message box mode (disables Escape key, hides close button).\n * @default false\n */\n readonly isMessageBox = input(false, { transform: booleanAttribute });\n\n /**\n * Enables drag-and-drop functionality.\n * @default false\n */\n readonly isDraggable = input(false, { transform: booleanAttribute });\n\n /**\n * Removes default padding from the dialog body content area.\n * @default false\n */\n readonly hasNoBodyPadding = input(false, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the footer section.\n * @default true\n */\n readonly hasFooter = input(true, { transform: booleanAttribute });\n\n /**\n * Additional CSS class names to apply to the dialog overlay panel.\n * @default null\n */\n readonly classList = input<string>(null);\n\n /**\n * Emitted when user clicks outside the dialog boundaries.\n */\n readonly clickOutside = output();\n\n /**\n * Emitted when user presses the Escape key while dialog has focus.\n */\n readonly escape = output();\n\n /**\n * Emitted immediately after the dialog opens.\n */\n readonly dialogOpen = output();\n\n /**\n * Emitted when the close (X) button is clicked.\n */\n readonly dialogClose = output();\n\n /**\n * Emitted when the dismiss button is clicked.\n */\n readonly dismiss = output();\n\n /**\n * Emitted when the accept button is clicked.\n */\n readonly accept = output();\n\n isOpen$ = new BehaviorSubject<boolean>(false);\n\n private readonly templateRefHeader = viewChild<TemplateRef<unknown>>('templateRefHeader');\n private readonly templateRefContent = viewChild<TemplateRef<unknown>>('templateRefContent');\n private readonly templateRefFooter = viewChild<TemplateRef<unknown>>('templateRefFooter');\n\n private readonly edsDialogHeaderDirective = contentChild(forwardRef(() => EdsDialogHeader));\n private readonly edsDialogFooterDirective = contentChild(forwardRef(() => EdsDialogFooter));\n\n private colorDirective = inject(EdsColorDirective);\n private dialog: EdsDialogRef;\n private templatePortalHeader: TemplatePortal<unknown>;\n private templatePortalContent: TemplatePortal<unknown>;\n private templatePortalFooter: TemplatePortal<unknown>;\n private destroy$ = new Subject<boolean>();\n private viewContainerRef = inject(ViewContainerRef);\n private edsDialogService = inject(EdsDialogService);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['title'] && this.dialog && this.edsDialogService.getDialog(this.dialog.id)) {\n const newTitle = changes['title'].currentValue;\n this.edsDialogService.getDialog(this.dialog.id).containerRef.instance.dialogContainerConfig.title = newTitle;\n this.edsDialogService.getDialog(this.dialog.id).containerRef.instance.cd.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit(): void {\n // Fullscreen and messageBox adjustments are handled in config building\n }\n\n ngAfterViewInit(): void {\n if (this.edsDialogHeaderDirective()) {\n this.templatePortalHeader = new TemplatePortal(this.templateRefHeader(), this.viewContainerRef);\n }\n\n this.templatePortalContent = new TemplatePortal(this.templateRefContent(), this.viewContainerRef);\n\n if (this.edsDialogFooterDirective()) {\n this.templatePortalFooter = new TemplatePortal(this.templateRefFooter(), this.viewContainerRef);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Whether the dialog is currently open.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Open the dialog.\n */\n openDialog(): EdsDialogRef {\n const resolvedWidth = this.isFullScreen() ? '98vw' : this.width();\n const resolvedHeight = this.isFullScreen() ? '97vh' : this.height();\n const resolvedHasClosedOnEscape = this.isMessageBox() ? false : this.hasClosedOnEscape();\n const resolvedHasCloseButton = this.isMessageBox() ? false : this.hasCloseButton();\n\n const config: EdsDialogInterface = {\n e2eAttr: this.e2eAttr(),\n title: this.title(),\n width: resolvedWidth,\n height: resolvedHeight,\n isFullScreen: this.isFullScreen(),\n variant: this.colorDirective.resolvedColor(),\n acceptLabel: this.acceptLabel(),\n dismissLabel: this.dismissLabel(),\n hasCloseButton: resolvedHasCloseButton,\n hasAcceptButton: this.hasAcceptButton(),\n hasDismissButton: this.hasDismissButton(),\n hasMobileCustomSize: this.hasMobileCustomSize(),\n hasClosedOnClickOutside: this.hasClosedOnClickOutside(),\n hasClosedOnEscape: resolvedHasClosedOnEscape,\n isHandleCloseOnDismiss: this.isHandleCloseOnDismiss(),\n isHandleCloseOnClose: this.isHandleCloseOnClose(),\n isHandleCloseOnAccept: this.isHandleCloseOnAccept(),\n isHandleCloseOnClickOutside: this.isHandleCloseOnClickOutside(),\n isHandleCloseOnEscape: this.isHandleCloseOnEscape(),\n isMessageBox: this.isMessageBox(),\n isDraggable: this.isDraggable(),\n hasNoBodyPadding: this.hasNoBodyPadding(),\n hasFooter: this.hasFooter(),\n verticalPosition: this.verticalPosition(),\n header: this.templatePortalHeader,\n content: this.templatePortalContent,\n footer: this.templatePortalFooter,\n classList: this.classList(),\n clickOutside: () => {\n if (this.hasClosedOnClickOutside() && !this.isHandleCloseOnClickOutside()) {\n this.isOpen$.next(false);\n }\n this.clickOutside.emit();\n },\n escape: () => {\n if (resolvedHasClosedOnEscape && !this.isHandleCloseOnEscape()) {\n this.isOpen$.next(false);\n }\n this.escape.emit();\n },\n open: () => {\n this.dialogOpen.emit();\n },\n close: () => {\n if (!this.isHandleCloseOnClose()) {\n this.isOpen$.next(false);\n }\n this.dialogClose.emit();\n },\n dismiss: () => {\n if (!this.isHandleCloseOnDismiss()) {\n this.isOpen$.next(false);\n }\n this.dismiss.emit();\n },\n accept: () => {\n if (!this.isHandleCloseOnAccept()) {\n this.isOpen$.next(false);\n }\n this.accept.emit();\n },\n };\n\n this.isOpen$.next(true);\n this.dialog = this.edsDialogService.openDialog(config);\n\n return this.dialog;\n }\n\n /**\n * Close the dialog.\n */\n closeDialog(): void {\n this.isOpen$.next(false);\n this.edsDialogService.closeDialog();\n }\n\n /**\n * Disable the accept button.\n */\n disableAcceptButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.disableAcceptButton();\n }\n\n /**\n * Enable the accept button.\n */\n enableAcceptButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.enableAcceptButton();\n }\n\n /**\n * Disable the dismiss button.\n */\n disableDismissButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.disableDismissButton();\n }\n\n /**\n * Enable the dismiss button.\n */\n enableDismissButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.enableDismissButton();\n }\n\n /**\n * Scroll to the bottom of the content.\n */\n scrollToBottom(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.scrollToBottom();\n }\n\n /**\n * Scroll to the top of the content.\n */\n scrollToTop(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.scrollToTop();\n }\n}\n","<ng-template #templateRefHeader>\n <ng-content select=\"eds-dialog-header\" />\n</ng-template>\n<ng-template #templateRefContent>\n <ng-content />\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eds-dialog-footer\" />\n</ng-template>\n","import { EdsDialog } from './eds-dialog';\nimport { EdsDialogHeader } from './eds-dialog-header';\nimport { EdsDialogFooter } from './eds-dialog-footer';\nimport { EdsDialogContainer } from './eds-dialog-container';\n\nexport { EdsDialog } from './eds-dialog';\nexport { EdsDialogHeader } from './eds-dialog-header';\nexport { EdsDialogFooter } from './eds-dialog-footer';\nexport { EdsDialogContainer } from './eds-dialog-container';\nexport { EdsDialogService } from './eds-dialog.service';\nexport { EdsDialogConfig, EdsDialogInterface, EdsDialogComponentInstances, EdsDialogVerticalPosition } from './eds-dialog-config';\nexport { EdsDialogRef, EdsDialogRefInterface } from './eds-dialog-ref';\nexport { EDS_DIALOG_CONTAINER_CONFIG, EDS_DIALOG_COMPONENT_CONFIG } from './eds-dialog-token';\n\n/** Convenience array for importing all eds-dialog components. */\nexport const EDS_DIALOG = [\n EdsDialog,\n EdsDialogHeader,\n EdsDialogFooter,\n EdsDialogContainer,\n] as const;\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-eds-eds-dialog.mjs","sources":["../../eds-dialog/eds-dialog-token.ts","../../eds-dialog/eds-dialog-config.ts","../../eds-dialog/eds-dialog-container.ts","../../eds-dialog/eds-dialog-container.html","../../eds-dialog/eds-dialog-ref.ts","../../eds-dialog/eds-dialog.service.ts","../../eds-dialog/eds-dialog-header.ts","../../eds-dialog/eds-dialog-footer.ts","../../eds-dialog/eds-dialog.ts","../../eds-dialog/eds-dialog.html","../../eds-dialog/index.ts","../../eds-dialog/eui-eds-eds-dialog.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\n\nimport { EdsDialogInterface } from './eds-dialog-config';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_DIALOG_CONTAINER_CONFIG = new InjectionToken<EdsDialogInterface<any, any, any, any, any, any>>('EDS_DIALOG_CONTAINER_CONFIG');\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const EDS_DIALOG_COMPONENT_CONFIG = new InjectionToken<any>('EDS_DIALOG_COMPONENT_CONFIG');\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentType, TemplatePortal } from '@angular/cdk/portal';\n\nexport type EdsDialogVerticalPosition = 'top' | 'center' | 'bottom';\n\nexport class EdsDialogConfig<HC = unknown, HCC = unknown, BC = unknown, BCC = unknown, FC = unknown, FCC = unknown>\n implements EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> {\n e2eAttr = 'eds-dialog';\n acceptLabel = 'eui.OK';\n dismissLabel = 'eui.CANCEL';\n width = '50%';\n height = 'auto';\n isFullScreen = false;\n hasCloseButton = true;\n hasAcceptButton = true;\n hasDismissButton = true;\n hasMobileCustomSize = false;\n hasClosedOnClickOutside = false;\n hasClosedOnEscape = true;\n isHandleCloseOnDismiss = false;\n isHandleCloseOnClose = false;\n isHandleCloseOnAccept = false;\n isHandleCloseOnClickOutside = false;\n isHandleCloseOnEscape = false;\n hasFooter = true;\n isMessageBox = false;\n hasNoBodyPadding = false;\n isDraggable = false;\n classList = null;\n\n constructor(values: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC>) {\n Object.assign(this, values);\n }\n}\n\nexport interface EdsDialogInterface<HC = unknown, HCC = unknown, BC = unknown, BCC = unknown, FC = unknown, FCC = unknown> {\n dialogId?: string;\n e2eAttr?: string;\n title?: string;\n variant?: 'primary' | 'info' | 'success' | 'warning' | 'critical' | 'neutral' | string;\n acceptLabel?: string;\n dismissLabel?: string;\n width?: string;\n height?: string;\n isFullScreen?: boolean;\n headerComponent?: {\n component: ComponentType<HC>;\n config?: HCC;\n };\n bodyComponent?: {\n component: ComponentType<BC>;\n config?: BCC;\n };\n footerComponent?: {\n component: ComponentType<FC>;\n config?: FCC;\n };\n header?: TemplatePortal;\n content?: TemplatePortal | string | null;\n footer?: TemplatePortal;\n hasCloseButton?: boolean;\n hasAcceptButton?: boolean;\n hasDismissButton?: boolean;\n hasMobileCustomSize?: boolean;\n hasClosedOnClickOutside?: boolean;\n hasClosedOnEscape?: boolean;\n isHandleCloseOnDismiss?: boolean;\n isHandleCloseOnClose?: boolean;\n isHandleCloseOnAccept?: boolean;\n isHandleCloseOnClickOutside?: boolean;\n isHandleCloseOnEscape?: boolean;\n isDraggable?: boolean;\n hasNoBodyPadding?: boolean;\n hasFooter?: boolean;\n isMessageBox?: boolean;\n verticalPosition?: EdsDialogVerticalPosition;\n classList?: string;\n\n overlayRef?: OverlayRef;\n\n open?: () => void;\n init?: (instances: EdsDialogComponentInstances<HC, BC, FC>) => void;\n clickOutside?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n escape?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n close?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n dismiss?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n accept?: (instances?: EdsDialogComponentInstances<HC, BC, FC>) => void;\n}\n\nexport class EdsDialogComponentInstances<HC, BC, FC> {\n headerComponent: HC = null;\n bodyComponent: BC = null;\n footerComponent: FC = null;\n}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n OnInit,\n ComponentRef,\n inject,\n Injector,\n StaticProvider,\n OnDestroy,\n ChangeDetectorRef,\n ViewChild,\n ElementRef,\n AfterViewInit,\n signal,\n} from '@angular/core';\nimport {\n CdkPortalOutletAttachedRef,\n ComponentPortal,\n ComponentType,\n PortalModule,\n TemplatePortal,\n} from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DragDropModule } from '@angular/cdk/drag-drop';\nimport { CdkScrollableModule } from '@angular/cdk/scrolling';\nimport { AsyncPipe } from '@angular/common';\nimport { TranslatePipe } from '@ngx-translate/core';\n\nimport { EDS_BUTTON } from '@eui/eds/eds-button';\nimport { EDS_ICON_BUTTON } from '@eui/eds/eds-icon-button';\nimport { EDS_ICON_STATE } from '@eui/eds/eds-icon-state';\n\nimport { EDS_DIALOG_CONTAINER_CONFIG, EDS_DIALOG_COMPONENT_CONFIG } from './eds-dialog-token';\nimport { EdsDialogInterface, EdsDialogComponentInstances } from './eds-dialog-config';\n\n/**\n * Container component that orchestrates the rendering and lifecycle of dialog content.\n * Manages three distinct sections (header, body, footer) that can be rendered as either\n * template portals or component portals. Handles dialog actions (accept/dismiss), button\n * state management, and accessibility attributes. Instantiated by the dialog service —\n * should not be used directly in application code.\n */\n@Component({\n selector: 'eds-dialog-container',\n templateUrl: './eds-dialog-container.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n styleUrl: './eds-dialog.scss',\n encapsulation: ViewEncapsulation.None,\n imports: [\n AsyncPipe,\n TranslatePipe,\n PortalModule,\n A11yModule,\n DragDropModule,\n CdkScrollableModule,\n ...EDS_BUTTON,\n ...EDS_ICON_BUTTON,\n ...EDS_ICON_STATE,\n ],\n host: {\n class: 'eds-dialog-container',\n },\n})\nexport class EdsDialogContainer implements OnInit, OnDestroy, AfterViewInit {\n cd = inject(ChangeDetectorRef);\n dialogContainerConfig = inject<EdsDialogInterface>(EDS_DIALOG_CONTAINER_CONFIG);\n\n isHeaderTemplatePortal = false;\n isBodyTemplatePortal = false;\n isFooterTemplatePortal = false;\n\n isHeaderComponentPortal = false;\n isBodyComponentPortal = false;\n isFooterComponentPortal = false;\n\n headerComponentPortal: ComponentPortal<unknown>;\n bodyComponentPortal: ComponentPortal<unknown>;\n footerComponentPortal: ComponentPortal<unknown>;\n\n componentInstances = new EdsDialogComponentInstances<unknown, unknown, unknown>();\n acceptButtonDisabled$ = new BehaviorSubject<boolean>(false);\n dismissButtonDisabled$ = new BehaviorSubject<boolean>(false);\n\n @ViewChild('dialogBody', { read: ElementRef }) dialogBody: ElementRef<HTMLElement>;\n\n closeButtonAriaLabel = 'Close dialog';\n\n protected isBodyScrollable = signal(false);\n private destroy$ = new Subject<boolean>();\n private injector = inject(Injector);\n\n ngOnInit(): void {\n if (this.dialogContainerConfig.header instanceof TemplatePortal) {\n this.isHeaderTemplatePortal = true;\n }\n if (this.dialogContainerConfig.content instanceof TemplatePortal) {\n this.isBodyTemplatePortal = true;\n }\n if (this.dialogContainerConfig.footer instanceof TemplatePortal) {\n this.isFooterTemplatePortal = true;\n }\n\n if (this.dialogContainerConfig.headerComponent?.component) {\n this.isHeaderComponentPortal = true;\n this.headerComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.headerComponent.component,\n this.dialogContainerConfig.headerComponent.config,\n );\n }\n if (this.dialogContainerConfig.bodyComponent?.component) {\n this.isBodyComponentPortal = true;\n this.bodyComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.bodyComponent.component,\n this.dialogContainerConfig.bodyComponent.config,\n );\n }\n if (this.dialogContainerConfig.footerComponent?.component) {\n this.isFooterComponentPortal = true;\n this.footerComponentPortal = this.createComponentPortal(\n this.dialogContainerConfig.footerComponent.component,\n this.dialogContainerConfig.footerComponent.config,\n );\n }\n\n this.dialogContainerConfig.open?.();\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n ngAfterViewInit(): void {\n this.checkScrollability();\n }\n\n get getPortalOutlet(): TemplatePortal | null {\n return this.dialogContainerConfig.content as TemplatePortal;\n }\n\n get dialogContainerConfigContent(): string {\n return this.dialogContainerConfig.content as string;\n }\n\n portalAttached(\n attachedRef: CdkPortalOutletAttachedRef,\n component: 'headerComponent' | 'bodyComponent' | 'footerComponent',\n ): void {\n const componentRef = attachedRef as ComponentRef<unknown>;\n\n (componentRef.instance as Record<string, unknown>)['overlayRef'] = this.dialogContainerConfig.overlayRef;\n\n this.componentInstances = {\n ...this.componentInstances,\n [component]: componentRef.instance,\n };\n\n this.dialogContainerConfig.init?.(this.componentInstances);\n\n const configSection = this.dialogContainerConfig[component] as { config?: Record<string, unknown> };\n if (configSection?.config) {\n Object.keys(configSection.config).forEach((c) => {\n if (typeof configSection.config[c] === 'function') {\n const instance = componentRef.instance as Record<string, unknown>;\n if (instance[c] && typeof instance[c] !== 'function') {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n (instance[c] as any).pipe(takeUntil(this.destroy$)).subscribe((args: unknown) => {\n (configSection.config[c] as (...a: unknown[]) => unknown).apply(instance[c], [args]);\n });\n }\n } else {\n (componentRef.instance as Record<string, unknown>)[c] = configSection.config[c];\n }\n });\n }\n }\n\n closeDialog(): void {\n this.dialogContainerConfig.close?.(this.componentInstances);\n }\n\n onDismiss(): void {\n this.dialogContainerConfig.dismiss?.(this.componentInstances);\n if (!this.dialogContainerConfig.isHandleCloseOnDismiss) {\n this.closeDialog();\n }\n }\n\n onAccept(): void {\n this.dialogContainerConfig.accept?.(this.componentInstances);\n if (!this.dialogContainerConfig.isHandleCloseOnAccept) {\n this.closeDialog();\n }\n }\n\n /**\n * Returns the id of the body content for aria-describedby.\n */\n getContentId(): string {\n if (!this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n return 'containerConfigId';\n } else if (this.isBodyTemplatePortal && !this.isBodyComponentPortal) {\n return 'bodyTemplatePortalId';\n } else {\n return 'bodyComponentPortalId';\n }\n }\n\n disableAcceptButton(): void {\n this.acceptButtonDisabled$.next(true);\n }\n\n enableAcceptButton(): void {\n this.acceptButtonDisabled$.next(false);\n }\n\n disableDismissButton(): void {\n this.dismissButtonDisabled$.next(true);\n }\n\n enableDismissButton(): void {\n this.dismissButtonDisabled$.next(false);\n }\n\n onScroll(): void {\n this.cd.detectChanges();\n }\n\n scrollToBottom(): void {\n const el = document.querySelector('.eds-dialog__body');\n if (el) {\n el.scrollTo({ top: el.scrollHeight, behavior: 'smooth' });\n }\n }\n\n scrollToTop(): void {\n const el = document.querySelector('.eds-dialog__body');\n if (el) {\n el.scrollTo({ top: 0, behavior: 'smooth' });\n }\n }\n\n private createComponentPortal(component: ComponentType<unknown>, config: unknown): ComponentPortal<unknown> {\n const extendedConfig = { ...(config as object), id: this.dialogContainerConfig.dialogId, overlayRef: this.dialogContainerConfig.overlayRef };\n return new ComponentPortal(component, null, this.createInjector(extendedConfig));\n }\n\n private createInjector(data: unknown): Injector {\n const injectorTokens: StaticProvider = [{ provide: EDS_DIALOG_COMPONENT_CONFIG, useValue: data }];\n return Injector.create({\n parent: this.injector,\n providers: injectorTokens,\n });\n }\n\n private checkScrollability(): void {\n if (this.dialogBody?.nativeElement) {\n const element = this.dialogBody.nativeElement;\n this.isBodyScrollable.set(element.scrollHeight > element.clientHeight);\n }\n }\n}\n","<div\n class=\"eds-dialog eds-dialog--{{ dialogContainerConfig.variant }} eui-21\"\n [class.eds-dialog--draggable]=\"dialogContainerConfig.isDraggable\"\n [class.eds-dialog--message-box]=\"dialogContainerConfig.isMessageBox\"\n [class.eds-dialog--no-padding]=\"dialogContainerConfig.hasNoBodyPadding\"\n [class.eds-dialog--custom-size]=\"dialogContainerConfig.hasMobileCustomSize\"\n [attr.role]=\"dialogContainerConfig.isMessageBox ? 'alertdialog' : 'dialog'\"\n aria-labelledby=\"dialogContent\"\n [attr.aria-describedby]=\"getContentId()\"\n [attr.aria-modal]=\"true\"\n tabindex=\"-1\"\n attr.data-e2e=\"{{ dialogContainerConfig.e2eAttr }}\"\n cdkDrag\n cdkDragRootElement=\".cdk-overlay-pane\"\n [cdkDragDisabled]=\"!dialogContainerConfig.isDraggable\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture>\n <div class=\"eds-dialog__content\" role=\"document\" id=\"dialogContent\" aria-labelledby=\"headerTitle\">\n <div class=\"eds-dialog__header\" [class.eds-dialog__header--handle-disabled]=\"!dialogContainerConfig.isDraggable\" cdkDragHandle>\n @if (!isHeaderTemplatePortal && !isHeaderComponentPortal) {\n @if (dialogContainerConfig.isMessageBox) {\n <eds-icon-state [color]=\"$any(dialogContainerConfig.variant)\" size=\"xl\" class=\"eds-dialog__header-icon\"/>\n }\n <h2 id=\"headerTitle\" class=\"eds-dialog__header-title\" role=\"heading\" aria-level=\"2\">{{ dialogContainerConfig.title | translate }}</h2>\n\n @if (dialogContainerConfig.hasCloseButton) {\n <div class=\"eds-dialog__header-close-container\">\n <button edsIconButton icon=\"x:core\" (buttonClick)=\"closeDialog()\" rounded [ariaLabel]=\"closeButtonAriaLabel\" class=\"dialog-close-button\"></button>\n </div>\n }\n }\n @if (isHeaderTemplatePortal) {\n <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.header\"></ng-template>\n }\n @if (isHeaderComponentPortal) {\n <ng-template [cdkPortalOutlet]=\"headerComponentPortal\" (attached)=\"portalAttached($event, 'headerComponent')\"></ng-template>\n }\n </div>\n <div\n #dialogBody\n class=\"eds-dialog__body\"\n cdkScrollable\n [style.height]=\"dialogContainerConfig.height\"\n [style.max-height]=\"dialogContainerConfig.height\"\n (scroll)=\"onScroll()\"\n [attr.tabindex]=\"isBodyScrollable() ? '0' : '-1'\">\n @if (!isBodyTemplatePortal && !isBodyComponentPortal) {\n <div\n id=\"containerConfigId\"\n class=\"eds-dialog__body-content\"\n [innerHTML]=\"dialogContainerConfig.content ? (dialogContainerConfigContent | translate) : null\">\n </div>\n }\n @if (isBodyTemplatePortal && !isBodyComponentPortal) {\n <div id=\"bodyTemplatePortalId\" class=\"eds-dialog__body-content\">\n <ng-template [cdkPortalOutlet]=\"getPortalOutlet\"></ng-template>\n </div>\n }\n @if (isBodyComponentPortal) {\n <div id=\"bodyComponentPortalId\" class=\"eds-dialog__body-content\">\n <ng-template [cdkPortalOutlet]=\"bodyComponentPortal\" (attached)=\"portalAttached($event, 'bodyComponent')\"></ng-template>\n </div>\n }\n </div>\n @if (dialogContainerConfig.hasFooter) {\n <div class=\"eds-dialog__footer\">\n @if (!isFooterTemplatePortal && !isFooterComponentPortal) {\n <div class=\"eds-dialog__footer-content\">\n @if (dialogContainerConfig.hasDismissButton) {\n <button edsButton variant=\"secondary\" type=\"button\" [disabled]=\"dismissButtonDisabled$ | async\" class=\"eds-dialog__footer-dismiss-button\" [class.eds-dialog__footer-dismiss-button--with-accept-button]=\"dialogContainerConfig.hasAcceptButton\" (click)=\"onDismiss()\">\n {{ dialogContainerConfig.dismissLabel | translate }}\n </button>\n }\n @if (dialogContainerConfig.hasAcceptButton) {\n <button edsButton type=\"button\" [disabled]=\"acceptButtonDisabled$ | async\" class=\"eds-dialog__footer-accept-button\" (click)=\"onAccept()\">\n {{ dialogContainerConfig.acceptLabel | translate }}\n </button>\n }\n </div>\n }\n\n @if (isFooterTemplatePortal) {\n <ng-template [cdkPortalOutlet]=\"dialogContainerConfig.footer\"></ng-template>\n }\n @if (isFooterComponentPortal) {\n <ng-template [cdkPortalOutlet]=\"footerComponentPortal\" (attached)=\"portalAttached($event, 'footerComponent')\"></ng-template>\n }\n </div>\n }\n </div>\n</div>\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentRef } from '@angular/core';\n\nimport { EdsDialogContainer } from './eds-dialog-container';\n\nexport class EdsDialogRef implements EdsDialogRefInterface {\n id: string = null;\n order: number = null;\n overlayRef: OverlayRef = null;\n containerRef: ComponentRef<EdsDialogContainer> = null;\n\n constructor(values: EdsDialogRefInterface) {\n Object.assign(this, values);\n }\n}\n\nexport interface EdsDialogRefInterface {\n id: string;\n order: number;\n overlayRef: OverlayRef;\n containerRef: ComponentRef<EdsDialogContainer>;\n}\n","import { GlobalPositionStrategy, Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, Injectable, Injector, OnDestroy, StaticProvider, inject } from '@angular/core';\nimport { Subject, BehaviorSubject, Observable } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { EdsDialogContainer } from './eds-dialog-container';\nimport { EdsDialogInterface, EdsDialogComponentInstances, EdsDialogConfig } from './eds-dialog-config';\nimport { EdsDialogRef } from './eds-dialog-ref';\nimport { EDS_DIALOG_CONTAINER_CONFIG } from './eds-dialog-token';\nimport { EdsDialogVerticalPosition } from './eds-dialog-config';\n\n/**\n * Service for programmatically creating and managing modal dialog windows.\n * Provides centralized dialog lifecycle management including opening, closing, and tracking multiple dialogs.\n * Built on Angular CDK Overlay for positioning, backdrop, and scroll blocking.\n * Supports custom header, body, and footer components with dependency injection for parent component providers.\n * Manages dialog stack with automatic z-index handling for multiple simultaneous dialogs.\n */\n@Injectable({ providedIn: 'root' })\nexport class EdsDialogService implements OnDestroy {\n private overlay = inject(Overlay);\n private injector = inject(Injector);\n private overlayRef: OverlayRef;\n private openedDialogs$ = new BehaviorSubject<EdsDialogRef[]>([]);\n private destroy$ = new Subject<boolean>();\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n this.openedDialogs$.next(null);\n }\n\n /**\n * Open a dialog.\n *\n * @param config Configuration applied to the dialog.\n * @param parentInjector The injector of the calling component, used to expose its local providers to the dynamically created component.\n * @returns A dialog ref of type `EdsDialogRef`\n */\n openDialog<HC, HCC, BC, BCC, FC, FCC>(\n config: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {},\n parentInjector?: Injector,\n ): EdsDialogRef {\n const positionStrategy = this.getPositionStrategy(config.verticalPosition);\n const scrollStrategy = this.overlay.scrollStrategies.block();\n const hasClosedOnEscape = config.hasClosedOnEscape;\n const hasCloseButton = config.hasCloseButton;\n const dialogConfig = new EdsDialogConfig({\n ...config,\n hasClosedOnEscape,\n hasCloseButton,\n width: config.isFullScreen ? '98vw' : config.width,\n height: config.isFullScreen ? '97vh' : config.height,\n });\n const dialogId = 'eds-dialog-' + Math.floor(Math.random() * 10000);\n const overlayRef = this.overlay.create({\n backdropClass: ['eds-dialog__backdrop', dialogId + '__backdrop'],\n hasBackdrop: true,\n height: dialogConfig.height,\n width: dialogConfig.width,\n positionStrategy,\n scrollStrategy,\n disposeOnNavigation: true,\n panelClass: [config.classList, 'eui-21'],\n usePopover: false,\n });\n\n this.overlayRef = overlayRef;\n let openedDialog = new EdsDialogRef({\n id: dialogId,\n order: this.openedDialogs$.value.length + 1,\n overlayRef,\n containerRef: null,\n });\n\n const extendedConfig: EdsDialogInterface<HC, HCC, BC, BCC, FC, FCC> = {\n ...dialogConfig,\n dialogId,\n overlayRef,\n init: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.init?.(instances);\n },\n open: () => {\n config.open?.();\n },\n clickOutside: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.clickOutside?.(instances);\n },\n escape: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.escape?.(instances);\n },\n close: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n if (!config.isHandleCloseOnClose) {\n this.closeDialog(dialogId);\n }\n config.close?.(instances);\n },\n dismiss: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.dismiss?.(instances);\n },\n accept: (instances: EdsDialogComponentInstances<HC, BC, FC>) => {\n config.accept?.(instances);\n },\n };\n const containerPortal = new ComponentPortal<EdsDialogContainer>(\n EdsDialogContainer,\n null,\n this.createInjector(extendedConfig, parentInjector),\n );\n const containerRef: ComponentRef<EdsDialogContainer> = openedDialog.overlayRef.attach(containerPortal);\n openedDialog = { ...openedDialog, containerRef };\n\n openedDialog.overlayRef\n .backdropClick()\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => {\n if (extendedConfig.hasClosedOnClickOutside) {\n config.clickOutside?.(containerRef.instance.componentInstances as EdsDialogComponentInstances<HC, BC, FC>);\n if (!config.isHandleCloseOnClickOutside) {\n containerRef.instance.closeDialog();\n }\n }\n });\n\n if (extendedConfig.hasClosedOnEscape) {\n openedDialog.overlayRef\n .keydownEvents()\n .pipe(takeUntil(this.destroy$))\n .subscribe((keyboardEvent) => {\n if (keyboardEvent.key?.toLowerCase() === 'escape') {\n config.escape?.(containerRef.instance.componentInstances as EdsDialogComponentInstances<HC, BC, FC>);\n if (!config.isHandleCloseOnEscape) {\n containerRef.instance.closeDialog();\n }\n }\n });\n }\n\n this.openedDialogs$.next([...this.openedDialogs$.value, openedDialog]);\n\n return openedDialog;\n }\n\n /**\n * Close a dialog.\n *\n * @param dialogId The id of the dialog to close. If not provided the last opened one will be closed.\n */\n closeDialog(dialogId?: string): void {\n if (dialogId) {\n this.openedDialogs$.value.find((o) => o.id === dialogId)?.overlayRef.dispose();\n this.openedDialogs$.next(this.openedDialogs$.value.filter((o) => o.id !== dialogId));\n this.overlayRef =\n this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n } else {\n this.overlayRef?.dispose();\n this.openedDialogs$.next(this.openedDialogs$.value.filter((o, i) => i < this.openedDialogs$.value.length - 1));\n this.overlayRef =\n this.openedDialogs$.value.length > 0 ? this.openedDialogs$.value[this.openedDialogs$.value.length - 1].overlayRef : null;\n }\n }\n\n /**\n * Close all dialogs.\n */\n closeAllDialogs(): void {\n this.openedDialogs$.value.forEach((dialog) => {\n dialog.containerRef.instance.dialogContainerConfig.close?.(dialog.containerRef.instance.componentInstances);\n });\n }\n\n /**\n * Returns an Observable with all opened dialogs.\n */\n getOpenedDialogs(): Observable<EdsDialogRef[]> {\n return this.openedDialogs$;\n }\n\n /**\n * Returns a specific dialog by id.\n */\n getDialog(dialogId: string): EdsDialogRef {\n return this.openedDialogs$.value.find((o) => o.id === dialogId);\n }\n\n /**\n * Disable the accept button of the last opened dialog's default footer.\n */\n disableAcceptButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.disableAcceptButton();\n }\n\n /**\n * Enable the accept button of the last opened dialog's default footer.\n */\n enableAcceptButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.enableAcceptButton();\n }\n\n /**\n * Disable the dismiss button of the last opened dialog's default footer.\n */\n disableDismissButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.disableDismissButton();\n }\n\n /**\n * Enable the dismiss button of the last opened dialog's default footer.\n */\n enableDismissButton(): void {\n this.openedDialogs$.value[this.openedDialogs$.value.length - 1]?.containerRef.instance.enableDismissButton();\n }\n\n private createInjector(data: unknown, parentInjector?: Injector): Injector {\n const injectorTokens: StaticProvider = [{ provide: EDS_DIALOG_CONTAINER_CONFIG, useValue: data }];\n return Injector.create({\n parent: parentInjector ? parentInjector : this.injector,\n providers: injectorTokens,\n });\n }\n\n private getPositionStrategy(verticalPosition: EdsDialogVerticalPosition): GlobalPositionStrategy {\n const positionStrategy = this.overlay.position().global().centerHorizontally();\n if (verticalPosition === 'top') {\n positionStrategy.top();\n } else if (verticalPosition === 'bottom') {\n positionStrategy.bottom();\n } else {\n positionStrategy.centerVertically();\n }\n return positionStrategy;\n }\n}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'eds-dialog-header',\n})\nexport class EdsDialogHeader {}\n","import { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'eds-dialog-footer',\n})\nexport class EdsDialogFooter {}\n","import {\n Component,\n ChangeDetectionStrategy,\n ViewEncapsulation,\n TemplateRef,\n ViewContainerRef,\n AfterViewInit,\n OnDestroy,\n OnInit,\n booleanAttribute,\n OnChanges,\n SimpleChanges,\n inject,\n output,\n input,\n viewChild,\n contentChild,\n forwardRef,\n} from '@angular/core';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport { BehaviorSubject, Subject } from 'rxjs';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\n\nimport { EdsDialogService } from './eds-dialog.service';\nimport { EdsDialogInterface } from './eds-dialog-config';\nimport { EdsDialogRef } from './eds-dialog-ref';\nimport { EdsDialogVerticalPosition } from './eds-dialog-config';\nimport { EdsDialogHeader } from './eds-dialog-header';\nimport { EdsDialogFooter } from './eds-dialog-footer';\n\n/**\n * A modal dialog component that displays content in an overlay above the main application.\n * Supports customizable headers, footers, action buttons, and various interaction behaviors.\n * Can be opened programmatically via the `openDialog` method or controlled declaratively.\n * Integrates with `EdsDialogService` for centralized dialog management.\n *\n * @usageNotes\n * ### Using Dialog Service\n * ```typescript\n * private edsDialogService = inject(EdsDialogService);\n *\n * openDialog(): void {\n * const config = new EdsDialogConfig({\n * title: 'Confirm Action',\n * content: 'Are you sure you want to proceed?',\n * accept: () => console.log('Accepted'),\n * dismiss: () => console.log('Dismissed')\n * });\n * this.edsDialogService.openDialog(config);\n * }\n * ```\n *\n * ### Template Reference\n * ```html\n * <button edsButton (click)=\"dialog.openDialog()\" aria-haspopup=\"dialog\">\n * Open Dialog\n * </button>\n *\n * <eds-dialog #dialog\n * [title]=\"'Confirmation'\"\n * [width]=\"'600px'\"\n * (accept)=\"onAccept()\"\n * (dismiss)=\"onDismiss()\">\n * <p>Dialog content goes here</p>\n * </eds-dialog>\n * ```\n *\n * ### Custom Header and Footer\n * ```html\n * <eds-dialog #dialog [hasFooter]=\"false\">\n * <eds-dialog-header>\n * <h2>Custom Header</h2>\n * </eds-dialog-header>\n *\n * <p>Main content</p>\n *\n * <eds-dialog-footer>\n * <button edsButton (click)=\"dialog.closeDialog()\">Close</button>\n * </eds-dialog-footer>\n * </eds-dialog>\n * ```\n */\n@Component({\n selector: 'eds-dialog',\n templateUrl: './eds-dialog.html',\n styleUrl: './eds-dialog.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n encapsulation: ViewEncapsulation.None,\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsNeutral',\n 'edsSuccess',\n 'edsInfo',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[attr.data-e2e]': 'e2eAttr()',\n },\n})\nexport class EdsDialog implements AfterViewInit, OnDestroy, OnInit, OnChanges {\n /**\n * End-to-end testing attribute identifier.\n * @default 'eds-dialog'\n */\n readonly e2eAttr = input('eds-dialog');\n\n /**\n * Title text displayed in the dialog header.\n */\n readonly title = input<string>(undefined);\n\n /**\n * Translation key or label text for the accept button.\n * @default 'eui.OK'\n */\n readonly acceptLabel = input('eui.OK');\n\n /**\n * Translation key or label text for the dismiss button.\n * @default 'eui.CANCEL'\n */\n readonly dismissLabel = input('eui.CANCEL');\n\n /**\n * Vertical alignment position of the dialog within the viewport.\n */\n readonly verticalPosition = input<EdsDialogVerticalPosition>(undefined);\n\n /**\n * Width of the dialog. Accepts CSS units (px, %, vw, etc.).\n * @default '50%'\n */\n readonly width = input('50%');\n\n /**\n * Height of the dialog. Accepts CSS units (px, %, vh, auto, etc.).\n * @default 'auto'\n */\n readonly height = input('auto');\n\n /**\n * Enables fullscreen mode (width: 98vw, height: 97vh).\n * @default false\n */\n readonly isFullScreen = input(false, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the close (X) button in the dialog header.\n * @default true\n */\n readonly hasCloseButton = input(true, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the accept button in the dialog footer.\n * @default true\n */\n readonly hasAcceptButton = input(true, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the dismiss button in the dialog footer.\n * @default true\n */\n readonly hasDismissButton = input(true, { transform: booleanAttribute });\n\n /**\n * Enables custom sizing behavior on mobile devices.\n * @default false\n */\n readonly hasMobileCustomSize = input(false, { transform: booleanAttribute });\n\n /**\n * Enables automatic dialog closure when clicking outside the dialog boundaries.\n * @default false\n */\n readonly hasClosedOnClickOutside = input(false, { transform: booleanAttribute });\n\n /**\n * Enables automatic dialog closure when pressing the Escape key.\n * @default true\n */\n readonly hasClosedOnEscape = input(true, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when dismiss button is clicked.\n * @default false\n */\n readonly isHandleCloseOnDismiss = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when close (X) button is clicked.\n * @default false\n */\n readonly isHandleCloseOnClose = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when accept button is clicked.\n * @default false\n */\n readonly isHandleCloseOnAccept = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when clicking outside the dialog.\n * @default false\n */\n readonly isHandleCloseOnClickOutside = input(false, { transform: booleanAttribute });\n\n /**\n * Prevents automatic closure when pressing Escape key.\n * @default false\n */\n readonly isHandleCloseOnEscape = input(false, { transform: booleanAttribute });\n\n /**\n * Enables message box mode (disables Escape key, hides close button).\n * @default false\n */\n readonly isMessageBox = input(false, { transform: booleanAttribute });\n\n /**\n * Enables drag-and-drop functionality.\n * @default false\n */\n readonly isDraggable = input(false, { transform: booleanAttribute });\n\n /**\n * Removes default padding from the dialog body content area.\n * @default false\n */\n readonly hasNoBodyPadding = input(false, { transform: booleanAttribute });\n\n /**\n * Controls visibility of the footer section.\n * @default true\n */\n readonly hasFooter = input(true, { transform: booleanAttribute });\n\n /**\n * Additional CSS class names to apply to the dialog overlay panel.\n * @default null\n */\n readonly classList = input<string>(null);\n\n /**\n * Emitted when user clicks outside the dialog boundaries.\n */\n readonly clickOutside = output();\n\n /**\n * Emitted when user presses the Escape key while dialog has focus.\n */\n readonly escape = output();\n\n /**\n * Emitted immediately after the dialog opens.\n */\n readonly dialogOpen = output();\n\n /**\n * Emitted when the close (X) button is clicked.\n */\n readonly dialogClose = output();\n\n /**\n * Emitted when the dismiss button is clicked.\n */\n readonly dismiss = output();\n\n /**\n * Emitted when the accept button is clicked.\n */\n readonly accept = output();\n\n isOpen$ = new BehaviorSubject<boolean>(false);\n\n private readonly templateRefHeader = viewChild<TemplateRef<unknown>>('templateRefHeader');\n private readonly templateRefContent = viewChild<TemplateRef<unknown>>('templateRefContent');\n private readonly templateRefFooter = viewChild<TemplateRef<unknown>>('templateRefFooter');\n\n private readonly edsDialogHeaderDirective = contentChild(forwardRef(() => EdsDialogHeader));\n private readonly edsDialogFooterDirective = contentChild(forwardRef(() => EdsDialogFooter));\n\n private colorDirective = inject(EdsColorDirective);\n private dialog: EdsDialogRef;\n private templatePortalHeader: TemplatePortal<unknown>;\n private templatePortalContent: TemplatePortal<unknown>;\n private templatePortalFooter: TemplatePortal<unknown>;\n private destroy$ = new Subject<boolean>();\n private viewContainerRef = inject(ViewContainerRef);\n private edsDialogService = inject(EdsDialogService);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes['title'] && this.dialog && this.edsDialogService.getDialog(this.dialog.id)) {\n const newTitle = changes['title'].currentValue;\n this.edsDialogService.getDialog(this.dialog.id).containerRef.instance.dialogContainerConfig.title = newTitle;\n this.edsDialogService.getDialog(this.dialog.id).containerRef.instance.cd.markForCheck();\n }\n }\n\n // eslint-disable-next-line @angular-eslint/no-empty-lifecycle-method\n ngOnInit(): void {\n // Fullscreen and messageBox adjustments are handled in config building\n }\n\n ngAfterViewInit(): void {\n if (this.edsDialogHeaderDirective()) {\n this.templatePortalHeader = new TemplatePortal(this.templateRefHeader(), this.viewContainerRef);\n }\n\n this.templatePortalContent = new TemplatePortal(this.templateRefContent(), this.viewContainerRef);\n\n if (this.edsDialogFooterDirective()) {\n this.templatePortalFooter = new TemplatePortal(this.templateRefFooter(), this.viewContainerRef);\n }\n }\n\n ngOnDestroy(): void {\n this.destroy$.next(true);\n this.destroy$.unsubscribe();\n }\n\n /**\n * Whether the dialog is currently open.\n */\n get isOpen(): boolean {\n return this.isOpen$.value;\n }\n\n /**\n * Open the dialog.\n */\n openDialog(): EdsDialogRef {\n const resolvedWidth = this.isFullScreen() ? '98vw' : this.width();\n const resolvedHeight = this.isFullScreen() ? '97vh' : this.height();\n const resolvedHasClosedOnEscape = this.isMessageBox() ? false : this.hasClosedOnEscape();\n const resolvedHasCloseButton = this.isMessageBox() ? false : this.hasCloseButton();\n\n const config: EdsDialogInterface = {\n e2eAttr: this.e2eAttr(),\n title: this.title(),\n width: resolvedWidth,\n height: resolvedHeight,\n isFullScreen: this.isFullScreen(),\n variant: this.colorDirective.resolvedColor(),\n acceptLabel: this.acceptLabel(),\n dismissLabel: this.dismissLabel(),\n hasCloseButton: resolvedHasCloseButton,\n hasAcceptButton: this.hasAcceptButton(),\n hasDismissButton: this.hasDismissButton(),\n hasMobileCustomSize: this.hasMobileCustomSize(),\n hasClosedOnClickOutside: this.hasClosedOnClickOutside(),\n hasClosedOnEscape: resolvedHasClosedOnEscape,\n isHandleCloseOnDismiss: this.isHandleCloseOnDismiss(),\n isHandleCloseOnClose: this.isHandleCloseOnClose(),\n isHandleCloseOnAccept: this.isHandleCloseOnAccept(),\n isHandleCloseOnClickOutside: this.isHandleCloseOnClickOutside(),\n isHandleCloseOnEscape: this.isHandleCloseOnEscape(),\n isMessageBox: this.isMessageBox(),\n isDraggable: this.isDraggable(),\n hasNoBodyPadding: this.hasNoBodyPadding(),\n hasFooter: this.hasFooter(),\n verticalPosition: this.verticalPosition(),\n header: this.templatePortalHeader,\n content: this.templatePortalContent,\n footer: this.templatePortalFooter,\n classList: this.classList(),\n clickOutside: () => {\n if (this.hasClosedOnClickOutside() && !this.isHandleCloseOnClickOutside()) {\n this.isOpen$.next(false);\n }\n this.clickOutside.emit();\n },\n escape: () => {\n if (resolvedHasClosedOnEscape && !this.isHandleCloseOnEscape()) {\n this.isOpen$.next(false);\n }\n this.escape.emit();\n },\n open: () => {\n this.dialogOpen.emit();\n },\n close: () => {\n if (!this.isHandleCloseOnClose()) {\n this.isOpen$.next(false);\n }\n this.dialogClose.emit();\n },\n dismiss: () => {\n if (!this.isHandleCloseOnDismiss()) {\n this.isOpen$.next(false);\n }\n this.dismiss.emit();\n },\n accept: () => {\n if (!this.isHandleCloseOnAccept()) {\n this.isOpen$.next(false);\n }\n this.accept.emit();\n },\n };\n\n this.isOpen$.next(true);\n this.dialog = this.edsDialogService.openDialog(config);\n\n return this.dialog;\n }\n\n /**\n * Close the dialog.\n */\n closeDialog(): void {\n this.isOpen$.next(false);\n this.edsDialogService.closeDialog();\n }\n\n /**\n * Disable the accept button.\n */\n disableAcceptButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.disableAcceptButton();\n }\n\n /**\n * Enable the accept button.\n */\n enableAcceptButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.enableAcceptButton();\n }\n\n /**\n * Disable the dismiss button.\n */\n disableDismissButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.disableDismissButton();\n }\n\n /**\n * Enable the dismiss button.\n */\n enableDismissButton(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.enableDismissButton();\n }\n\n /**\n * Scroll to the bottom of the content.\n */\n scrollToBottom(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.scrollToBottom();\n }\n\n /**\n * Scroll to the top of the content.\n */\n scrollToTop(): void {\n this.edsDialogService.getDialog(this.dialog.id)?.containerRef.instance.scrollToTop();\n }\n}\n","<ng-template #templateRefHeader>\n <ng-content select=\"eds-dialog-header\" />\n</ng-template>\n<ng-template #templateRefContent>\n <ng-content />\n</ng-template>\n<ng-template #templateRefFooter>\n <ng-content select=\"eds-dialog-footer\" />\n</ng-template>\n","import { EdsDialog } from './eds-dialog';\nimport { EdsDialogHeader } from './eds-dialog-header';\nimport { EdsDialogFooter } from './eds-dialog-footer';\nimport { EdsDialogContainer } from './eds-dialog-container';\n\nexport { EdsDialog } from './eds-dialog';\nexport { EdsDialogHeader } from './eds-dialog-header';\nexport { EdsDialogFooter } from './eds-dialog-footer';\nexport { EdsDialogContainer } from './eds-dialog-container';\nexport { EdsDialogService } from './eds-dialog.service';\nexport { EdsDialogConfig, EdsDialogInterface, EdsDialogComponentInstances, EdsDialogVerticalPosition } from './eds-dialog-config';\nexport { EdsDialogRef, EdsDialogRefInterface } from './eds-dialog-ref';\nexport { EDS_DIALOG_CONTAINER_CONFIG, EDS_DIALOG_COMPONENT_CONFIG } from './eds-dialog-token';\n\n/** Convenience array for importing all eds-dialog components. */\nexport const EDS_DIALOG = [\n EdsDialog,\n EdsDialogHeader,\n EdsDialogFooter,\n EdsDialogContainer,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -3,8 +3,8 @@ import { input, booleanAttribute, inject, forwardRef, computed, ChangeDetectionS
3
3
  import { DatePipe } from '@angular/common';
4
4
  import * as i1 from '@eui/eds/shared';
5
5
  import { EdsColorDirective } from '@eui/eds/shared';
6
- import * as i2 from '@eui/eds/utilities/eds-icon-state';
7
- import { EDS_ICON_STATE } from '@eui/eds/utilities/eds-icon-state';
6
+ import * as i2 from '@eui/eds/eds-icon-state';
7
+ import { EDS_ICON_STATE } from '@eui/eds/eds-icon-state';
8
8
  import * as i3 from '@eui/eds/eds-icon';
9
9
  import { EDS_ICON } from '@eui/eds/eds-icon';
10
10
 
@@ -91,7 +91,7 @@ class EdsDiscussionThreadItem {
91
91
  ...(ngDevMode ? [{ debugName: "hostClasses" }] : /* istanbul ignore next */ []));
92
92
  }
93
93
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsDiscussionThreadItem, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
94
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsDiscussionThreadItem, isStandalone: true, selector: "eds-discussion-thread-item", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, author: { classPropertyName: "author", publicName: "author", isSignal: true, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, isOdd: { classPropertyName: "isOdd", publicName: "isOdd", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, hostDirectives: [{ directive: i1.EdsColorDirective, inputs: ["edsNeutral", "edsNeutral", "edsSuccess", "edsSuccess", "edsInfo", "edsInfo", "edsWarning", "edsWarning", "edsCritical", "edsCritical", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "<div class=\"eds-discussion-thread-item__badge\" [attr.title]=\"tooltip()\">\n <eds-icon-state [color]=\"$any(colorDirective.resolvedColor() || 'info')\" size=\"xl\" />\n</div>\n<div class=\"eds-discussion-thread-item__panel\">\n <div class=\"eds-discussion-thread-item__panel-header\">\n <div class=\"eds-discussion-thread-item__panel-heading\">\n <div class=\"eds-discussion-thread-item__panel-title\">\n {{ date() | date: 'dd/MM/yyyy' }}\n </div>\n <div class=\"eds-discussion-thread-item__panel-time\">\n <eds-icon icon=\"clock\" size=\"s\" />\n <span class=\"eds-discussion-thread-item__panel-time-text\">{{ date() | date: 'HH:mm' }}</span>\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-author\">\n {{ author() }}\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-body\">\n <p class=\"eds-discussion-thread-item__panel-body-text\" [innerHTML]=\"body()\"></p>\n </div>\n</div>\n", styles: [".eui-21 :host{display:block;margin-bottom:var(--eds-sp-m);position:relative}.eui-21 :host:before,.eui-21 :host:after{content:\" \";display:table}.eui-21 :host:after{clear:both}.eui-21 :host .eds-discussion-thread-item__panel{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-1);float:left;padding:var(--eds-sp-m) var(--eds-sp-m) 0;position:relative;width:48%}.eui-21 :host .eds-discussion-thread-item__panel:before{border-bottom:15px solid transparent;border-left:15px solid var(--eds-c-border-divider);border-right:0 solid var(--eds-c-border-divider);border-top:15px solid transparent;content:\" \";display:inline-block;position:absolute;right:-15px;top:26px}.eui-21 :host .eds-discussion-thread-item__panel:after{border-bottom:14px solid transparent;border-left:14px solid var(--eds-c-surface-elevation);border-right:0 solid var(--eds-c-surface-elevation);border-top:14px solid transparent;content:\" \";display:inline-block;position:absolute;right:-14px;top:27px}.eui-21 :host .eds-discussion-thread-item__badge{background-color:var(--eds-c-surface-elevation);position:absolute;left:50%;width:50px;margin-left:-20px;top:22px}.eui-21 :host .eds-discussion-thread-item__panel-header{border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);margin-bottom:var(--eds-sp-s);padding-bottom:var(--eds-sp-s)}.eui-21 :host .eds-discussion-thread-item__panel-heading{align-items:center;display:flex;justify-content:space-between}.eui-21 :host .eds-discussion-thread-item__panel-title{align-items:center;display:flex;font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-discussion-thread-item__panel-time{align-items:center;display:flex;margin-left:auto;font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);gap:var(--eds-sp-2xs)}.eui-21 :host .eds-discussion-thread-item__panel-time-text{font:var(--eds-f-paragraph-s)}.eui-21 :host .eds-discussion-thread-item__panel-author{margin-top:var(--eds-sp-xs);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-discussion-thread-item__panel-body{margin:var(--eds-sp-m) 0}.eui-21 :host .eds-discussion-thread-item__panel-body-text{word-break:break-word;margin:0;font:var(--eds-f-paragraph-m)}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel{float:right}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel:before{border-left-width:0;border-right-width:15px;left:-15px;right:auto}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel:after{border-left-width:0;border-right-width:14px;left:-14px;right:auto}@media screen and (min-width:768px)and (max-width:1139px){.eui-21 :host .eds-discussion-thread-item__panel{float:right;width:calc(100% - 90px)}.eui-21 :host .eds-discussion-thread-item__panel:before{border-left-width:0;border-right-width:15px;left:-15px;right:auto}.eui-21 :host .eds-discussion-thread-item__panel:after{border-left-width:0;border-right-width:14px;left:-14px;right:auto}.eui-21 :host .eds-discussion-thread-item__badge{left:15px;margin-left:0;top:16px}}\n"], dependencies: [{ kind: "component", type: i2.EdsIconState, selector: "eds-icon-state", inputs: ["color", "size", "ariaLabel"] }, { kind: "component", type: i3.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
94
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.2", type: EdsDiscussionThreadItem, isStandalone: true, selector: "eds-discussion-thread-item", inputs: { e2eAttr: { classPropertyName: "e2eAttr", publicName: "e2eAttr", isSignal: true, isRequired: false, transformFunction: null }, date: { classPropertyName: "date", publicName: "date", isSignal: true, isRequired: false, transformFunction: null }, author: { classPropertyName: "author", publicName: "author", isSignal: true, isRequired: false, transformFunction: null }, body: { classPropertyName: "body", publicName: "body", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, isOdd: { classPropertyName: "isOdd", publicName: "isOdd", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "listitem" }, properties: { "class": "hostClasses()", "attr.data-e2e": "e2eAttr()" } }, hostDirectives: [{ directive: i1.EdsColorDirective, inputs: ["edsNeutral", "edsNeutral", "edsSuccess", "edsSuccess", "edsInfo", "edsInfo", "edsWarning", "edsWarning", "edsCritical", "edsCritical", "edsColorVariant", "edsColorVariant"] }], ngImport: i0, template: "<div class=\"eds-discussion-thread-item__badge\" [attr.title]=\"tooltip()\">\n <eds-icon-state [color]=\"$any(colorDirective.resolvedColor() || 'info')\" size=\"xl\" />\n</div>\n<div class=\"eds-discussion-thread-item__panel\">\n <div class=\"eds-discussion-thread-item__panel-header\">\n <div class=\"eds-discussion-thread-item__panel-heading\">\n <div class=\"eds-discussion-thread-item__panel-title\">\n {{ date() | date: 'dd/MM/yyyy' }}\n </div>\n <div class=\"eds-discussion-thread-item__panel-time\">\n <eds-icon icon=\"clock\" size=\"s\" />\n <span class=\"eds-discussion-thread-item__panel-time-text\">{{ date() | date: 'HH:mm' }}</span>\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-author\">\n {{ author() }}\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-body\">\n <p class=\"eds-discussion-thread-item__panel-body-text\" [innerHTML]=\"body()\"></p>\n </div>\n</div>\n", styles: [".eui-21 :host{display:block;margin-bottom:var(--eds-sp-m);position:relative}.eui-21 :host:before,.eui-21 :host:after{content:\" \";display:table}.eui-21 :host:after{clear:both}.eui-21 :host .eds-discussion-thread-item__panel{background-color:var(--eds-c-surface-elevation);border:var(--eds-bw-xs) solid var(--eds-c-border-divider);border-radius:var(--eds-br-m);box-shadow:var(--eds-sh-1);float:left;padding:var(--eds-sp-m) var(--eds-sp-m) 0;position:relative;width:48%}.eui-21 :host .eds-discussion-thread-item__panel:before{border-bottom:15px solid transparent;border-left:15px solid var(--eds-c-border-divider);border-right:0 solid var(--eds-c-border-divider);border-top:15px solid transparent;content:\" \";display:inline-block;position:absolute;right:-15px;top:26px}.eui-21 :host .eds-discussion-thread-item__panel:after{border-bottom:14px solid transparent;border-left:14px solid var(--eds-c-surface-elevation);border-right:0 solid var(--eds-c-surface-elevation);border-top:14px solid transparent;content:\" \";display:inline-block;position:absolute;right:-14px;top:27px}.eui-21 :host .eds-discussion-thread-item__badge{background-color:var(--eds-c-surface-elevation);position:absolute;left:50%;width:50px;margin-left:-20px;top:22px}.eui-21 :host .eds-discussion-thread-item__panel-header{border-bottom:var(--eds-bw-xs) solid var(--eds-c-border-divider);margin-bottom:var(--eds-sp-s);padding-bottom:var(--eds-sp-s)}.eui-21 :host .eds-discussion-thread-item__panel-heading{align-items:center;display:flex;justify-content:space-between}.eui-21 :host .eds-discussion-thread-item__panel-title{align-items:center;display:flex;font:var(--eds-f-label-m-semibold)}.eui-21 :host .eds-discussion-thread-item__panel-time{align-items:center;display:flex;margin-left:auto;font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler);gap:var(--eds-sp-2xs)}.eui-21 :host .eds-discussion-thread-item__panel-time-text{font:var(--eds-f-paragraph-s)}.eui-21 :host .eds-discussion-thread-item__panel-author{margin-top:var(--eds-sp-xs);font:var(--eds-f-paragraph-s);color:var(--eds-c-foreground-subtler)}.eui-21 :host .eds-discussion-thread-item__panel-body{margin:var(--eds-sp-m) 0}.eui-21 :host .eds-discussion-thread-item__panel-body-text{word-break:break-word;margin:0;font:var(--eds-f-paragraph-m)}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel{float:right}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel:before{border-left-width:0;border-right-width:15px;left:-15px;right:auto}.eui-21 :host.eds-discussion-thread-item--inverted .eds-discussion-thread-item__panel:after{border-left-width:0;border-right-width:14px;left:-14px;right:auto}@media screen and (min-width:768px)and (max-width:1139px){.eui-21 :host .eds-discussion-thread-item__panel{float:right;width:calc(100% - 90px)}.eui-21 :host .eds-discussion-thread-item__panel:before{border-left-width:0;border-right-width:15px;left:-15px;right:auto}.eui-21 :host .eds-discussion-thread-item__panel:after{border-left-width:0;border-right-width:14px;left:-14px;right:auto}.eui-21 :host .eds-discussion-thread-item__badge{left:15px;margin-left:0;top:16px}}\n"], dependencies: [{ kind: "component", type: i2.EdsIconState, selector: "eds-icon-state", inputs: ["color", "size", "ariaLabel", "e2eAttr"] }, { kind: "component", type: i3.EdsIcon, selector: "eds-icon, span[edsIcon]", inputs: ["icon", "set", "color", "size", "ariaLabel", "ariaHidden", "rounded", "isLoading"] }, { kind: "pipe", type: DatePipe, name: "date" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
95
95
  }
96
96
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.2", ngImport: i0, type: EdsDiscussionThreadItem, decorators: [{
97
97
  type: Component,
@@ -1 +1 @@
1
- {"version":3,"file":"eui-eds-eds-discussion-thread.mjs","sources":["../../eds-discussion-thread/eds-discussion-thread-item.ts","../../eds-discussion-thread/eds-discussion-thread-item.html","../../eds-discussion-thread/eds-discussion-thread.ts","../../eds-discussion-thread/eds-discussion-thread.html","../../eds-discussion-thread/index.ts","../../eds-discussion-thread/eui-eds-eds-discussion-thread.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n booleanAttribute,\n inject,\n forwardRef,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EDS_ICON_STATE } from '@eui/eds/utilities/eds-icon-state';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\nimport { EdsDiscussionThread } from './eds-discussion-thread';\n\n/**\n * Individual item component for discussion threads, representing a single message or entry\n * in a conversation timeline. Displays author information, timestamp, message content,\n * and an optional tooltip with color-coded status indicators.\n *\n * @usageNotes\n * ### Basic Usage\n * ```html\n * <eds-discussion-thread-item\n * author=\"John Doe\"\n * date=\"2024-01-15T10:30:00\"\n * body=\"This is a comment in the discussion\"\n * edsInfo />\n * ```\n *\n * ### With Tooltip\n * ```html\n * <eds-discussion-thread-item\n * author=\"Jane Smith\"\n * date=\"2024-01-15T14:00:00\"\n * body=\"Review completed\"\n * tooltip=\"Approved by manager\"\n * edsSuccess />\n * ```\n *\n * ### Accessibility\n * - Uses role=\"listitem\" for proper list semantics within the thread\n * - Date and time are displayed in separate fields for clarity\n * - Author name is announced before message content\n * - Tooltip provides additional context via title attribute\n */\n@Component({\n selector: 'eds-discussion-thread-item',\n templateUrl: './eds-discussion-thread-item.html',\n styleUrl: './eds-discussion-thread-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ...EDS_ICON_STATE,\n ...EDS_ICON,\n DatePipe,\n ],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsNeutral',\n 'edsSuccess',\n 'edsInfo',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n role: 'listitem',\n },\n})\nexport class EdsDiscussionThreadItem {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-discussion-thread-item'\n */\n e2eAttr = input('eds-discussion-thread-item');\n\n /**\n * Date string for the discussion thread item (ISO or parseable format).\n * Displayed as dd/MM/yyyy with time in HH:mm.\n */\n date = input<string>();\n\n /**\n * Name or identifier of the author who created the item.\n */\n author = input<string>();\n\n /**\n * Content body of the discussion thread item.\n * Supports HTML content rendered via innerHTML.\n */\n body = input<string>();\n\n /**\n * Tooltip text to display additional information when hovering over the badge.\n */\n tooltip = input<string>();\n\n /**\n * Indicates if this item is in an odd position in the list.\n * Used for alternating left/right panel layout in center-aligned mode.\n * @default false\n */\n isOdd = input(false, { transform: booleanAttribute });\n\n protected colorDirective = inject(EdsColorDirective);\n protected thread = inject(forwardRef(() => EdsDiscussionThread), { optional: true });\n\n /**\n * Computes the CSS classes for the host element including color variant.\n */\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-discussion-thread-item');\n return [\n 'eds-discussion-thread-item',\n colorClass || 'eds-discussion-thread-item--info',\n this.isOdd() ? 'eds-discussion-thread-item--inverted' : '',\n ].join(' ').trim();\n });\n}\n","<div class=\"eds-discussion-thread-item__badge\" [attr.title]=\"tooltip()\">\n <eds-icon-state [color]=\"$any(colorDirective.resolvedColor() || 'info')\" size=\"xl\" />\n</div>\n<div class=\"eds-discussion-thread-item__panel\">\n <div class=\"eds-discussion-thread-item__panel-header\">\n <div class=\"eds-discussion-thread-item__panel-heading\">\n <div class=\"eds-discussion-thread-item__panel-title\">\n {{ date() | date: 'dd/MM/yyyy' }}\n </div>\n <div class=\"eds-discussion-thread-item__panel-time\">\n <eds-icon icon=\"clock\" size=\"s\" />\n <span class=\"eds-discussion-thread-item__panel-time-text\">{{ date() | date: 'HH:mm' }}</span>\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-author\">\n {{ author() }}\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-body\">\n <p class=\"eds-discussion-thread-item__panel-body-text\" [innerHTML]=\"body()\"></p>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n contentChildren,\n} from '@angular/core';\n\nimport { EdsDiscussionThreadItem } from './eds-discussion-thread-item';\nimport { EdsDiscussionThreadItemData } from './eds-discussion-thread-item.model';\n\n/**\n * A component for displaying threaded discussions or conversation timelines in a structured,\n * center-aligned format. Renders a list of discussion items with support for titles, subtitles,\n * and color-coded status indicators.\n *\n * Supports both a data-driven approach (via the `items` input array) and content projection\n * (using `<eds-discussion-thread-item>` children).\n *\n * @usageNotes\n * ### Basic Usage with Items Array\n * ```html\n * <eds-discussion-thread\n * [items]=\"discussionItems\"\n * titleLabel=\"Project Discussion\"\n * subTitleLabel=\"Team Collaboration\">\n * </eds-discussion-thread>\n * ```\n *\n * ### Using Content Projection\n * ```html\n * <eds-discussion-thread titleLabel=\"Comments\">\n * <eds-discussion-thread-item\n * author=\"Alice\"\n * date=\"2024-01-15T09:00:00\"\n * body=\"Initial comment\"\n * edsInfo />\n * <eds-discussion-thread-item\n * author=\"Bob\"\n * date=\"2024-01-15T10:30:00\"\n * body=\"Follow-up response\"\n * edsSuccess\n * isOdd />\n * </eds-discussion-thread>\n * ```\n *\n * ### Accessibility\n * - Applies `role=\"list\"` when items are present\n * - Each discussion item has `role=\"listitem\"` for proper structure\n * - Provide a meaningful `ariaLabel` for screen reader navigation\n */\n@Component({\n selector: 'eds-discussion-thread',\n templateUrl: './eds-discussion-thread.html',\n styleUrl: './eds-discussion-thread.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [EdsDiscussionThreadItem],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.role]': 'hasItems() ? \"list\" : null',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class EdsDiscussionThread {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-discussion-thread'\n */\n e2eAttr = input('eds-discussion-thread');\n\n /**\n * Accessible label for the discussion thread.\n * @default 'Discussion thread'\n */\n ariaLabel = input<string>('Discussion thread');\n\n /**\n * Array of discussion thread items to be displayed.\n * Each item should conform to the EdsDiscussionThreadItemData interface.\n */\n items = input<EdsDiscussionThreadItemData[]>();\n\n /**\n * The main title label for the discussion thread header.\n */\n titleLabel = input<string>();\n\n /**\n * The subtitle label for the discussion thread header,\n * typically used to provide additional context or categorization.\n */\n subTitleLabel = input<string>();\n\n protected readonly discussionThreadItems = contentChildren(EdsDiscussionThreadItem, { descendants: true });\n\n /** Whether the thread has any items (data-driven or projected). */\n protected hasItems = computed(() => {\n const dataItems = this.items();\n return (dataItems && dataItems.length > 0) || this.discussionThreadItems().length > 0;\n });\n\n /**\n * Computes the CSS classes for the host element.\n */\n hostClasses = computed(() => 'eds-discussion-thread');\n}\n","@if (titleLabel() || subTitleLabel()) {\n <div class=\"eds-discussion-thread__header\">\n @if (titleLabel()) {\n <div class=\"eds-discussion-thread__header-title\">{{ titleLabel() }}</div>\n }\n @if (subTitleLabel()) {\n <div class=\"eds-discussion-thread__header-subtitle\">{{ subTitleLabel() }}</div>\n }\n </div>\n}\n\n<div class=\"eds-discussion-thread__content\">\n @if (items(); as dataItems) {\n @for (item of dataItems; track item.id; let o = $odd) {\n <eds-discussion-thread-item\n [isOdd]=\"o\"\n [edsColorVariant]=\"item.typeClass || 'info'\"\n [date]=\"item.date\"\n [author]=\"item.author\"\n [body]=\"item.body\"\n [tooltip]=\"item.tooltip\" />\n }\n } @else {\n <ng-content />\n }\n</div>\n","import { EdsDiscussionThread } from './eds-discussion-thread';\nimport { EdsDiscussionThreadItem } from './eds-discussion-thread-item';\n\nexport {\n EdsDiscussionThread,\n EdsDiscussionThreadItem,\n};\n\nexport { EdsDiscussionThreadItemData } from './eds-discussion-thread-item.model';\n\n/** Convenience array for importing all eds-discussion-thread components. */\nexport const EDS_DISCUSSION_THREAD = [\n EdsDiscussionThread,\n EdsDiscussionThreadItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;;;;AAiBA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BG;MA8BU,uBAAuB,CAAA;AA7BpC,IAAA,WAAA,GAAA;AA8BI;;;AAGG;QACH,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,4BAA4B;oFAAC;AAE7C;;;AAGG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAU;AAEtB;;AAEG;AACH,QAAA,IAAA,CAAA,MAAM,GAAG,KAAK;8FAAU;AAExB;;;AAGG;AACH,QAAA,IAAA,CAAA,IAAI,GAAG,KAAK;4FAAU;AAEtB;;AAEG;AACH,QAAA,IAAA,CAAA,OAAO,GAAG,KAAK;+FAAU;AAEzB;;;;AAIG;QACH,IAAA,CAAA,KAAK,GAAG,KAAK,CAAC,KAAK,6EAAI,SAAS,EAAE,gBAAgB,EAAA,CAAG;AAE3C,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC1C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,UAAU,CAAC,MAAM,mBAAmB,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;AAEpF;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAK;YACxB,MAAM,UAAU,GAAG,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,4BAA4B,CAAC;YAChF,OAAO;gBACH,4BAA4B;AAC5B,gBAAA,UAAU,IAAI,kCAAkC;gBAChD,IAAI,CAAC,KAAK,EAAE,GAAG,sCAAsC,GAAG,EAAE;AAC7D,aAAA,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE;QACtB,CAAC;wFAAC;AACL,IAAA;8GAlDY,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,EAAA,EAAA,cAAA,EAAA,CAAA,EAAA,SAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,YAAA,EAAA,SAAA,EAAA,SAAA,EAAA,YAAA,EAAA,YAAA,EAAA,aAAA,EAAA,aAAA,EAAA,iBAAA,EAAA,iBAAA,CAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC7EpC,gjCAsBA,EAAA,MAAA,EAAA,CAAA,8mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,WAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDkCQ,QAAQ,EAAA,IAAA,EAAA,MAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAqBH,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBA7BnC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,4BAA4B,EAAA,eAAA,EAGrB,uBAAuB,CAAC,MAAM,EAAA,OAAA,EACtC;AACL,wBAAA,GAAG,cAAc;AACjB,wBAAA,GAAG,QAAQ;wBACX,QAAQ;qBACX,EAAA,cAAA,EACe;AACZ,wBAAA;AACI,4BAAA,SAAS,EAAE,iBAAiB;AAC5B,4BAAA,MAAM,EAAE;gCACJ,YAAY;gCACZ,YAAY;gCACZ,SAAS;gCACT,YAAY;gCACZ,aAAa;gCACb,iBAAiB;AACpB,6BAAA;AACJ,yBAAA;qBACJ,EAAA,IAAA,EACK;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,WAAW;AAC9B,wBAAA,IAAI,EAAE,UAAU;AACnB,qBAAA,EAAA,QAAA,EAAA,gjCAAA,EAAA,MAAA,EAAA,CAAA,8mGAAA,CAAA,EAAA;;;AEhEL;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuCG;MAcU,mBAAmB,CAAA;AAbhC,IAAA,WAAA,GAAA;AAcI;;;AAGG;QACH,IAAA,CAAA,OAAO,GAAG,KAAK,CAAC,uBAAuB;oFAAC;AAExC;;;AAGG;QACH,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,mBAAmB;sFAAC;AAE9C;;;AAGG;AACH,QAAA,IAAA,CAAA,KAAK,GAAG,KAAK;6FAAiC;AAE9C;;AAEG;AACH,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK;kGAAU;AAE5B;;;AAGG;AACH,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK;qGAAU;QAEZ,IAAA,CAAA,qBAAqB,GAAG,eAAe,CAAC,uBAAuB,6FAAI,WAAW,EAAE,IAAI,EAAA,CAAG;;AAGhG,QAAA,IAAA,CAAA,QAAQ,GAAG,QAAQ,CAAC,MAAK;AAC/B,YAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,EAAE;AAC9B,YAAA,OAAO,CAAC,SAAS,IAAI,SAAS,CAAC,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,qBAAqB,EAAE,CAAC,MAAM,GAAG,CAAC;QACzF,CAAC;qFAAC;AAEF;;AAEG;AACH,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,uBAAuB;wFAAC;AACxD,IAAA;8GA1CY,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,OAAA,EAAA,eAAA,EAAA,eAAA,EAAA,WAAA,EAAA,WAAA,EAAA,8BAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,YAAA,EAAA,uBAAA,EAAA,SAAA,EA8B+B,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC9FtF,83BA0BA,8hCD8Bc,uBAAuB,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,MAAA,EAAA,QAAA,EAAA,MAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAQxB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAb/B,SAAS;+BACI,uBAAuB,EAAA,eAAA,EAGhB,uBAAuB,CAAC,MAAM,WACtC,CAAC,uBAAuB,CAAC,EAAA,IAAA,EAC5B;AACF,wBAAA,SAAS,EAAE,eAAe;AAC1B,wBAAA,iBAAiB,EAAE,WAAW;AAC9B,wBAAA,aAAa,EAAE,4BAA4B;AAC3C,wBAAA,mBAAmB,EAAE,aAAa;AACrC,qBAAA,EAAA,QAAA,EAAA,83BAAA,EAAA,MAAA,EAAA,CAAA,s+BAAA,CAAA,EAAA;AAgC0D,SAAA,CAAA,EAAA,cAAA,EAAA,EAAA,OAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,OAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,KAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,KAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,CAAA,EAAA,CAAA,EAAA,qBAAA,EAAA,CAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,UAAA,CAAA,MAAA,uBAAuB,CAAA,EAAA,EAAA,GAAE,EAAE,WAAW,EAAE,IAAI,EAAE,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,CAAA,EAAA,EAAA,CAAA;;AEpF7G;AACO,MAAM,qBAAqB,GAAG;IACjC,mBAAmB;IACnB,uBAAuB;;;ACb3B;;AAEG;;;;"}
1
+ {"version":3,"file":"eui-eds-eds-discussion-thread.mjs","sources":["../../eds-discussion-thread/eds-discussion-thread-item.ts","../../eds-discussion-thread/eds-discussion-thread-item.html","../../eds-discussion-thread/eds-discussion-thread.ts","../../eds-discussion-thread/eds-discussion-thread.html","../../eds-discussion-thread/index.ts","../../eds-discussion-thread/eui-eds-eds-discussion-thread.ts"],"sourcesContent":["import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n booleanAttribute,\n inject,\n forwardRef,\n} from '@angular/core';\nimport { DatePipe } from '@angular/common';\n\nimport { EdsColorDirective } from '@eui/eds/shared';\nimport { EDS_ICON_STATE } from '@eui/eds/eds-icon-state';\nimport { EDS_ICON } from '@eui/eds/eds-icon';\n\nimport { EdsDiscussionThread } from './eds-discussion-thread';\n\n/**\n * Individual item component for discussion threads, representing a single message or entry\n * in a conversation timeline. Displays author information, timestamp, message content,\n * and an optional tooltip with color-coded status indicators.\n *\n * @usageNotes\n * ### Basic Usage\n * ```html\n * <eds-discussion-thread-item\n * author=\"John Doe\"\n * date=\"2024-01-15T10:30:00\"\n * body=\"This is a comment in the discussion\"\n * edsInfo />\n * ```\n *\n * ### With Tooltip\n * ```html\n * <eds-discussion-thread-item\n * author=\"Jane Smith\"\n * date=\"2024-01-15T14:00:00\"\n * body=\"Review completed\"\n * tooltip=\"Approved by manager\"\n * edsSuccess />\n * ```\n *\n * ### Accessibility\n * - Uses role=\"listitem\" for proper list semantics within the thread\n * - Date and time are displayed in separate fields for clarity\n * - Author name is announced before message content\n * - Tooltip provides additional context via title attribute\n */\n@Component({\n selector: 'eds-discussion-thread-item',\n templateUrl: './eds-discussion-thread-item.html',\n styleUrl: './eds-discussion-thread-item.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [\n ...EDS_ICON_STATE,\n ...EDS_ICON,\n DatePipe,\n ],\n hostDirectives: [\n {\n directive: EdsColorDirective,\n inputs: [\n 'edsNeutral',\n 'edsSuccess',\n 'edsInfo',\n 'edsWarning',\n 'edsCritical',\n 'edsColorVariant',\n ],\n },\n ],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n role: 'listitem',\n },\n})\nexport class EdsDiscussionThreadItem {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-discussion-thread-item'\n */\n e2eAttr = input('eds-discussion-thread-item');\n\n /**\n * Date string for the discussion thread item (ISO or parseable format).\n * Displayed as dd/MM/yyyy with time in HH:mm.\n */\n date = input<string>();\n\n /**\n * Name or identifier of the author who created the item.\n */\n author = input<string>();\n\n /**\n * Content body of the discussion thread item.\n * Supports HTML content rendered via innerHTML.\n */\n body = input<string>();\n\n /**\n * Tooltip text to display additional information when hovering over the badge.\n */\n tooltip = input<string>();\n\n /**\n * Indicates if this item is in an odd position in the list.\n * Used for alternating left/right panel layout in center-aligned mode.\n * @default false\n */\n isOdd = input(false, { transform: booleanAttribute });\n\n protected colorDirective = inject(EdsColorDirective);\n protected thread = inject(forwardRef(() => EdsDiscussionThread), { optional: true });\n\n /**\n * Computes the CSS classes for the host element including color variant.\n */\n hostClasses = computed(() => {\n const colorClass = this.colorDirective.getCssClass('eds-discussion-thread-item');\n return [\n 'eds-discussion-thread-item',\n colorClass || 'eds-discussion-thread-item--info',\n this.isOdd() ? 'eds-discussion-thread-item--inverted' : '',\n ].join(' ').trim();\n });\n}\n","<div class=\"eds-discussion-thread-item__badge\" [attr.title]=\"tooltip()\">\n <eds-icon-state [color]=\"$any(colorDirective.resolvedColor() || 'info')\" size=\"xl\" />\n</div>\n<div class=\"eds-discussion-thread-item__panel\">\n <div class=\"eds-discussion-thread-item__panel-header\">\n <div class=\"eds-discussion-thread-item__panel-heading\">\n <div class=\"eds-discussion-thread-item__panel-title\">\n {{ date() | date: 'dd/MM/yyyy' }}\n </div>\n <div class=\"eds-discussion-thread-item__panel-time\">\n <eds-icon icon=\"clock\" size=\"s\" />\n <span class=\"eds-discussion-thread-item__panel-time-text\">{{ date() | date: 'HH:mm' }}</span>\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-author\">\n {{ author() }}\n </div>\n </div>\n <div class=\"eds-discussion-thread-item__panel-body\">\n <p class=\"eds-discussion-thread-item__panel-body-text\" [innerHTML]=\"body()\"></p>\n </div>\n</div>\n","import {\n Component,\n ChangeDetectionStrategy,\n input,\n computed,\n contentChildren,\n} from '@angular/core';\n\nimport { EdsDiscussionThreadItem } from './eds-discussion-thread-item';\nimport { EdsDiscussionThreadItemData } from './eds-discussion-thread-item.model';\n\n/**\n * A component for displaying threaded discussions or conversation timelines in a structured,\n * center-aligned format. Renders a list of discussion items with support for titles, subtitles,\n * and color-coded status indicators.\n *\n * Supports both a data-driven approach (via the `items` input array) and content projection\n * (using `<eds-discussion-thread-item>` children).\n *\n * @usageNotes\n * ### Basic Usage with Items Array\n * ```html\n * <eds-discussion-thread\n * [items]=\"discussionItems\"\n * titleLabel=\"Project Discussion\"\n * subTitleLabel=\"Team Collaboration\">\n * </eds-discussion-thread>\n * ```\n *\n * ### Using Content Projection\n * ```html\n * <eds-discussion-thread titleLabel=\"Comments\">\n * <eds-discussion-thread-item\n * author=\"Alice\"\n * date=\"2024-01-15T09:00:00\"\n * body=\"Initial comment\"\n * edsInfo />\n * <eds-discussion-thread-item\n * author=\"Bob\"\n * date=\"2024-01-15T10:30:00\"\n * body=\"Follow-up response\"\n * edsSuccess\n * isOdd />\n * </eds-discussion-thread>\n * ```\n *\n * ### Accessibility\n * - Applies `role=\"list\"` when items are present\n * - Each discussion item has `role=\"listitem\"` for proper structure\n * - Provide a meaningful `ariaLabel` for screen reader navigation\n */\n@Component({\n selector: 'eds-discussion-thread',\n templateUrl: './eds-discussion-thread.html',\n styleUrl: './eds-discussion-thread.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [EdsDiscussionThreadItem],\n host: {\n '[class]': 'hostClasses()',\n '[attr.data-e2e]': 'e2eAttr()',\n '[attr.role]': 'hasItems() ? \"list\" : null',\n '[attr.aria-label]': 'ariaLabel()',\n },\n})\nexport class EdsDiscussionThread {\n /**\n * Data attribute value for end-to-end testing identification.\n * @default 'eds-discussion-thread'\n */\n e2eAttr = input('eds-discussion-thread');\n\n /**\n * Accessible label for the discussion thread.\n * @default 'Discussion thread'\n */\n ariaLabel = input<string>('Discussion thread');\n\n /**\n * Array of discussion thread items to be displayed.\n * Each item should conform to the EdsDiscussionThreadItemData interface.\n */\n items = input<EdsDiscussionThreadItemData[]>();\n\n /**\n * The main title label for the discussion thread header.\n */\n titleLabel = input<string>();\n\n /**\n * The subtitle label for the discussion thread header,\n * typically used to provide additional context or categorization.\n */\n subTitleLabel = input<string>();\n\n protected readonly discussionThreadItems = contentChildren(EdsDiscussionThreadItem, { descendants: true });\n\n /** Whether the thread has any items (data-driven or projected). */\n protected hasItems = computed(() => {\n const dataItems = this.items();\n return (dataItems && dataItems.length > 0) || this.discussionThreadItems().length > 0;\n });\n\n /**\n * Computes the CSS classes for the host element.\n */\n hostClasses = computed(() => 'eds-discussion-thread');\n}\n","@if (titleLabel() || subTitleLabel()) {\n <div class=\"eds-discussion-thread__header\">\n @if (titleLabel()) {\n <div class=\"eds-discussion-thread__header-title\">{{ titleLabel() }}</div>\n }\n @if (subTitleLabel()) {\n <div class=\"eds-discussion-thread__header-subtitle\">{{ subTitleLabel() }}</div>\n }\n </div>\n}\n\n<div class=\"eds-discussion-thread__content\">\n @if (items(); as dataItems) {\n @for (item of dataItems; track item.id; let o = $odd) {\n <eds-discussion-thread-item\n [isOdd]=\"o\"\n [edsColorVariant]=\"item.typeClass || 'info'\"\n [date]=\"item.date\"\n [author]=\"item.author\"\n [body]=\"item.body\"\n [tooltip]=\"item.tooltip\" />\n }\n } @else {\n <ng-content />\n }\n</div>\n","import { EdsDiscussionThread } from './eds-discussion-thread';\nimport { EdsDiscussionThreadItem } from './eds-discussion-thread-item';\n\nexport {\n EdsDiscussionThread,\n EdsDiscussionThreadItem,\n};\n\nexport { EdsDiscussionThreadItemData } from './eds-discussion-thread-item.model';\n\n/** Convenience array for importing all eds-discussion-thread components. */\nexport const EDS_DISCUSSION_THREAD = [\n EdsDiscussionThread,\n EdsDiscussionThreadItem,\n] as const;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}