@siemens/element-ng 47.5.0 → 47.6.0

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 (79) hide show
  1. package/breadcrumb-router/index.d.ts +8 -0
  2. package/breadcrumb-router/package.json +3 -0
  3. package/breadcrumb-router/si-breadcrumb-default-resolver.service.d.ts +23 -0
  4. package/breadcrumb-router/si-breadcrumb-router.component.d.ts +30 -0
  5. package/breadcrumb-router/si-breadcrumb-router.model.d.ts +53 -0
  6. package/breadcrumb-router/si-breadcrumb-router.module.d.ts +7 -0
  7. package/date-range-filter/si-date-range-filter.component.d.ts +5 -1
  8. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs +263 -0
  9. package/fesm2022/siemens-element-ng-breadcrumb-router.mjs.map +1 -0
  10. package/fesm2022/siemens-element-ng-breadcrumb.mjs +1 -1
  11. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-date-range-filter.mjs +26 -5
  13. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-formly.mjs +2 -2
  15. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-icon.mjs +8 -22
  17. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-main-detail-container.mjs +269 -0
  19. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -0
  20. package/fesm2022/siemens-element-ng-modal.mjs +1 -1
  21. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +802 -0
  23. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -0
  24. package/fesm2022/siemens-element-ng-resize-observer.mjs +6 -3
  25. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-side-panel.mjs +1 -1
  27. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-status-bar.mjs +1 -1
  29. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-tabs-next.mjs +29 -164
  31. package/fesm2022/siemens-element-ng-tabs-next.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-tabs.mjs +1 -1
  33. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-threshold.mjs +319 -0
  35. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -0
  36. package/fesm2022/siemens-element-ng-tour.mjs +384 -0
  37. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -0
  38. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-tree-view.mjs +1 -1
  40. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-wizard.mjs +1 -1
  42. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  43. package/icon/si-status-icon.component.d.ts +1 -6
  44. package/main-detail-container/index.d.ts +6 -0
  45. package/main-detail-container/package.json +3 -0
  46. package/main-detail-container/si-main-detail-container.component.d.ts +151 -0
  47. package/main-detail-container/si-main-detail-container.module.d.ts +7 -0
  48. package/navbar-vertical/index.d.ts +7 -0
  49. package/navbar-vertical/package.json +3 -0
  50. package/navbar-vertical/si-navbar-vertical-divider.component.d.ts +5 -0
  51. package/navbar-vertical/si-navbar-vertical-group-trigger.directive.d.ts +38 -0
  52. package/navbar-vertical/si-navbar-vertical-group.component.d.ts +16 -0
  53. package/navbar-vertical/si-navbar-vertical-header.component.d.ts +6 -0
  54. package/navbar-vertical/si-navbar-vertical-item-legacy.component.d.ts +17 -0
  55. package/navbar-vertical/si-navbar-vertical-item.component.d.ts +21 -0
  56. package/navbar-vertical/si-navbar-vertical.component.d.ts +148 -0
  57. package/navbar-vertical/si-navbar-vertical.model.d.ts +77 -0
  58. package/navbar-vertical/si-navbar-vertical.module.d.ts +7 -0
  59. package/navbar-vertical/si-navbar-vertical.provider.d.ts +7 -0
  60. package/package.json +24 -4
  61. package/resize-observer/si-resize-observer.directive.d.ts +3 -1
  62. package/tabs-next/si-tab-next-base.directive.d.ts +2 -5
  63. package/tabs-next/si-tab-next-link.component.d.ts +0 -2
  64. package/tabs-next/si-tabset-next.component.d.ts +3 -18
  65. package/template-i18n.json +16 -0
  66. package/threshold/index.d.ts +6 -0
  67. package/threshold/package.json +3 -0
  68. package/threshold/si-readonly-threshold-option.component.d.ts +11 -0
  69. package/threshold/si-threshold.component.d.ts +147 -0
  70. package/threshold/si-threshold.module.d.ts +7 -0
  71. package/tour/index.d.ts +6 -0
  72. package/tour/package.json +3 -0
  73. package/tour/si-tour-highlight.component.d.ts +15 -0
  74. package/tour/si-tour-token.model.d.ts +27 -0
  75. package/tour/si-tour.component.d.ts +31 -0
  76. package/tour/si-tour.model.d.ts +51 -0
  77. package/tour/si-tour.service.d.ts +62 -0
  78. package/translate/si-translatable-keys.interface.d.ts +16 -0
  79. package/tree-view/si-tree-view.component.d.ts +1 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"siemens-element-ng-main-detail-container.mjs","sources":["../../../../projects/element-ng/main-detail-container/si-main-detail-container.component.ts","../../../../projects/element-ng/main-detail-container/si-main-detail-container.component.html","../../../../projects/element-ng/main-detail-container/si-main-detail-container.module.ts","../../../../projects/element-ng/main-detail-container/index.ts","../../../../projects/element-ng/main-detail-container/siemens-element-ng-main-detail-container.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgClass, NgTemplateOutlet } from '@angular/common';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n HostBinding,\n inject,\n input,\n model,\n OnChanges,\n OnDestroy,\n OnInit,\n output,\n SimpleChanges\n} from '@angular/core';\nimport {\n BOOTSTRAP_BREAKPOINTS,\n ElementDimensions,\n ResizeObserverService\n} from '@siemens/element-ng/resize-observer';\nimport { SiSplitComponent, SiSplitPartComponent } from '@siemens/element-ng/split';\nimport { SiTranslateModule } from '@siemens/element-translate-ng/translate';\nimport { Subscription } from 'rxjs';\n\n@Component({\n selector: 'si-main-detail-container',\n templateUrl: './si-main-detail-container.component.html',\n styleUrl: './si-main-detail-container.component.scss',\n host: { class: 'si-layout-inner' },\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgClass, NgTemplateOutlet, SiSplitComponent, SiSplitPartComponent, SiTranslateModule]\n})\nexport class SiMainDetailContainerComponent implements OnInit, OnChanges, OnDestroy {\n private animationDuration = 500;\n private resizeSubs?: Subscription;\n private elementRef = inject(ElementRef);\n private resizeObserver = inject(ResizeObserverService);\n private changeDetectorRef = inject(ChangeDetectorRef);\n\n /**\n * A numeric value defining the minimum width in px, which the container needs\n * to be displayed in its large layout. Whenever smaller than\n * this threshold, the small layout will be used. Default is\n * value is BOOTSTRAP_BREAKPOINTS.mdMinimum.\n *\n * @defaultValue BOOTSTRAP_BREAKPOINTS.mdMinimum\n */\n readonly largeLayoutBreakpoint = input(BOOTSTRAP_BREAKPOINTS.mdMinimum);\n\n /**\n * Whether the main-detail layout component has a large size or not,\n * `true` if the container´s width matches or exceeds the `largeLayoutBreakpoint`.\n */\n hasLargeSize!: boolean;\n\n /**\n * Emits whether the components size is large enough to display\n * main and details views next to each other or not.\n */\n readonly hasLargeSizeChange = output<boolean>();\n\n /**\n * Whether the details are currently active or not, mostly relevant in the\n * responsive scenario when the viewport only shows either the main or the detail.\n *\n * @defaultValue false\n */\n readonly detailsActive = model(false);\n\n /**\n * The heading of the main-detail layout component, usually a page heading.\n *\n * @defaultValue ''\n */\n readonly heading = input('');\n\n /**\n * Whether the heading should be truncated (single line) or not.\n * Default value is `false`.\n *\n * @defaultValue false\n */\n readonly truncateHeading = input(false, { transform: booleanAttribute });\n\n /**\n * The heading of the detail area.\n *\n * @defaultValue ''\n */\n readonly detailsHeading = input('');\n\n /**\n * Whether the main and detail parts should be resizable by a splitter or not.\n * This is only supported in the 'large' scenario (when `hasLargeSize` is `true`).\n * Default value is `false`.\n *\n * @defaultValue false\n */\n readonly resizableParts = input(false, { transform: booleanAttribute });\n\n /**\n * You can hide the back button in the mobile view by setting true. Required\n * in add, edit workflows on mobile sizes. During add or edit, the back button\n * should be hidden. Default value is `false`.\n *\n * @defaultValue false\n */\n readonly hideBackButton = input(false, { transform: booleanAttribute });\n\n /**\n * Details back button text. Required for a11y.\n *\n * @defaultValue\n * ```\n * $localize`:@@SI_MAIN_DETAIL_CONTAINER.BACK:Back`\n * ```\n */\n readonly detailsBackButtonText = input($localize`:@@SI_MAIN_DETAIL_CONTAINER.BACK:Back`);\n\n /**\n * CSS class(es) applied to the outermost container. Per default, Bootstrap classes\n * to handle responsive paddings are applied: `px-6 pt-6 px-md-9`.\n *\n * @defaultValue 'px-6 pt-6 px-md-9'\n */\n readonly containerClass = input('px-6 pt-6 px-md-9');\n\n /**\n * CSS class(es) applied to the main container. In combination with `containerClass`,\n * this allows for settings individual padding and margin values on the individual containers.\n *\n * @defaultValue 'pb-6'\n */\n readonly mainContainerClass = input('pb-6');\n\n /**\n * CSS class(es) applied to the detail container. In combination with `containerClass`,\n * this allows for settings individual padding and margin values on the individual containers.\n *\n * @defaultValue 'pb-6'\n */\n readonly detailContainerClass = input('pb-6');\n\n /**\n * The percentage width of the main container from the overall component width.\n * Can be a number or `'default'`, which is 32% when {@link resizableParts} is active, otherwise 50%.\n *\n * @defaultValue 'default'\n */\n readonly mainContainerWidth = model<number | 'default'>('default');\n /**\n * Sets the minimal width of the main container in pixel.\n *\n * @defaultValue 300\n */\n readonly minMainSize = input(300);\n /**\n * Sets the minimal width of the detail container in pixel.\n *\n * @defaultValue 300\n */\n readonly minDetailSize = input(300);\n /**\n * An optional stateId to uniquely identify a component instance.\n * Required for persistence of ui state.\n */\n readonly stateId = input<string>();\n\n /**\n * The attribute is set to true when the detail area is not visible to ensure that the user\n * can't tab to details area when it is hidden.\n */\n protected preventFocusDetails = false;\n\n private readonly actualMainContainerWidth = computed(() => {\n const mainContainerWidth = this.mainContainerWidth();\n return mainContainerWidth === 'default'\n ? this.resizableParts()\n ? 32\n : 50\n : mainContainerWidth;\n });\n\n protected splitSizes: [number, number] = [\n this.actualMainContainerWidth(),\n 100 - this.actualMainContainerWidth()\n ];\n // The max size to limit the main container in the static flex layout (if less than 50%), otherwise not set.\n protected maxMainSize: string = this.getMaxSize(0);\n // The max size to limit the detail container in the static flex layout (if less than 50%), otherwise not set.\n protected maxDetailSize: string = this.getMaxSize(1);\n\n protected readonly mainStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-main` : undefined;\n });\n\n protected readonly detailStateId = computed(() => {\n const stateId = this.stateId();\n return stateId ? `${stateId}-detail` : undefined;\n });\n\n @HostBinding('class.animate') protected animate = false;\n\n @HostBinding('style.opacity') protected opacity = '0';\n\n ngOnChanges(changes: SimpleChanges): void {\n if (changes.detailsActive) {\n this.updateDetailsFocusable();\n this.doAnimation(changes.detailsActive.currentValue);\n }\n if (changes.mainContainerWidth || changes.resizableParts) {\n this.splitSizes = [this.actualMainContainerWidth(), 100 - this.actualMainContainerWidth()];\n this.maxMainSize = this.getMaxSize(0);\n this.maxDetailSize = this.getMaxSize(1);\n }\n }\n\n ngOnInit(): void {\n this.resizeSubs = this.resizeObserver\n .observe(this.elementRef.nativeElement, 100, true)\n .subscribe(dimensions => this.determineLayout(dimensions));\n }\n\n ngOnDestroy(): void {\n this.resizeSubs?.unsubscribe();\n }\n\n protected onSplitSizesChange(sizes: number[]): void {\n this.mainContainerWidth.set(sizes[0]);\n }\n\n protected detailsBackClicked(): void {\n this.detailsActive.set(false);\n this.doAnimation(false);\n }\n\n /**\n * Get the max size to limit in the static flex layout (if less than 50%), otherwise not set\n */\n private getMaxSize(part: 0 | 1): string {\n return this.resizableParts() ||\n this.mainContainerWidth() === 'default' ||\n !this.hasLargeSize ||\n this.splitSizes[part] > 50\n ? ''\n : this.splitSizes[part] + '%';\n }\n\n private determineLayout(dimensions: ElementDimensions): void {\n const newHasLargeSize = dimensions.width >= this.largeLayoutBreakpoint();\n if (this.hasLargeSize !== newHasLargeSize) {\n this.hasLargeSize = newHasLargeSize;\n this.maxMainSize = this.getMaxSize(0);\n this.maxDetailSize = this.getMaxSize(1);\n this.updateDetailsFocusable();\n this.hasLargeSizeChange.emit(this.hasLargeSize);\n this.changeDetectorRef.markForCheck();\n }\n if (this.opacity === '0') {\n this.opacity = '';\n this.changeDetectorRef.markForCheck();\n }\n }\n\n private doAnimation(detailsActive: boolean): void {\n this.animate = true;\n setTimeout(() => {\n this.animate = false;\n this.changeDetectorRef.markForCheck();\n }, this.animationDuration);\n this.detailsActive.set(detailsActive);\n }\n\n private updateDetailsFocusable(): void {\n this.preventFocusDetails = !this.hasLargeSize && !this.detailsActive();\n }\n}\n","@if (resizableParts() && hasLargeSize) {\n <div class=\"main-detail-layout d-flex flex-column\" [ngClass]=\"containerClass()\">\n <ng-container *ngTemplateOutlet=\"headingTemplate\" />\n <si-split\n class=\"w-100 flex-grow-1\"\n orientation=\"horizontal\"\n [stateId]=\"stateId()\"\n [sizes]=\"splitSizes\"\n (sizesChange)=\"onSplitSizesChange($event)\"\n >\n <si-split-part\n scale=\"none\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minMainSize()\"\n [stateId]=\"mainStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"mainTemplate\" />\n </si-split-part>\n <si-split-part\n scale=\"auto\"\n [showCollapseButton]=\"false\"\n [showHeader]=\"false\"\n [minSize]=\"minDetailSize()\"\n [stateId]=\"detailStateId()\"\n >\n <ng-container *ngTemplateOutlet=\"detailTemplate\" />\n </si-split-part>\n </si-split>\n </div>\n} @else {\n <div\n class=\"main-detail-layout d-flex flex-column\"\n [ngClass]=\"containerClass()\"\n [class.large-size]=\"hasLargeSize\"\n >\n <ng-container *ngTemplateOutlet=\"headingTemplate\" />\n <div\n class=\"main-detail-container d-flex flex-grow-1\"\n [class.details-active]=\"detailsActive() && !hasLargeSize\"\n >\n <ng-container\n *ngTemplateOutlet=\"\n mainTemplate;\n context: { customClass: hasLargeSize ? 'col-3 ps-0 pe-4' : 'col-6 px-0' }\n \"\n />\n <ng-container\n *ngTemplateOutlet=\"\n detailTemplate;\n context: { customClass: hasLargeSize ? 'col-9 ps-4 pe-0' : 'col-6 px-0' }\n \"\n />\n </div>\n </div>\n}\n\n<!-- Templates -->\n<ng-template #headingTemplate>\n @if (heading()) {\n <div class=\"si-layout-header\">\n <h2 class=\"si-layout-title si-layout-top-element\" [class.text-truncate]=\"truncateHeading()\">{{\n heading() | translate\n }}</h2>\n </div>\n }\n</ng-template>\n\n<ng-template #mainTemplate let-customClass=\"customClass\">\n <div\n class=\"main-container d-flex flex-column\"\n [ngClass]=\"[mainContainerClass(), customClass ? customClass : '']\"\n [style.max-inline-size]=\"maxMainSize\"\n >\n <div class=\"main-search-actions d-flex align-items-center\">\n <ng-content select=\"[slot=mainSearch]\" />\n <ng-content select=\"[slot=mainActions]\" />\n </div>\n <div class=\"main-data-container d-flex\">\n <ng-content select=\"[slot=mainData]\" />\n </div>\n </div>\n</ng-template>\n\n<ng-template #detailTemplate let-customClass=\"customClass\">\n <div\n class=\"detail-container d-flex flex-column\"\n [ngClass]=\"[detailContainerClass(), customClass ? customClass : '']\"\n [style.max-inline-size]=\"maxDetailSize\"\n [attr.inert]=\"preventFocusDetails ? '' : null\"\n >\n <div class=\"detail-heading-actions d-flex align-items-center\">\n @if (!this.hasLargeSize && !this.hideBackButton()) {\n <button\n type=\"button\"\n class=\"btn btn-circle btn-sm btn-secondary element-back\"\n (click)=\"detailsBackClicked()\"\n ><span class=\"visually-hidden\">{{ detailsBackButtonText() | translate }}</span></button\n >\n }\n @if (detailsHeading()) {\n <span class=\"detail-heading si-title-1 me-auto ms-6 my-auto text-truncate\">{{\n detailsHeading() | translate\n }}</span>\n }\n <ng-content select=\"[slot=detailActions]\" />\n </div>\n <ng-content select=\"[slot=details]\" />\n </div>\n</ng-template>\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiMainDetailContainerComponent } from './si-main-detail-container.component';\n\n@NgModule({\n imports: [SiMainDetailContainerComponent],\n exports: [SiMainDetailContainerComponent]\n})\nexport class SiMainDetailContainerModule {}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-main-detail-container.component';\nexport * from './si-main-detail-container.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -138,7 +138,7 @@ class SiModalComponent {
138
138
  }
139
139
  hideBackdrop() {
140
140
  clearTimeout(this.backdropTimer);
141
- if (this.showBackdropClass !== undefined) {
141
+ if (this.showBackdropClass() !== undefined) {
142
142
  this.showBackdropClass.set(false);
143
143
  }
144
144
  if (this.origBodyOverflow !== undefined) {
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-modal.mjs","sources":["../../../../projects/element-ng/modal/modalref.ts","../../../../projects/element-ng/modal/si-modal.component.ts","../../../../projects/element-ng/modal/si-modal.component.html","../../../../projects/element-ng/modal/si-modal.service.ts","../../../../projects/element-ng/modal/modal.helpers.ts","../../../../projects/element-ng/modal/index.ts","../../../../projects/element-ng/modal/siemens-element-ng-modal.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ElementRef } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { ModalOptions } from './si-modal.service';\n\n/**\n * Reference to a modal dialog\n * @typeParam T - the type of the content\n * @typeParam CT - the close type\n */\nexport class ModalRef<T = never, CT = any> {\n /** Emits the close value when the modal is hidden. */\n hidden = new Subject<CT | undefined>();\n /** Allows messaging state to consumer w/o closing the dialog. */\n message = new Subject<CT | undefined>();\n /** Emits the modal element reference when it is shown. */\n shown = new ReplaySubject<ElementRef>(1);\n /**\n * The modal options passed during creation.\n *\n * @defaultValue `{}`\n * @see {@link SiModalService}\n */\n data: ModalOptions = {};\n /** @defaultValue true */\n ignoreBackdropClick = true;\n /**\n * Custom class for modal-dialog\n *\n * @defaultValue ''\n */\n dialogClass = '';\n /**\n * The layer of the modal. The modal with the highest layer will be shown on top.\n *\n * @defaultValue 0\n */\n layer = 0;\n /** The default close value of the modal. */\n closeValue?: CT;\n\n get content(): T {\n return undefined as unknown as T;\n }\n\n /** Set the input of a component shown in the modal. */\n setInput(input: string, value: unknown): void {}\n\n /**\n * @defaultValue `() => false`\n */\n isCurrent: () => boolean = () => false;\n /**\n * @defaultValue `() => {}`\n */\n detach: () => void = () => {};\n /**\n * Close the modal with a custom close value.\n *\n * @defaultValue `() => {}`\n */\n hide: (reason?: CT) => void = () => {};\n\n /**\n * When `data.disableAutoHide` is set, messages the `reason`, otherwise calls {@link hide}.\n */\n messageOrHide(reason?: CT): void {\n if (this.data.messageInsteadOfAutoHide) {\n this.message.next(reason);\n } else {\n this.hide(reason);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT, NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n signal,\n viewChild\n} from '@angular/core';\n\nimport { ModalRef } from './modalref';\n\n@Component({\n selector: 'si-modal',\n templateUrl: './si-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [A11yModule, NgClass]\n})\nexport class SiModalComponent implements OnInit, AfterViewInit, OnDestroy {\n protected modalRef = inject(ModalRef<unknown, any>);\n\n protected dialogClass = this.modalRef.dialogClass ?? '';\n protected titleId = this.modalRef.data?.ariaLabelledBy ?? '';\n protected init = false;\n protected readonly show = signal(false);\n protected readonly showBackdropClass = signal<boolean | undefined>(undefined);\n\n private clickStartInDialog = false;\n private origBodyOverflow?: string;\n private showTimer: any;\n private backdropTimer: any;\n private backdropGhostClickPrevention = true;\n private document = inject(DOCUMENT);\n\n private readonly modalContainerRef = viewChild.required<ElementRef>('modalContainer');\n\n ngOnInit(): void {\n setTimeout(() => (this.backdropGhostClickPrevention = false), this.animationTime(300));\n this.init = true;\n this.showTimer = setTimeout(() => {\n this.show.set(true);\n }, this.animationTime(150));\n }\n\n ngAfterViewInit(): void {\n queueMicrotask(() => this.modalRef?.shown.next(this.modalContainerRef()));\n }\n\n ngOnDestroy(): void {\n this.hideBackdrop();\n }\n\n /** @internal */\n hideDialog(param?: any): void {\n clearTimeout(this.showTimer);\n\n this.show.set(false);\n // set `detach()` in modal ref to no-op so that the animation is unaffected if called\n const detach = this.modalRef.detach;\n this.modalRef.detach = () => {};\n\n setTimeout(() => {\n this.hideBackdrop();\n setTimeout(() => detach(), this.animationTime(150));\n }, this.animationTime(300));\n\n this.modalRef?.hidden.next(param);\n this.modalRef?.hidden.complete();\n this.modalRef?.message.complete();\n }\n\n /** @internal */\n showBackdrop(): void {\n if (this.modalRef?.data.animated !== false) {\n this.showBackdropClass.set(false);\n this.backdropTimer = setTimeout(() => {\n this.showBackdropClass.set(true);\n }, 16);\n } else {\n this.showBackdropClass.set(true);\n }\n this.origBodyOverflow = this.document.body.style.overflow;\n this.document.body.style.overflow = 'hidden';\n }\n\n private hideBackdrop(): void {\n clearTimeout(this.backdropTimer);\n if (this.showBackdropClass !== undefined) {\n this.showBackdropClass.set(false);\n }\n if (this.origBodyOverflow !== undefined) {\n this.document.body.style.overflow = this.origBodyOverflow;\n this.origBodyOverflow = undefined;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n protected clickStarted(event: MouseEvent): void {\n this.clickStartInDialog = event.target !== this.modalContainerRef().nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n protected onClickStop(event: MouseEvent): void {\n const clickedInBackdrop =\n event.target === this.modalContainerRef().nativeElement && !this.clickStartInDialog;\n if (this.modalRef?.ignoreBackdropClick || !clickedInBackdrop) {\n this.clickStartInDialog = false;\n return;\n }\n\n if (!this.backdropGhostClickPrevention) {\n // Called when backdrop close is allowed and user clicks on the backdrop\n this.modalRef.messageOrHide(this.modalRef.closeValue);\n } else {\n // When in ghost click prevention mode, avoid text selection\n this.document.getSelection()?.removeAllRanges();\n }\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n protected onEsc(event: KeyboardEvent): void {\n if (this.modalRef?.data.keyboard && this.modalRef?.isCurrent()) {\n event.preventDefault();\n this.modalRef.messageOrHide(this.modalRef.closeValue);\n }\n }\n\n private animationTime(millis: number): number {\n return this.modalRef?.data.animated !== false ? millis : 0;\n }\n}\n","@if (showBackdropClass() !== undefined) {\n <div\n class=\"modal-backdrop\"\n [class.fade]=\"modalRef.data.animated !== false\"\n [class.show]=\"showBackdropClass()\"\n ></div>\n}\n@if (init) {\n <div\n #modalContainer\n role=\"dialog\"\n class=\"modal d-block\"\n aria-modal=\"true\"\n [class.fade]=\"modalRef.data.animated !== false\"\n [class.show]=\"show()\"\n [attr.aria-labelledby]=\"titleId\"\n >\n <div class=\"modal-dialog\" cdkTrapFocus cdkTrapFocusAutoCapture [ngClass]=\"dialogClass\">\n <div class=\"modal-content\">\n <ng-content />\n </div>\n </div>\n </div>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n StaticProvider,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { isRTL } from '@siemens/element-ng/common';\nimport { SiNoTranslateService, SiTranslateService } from '@siemens/element-translate-ng/translate';\n\nimport { ModalRef } from './modalref';\nimport { SiModalComponent } from './si-modal.component';\n\nexport interface ModalDependencyInjectionOptions {\n /** Additional providers for the modal. */\n providers?: StaticProvider[];\n /** Optional element Injector. */\n injector?: Injector;\n /** Optional environment Injector. */\n environmentInjector?: EnvironmentInjector;\n}\n\nexport interface ModalOptions<T = Record<string, any>> extends ModalDependencyInjectionOptions {\n /**\n * Assign all values to the target component using `Object.assign(component, initialState)`.\n *\n * @deprecated Use {@link inputValues} instead.\n */\n initialState?: Partial<T>;\n /**\n * Use this to assign values to either `@Input()` or `input()` fields of the provided component.\n * If a template is used, the values are available in the template context.\n */\n inputValues?: Record<string, unknown>;\n /** When set to true, clicking the backdrop has no effect. */\n ignoreBackdropClick?: boolean;\n /** When set to true, backdrop click or Esc don't close the modal. Instead a message will be sent. */\n messageInsteadOfAutoHide?: boolean;\n /** Handle Esc to close/message. */\n keyboard?: boolean;\n /** Whether to enable animation. */\n animated?: boolean;\n /** Additional CSS class. */\n class?: string;\n /** aria-labelled-by value. */\n ariaLabelledBy?: string;\n}\n\nclass ModalRefImpl<T = never, CT = void> extends ModalRef<T, CT> {\n contentRef: TemplateRef<any> | Type<any>;\n viewRef?: EmbeddedViewRef<any>;\n modalCompRef?: ComponentRef<SiModalComponent>;\n componentRef?: ComponentRef<T>;\n overlayRef?: OverlayRef;\n\n override get content(): T {\n return this.componentRef?.instance as T;\n }\n\n override setInput(input: string, value: unknown): void {\n this.componentRef?.setInput(input, value);\n }\n\n constructor(\n contentRef: TemplateRef<any> | Type<any>,\n layer: number,\n data: ModalOptions,\n closeValue?: CT\n ) {\n super();\n this.contentRef = contentRef;\n this.layer = layer;\n this.data = data;\n this.ignoreBackdropClick = data.ignoreBackdropClick !== false;\n this.dialogClass = data?.class ?? '';\n this.closeValue = closeValue;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SiModalService {\n private modalsCount = 0;\n private readonly overlay = inject(Overlay);\n private appRef = inject(ApplicationRef);\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n /**\n * Shows a modal with the given content and configuration.\n * @param content - Content to be displayed in the modal can be a template reference or a component.\n * @param config - Configuration for the modal.\n * @param closeValue - Default closing value which can be overridden by calling `modalRef.hide(value)`.\n * @returns A reference to the modal.\n */\n show<T, CT = any>(\n content: TemplateRef<any> | (new (...args: any[]) => T),\n config: ModalOptions<T>,\n closeValue?: CT\n ): ModalRef<T, CT> {\n const modalRef = new ModalRefImpl<T, CT>(content, ++this.modalsCount, config, closeValue);\n const siModalRef = this.attachComponent(modalRef);\n modalRef.modalCompRef = siModalRef;\n modalRef.detach = () => this.detach(modalRef);\n modalRef.hide = (param?: CT) => siModalRef.instance.hideDialog(param);\n modalRef.isCurrent = () => modalRef.layer === this.modalsCount;\n\n if (this.modalsCount === 1) {\n siModalRef.instance.showBackdrop();\n }\n\n return modalRef;\n }\n\n private attachComponent<T, CT>(modalRef: ModalRefImpl<T, CT>): ComponentRef<SiModalComponent> {\n const providers: StaticProvider[] = [{ provide: ModalRef, useValue: modalRef }];\n modalRef.data.providers?.forEach(p => providers.push(p));\n const injector = Injector.create({\n providers,\n parent: modalRef.data.injector ?? this.buildInjector()\n });\n\n modalRef.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n direction: isRTL() ? 'rtl' : 'ltr'\n });\n const compPortal = new ComponentPortal(SiModalComponent, null, injector);\n // Ensure compatibility between Angular CDK 19 and 20 since constructor arguments have changed\n compPortal.projectableNodes = this.getContentProjectableNodes(injector, modalRef);\n return modalRef.overlayRef.attach(compPortal);\n }\n\n private getContentProjectableNodes<T, CT>(\n injector: Injector,\n modalRef: ModalRefImpl<T, CT>\n ): Node[][] {\n if (modalRef.contentRef instanceof TemplateRef) {\n modalRef.viewRef = modalRef.contentRef.createEmbeddedView({\n modalRef,\n ...modalRef.data.initialState,\n ...modalRef.data.inputValues\n });\n this.appRef.attachView(modalRef.viewRef);\n return [modalRef.viewRef.rootNodes];\n }\n\n modalRef.componentRef = createComponent(modalRef.contentRef, {\n environmentInjector: modalRef.data.environmentInjector ?? this.environmentInjector,\n elementInjector: injector\n });\n Object.assign(modalRef.componentRef.instance as any, modalRef.data?.initialState);\n // set initial @Input() / input()\n for (const [key, value] of Object.entries(modalRef.data?.inputValues ?? {})) {\n modalRef.componentRef?.setInput(key, value);\n }\n modalRef.componentRef.changeDetectorRef.detectChanges();\n\n this.appRef.attachView(modalRef.componentRef.hostView);\n return [[modalRef.componentRef.location.nativeElement]];\n }\n\n protected detach(modalRef: ModalRef<unknown, any>): void {\n const ref = modalRef as ModalRefImpl<unknown>;\n if (ref.modalCompRef) {\n ref.modalCompRef?.destroy();\n ref.modalCompRef = undefined;\n ref.componentRef?.destroy();\n ref.componentRef = undefined;\n ref.viewRef?.destroy();\n ref.viewRef = undefined;\n ref.overlayRef?.dispose();\n ref.shown.complete();\n this.modalsCount--;\n }\n }\n\n // TODO remove once translation must be defined at application start\n // Notification service is provided in 'root'. If no translation is defined, SiNoTranslateService is not provided\n protected buildInjector(): Injector {\n let injector = this.injector;\n if (!injector.get(SiTranslateService, null)) {\n injector = Injector.create({\n providers: [{ provide: SiTranslateService, useClass: SiNoTranslateService, deps: [] }],\n parent: this.injector\n });\n }\n return injector;\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ModalOptions } from './si-modal.service';\n\nlet idCounter = 1;\n\nexport const createModalConfig = (inputs?: { [key: string]: any }): ModalOptions => {\n if (inputs) {\n Object.keys(inputs).forEach(k => inputs![k] === undefined && delete inputs![k]);\n } else {\n inputs = {};\n }\n const config: ModalOptions<any> = {\n inputValues: inputs as { [key: string]: any },\n ignoreBackdropClick: true,\n keyboard: false,\n animated: true,\n class: 'modal-dialog-centered'\n };\n const id = `__si-modal-id-${idCounter++}`;\n config.inputValues!.titleId = id;\n config.ariaLabelledBy = id;\n return config;\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-modal.service';\nexport * from './modalref';\nexport * from './modal.helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"siemens-element-ng-modal.mjs","sources":["../../../../projects/element-ng/modal/modalref.ts","../../../../projects/element-ng/modal/si-modal.component.ts","../../../../projects/element-ng/modal/si-modal.component.html","../../../../projects/element-ng/modal/si-modal.service.ts","../../../../projects/element-ng/modal/modal.helpers.ts","../../../../projects/element-ng/modal/index.ts","../../../../projects/element-ng/modal/siemens-element-ng-modal.ts"],"sourcesContent":["/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ElementRef } from '@angular/core';\nimport { ReplaySubject, Subject } from 'rxjs';\n\nimport { ModalOptions } from './si-modal.service';\n\n/**\n * Reference to a modal dialog\n * @typeParam T - the type of the content\n * @typeParam CT - the close type\n */\nexport class ModalRef<T = never, CT = any> {\n /** Emits the close value when the modal is hidden. */\n hidden = new Subject<CT | undefined>();\n /** Allows messaging state to consumer w/o closing the dialog. */\n message = new Subject<CT | undefined>();\n /** Emits the modal element reference when it is shown. */\n shown = new ReplaySubject<ElementRef>(1);\n /**\n * The modal options passed during creation.\n *\n * @defaultValue `{}`\n * @see {@link SiModalService}\n */\n data: ModalOptions = {};\n /** @defaultValue true */\n ignoreBackdropClick = true;\n /**\n * Custom class for modal-dialog\n *\n * @defaultValue ''\n */\n dialogClass = '';\n /**\n * The layer of the modal. The modal with the highest layer will be shown on top.\n *\n * @defaultValue 0\n */\n layer = 0;\n /** The default close value of the modal. */\n closeValue?: CT;\n\n get content(): T {\n return undefined as unknown as T;\n }\n\n /** Set the input of a component shown in the modal. */\n setInput(input: string, value: unknown): void {}\n\n /**\n * @defaultValue `() => false`\n */\n isCurrent: () => boolean = () => false;\n /**\n * @defaultValue `() => {}`\n */\n detach: () => void = () => {};\n /**\n * Close the modal with a custom close value.\n *\n * @defaultValue `() => {}`\n */\n hide: (reason?: CT) => void = () => {};\n\n /**\n * When `data.disableAutoHide` is set, messages the `reason`, otherwise calls {@link hide}.\n */\n messageOrHide(reason?: CT): void {\n if (this.data.messageInsteadOfAutoHide) {\n this.message.next(reason);\n } else {\n this.hide(reason);\n }\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { DOCUMENT, NgClass } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n HostListener,\n inject,\n OnDestroy,\n OnInit,\n signal,\n viewChild\n} from '@angular/core';\n\nimport { ModalRef } from './modalref';\n\n@Component({\n selector: 'si-modal',\n templateUrl: './si-modal.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [A11yModule, NgClass]\n})\nexport class SiModalComponent implements OnInit, AfterViewInit, OnDestroy {\n protected modalRef = inject(ModalRef<unknown, any>);\n\n protected dialogClass = this.modalRef.dialogClass ?? '';\n protected titleId = this.modalRef.data?.ariaLabelledBy ?? '';\n protected init = false;\n protected readonly show = signal(false);\n protected readonly showBackdropClass = signal<boolean | undefined>(undefined);\n\n private clickStartInDialog = false;\n private origBodyOverflow?: string;\n private showTimer: any;\n private backdropTimer: any;\n private backdropGhostClickPrevention = true;\n private document = inject(DOCUMENT);\n\n private readonly modalContainerRef = viewChild.required<ElementRef>('modalContainer');\n\n ngOnInit(): void {\n setTimeout(() => (this.backdropGhostClickPrevention = false), this.animationTime(300));\n this.init = true;\n this.showTimer = setTimeout(() => {\n this.show.set(true);\n }, this.animationTime(150));\n }\n\n ngAfterViewInit(): void {\n queueMicrotask(() => this.modalRef?.shown.next(this.modalContainerRef()));\n }\n\n ngOnDestroy(): void {\n this.hideBackdrop();\n }\n\n /** @internal */\n hideDialog(param?: any): void {\n clearTimeout(this.showTimer);\n\n this.show.set(false);\n // set `detach()` in modal ref to no-op so that the animation is unaffected if called\n const detach = this.modalRef.detach;\n this.modalRef.detach = () => {};\n\n setTimeout(() => {\n this.hideBackdrop();\n setTimeout(() => detach(), this.animationTime(150));\n }, this.animationTime(300));\n\n this.modalRef?.hidden.next(param);\n this.modalRef?.hidden.complete();\n this.modalRef?.message.complete();\n }\n\n /** @internal */\n showBackdrop(): void {\n if (this.modalRef?.data.animated !== false) {\n this.showBackdropClass.set(false);\n this.backdropTimer = setTimeout(() => {\n this.showBackdropClass.set(true);\n }, 16);\n } else {\n this.showBackdropClass.set(true);\n }\n this.origBodyOverflow = this.document.body.style.overflow;\n this.document.body.style.overflow = 'hidden';\n }\n\n private hideBackdrop(): void {\n clearTimeout(this.backdropTimer);\n if (this.showBackdropClass() !== undefined) {\n this.showBackdropClass.set(false);\n }\n if (this.origBodyOverflow !== undefined) {\n this.document.body.style.overflow = this.origBodyOverflow;\n this.origBodyOverflow = undefined;\n }\n }\n\n @HostListener('mousedown', ['$event'])\n protected clickStarted(event: MouseEvent): void {\n this.clickStartInDialog = event.target !== this.modalContainerRef().nativeElement;\n }\n\n @HostListener('mouseup', ['$event'])\n protected onClickStop(event: MouseEvent): void {\n const clickedInBackdrop =\n event.target === this.modalContainerRef().nativeElement && !this.clickStartInDialog;\n if (this.modalRef?.ignoreBackdropClick || !clickedInBackdrop) {\n this.clickStartInDialog = false;\n return;\n }\n\n if (!this.backdropGhostClickPrevention) {\n // Called when backdrop close is allowed and user clicks on the backdrop\n this.modalRef.messageOrHide(this.modalRef.closeValue);\n } else {\n // When in ghost click prevention mode, avoid text selection\n this.document.getSelection()?.removeAllRanges();\n }\n }\n\n @HostListener('window:keydown.esc', ['$event'])\n protected onEsc(event: KeyboardEvent): void {\n if (this.modalRef?.data.keyboard && this.modalRef?.isCurrent()) {\n event.preventDefault();\n this.modalRef.messageOrHide(this.modalRef.closeValue);\n }\n }\n\n private animationTime(millis: number): number {\n return this.modalRef?.data.animated !== false ? millis : 0;\n }\n}\n","@if (showBackdropClass() !== undefined) {\n <div\n class=\"modal-backdrop\"\n [class.fade]=\"modalRef.data.animated !== false\"\n [class.show]=\"showBackdropClass()\"\n ></div>\n}\n@if (init) {\n <div\n #modalContainer\n role=\"dialog\"\n class=\"modal d-block\"\n aria-modal=\"true\"\n [class.fade]=\"modalRef.data.animated !== false\"\n [class.show]=\"show()\"\n [attr.aria-labelledby]=\"titleId\"\n >\n <div class=\"modal-dialog\" cdkTrapFocus cdkTrapFocusAutoCapture [ngClass]=\"dialogClass\">\n <div class=\"modal-content\">\n <ng-content />\n </div>\n </div>\n </div>\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay, OverlayRef } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport {\n ApplicationRef,\n ComponentRef,\n createComponent,\n EmbeddedViewRef,\n EnvironmentInjector,\n inject,\n Injectable,\n Injector,\n StaticProvider,\n TemplateRef,\n Type\n} from '@angular/core';\nimport { isRTL } from '@siemens/element-ng/common';\nimport { SiNoTranslateService, SiTranslateService } from '@siemens/element-translate-ng/translate';\n\nimport { ModalRef } from './modalref';\nimport { SiModalComponent } from './si-modal.component';\n\nexport interface ModalDependencyInjectionOptions {\n /** Additional providers for the modal. */\n providers?: StaticProvider[];\n /** Optional element Injector. */\n injector?: Injector;\n /** Optional environment Injector. */\n environmentInjector?: EnvironmentInjector;\n}\n\nexport interface ModalOptions<T = Record<string, any>> extends ModalDependencyInjectionOptions {\n /**\n * Assign all values to the target component using `Object.assign(component, initialState)`.\n *\n * @deprecated Use {@link inputValues} instead.\n */\n initialState?: Partial<T>;\n /**\n * Use this to assign values to either `@Input()` or `input()` fields of the provided component.\n * If a template is used, the values are available in the template context.\n */\n inputValues?: Record<string, unknown>;\n /** When set to true, clicking the backdrop has no effect. */\n ignoreBackdropClick?: boolean;\n /** When set to true, backdrop click or Esc don't close the modal. Instead a message will be sent. */\n messageInsteadOfAutoHide?: boolean;\n /** Handle Esc to close/message. */\n keyboard?: boolean;\n /** Whether to enable animation. */\n animated?: boolean;\n /** Additional CSS class. */\n class?: string;\n /** aria-labelled-by value. */\n ariaLabelledBy?: string;\n}\n\nclass ModalRefImpl<T = never, CT = void> extends ModalRef<T, CT> {\n contentRef: TemplateRef<any> | Type<any>;\n viewRef?: EmbeddedViewRef<any>;\n modalCompRef?: ComponentRef<SiModalComponent>;\n componentRef?: ComponentRef<T>;\n overlayRef?: OverlayRef;\n\n override get content(): T {\n return this.componentRef?.instance as T;\n }\n\n override setInput(input: string, value: unknown): void {\n this.componentRef?.setInput(input, value);\n }\n\n constructor(\n contentRef: TemplateRef<any> | Type<any>,\n layer: number,\n data: ModalOptions,\n closeValue?: CT\n ) {\n super();\n this.contentRef = contentRef;\n this.layer = layer;\n this.data = data;\n this.ignoreBackdropClick = data.ignoreBackdropClick !== false;\n this.dialogClass = data?.class ?? '';\n this.closeValue = closeValue;\n }\n}\n\n@Injectable({ providedIn: 'root' })\nexport class SiModalService {\n private modalsCount = 0;\n private readonly overlay = inject(Overlay);\n private appRef = inject(ApplicationRef);\n private injector = inject(Injector);\n private environmentInjector = inject(EnvironmentInjector);\n\n /**\n * Shows a modal with the given content and configuration.\n * @param content - Content to be displayed in the modal can be a template reference or a component.\n * @param config - Configuration for the modal.\n * @param closeValue - Default closing value which can be overridden by calling `modalRef.hide(value)`.\n * @returns A reference to the modal.\n */\n show<T, CT = any>(\n content: TemplateRef<any> | (new (...args: any[]) => T),\n config: ModalOptions<T>,\n closeValue?: CT\n ): ModalRef<T, CT> {\n const modalRef = new ModalRefImpl<T, CT>(content, ++this.modalsCount, config, closeValue);\n const siModalRef = this.attachComponent(modalRef);\n modalRef.modalCompRef = siModalRef;\n modalRef.detach = () => this.detach(modalRef);\n modalRef.hide = (param?: CT) => siModalRef.instance.hideDialog(param);\n modalRef.isCurrent = () => modalRef.layer === this.modalsCount;\n\n if (this.modalsCount === 1) {\n siModalRef.instance.showBackdrop();\n }\n\n return modalRef;\n }\n\n private attachComponent<T, CT>(modalRef: ModalRefImpl<T, CT>): ComponentRef<SiModalComponent> {\n const providers: StaticProvider[] = [{ provide: ModalRef, useValue: modalRef }];\n modalRef.data.providers?.forEach(p => providers.push(p));\n const injector = Injector.create({\n providers,\n parent: modalRef.data.injector ?? this.buildInjector()\n });\n\n modalRef.overlayRef = this.overlay.create({\n positionStrategy: this.overlay.position().global().centerHorizontally().centerVertically(),\n direction: isRTL() ? 'rtl' : 'ltr'\n });\n const compPortal = new ComponentPortal(SiModalComponent, null, injector);\n // Ensure compatibility between Angular CDK 19 and 20 since constructor arguments have changed\n compPortal.projectableNodes = this.getContentProjectableNodes(injector, modalRef);\n return modalRef.overlayRef.attach(compPortal);\n }\n\n private getContentProjectableNodes<T, CT>(\n injector: Injector,\n modalRef: ModalRefImpl<T, CT>\n ): Node[][] {\n if (modalRef.contentRef instanceof TemplateRef) {\n modalRef.viewRef = modalRef.contentRef.createEmbeddedView({\n modalRef,\n ...modalRef.data.initialState,\n ...modalRef.data.inputValues\n });\n this.appRef.attachView(modalRef.viewRef);\n return [modalRef.viewRef.rootNodes];\n }\n\n modalRef.componentRef = createComponent(modalRef.contentRef, {\n environmentInjector: modalRef.data.environmentInjector ?? this.environmentInjector,\n elementInjector: injector\n });\n Object.assign(modalRef.componentRef.instance as any, modalRef.data?.initialState);\n // set initial @Input() / input()\n for (const [key, value] of Object.entries(modalRef.data?.inputValues ?? {})) {\n modalRef.componentRef?.setInput(key, value);\n }\n modalRef.componentRef.changeDetectorRef.detectChanges();\n\n this.appRef.attachView(modalRef.componentRef.hostView);\n return [[modalRef.componentRef.location.nativeElement]];\n }\n\n protected detach(modalRef: ModalRef<unknown, any>): void {\n const ref = modalRef as ModalRefImpl<unknown>;\n if (ref.modalCompRef) {\n ref.modalCompRef?.destroy();\n ref.modalCompRef = undefined;\n ref.componentRef?.destroy();\n ref.componentRef = undefined;\n ref.viewRef?.destroy();\n ref.viewRef = undefined;\n ref.overlayRef?.dispose();\n ref.shown.complete();\n this.modalsCount--;\n }\n }\n\n // TODO remove once translation must be defined at application start\n // Notification service is provided in 'root'. If no translation is defined, SiNoTranslateService is not provided\n protected buildInjector(): Injector {\n let injector = this.injector;\n if (!injector.get(SiTranslateService, null)) {\n injector = Injector.create({\n providers: [{ provide: SiTranslateService, useClass: SiNoTranslateService, deps: [] }],\n parent: this.injector\n });\n }\n return injector;\n }\n}\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nimport { ModalOptions } from './si-modal.service';\n\nlet idCounter = 1;\n\nexport const createModalConfig = (inputs?: { [key: string]: any }): ModalOptions => {\n if (inputs) {\n Object.keys(inputs).forEach(k => inputs![k] === undefined && delete inputs![k]);\n } else {\n inputs = {};\n }\n const config: ModalOptions<any> = {\n inputValues: inputs as { [key: string]: any },\n ignoreBackdropClick: true,\n keyboard: false,\n animated: true,\n class: 'modal-dialog-centered'\n };\n const id = `__si-modal-id-${idCounter++}`;\n config.inputValues!.titleId = id;\n config.ariaLabelledBy = id;\n return config;\n};\n","/**\n * Copyright Siemens 2016 - 2025.\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-modal.service';\nexport * from './modalref';\nexport * from './modal.helpers';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}