@siemens/element-ng 51.0.0-rc.8 → 51.0.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 (105) hide show
  1. package/fesm2022/siemens-element-ng-ag-grid.mjs +17 -25
  2. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-application-header.mjs +2 -2
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-avatar.mjs +3 -3
  6. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-chat-messages.mjs +123 -23
  8. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -18
  10. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs +2 -2
  12. package/fesm2022/siemens-element-ng-column-selection-dialog.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-dashboard.mjs +4 -4
  14. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-date-range-filter.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-datepicker.mjs +4 -4
  18. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
  20. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-filtered-search.mjs +2 -2
  22. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-form.mjs +19 -6
  24. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-formly.mjs +4 -4
  26. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-icon.mjs +1 -1
  28. package/fesm2022/siemens-element-ng-icon.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-info-page.mjs +2 -2
  30. package/fesm2022/siemens-element-ng-info-page.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-landing-page.mjs +4 -4
  32. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-list-details.mjs +62 -16
  34. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-main-detail-container.mjs +72 -24
  36. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-maplibre.mjs +282 -6
  38. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +2 -2
  40. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  42. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +6 -6
  44. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +4 -4
  46. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
  48. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-select.mjs +44 -5
  50. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-side-panel.mjs +48 -13
  52. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-slider.mjs +2 -2
  54. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-source-chip.mjs +2 -2
  56. package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-split.mjs +18 -16
  58. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-status-bar.mjs +2 -2
  60. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
  62. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
  64. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-summary-widget.mjs +2 -2
  66. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-system-banner.mjs +5 -5
  68. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-tabs.mjs +93 -71
  70. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
  72. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-tour.mjs +2 -2
  74. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  76. package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
  77. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  78. package/package.json +4 -4
  79. package/schematics/collection.json +5 -0
  80. package/schematics/migrate-tabs-legacy/index.js +5 -0
  81. package/schematics/migrate-tabs-legacy/migrate-tabs-legacy-rule.js +675 -0
  82. package/schematics/migrate-tabs-legacy/schema.json +14 -0
  83. package/schematics/migrations/data/css-custom-properties.js +67 -1
  84. package/schematics/migrations/data/element-class-changes.js +31 -12
  85. package/schematics/ng-update/migrate-list-details-units.js +86 -0
  86. package/schematics/ng-update/migrate-main-detail-units.js +89 -0
  87. package/schematics/ng-update/migrate-split-collapse.js +1 -32
  88. package/schematics/ng-update/migrate-split-scale.js +524 -0
  89. package/schematics/ng-update/migrate-split-sizes.js +5 -3
  90. package/schematics/ng-update/migrate-to-v51.js +6 -0
  91. package/schematics/utils/index.js +1 -0
  92. package/schematics/utils/template-edit-utils.js +35 -0
  93. package/schematics/utils/template-utils.js +31 -45
  94. package/template-i18n.json +1 -0
  95. package/types/siemens-element-ng-avatar.d.ts +1 -1
  96. package/types/siemens-element-ng-chat-messages.d.ts +81 -17
  97. package/types/siemens-element-ng-form.d.ts +3 -0
  98. package/types/siemens-element-ng-list-details.d.ts +25 -3
  99. package/types/siemens-element-ng-main-detail-container.d.ts +23 -3
  100. package/types/siemens-element-ng-maplibre.d.ts +131 -7
  101. package/types/siemens-element-ng-select.d.ts +31 -4
  102. package/types/siemens-element-ng-side-panel.d.ts +17 -3
  103. package/types/siemens-element-ng-split.d.ts +3 -10
  104. package/types/siemens-element-ng-system-banner.d.ts +2 -2
  105. package/types/siemens-element-ng-translate.d.ts +1 -0
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-navbar-vertical.mjs","sources":["../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-divider.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.provider.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-group-trigger.directive.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-group.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-header.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item-legacy.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item-legacy.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.module.ts","../../../../projects/element-ng/navbar-vertical/index.ts","../../../../projects/element-ng/navbar-vertical/siemens-element-ng-navbar-vertical.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n// We need a component to attach the stylesheet\n@Component({\n selector: 'si-navbar-vertical-divider',\n template: '',\n styleUrl: './si-navbar-vertical-divider.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiNavbarVerticalDividerComponent {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport type { SiNavbarVerticalComponent } from './si-navbar-vertical.component';\n\nexport const SI_NAVBAR_VERTICAL = new InjectionToken<SiNavbarVerticalComponent>(\n 'SI_NAVBAR_VERTICAL'\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n Injector,\n input,\n model,\n OnInit,\n signal,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavbarVerticalItem, NavbarVerticalItemGroup } from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n/**\n * Using this component, to anchor the flyout inside the navbar within the a11y tree.\n * Otherwise, without aria-owns, screen reader will announce the leaving of the navbar when moving to the flyout.\n * Aria-owns cannot be put directly on the trigger\n * as chrome will include the flyout children in the a11y label of the trigger.\n */\n@Component({\n selector: 'si-navbar-flyout-anchor',\n template: '',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: { '[attr.aria-owns]': 'groupId()' }\n})\nclass SiNavbarFlyoutAnchorComponent {\n /** ID of the flyout group owned by this accessibility anchor. */\n readonly groupId = input<string>();\n}\n\n@Directive({\n selector: 'button[siNavbarVerticalGroupTriggerFor]',\n host: {\n class: 'dropdown-toggle',\n '[id]': 'id',\n '[class.show]': 'expanded()',\n '[attr.aria-controls]': 'groupId',\n '[attr.aria-expanded]': 'expanded()',\n '(click)': 'triggered()'\n }\n})\nexport class SiNavbarVerticalGroupTriggerDirective implements OnInit {\n private static idCounter = 0;\n\n /** @internal */\n readonly groupId = `si-navbar-vertical-group-${SiNavbarVerticalGroupTriggerDirective.idCounter++}`;\n readonly id = `${this.groupId}-trigger`;\n\n /** Template rendered for the expandable group. */\n readonly groupTemplate = input.required<TemplateRef<unknown>>({\n alias: 'siNavbarVerticalGroupTriggerFor'\n });\n\n /** Context passed to the group template. */\n readonly groupData = input<{ item?: NavbarVerticalItem; group: NavbarVerticalItemGroup }>();\n\n /** Key used to persist the expanded state of this group. */\n readonly stateId = input<string>();\n\n /** Whether the group is expanded. Emits `expandedChange` when changed. */\n readonly expanded = model.required<boolean>();\n\n /** @internal */\n readonly flyout = signal(false);\n\n /** @internal */\n readonly active = signal(false);\n\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n\n private flyoutOutsideClickSubscription?: Subscription;\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly overlay = inject(Overlay);\n private readonly injector = Injector.create({ parent: inject(Injector), providers: [] });\n private readonly overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.viewContainer.element)\n .withPositions([\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }\n ])\n });\n private groupView!: EmbeddedViewRef<unknown>;\n private flyoutAnchorComponentRef?: ComponentRef<SiNavbarFlyoutAnchorComponent>;\n private readonly templatePortal = computed(\n () =>\n new TemplatePortal(this.groupTemplate(), this.viewContainer, this.groupData(), this.injector)\n );\n\n constructor() {\n effect(() => {\n const data = this.groupData();\n const view = this.groupView;\n if (data && view && !view.destroyed) {\n const context = view.context as {\n item?: NavbarVerticalItem;\n group: NavbarVerticalItemGroup;\n };\n if (context) {\n context.group = data.group;\n if (data.item !== undefined) {\n context.item = data.item;\n }\n view.detectChanges();\n }\n }\n });\n }\n\n ngOnInit(): void {\n this.attachInline();\n }\n\n /** @internal */\n hideFlyout(): void {\n if (this.flyout()) {\n this.flyout.set(false);\n this.active.set(false);\n this.flyoutAnchorComponentRef?.destroy();\n this.flyoutAnchorComponentRef = undefined;\n this.attachInline();\n this.flyoutOutsideClickSubscription?.unsubscribe();\n }\n }\n\n protected triggered(): void {\n if (this.navbar.collapsed()) {\n this.toggleFlyout();\n } else {\n this.expanded.set(!this.expanded());\n this.navbar.groupTriggered();\n }\n }\n\n private toggleFlyout(): void {\n if (this.flyout()) {\n this.hideFlyout();\n } else {\n this.flyout.set(true);\n this.attachFlyout();\n }\n }\n private attachInline(): void {\n this.overlayRef.detach();\n this.groupView?.destroy(); // we need ?. for first attachment\n this.groupView = this.viewContainer.createEmbeddedView(this.groupTemplate(), this.groupData(), {\n injector: this.injector\n });\n }\n\n private attachFlyout(): void {\n this.groupView.destroy();\n this.groupView = this.overlayRef.attach(this.templatePortal());\n this.flyoutAnchorComponentRef = this.viewContainer.createComponent(\n SiNavbarFlyoutAnchorComponent\n );\n this.flyoutAnchorComponentRef.setInput('groupId', this.groupId);\n this.flyoutOutsideClickSubscription = this.overlayRef\n .outsidePointerEvents()\n .subscribe(() => this.hideFlyout());\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterLinkActive } from '@angular/router';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-group',\n imports: [CdkTrapFocus],\n template: `@if (visible()) {\n <div\n animate.leave=\"group-leave\"\n [class.inline-group]=\"!flyout\"\n [class.dropdown-menu]=\"flyout\"\n [cdkTrapFocus]=\"flyout\"\n [cdkTrapFocusAutoCapture]=\"flyout\"\n >\n <div [class.overflow-hidden]=\"!flyout\">\n <ng-content />\n </div>\n </div>\n }`,\n styleUrl: './si-navbar-vertical-group.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n role: 'group',\n '[id]': 'groupTrigger.groupId',\n '[attr.aria-labelledby]': 'groupTrigger.id',\n 'animate.enter': 'component-enter',\n '(keydown.escape)': 'close()'\n }\n})\nexport class SiNavbarVerticalGroupComponent {\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n protected readonly groupTrigger = inject(SiNavbarVerticalGroupTriggerDirective);\n private readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n\n // Store initial value, as the mode for an instance never changes.\n protected flyout = this.groupTrigger.flyout();\n\n protected readonly visible = computed(() => {\n return this.flyout || (!this.navbar.collapsed() && this.groupTrigger.expanded());\n });\n\n constructor() {\n this.routerLinkActive?.isActiveChange\n .pipe(takeUntilDestroyed())\n .subscribe(active => this.groupTrigger.active.set(active));\n }\n\n protected close(): void {\n this.groupTrigger.hideFlyout();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { SiNavbarVerticalDividerComponent } from './si-navbar-vertical-divider.component';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-header',\n imports: [SiNavbarVerticalDividerComponent],\n template: `\n @if (!navbar.collapsed()) {\n <div class=\"title si-h5 text-secondary text-truncate p-5\" animate.leave=\"title-leave\">\n <ng-content />\n </div>\n } @else {\n <si-navbar-vertical-divider class=\"divider\" animate.leave=\"divider-leave\" />\n }\n `,\n styleUrl: './si-navbar-vertical-header.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '[class.collapsed]': 'navbar.collapsed()',\n 'animate.enter': 'component-enter'\n }\n})\nexport class SiNavbarVerticalHeaderComponent {\n protected navbar = inject(SI_NAVBAR_VERTICAL);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input, OnInit } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLinkDirective } from '@siemens/element-ng/link';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport {\n NavbarVerticalItemAction,\n NavbarVerticalItemGroup,\n NavbarVerticalItemLink,\n NavbarVerticalItemRouterLink\n} from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\ntype NavbarVerticalItemInteractive =\n | NavbarVerticalItemGroup\n | NavbarVerticalItemRouterLink\n | NavbarVerticalItemLink\n | NavbarVerticalItemAction;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-navbar-vertical-item], button[si-navbar-vertical-item]',\n imports: [SiIconComponent],\n templateUrl: './si-navbar-vertical-item.component.html',\n styleUrl: './si-navbar-vertical-item.component.scss',\n host: {\n 'class': 'focus-inside',\n '[class.dropdown-item]': 'this.parent?.group?.flyout()',\n '[class.navbar-vertical-item]': '!this.parent?.group?.flyout()',\n '[class.active]': 'active',\n '[class.hide-badge-collapsed]': 'hideBadgeCollapsed()',\n '(click)': 'triggered()'\n }\n})\nexport class SiNavbarVerticalItemComponent implements OnInit {\n protected readonly icons = addIcons({ elementDown2 });\n /** Item configuration to render. */\n readonly item = input.required<NavbarVerticalItemInteractive | MenuItem>({\n alias: 'si-navbar-vertical-item'\n });\n /** Overrides the item's automatically determined active state. */\n readonly activeOverride = input<boolean>();\n\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n protected readonly parent = inject(SiNavbarVerticalItemComponent, {\n skipSelf: true,\n optional: true\n });\n readonly group = inject(SiNavbarVerticalGroupTriggerDirective, {\n optional: true,\n self: true\n });\n private readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n private readonly siLink = inject(SiLinkDirective, { optional: true });\n\n /**\n * Hides the badge in collapsed state\n */\n protected readonly hideBadgeCollapsed = computed(\n () => !!(this.item() as NavbarVerticalItemInteractive).hideBadgeWhenCollapsed\n );\n\n /**\n * Determines if the badge contains text-only content (not numeric)\n */\n protected readonly textOnlyBadge = computed(() => {\n const badge = this.item().badge;\n return badge ? typeof badge !== 'number' : false;\n });\n\n /**\n * Formats badge value to limit display to \"+99\" for numbers greater than 99\n */\n protected readonly formattedBadge = computed(() => {\n const badge = this.item().badge;\n if (!badge) {\n return '';\n }\n if (typeof badge === 'number') {\n return badge > 99 ? '+99' : badge.toString();\n }\n return badge.toString();\n });\n\n ngOnInit(): void {\n if (this.group && this.active) {\n this.group.expanded.set(true);\n }\n }\n\n protected triggered(): void {\n const item = this.item();\n if (item.type === 'action') {\n item.action(item);\n return;\n }\n this.parent?.group?.hideFlyout();\n if (!this.group) {\n this.navbar.itemTriggered();\n }\n }\n\n get active(): boolean {\n return (\n this.activeOverride() ||\n this.routerLinkActive?.isActive ||\n this.siLink?.active() ||\n ((!this.group?.expanded() || this.navbar.collapsed()) && this.group?.active()) ||\n false\n );\n /* eslint-disable-enable @typescript-eslint/prefer-nullish-coalescing */\n }\n}\n","@let icon = item().icon;\n@if (icon) {\n <si-icon class=\"icon\" [icon]=\"icon\" />\n}\n<div class=\"item-title text-truncate si-h5\">\n <ng-content />\n</div>\n@if (!navbar.textOnly() && formattedBadge()) {\n <span\n [class]=\"[\n 'badge',\n item().badgeColor ? `bg-${item().badgeColor}` : 'bg-default',\n textOnlyBadge() ? 'badge-text-only' : '',\n navbar.collapsed() ? 'badge-collapsed' : ''\n ]\"\n >{{ formattedBadge() }}</span\n >\n}\n@if (group) {\n <si-icon\n aria-hidden=\"true\"\n class=\"dropdown-caret me-0 text-primary\"\n [icon]=\"icons.elementDown2\"\n />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n viewChildren\n} from '@angular/core';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport { SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SiNavbarVerticalGroupComponent } from './si-navbar-vertical-group.component';\nimport { SiNavbarVerticalHeaderComponent } from './si-navbar-vertical-header.component';\nimport { SiNavbarVerticalItemComponent } from './si-navbar-vertical-item.component';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-item-legacy',\n imports: [\n SiLinkDirective,\n SiTranslatePipe,\n SiNavbarVerticalItemComponent,\n SiNavbarVerticalGroupTriggerDirective,\n SiNavbarVerticalGroupComponent,\n SiNavbarVerticalHeaderComponent\n ],\n templateUrl: './si-navbar-vertical-item-legacy.component.html',\n styleUrl: './si-navbar-vertical-item-legacy.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n 'class': 'd-block mb-4'\n }\n})\nexport class SiNavbarVerticalItemLegacyComponent {\n /** Legacy menu item to render in the vertical navbar. */\n readonly item = input.required<MenuItem>();\n /** Accessible label for expanding the item group. */\n readonly navbarExpandButtonText = input.required();\n /** Accessible label for collapsing the item group. */\n readonly navbarCollapseButtonText = input.required();\n /** Whether the item group is expanded. Emits `expandedChange` when changed. */\n readonly expanded = model.required<boolean>();\n\n protected readonly flyoutItems = computed(() => {\n if (!this.navbar.collapsed()) {\n return this.item().items;\n } else {\n return [\n this.isLink() ? { ...this.item(), items: undefined } : [],\n this.item().items ?? []\n ].flat();\n }\n });\n\n protected readonly isLink = computed(() => {\n const item = this.item();\n return !!item.action || !!item.link || !!item.href;\n });\n\n protected readonly toggleButtonLabel = computed(() =>\n this.navbar.collapsed()\n ? this.navbarExpandButtonText()\n : this.expanded()\n ? this.navbarCollapseButtonText()\n : this.navbarExpandButtonText()\n );\n\n protected readonly siLinks = viewChildren(SiLinkDirective);\n protected readonly itemActive = computed(\n () =>\n (this.navbar.collapsed() || !this.expanded()) && this.siLinks().some(link => link.active())\n );\n protected navbar = inject(SI_NAVBAR_VERTICAL);\n}\n","<!-- section header -->\n@if (!isLink() && !item().items) {\n <si-navbar-vertical-header>\n {{ item().title | translate }}\n </si-navbar-vertical-header>\n} @else if (isLink() && !item().items) {\n <a [si-navbar-vertical-item]=\"item()\" [siLink]=\"item()\">\n {{ item().title | translate }}\n </a>\n} @else if (isLink() && item().items) {\n <div class=\"link-with-items\">\n <a\n #mainLink\n [si-navbar-vertical-item]=\"item()\"\n [siLink]=\"item()\"\n [activeOverride]=\"itemActive()\"\n >\n {{ item().title | translate }}\n </a>\n <button\n type=\"button\"\n class=\"mt-0\"\n [si-navbar-vertical-item]=\"item()\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [activeOverride]=\"mainLink.active\"\n [attr.aria-label]=\"toggleButtonLabel() + ' ' + item().title | translate\"\n [(expanded)]=\"expanded\"\n >\n {{ item().title | translate }}\n </button>\n </div>\n} @else if (item().items) {\n <button\n type=\"button\"\n [si-navbar-vertical-item]=\"item()\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [activeOverride]=\"itemActive()\"\n [(expanded)]=\"expanded\"\n >\n {{ item().title | translate }}\n </button>\n}\n\n<ng-template #group>\n <si-navbar-vertical-group>\n @for (subitem of flyoutItems(); track $index) {\n <a activeClass=\"active\" [si-navbar-vertical-item]=\"subitem\" [siLink]=\"subitem\">\n {{ subitem.title | translate }}\n </a>\n }\n </si-navbar-vertical-group>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n Injector,\n input,\n model,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\nimport { elementDoubleLeft, elementDoubleRight, elementSearch } from '@siemens/element-icons';\nimport { MenuItem, SI_UI_STATE_SERVICE } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiSkipLinkTargetDirective } from '@siemens/element-ng/skip-links';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiNavbarVerticalDividerComponent } from './si-navbar-vertical-divider.component';\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SiNavbarVerticalGroupComponent } from './si-navbar-vertical-group.component';\nimport { SiNavbarVerticalHeaderComponent } from './si-navbar-vertical-header.component';\nimport { SiNavbarVerticalItemLegacyComponent } from './si-navbar-vertical-item-legacy.component';\nimport { SiNavbarVerticalItemComponent } from './si-navbar-vertical-item.component';\nimport { NavbarVerticalItem, NavbarVerticalItemGroup } from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\ninterface UIState {\n preferCollapse: boolean;\n expandedItems: Record<string, boolean>;\n}\n\n/** Required to have compiler checks on the factory template */\n@Directive({ selector: '[siNavbarVerticalItemGuard]' })\nexport class SiNavbarVerticalItemGuardDirective {\n static ngTemplateContextGuard(\n dir: SiNavbarVerticalItemGuardDirective,\n ctx: any\n ): ctx is { item: NavbarVerticalItem; group: NavbarVerticalItemGroup } {\n return true;\n }\n}\n\n@Component({\n selector: 'si-navbar-vertical',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n RouterLinkActive,\n SiIconComponent,\n SiNavbarVerticalDividerComponent,\n SiNavbarVerticalGroupComponent,\n SiNavbarVerticalGroupTriggerDirective,\n SiNavbarVerticalHeaderComponent,\n SiNavbarVerticalItemComponent,\n SiNavbarVerticalItemGuardDirective,\n SiNavbarVerticalItemLegacyComponent,\n SiSearchBarComponent,\n SiSkipLinkTargetDirective,\n SiTranslatePipe,\n SiTooltipDirective\n ],\n templateUrl: './si-navbar-vertical.component.html',\n styleUrl: './si-navbar-vertical.component.scss',\n providers: [{ provide: SI_NAVBAR_VERTICAL, useExisting: SiNavbarVerticalComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n class: 'si-layout-inner',\n '[class.nav-collapsed]': 'collapsed()',\n '[class.nav-text-only]': 'textOnly()',\n '[class.visible]': 'visible()',\n '[class.ready]': 'ready()'\n }\n})\nexport class SiNavbarVerticalComponent implements OnChanges, OnInit {\n protected readonly icons = addIcons({ elementDoubleLeft, elementDoubleRight, elementSearch });\n /**\n * Whether the navbar-vertical is collapsed.\n *\n * @defaultValue false\n */\n readonly collapsed = model(false);\n\n /**\n * Toggles search bar\n *\n * @defaultValue false\n */\n readonly searchable = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text for search\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)\n * ```\n */\n readonly searchPlaceholder = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)\n );\n\n /**\n * List of vertical navigation items\n *\n * @defaultValue []\n */\n readonly items = model<(MenuItem | NavbarVerticalItem)[]>([]);\n\n /**\n * Set to `true` if there are no icons\n *\n * @defaultValue false\n */\n /**\n * Set to `true` if there are no icons\n *\n * @defaultValue false\n */\n readonly textOnly = input(false, { transform: booleanAttribute });\n\n /**\n * Set to false to hide the vertical navbar\n *\n * @defaultValue true\n */\n /**\n * Set to false to hide the vertical navbar\n *\n * @defaultValue true\n */\n readonly visible = input(true, { transform: booleanAttribute });\n\n /**\n * Text for the navbar expand button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.EXPAND:Expand`)\n * ```\n */\n readonly navbarExpandButtonText = input(t(() => $localize`:@@SI_NAVBAR_VERTICAL.EXPAND:Expand`));\n\n /**\n * Text for the navbar collapse button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.COLLAPSE:Collapse`)\n * ```\n */\n readonly navbarCollapseButtonText = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.COLLAPSE:Collapse`)\n );\n\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 * Label for the skip link to the vertical navbar\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)\n * ```\n */\n readonly skipLinkNavigationLabel = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)\n );\n\n /**\n * Label for the skip link to main content\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)\n * ```\n */\n readonly skipLinkMainContentLabel = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)\n );\n /**\n * Debounce time for the search input\n * @defaultValue 400\n */\n readonly searchDebounceTime = input(400);\n /**\n * Output for search bar input\n */\n readonly searchEvent = output<string>();\n\n private readonly searchBar = viewChild.required(SiSearchBarComponent);\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n private breakpointObserver = inject(BreakpointObserver);\n private injector = inject(Injector);\n private readonly navbarItems = viewChildren(SiNavbarVerticalItemComponent);\n private readonly navbarItemsLegacy = viewChildren(SiNavbarVerticalItemLegacyComponent);\n private readonly itemsToComponents = computed(\n () =>\n new Map(\n [...this.navbarItems(), ...this.navbarItemsLegacy()].map(component => [\n component.item() as NavbarVerticalItem | MenuItem, // to have a broader key type allowed\n component\n ])\n )\n );\n\n protected readonly ready = signal(false);\n protected readonly smallScreen = signal(false);\n protected readonly uiStateExpandedItems = signal<Record<string, boolean>>({});\n\n // Indicates if the user prefers a collapsed navbar. Relevant for resizing.\n private preferCollapse = false;\n\n constructor() {\n this.breakpointObserver\n .observe(`(max-width: ${BOOTSTRAP_BREAKPOINTS.lgMinimum}px)`)\n .pipe(takeUntilDestroyed())\n .subscribe(({ matches }) => {\n this.collapsed.set(matches || this.preferCollapse);\n this.smallScreen.set(matches);\n });\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.collapsed) {\n this.preferCollapse = this.collapsed();\n }\n }\n\n ngOnInit(): void {\n const stateId = this.stateId();\n if (this.uiStateService && stateId) {\n this.uiStateService.load<UIState>(stateId).then(uiState => {\n if (uiState) {\n this.preferCollapse = uiState.preferCollapse;\n this.collapsed.set(this.smallScreen() ? this.collapsed() : this.preferCollapse);\n this.uiStateExpandedItems.set(uiState.expandedItems);\n }\n afterNextRender(() => this.ready.set(true), { injector: this.injector });\n });\n } else {\n this.ready.set(true);\n }\n }\n\n protected toggleCollapse(): void {\n if (this.collapsed()) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n /** Expands the vertical navbar. */\n expand(): void {\n this.collapsed.set(false);\n if (!this.smallScreen()) {\n this.preferCollapse = this.collapsed();\n }\n this.saveUIState();\n }\n\n /** Collapses the vertical navbar. */\n collapse(): void {\n this.collapsed.set(true);\n if (!this.smallScreen()) {\n this.preferCollapse = this.collapsed();\n }\n\n this.saveUIState();\n }\n\n protected expandForSearch(): void {\n this.expand();\n setTimeout(() => this.searchBar().focus());\n }\n\n protected doSearch(event: string): void {\n this.searchEvent.emit(event);\n }\n\n /** @internal */\n groupTriggered(): void {\n this.saveUIState();\n const itemToComponentMap = this.itemsToComponents();\n this.items.set(\n this.items().map(item => {\n const component = itemToComponentMap.get(item);\n if (!component) {\n return item;\n }\n\n if (component instanceof SiNavbarVerticalItemLegacyComponent) {\n return {\n ...item,\n expanded: component.expanded()\n };\n }\n\n if (component.group) {\n return {\n ...item,\n expanded: component.group.expanded()\n };\n }\n\n return item;\n })\n );\n this.collapsed.set(false);\n }\n\n protected saveUIState(): void {\n const stateId = this.stateId();\n if (!this.uiStateService || !stateId) {\n return;\n }\n\n const expandedGroups = this.navbarItems()\n .filter(item => item.item().id && item.group?.expanded())\n .map(item => [item.item().id, true]);\n\n const expandedGroupsLegacy = this.navbarItemsLegacy()\n .filter(item => item.item().id && item.expanded())\n .map(item => [item.item().id, true]);\n\n this.uiStateService.save<UIState>(stateId, {\n preferCollapse: this.preferCollapse,\n expandedItems: Object.fromEntries([...expandedGroups, ...expandedGroupsLegacy])\n });\n }\n\n /** @internal */\n itemTriggered(): void {\n if (this.smallScreen()) {\n this.collapsed.set(true);\n }\n }\n\n protected isLegacyStyle(item: MenuItem | NavbarVerticalItem): item is MenuItem {\n return !('type' in item && item.type !== 'check' && item.type !== 'radio');\n }\n}\n","@if (visible()) {\n @if (smallScreen() && !collapsed()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleCollapse()\"></div>\n }\n <nav\n tabindex=\"-1\"\n class=\"background-1 focus-sub-inside\"\n [class.expanded]=\"!collapsed()\"\n [siSkipLinkTarget]=\"skipLinkNavigationLabel()\"\n [class.text-only]=\"textOnly()\"\n >\n <div class=\"collapse-toggle ms-auto\">\n <div class=\"mobile-drawer focus-inside navbar-vertical-no-collapse\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost\"\n [attr.aria-label]=\"\n (collapsed() ? navbarExpandButtonText() : navbarCollapseButtonText()) | translate\n \"\n [attr.aria-expanded]=\"!collapsed()\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon\n class=\"flip-rtl\"\n [icon]=\"collapsed() ? icons.elementDoubleRight : icons.elementDoubleLeft\"\n />\n </button>\n </div>\n </div>\n @if (searchable()) {\n <div class=\"nav-search\">\n <si-search-bar\n class=\"mx-4\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"searchPlaceholder() | translate\"\n [debounceTime]=\"searchDebounceTime()\"\n [showIcon]=\"true\"\n (searchChange)=\"doSearch($event)\"\n />\n <button\n type=\"button\"\n class=\"btn-search background-0 px-3 mx-4 mobile navbar-vertical-no-collapse text-secondary\"\n [attr.aria-label]=\"searchPlaceholder() | translate\"\n (click)=\"expandForSearch()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementSearch\" />\n </button>\n </div>\n }\n <div class=\"nav-scroll\">\n @for (item of items(); track $index) {\n @if (isLegacyStyle(item)) {\n <si-navbar-vertical-item-legacy\n [item]=\"item\"\n [navbarExpandButtonText]=\"navbarExpandButtonText() | translate\"\n [navbarCollapseButtonText]=\"navbarCollapseButtonText() | translate\"\n [expanded]=\"\n (item.id ? uiStateExpandedItems()[item.id] : undefined) ?? item.expanded ?? false\n \"\n />\n } @else {\n <ng-container *ngTemplateOutlet=\"navbarItems; context: { item }\" />\n }\n }\n </div>\n </nav>\n}\n<main\n class=\"si-layout-inner focus-none\"\n tabindex=\"-1\"\n [siSkipLinkTarget]=\"skipLinkMainContentLabel()\"\n>\n <ng-content />\n</main>\n\n<ng-template #navbarItems let-item=\"item\" siNavbarVerticalItemGuard>\n @switch (item.type) {\n @case ('group') {\n <button\n type=\"button\"\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [stateId]=\"item.id\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [groupData]=\"{ group: item }\"\n [expanded]=\"\n (item.id ? uiStateExpandedItems()[item.id] : undefined) ?? item.expanded ?? false\n \"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </button>\n }\n @case ('action') {\n <button\n type=\"button\"\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [activeOverride]=\"item.active\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </button>\n }\n @case ('router-link') {\n <a\n routerLinkActive\n placement=\"end\"\n [routerLinkActiveOptions]=\"item.activeMatchOptions ?? { exact: false }\"\n [si-navbar-vertical-item]=\"item\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('divider') {\n <si-navbar-vertical-divider />\n }\n @case ('header') {\n <si-navbar-vertical-header>\n {{ item.label | translate }}\n </si-navbar-vertical-header>\n }\n }\n</ng-template>\n\n<ng-template #group let-group=\"group\" siNavbarVerticalItemGuard>\n <si-navbar-vertical-group routerLinkActive>\n @for (item of group.children; track $index) {\n <!-- a copy from above, but we have to nest the items to make routerLink active work -->\n @switch (item.type) {\n @case ('router-link') {\n <a\n routerLinkActive\n [routerLinkActiveOptions]=\"item.activeMatchOptions ?? { exact: false }\"\n [si-navbar-vertical-item]=\"item\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('action') {\n <button type=\"button\" [si-navbar-vertical-item]=\"item\" [activeOverride]=\"item.active\">\n {{ item.label | translate }}\n </button>\n }\n @case ('link') {\n <a [si-navbar-vertical-item]=\"item\" [href]=\"item.href\" [target]=\"item.target\">\n {{ item.label | translate }}\n </a>\n }\n }\n }\n </si-navbar-vertical-group>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiNavbarVerticalComponent } from './si-navbar-vertical.component';\n\n@NgModule({\n imports: [SiNavbarVerticalComponent],\n exports: [SiNavbarVerticalComponent]\n})\nexport class SiNavbarVerticalModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-navbar-vertical.component';\nexport * from './si-navbar-vertical.module';\nexport * from './si-navbar-vertical.model';\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-navbar-vertical.mjs","sources":["../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-divider.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.provider.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-group-trigger.directive.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-group.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-header.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item-legacy.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical-item-legacy.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.component.ts","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.component.html","../../../../projects/element-ng/navbar-vertical/si-navbar-vertical.module.ts","../../../../projects/element-ng/navbar-vertical/index.ts","../../../../projects/element-ng/navbar-vertical/siemens-element-ng-navbar-vertical.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n// We need a component to attach the stylesheet\n@Component({\n selector: 'si-navbar-vertical-divider',\n template: '',\n styleUrl: './si-navbar-vertical-divider.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiNavbarVerticalDividerComponent {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { InjectionToken } from '@angular/core';\n\nimport type { SiNavbarVerticalComponent } from './si-navbar-vertical.component';\n\nexport const SI_NAVBAR_VERTICAL = new InjectionToken<SiNavbarVerticalComponent>(\n 'SI_NAVBAR_VERTICAL'\n);\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\nimport {\n ChangeDetectionStrategy,\n Component,\n ComponentRef,\n computed,\n Directive,\n effect,\n EmbeddedViewRef,\n inject,\n Injector,\n input,\n model,\n OnInit,\n signal,\n TemplateRef,\n ViewContainerRef\n} from '@angular/core';\nimport { Subscription } from 'rxjs';\n\nimport { NavbarVerticalItem, NavbarVerticalItemGroup } from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n/**\n * Using this component, to anchor the flyout inside the navbar within the a11y tree.\n * Otherwise, without aria-owns, screen reader will announce the leaving of the navbar when moving to the flyout.\n * Aria-owns cannot be put directly on the trigger\n * as chrome will include the flyout children in the a11y label of the trigger.\n */\n@Component({\n selector: 'si-navbar-flyout-anchor',\n template: '',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: { '[attr.aria-owns]': 'groupId()' }\n})\nclass SiNavbarFlyoutAnchorComponent {\n /** ID of the flyout group owned by this accessibility anchor. */\n readonly groupId = input<string>();\n}\n\n@Directive({\n selector: 'button[siNavbarVerticalGroupTriggerFor]',\n host: {\n class: 'dropdown-toggle',\n '[id]': 'id',\n '[class.show]': 'expanded()',\n '[attr.aria-controls]': 'groupId',\n '[attr.aria-expanded]': 'expanded()',\n '(click)': 'triggered()'\n }\n})\nexport class SiNavbarVerticalGroupTriggerDirective implements OnInit {\n private static idCounter = 0;\n\n /** @internal */\n readonly groupId = `si-navbar-vertical-group-${SiNavbarVerticalGroupTriggerDirective.idCounter++}`;\n readonly id = `${this.groupId}-trigger`;\n\n /** Template rendered for the expandable group. */\n readonly groupTemplate = input.required<TemplateRef<unknown>>({\n alias: 'siNavbarVerticalGroupTriggerFor'\n });\n\n /** Context passed to the group template. */\n readonly groupData = input<{ item?: NavbarVerticalItem; group: NavbarVerticalItemGroup }>();\n\n /** Key used to persist the expanded state of this group. */\n readonly stateId = input<string>();\n\n /** Whether the group is expanded. Emits `expandedChange` when changed. */\n readonly expanded = model.required<boolean>();\n\n /** @internal */\n readonly flyout = signal(false);\n\n /** @internal */\n readonly active = signal(false);\n\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n\n private flyoutOutsideClickSubscription?: Subscription;\n private readonly viewContainer = inject(ViewContainerRef);\n private readonly overlay = inject(Overlay);\n private readonly injector = Injector.create({ parent: inject(Injector), providers: [] });\n private readonly overlayRef = this.overlay.create({\n positionStrategy: this.overlay\n .position()\n .flexibleConnectedTo(this.viewContainer.element)\n .withPositions([\n { originX: 'end', originY: 'top', overlayX: 'start', overlayY: 'top' },\n { originX: 'end', originY: 'bottom', overlayX: 'start', overlayY: 'bottom' }\n ])\n });\n private groupView!: EmbeddedViewRef<unknown>;\n private flyoutAnchorComponentRef?: ComponentRef<SiNavbarFlyoutAnchorComponent>;\n private readonly templatePortal = computed(\n () =>\n new TemplatePortal(this.groupTemplate(), this.viewContainer, this.groupData(), this.injector)\n );\n\n constructor() {\n effect(() => {\n const data = this.groupData();\n const view = this.groupView;\n if (data && view && !view.destroyed) {\n const context = view.context as {\n item?: NavbarVerticalItem;\n group: NavbarVerticalItemGroup;\n };\n if (context) {\n context.group = data.group;\n if (data.item !== undefined) {\n context.item = data.item;\n }\n view.detectChanges();\n }\n }\n });\n }\n\n ngOnInit(): void {\n this.attachInline();\n }\n\n /** @internal */\n hideFlyout(): void {\n if (this.flyout()) {\n this.flyout.set(false);\n this.active.set(false);\n this.flyoutAnchorComponentRef?.destroy();\n this.flyoutAnchorComponentRef = undefined;\n this.attachInline();\n this.flyoutOutsideClickSubscription?.unsubscribe();\n }\n }\n\n protected triggered(): void {\n if (this.navbar.collapsed()) {\n this.toggleFlyout();\n } else {\n this.expanded.set(!this.expanded());\n this.navbar.groupTriggered();\n }\n }\n\n private toggleFlyout(): void {\n if (this.flyout()) {\n this.hideFlyout();\n } else {\n this.flyout.set(true);\n this.attachFlyout();\n }\n }\n private attachInline(): void {\n this.overlayRef.detach();\n this.groupView?.destroy(); // we need ?. for first attachment\n this.groupView = this.viewContainer.createEmbeddedView(this.groupTemplate(), this.groupData(), {\n injector: this.injector\n });\n }\n\n private attachFlyout(): void {\n this.groupView.destroy();\n this.groupView = this.overlayRef.attach(this.templatePortal());\n this.flyoutAnchorComponentRef = this.viewContainer.createComponent(\n SiNavbarFlyoutAnchorComponent\n );\n this.flyoutAnchorComponentRef.setInput('groupId', this.groupId);\n this.flyoutOutsideClickSubscription = this.overlayRef\n .outsidePointerEvents()\n .subscribe(() => this.hideFlyout());\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkTrapFocus } from '@angular/cdk/a11y';\nimport { ChangeDetectionStrategy, Component, computed, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { RouterLinkActive } from '@angular/router';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-group',\n imports: [CdkTrapFocus],\n template: `@if (visible()) {\n <div\n animate.leave=\"group-leave\"\n [class.inline-group]=\"!flyout\"\n [class.dropdown-menu]=\"flyout\"\n [cdkTrapFocus]=\"flyout\"\n [cdkTrapFocusAutoCapture]=\"flyout\"\n >\n <div [class.overflow-hidden]=\"!flyout\">\n <ng-content />\n </div>\n </div>\n }`,\n styleUrl: './si-navbar-vertical-group.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n role: 'group',\n '[id]': 'groupTrigger.groupId',\n '[attr.aria-labelledby]': 'groupTrigger.id',\n 'animate.enter': 'component-enter',\n '(keydown.escape)': 'close()'\n }\n})\nexport class SiNavbarVerticalGroupComponent {\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n protected readonly groupTrigger = inject(SiNavbarVerticalGroupTriggerDirective);\n private readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n\n // Store initial value, as the mode for an instance never changes.\n protected flyout = this.groupTrigger.flyout();\n\n protected readonly visible = computed(() => {\n return this.flyout || (!this.navbar.collapsed() && this.groupTrigger.expanded());\n });\n\n constructor() {\n this.routerLinkActive?.isActiveChange\n .pipe(takeUntilDestroyed())\n .subscribe(active => this.groupTrigger.active.set(active));\n }\n\n protected close(): void {\n this.groupTrigger.hideFlyout();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, inject } from '@angular/core';\n\nimport { SiNavbarVerticalDividerComponent } from './si-navbar-vertical-divider.component';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-header',\n imports: [SiNavbarVerticalDividerComponent],\n template: `\n @if (!navbar.collapsed()) {\n <div class=\"title si-h5 text-secondary text-truncate p-5\" animate.leave=\"title-leave\">\n <ng-content />\n </div>\n } @else {\n <si-navbar-vertical-divider class=\"divider\" animate.leave=\"divider-leave\" />\n }\n `,\n styleUrl: './si-navbar-vertical-header.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n '[class.collapsed]': 'navbar.collapsed()',\n 'animate.enter': 'component-enter'\n }\n})\nexport class SiNavbarVerticalHeaderComponent {\n protected navbar = inject(SI_NAVBAR_VERTICAL);\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input, OnInit } from '@angular/core';\nimport { RouterLinkActive } from '@angular/router';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLinkDirective } from '@siemens/element-ng/link';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport {\n NavbarVerticalItemAction,\n NavbarVerticalItemGroup,\n NavbarVerticalItemLink,\n NavbarVerticalItemRouterLink\n} from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\ntype NavbarVerticalItemInteractive =\n | NavbarVerticalItemGroup\n | NavbarVerticalItemRouterLink\n | NavbarVerticalItemLink\n | NavbarVerticalItemAction;\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-navbar-vertical-item], button[si-navbar-vertical-item]',\n imports: [SiIconComponent],\n templateUrl: './si-navbar-vertical-item.component.html',\n styleUrl: './si-navbar-vertical-item.component.scss',\n host: {\n 'class': 'focus-inside',\n '[class.dropdown-item]': 'this.parent?.group?.flyout()',\n '[class.navbar-vertical-item]': '!this.parent?.group?.flyout()',\n '[class.active]': 'active',\n '[class.hide-badge-collapsed]': 'hideBadgeCollapsed()',\n '(click)': 'triggered()'\n }\n})\nexport class SiNavbarVerticalItemComponent implements OnInit {\n protected readonly icons = addIcons({ elementDown2 });\n /** Item configuration to render. */\n readonly item = input.required<NavbarVerticalItemInteractive | MenuItem>({\n alias: 'si-navbar-vertical-item'\n });\n /** Overrides the item's automatically determined active state. */\n readonly activeOverride = input<boolean>();\n\n protected readonly navbar = inject(SI_NAVBAR_VERTICAL);\n protected readonly parent = inject(SiNavbarVerticalItemComponent, {\n skipSelf: true,\n optional: true\n });\n readonly group = inject(SiNavbarVerticalGroupTriggerDirective, {\n optional: true,\n self: true\n });\n private readonly routerLinkActive = inject(RouterLinkActive, { optional: true });\n private readonly siLink = inject(SiLinkDirective, { optional: true });\n\n /**\n * Hides the badge in collapsed state\n */\n protected readonly hideBadgeCollapsed = computed(\n () => !!(this.item() as NavbarVerticalItemInteractive).hideBadgeWhenCollapsed\n );\n\n /**\n * Determines if the badge contains text-only content (not numeric)\n */\n protected readonly textOnlyBadge = computed(() => {\n const badge = this.item().badge;\n return badge ? typeof badge !== 'number' : false;\n });\n\n /**\n * Formats badge value to limit display to \"+99\" for numbers greater than 99\n */\n protected readonly formattedBadge = computed(() => {\n const badge = this.item().badge;\n if (!badge) {\n return '';\n }\n if (typeof badge === 'number') {\n return badge > 99 ? '+99' : badge.toString();\n }\n return badge.toString();\n });\n\n ngOnInit(): void {\n if (this.group && this.active) {\n this.group.expanded.set(true);\n }\n }\n\n protected triggered(): void {\n const item = this.item();\n if (item.type === 'action') {\n item.action(item);\n return;\n }\n this.parent?.group?.hideFlyout();\n if (!this.group) {\n this.navbar.itemTriggered();\n }\n }\n\n get active(): boolean {\n return (\n this.activeOverride() ||\n this.routerLinkActive?.isActive ||\n this.siLink?.active() ||\n ((!this.group?.expanded() || this.navbar.collapsed()) && this.group?.active()) ||\n false\n );\n /* eslint-disable-enable @typescript-eslint/prefer-nullish-coalescing */\n }\n}\n","@let icon = item().icon;\n@if (icon) {\n <si-icon class=\"icon\" [icon]=\"icon\" />\n}\n<div class=\"item-title text-truncate si-h5\">\n <ng-content />\n</div>\n@if (!navbar.textOnly() && formattedBadge()) {\n <span\n [class]=\"[\n 'badge',\n item().badgeColor ? `bg-${item().badgeColor}` : 'bg-default',\n textOnlyBadge() ? 'badge-text-only' : '',\n navbar.collapsed() ? 'badge-collapsed' : ''\n ]\"\n >{{ formattedBadge() }}</span\n >\n}\n@if (group) {\n <si-icon\n aria-hidden=\"true\"\n class=\"dropdown-caret me-0 text-primary\"\n [icon]=\"icons.elementDown2\"\n />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n model,\n viewChildren\n} from '@angular/core';\nimport { MenuItem } from '@siemens/element-ng/common';\nimport { SiLinkDirective } from '@siemens/element-ng/link';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SiNavbarVerticalGroupComponent } from './si-navbar-vertical-group.component';\nimport { SiNavbarVerticalHeaderComponent } from './si-navbar-vertical-header.component';\nimport { SiNavbarVerticalItemComponent } from './si-navbar-vertical-item.component';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\n@Component({\n selector: 'si-navbar-vertical-item-legacy',\n imports: [\n SiLinkDirective,\n SiTranslatePipe,\n SiNavbarVerticalItemComponent,\n SiNavbarVerticalGroupTriggerDirective,\n SiNavbarVerticalGroupComponent,\n SiNavbarVerticalHeaderComponent\n ],\n templateUrl: './si-navbar-vertical-item-legacy.component.html',\n styleUrl: './si-navbar-vertical-item-legacy.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n 'class': 'd-block mb-4'\n }\n})\nexport class SiNavbarVerticalItemLegacyComponent {\n /** Legacy menu item to render in the vertical navbar. */\n readonly item = input.required<MenuItem>();\n /** Accessible label for expanding the item group. */\n readonly navbarExpandButtonText = input.required();\n /** Accessible label for collapsing the item group. */\n readonly navbarCollapseButtonText = input.required();\n /** Whether the item group is expanded. Emits `expandedChange` when changed. */\n readonly expanded = model.required<boolean>();\n\n protected readonly flyoutItems = computed(() => {\n if (!this.navbar.collapsed()) {\n return this.item().items;\n } else {\n return [\n this.isLink() ? { ...this.item(), items: undefined } : [],\n this.item().items ?? []\n ].flat();\n }\n });\n\n protected readonly isLink = computed(() => {\n const item = this.item();\n return !!item.action || !!item.link || !!item.href;\n });\n\n protected readonly toggleButtonLabel = computed(() =>\n this.navbar.collapsed()\n ? this.navbarExpandButtonText()\n : this.expanded()\n ? this.navbarCollapseButtonText()\n : this.navbarExpandButtonText()\n );\n\n protected readonly siLinks = viewChildren(SiLinkDirective);\n protected readonly itemActive = computed(\n () =>\n (this.navbar.collapsed() || !this.expanded()) && this.siLinks().some(link => link.active())\n );\n protected navbar = inject(SI_NAVBAR_VERTICAL);\n}\n","<!-- section header -->\n@if (!isLink() && !item().items) {\n <si-navbar-vertical-header>\n {{ item().title | translate }}\n </si-navbar-vertical-header>\n} @else if (isLink() && !item().items) {\n <a [si-navbar-vertical-item]=\"item()\" [siLink]=\"item()\">\n {{ item().title | translate }}\n </a>\n} @else if (isLink() && item().items) {\n <div class=\"link-with-items\">\n <a\n #mainLink\n [si-navbar-vertical-item]=\"item()\"\n [siLink]=\"item()\"\n [activeOverride]=\"itemActive()\"\n >\n {{ item().title | translate }}\n </a>\n <button\n type=\"button\"\n class=\"mt-0\"\n [si-navbar-vertical-item]=\"item()\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [activeOverride]=\"mainLink.active\"\n [attr.aria-label]=\"toggleButtonLabel() + ' ' + item().title | translate\"\n [(expanded)]=\"expanded\"\n >\n {{ item().title | translate }}\n </button>\n </div>\n} @else if (item().items) {\n <button\n type=\"button\"\n [si-navbar-vertical-item]=\"item()\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [activeOverride]=\"itemActive()\"\n [(expanded)]=\"expanded\"\n >\n {{ item().title | translate }}\n </button>\n}\n\n<ng-template #group>\n <si-navbar-vertical-group>\n @for (subitem of flyoutItems(); track $index) {\n <a activeClass=\"active\" [si-navbar-vertical-item]=\"subitem\" [siLink]=\"subitem\">\n {{ subitem.title | translate }}\n </a>\n }\n </si-navbar-vertical-group>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n afterNextRender,\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n Directive,\n inject,\n Injector,\n input,\n model,\n OnChanges,\n OnInit,\n output,\n signal,\n SimpleChanges,\n viewChild,\n viewChildren\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\nimport { elementDoubleLeft, elementDoubleRight, elementSearch } from '@siemens/element-icons';\nimport { MenuItem, SI_UI_STATE_SERVICE } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS } from '@siemens/element-ng/resize-observer';\nimport { SiSearchBarComponent } from '@siemens/element-ng/search-bar';\nimport { SiSkipLinkTargetDirective } from '@siemens/element-ng/skip-links';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiNavbarVerticalDividerComponent } from './si-navbar-vertical-divider.component';\nimport { SiNavbarVerticalGroupTriggerDirective } from './si-navbar-vertical-group-trigger.directive';\nimport { SiNavbarVerticalGroupComponent } from './si-navbar-vertical-group.component';\nimport { SiNavbarVerticalHeaderComponent } from './si-navbar-vertical-header.component';\nimport { SiNavbarVerticalItemLegacyComponent } from './si-navbar-vertical-item-legacy.component';\nimport { SiNavbarVerticalItemComponent } from './si-navbar-vertical-item.component';\nimport { NavbarVerticalItem, NavbarVerticalItemGroup } from './si-navbar-vertical.model';\nimport { SI_NAVBAR_VERTICAL } from './si-navbar-vertical.provider';\n\ninterface UIState {\n preferCollapse: boolean;\n expandedItems: Record<string, boolean>;\n}\n\n/** Required to have compiler checks on the factory template */\n@Directive({ selector: '[siNavbarVerticalItemGuard]' })\nexport class SiNavbarVerticalItemGuardDirective {\n static ngTemplateContextGuard(\n dir: SiNavbarVerticalItemGuardDirective,\n ctx: any\n ): ctx is { item: NavbarVerticalItem; group: NavbarVerticalItemGroup } {\n return true;\n }\n}\n\n@Component({\n selector: 'si-navbar-vertical',\n imports: [\n NgTemplateOutlet,\n RouterLink,\n RouterLinkActive,\n SiIconComponent,\n SiNavbarVerticalDividerComponent,\n SiNavbarVerticalGroupComponent,\n SiNavbarVerticalGroupTriggerDirective,\n SiNavbarVerticalHeaderComponent,\n SiNavbarVerticalItemComponent,\n SiNavbarVerticalItemGuardDirective,\n SiNavbarVerticalItemLegacyComponent,\n SiSearchBarComponent,\n SiSkipLinkTargetDirective,\n SiTranslatePipe,\n SiTooltipDirective\n ],\n templateUrl: './si-navbar-vertical.component.html',\n styleUrl: './si-navbar-vertical.component.scss',\n providers: [{ provide: SI_NAVBAR_VERTICAL, useExisting: SiNavbarVerticalComponent }],\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n class: 'si-layout-inner',\n '[class.nav-collapsed]': 'collapsed()',\n '[class.nav-text-only]': 'textOnly()',\n '[class.visible]': 'visible()',\n '[class.ready]': 'ready()'\n }\n})\nexport class SiNavbarVerticalComponent implements OnChanges, OnInit {\n protected readonly icons = addIcons({ elementDoubleLeft, elementDoubleRight, elementSearch });\n /**\n * Whether the navbar-vertical is collapsed.\n *\n * @defaultValue false\n */\n readonly collapsed = model(false);\n\n /**\n * Toggles search bar\n *\n * @defaultValue false\n */\n readonly searchable = input(false, { transform: booleanAttribute });\n\n /**\n * Placeholder text for search\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)\n * ```\n */\n readonly searchPlaceholder = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER:Search…`)\n );\n\n /**\n * List of vertical navigation items\n *\n * @defaultValue []\n */\n readonly items = model<(MenuItem | NavbarVerticalItem)[]>([]);\n\n /**\n * Set to `true` if there are no icons\n *\n * @defaultValue false\n */\n /**\n * Set to `true` if there are no icons\n *\n * @defaultValue false\n */\n readonly textOnly = input(false, { transform: booleanAttribute });\n\n /**\n * Set to false to hide the vertical navbar\n *\n * @defaultValue true\n */\n /**\n * Set to false to hide the vertical navbar\n *\n * @defaultValue true\n */\n readonly visible = input(true, { transform: booleanAttribute });\n\n /**\n * Text for the navbar expand button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.EXPAND:Expand`)\n * ```\n */\n readonly navbarExpandButtonText = input(t(() => $localize`:@@SI_NAVBAR_VERTICAL.EXPAND:Expand`));\n\n /**\n * Text for the navbar collapse button. Required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.COLLAPSE:Collapse`)\n * ```\n */\n readonly navbarCollapseButtonText = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.COLLAPSE:Collapse`)\n );\n\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 * Label for the skip link to the vertical navbar\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)\n * ```\n */\n readonly skipLinkNavigationLabel = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL:Navigation`)\n );\n\n /**\n * Label for the skip link to main content\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)\n * ```\n */\n readonly skipLinkMainContentLabel = input(\n t(() => $localize`:@@SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL:Main content`)\n );\n /**\n * Debounce time for the search input\n * @defaultValue 400\n */\n readonly searchDebounceTime = input(400);\n /**\n * Output for search bar input\n */\n readonly searchEvent = output<string>();\n\n private readonly searchBar = viewChild.required(SiSearchBarComponent);\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n private breakpointObserver = inject(BreakpointObserver);\n private injector = inject(Injector);\n private readonly navbarItems = viewChildren(SiNavbarVerticalItemComponent);\n private readonly navbarItemsLegacy = viewChildren(SiNavbarVerticalItemLegacyComponent);\n private readonly itemsToComponents = computed(\n () =>\n new Map(\n [...this.navbarItems(), ...this.navbarItemsLegacy()].map(component => [\n component.item() as NavbarVerticalItem | MenuItem, // to have a broader key type allowed\n component\n ])\n )\n );\n\n protected readonly ready = signal(false);\n protected readonly smallScreen = signal(false);\n protected readonly uiStateExpandedItems = signal<Record<string, boolean>>({});\n\n // Indicates if the user prefers a collapsed navbar. Relevant for resizing.\n private preferCollapse = false;\n\n constructor() {\n this.breakpointObserver\n .observe(`(max-width: ${BOOTSTRAP_BREAKPOINTS.lgMinimum}px)`)\n .pipe(takeUntilDestroyed())\n .subscribe(({ matches }) => {\n this.collapsed.set(matches || this.preferCollapse);\n this.smallScreen.set(matches);\n });\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.collapsed) {\n this.preferCollapse = this.collapsed();\n }\n }\n\n ngOnInit(): void {\n const stateId = this.stateId();\n if (this.uiStateService && stateId) {\n this.uiStateService.load<UIState>(stateId).then(uiState => {\n if (uiState) {\n this.preferCollapse = uiState.preferCollapse;\n this.collapsed.set(this.smallScreen() ? this.collapsed() : this.preferCollapse);\n this.uiStateExpandedItems.set(uiState.expandedItems);\n }\n afterNextRender(() => this.ready.set(true), { injector: this.injector });\n });\n } else {\n this.ready.set(true);\n }\n }\n\n protected toggleCollapse(): void {\n if (this.collapsed()) {\n this.expand();\n } else {\n this.collapse();\n }\n }\n\n /** Expands the vertical navbar. */\n expand(): void {\n this.collapsed.set(false);\n if (!this.smallScreen()) {\n this.preferCollapse = this.collapsed();\n }\n this.saveUIState();\n }\n\n /** Collapses the vertical navbar. */\n collapse(): void {\n this.collapsed.set(true);\n if (!this.smallScreen()) {\n this.preferCollapse = this.collapsed();\n }\n\n this.saveUIState();\n }\n\n protected expandForSearch(): void {\n this.expand();\n setTimeout(() => this.searchBar().focus());\n }\n\n protected doSearch(event: string): void {\n this.searchEvent.emit(event);\n }\n\n /** @internal */\n groupTriggered(): void {\n this.saveUIState();\n const itemToComponentMap = this.itemsToComponents();\n this.items.set(\n this.items().map(item => {\n const component = itemToComponentMap.get(item);\n if (!component) {\n return item;\n }\n\n if (component instanceof SiNavbarVerticalItemLegacyComponent) {\n return {\n ...item,\n expanded: component.expanded()\n };\n }\n\n if (component.group) {\n return {\n ...item,\n expanded: component.group.expanded()\n };\n }\n\n return item;\n })\n );\n this.collapsed.set(false);\n }\n\n protected saveUIState(): void {\n const stateId = this.stateId();\n if (!this.uiStateService || !stateId) {\n return;\n }\n\n const expandedGroups = this.navbarItems()\n .filter(item => item.item().id && item.group?.expanded())\n .map(item => [item.item().id, true]);\n\n const expandedGroupsLegacy = this.navbarItemsLegacy()\n .filter(item => item.item().id && item.expanded())\n .map(item => [item.item().id, true]);\n\n this.uiStateService.save<UIState>(stateId, {\n preferCollapse: this.preferCollapse,\n expandedItems: Object.fromEntries([...expandedGroups, ...expandedGroupsLegacy])\n });\n }\n\n /** @internal */\n itemTriggered(): void {\n if (this.smallScreen()) {\n this.collapsed.set(true);\n }\n }\n\n protected isLegacyStyle(item: MenuItem | NavbarVerticalItem): item is MenuItem {\n return !('type' in item && item.type !== 'check' && item.type !== 'radio');\n }\n}\n","@if (visible()) {\n @if (smallScreen() && !collapsed()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleCollapse()\"></div>\n }\n <nav\n tabindex=\"-1\"\n class=\"background-1 focus-sub-inside\"\n [class.expanded]=\"!collapsed()\"\n [siSkipLinkTarget]=\"skipLinkNavigationLabel()\"\n [class.text-only]=\"textOnly()\"\n >\n <div class=\"collapse-toggle ms-auto\">\n <div class=\"mobile-drawer focus-inside navbar-vertical-no-collapse\">\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost\"\n [attr.aria-label]=\"\n (collapsed() ? navbarExpandButtonText() : navbarCollapseButtonText()) | translate\n \"\n [attr.aria-expanded]=\"!collapsed()\"\n (click)=\"toggleCollapse()\"\n >\n <si-icon\n class=\"flip-rtl\"\n [icon]=\"collapsed() ? icons.elementDoubleRight : icons.elementDoubleLeft\"\n />\n </button>\n </div>\n </div>\n @if (searchable()) {\n <div class=\"nav-search\">\n <si-search-bar\n class=\"mx-4\"\n colorVariant=\"base-0\"\n prohibitedCharacters=\"*?\"\n [placeholder]=\"searchPlaceholder() | translate\"\n [debounceTime]=\"searchDebounceTime()\"\n [showIcon]=\"true\"\n (searchChange)=\"doSearch($event)\"\n />\n <button\n type=\"button\"\n class=\"btn-search background-0 px-3 mx-4 mobile navbar-vertical-no-collapse text-secondary\"\n [attr.aria-label]=\"searchPlaceholder() | translate\"\n (click)=\"expandForSearch()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementSearch\" />\n </button>\n </div>\n }\n <div class=\"nav-scroll\">\n @for (item of items(); track $index) {\n @if (isLegacyStyle(item)) {\n <si-navbar-vertical-item-legacy\n [item]=\"item\"\n [navbarExpandButtonText]=\"navbarExpandButtonText() | translate\"\n [navbarCollapseButtonText]=\"navbarCollapseButtonText() | translate\"\n [expanded]=\"\n (item.id ? uiStateExpandedItems()[item.id] : undefined) ?? item.expanded ?? false\n \"\n />\n } @else {\n <ng-container *ngTemplateOutlet=\"navbarItems; context: { item }\" />\n }\n }\n </div>\n </nav>\n}\n<main\n class=\"si-layout-inner focus-none\"\n tabindex=\"-1\"\n [siSkipLinkTarget]=\"skipLinkMainContentLabel()\"\n>\n <ng-content />\n</main>\n\n<ng-template #navbarItems let-item=\"item\" siNavbarVerticalItemGuard>\n @switch (item.type) {\n @case ('group') {\n <button\n type=\"button\"\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [stateId]=\"item.id\"\n [siNavbarVerticalGroupTriggerFor]=\"group\"\n [groupData]=\"{ group: item }\"\n [expanded]=\"\n (item.id ? uiStateExpandedItems()[item.id] : undefined) ?? item.expanded ?? false\n \"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </button>\n }\n @case ('action') {\n <button\n type=\"button\"\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [activeOverride]=\"item.active\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </button>\n }\n @case ('router-link') {\n <a\n routerLinkActive\n placement=\"end\"\n [routerLinkActiveOptions]=\"item.activeMatchOptions ?? { exact: false }\"\n [si-navbar-vertical-item]=\"item\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('link') {\n <a\n placement=\"end\"\n [si-navbar-vertical-item]=\"item\"\n [href]=\"item.href\"\n [target]=\"item.target\"\n [siTooltip]=\"item.label | translate\"\n [isDisabled]=\"!collapsed()\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('divider') {\n <si-navbar-vertical-divider />\n }\n @case ('header') {\n <si-navbar-vertical-header>\n {{ item.label | translate }}\n </si-navbar-vertical-header>\n }\n }\n</ng-template>\n\n<ng-template #group let-group=\"group\" siNavbarVerticalItemGuard>\n <si-navbar-vertical-group routerLinkActive>\n @for (item of group.children; track $index) {\n <!-- a copy from above, but we have to nest the items to make routerLink active work -->\n @switch (item.type) {\n @case ('router-link') {\n <a\n routerLinkActive\n [routerLinkActiveOptions]=\"item.activeMatchOptions ?? { exact: false }\"\n [si-navbar-vertical-item]=\"item\"\n [routerLink]=\"item.routerLink\"\n [queryParams]=\"item.extras?.queryParams\"\n [queryParamsHandling]=\"item.extras?.queryParamsHandling\"\n [fragment]=\"item.extras?.fragment\"\n [state]=\"item.extras?.state\"\n [relativeTo]=\"item.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"item.extras?.preserveFragment\"\n [skipLocationChange]=\"item.extras?.skipLocationChange\"\n [replaceUrl]=\"item.extras?.replaceUrl\"\n >\n {{ item.label | translate }}\n </a>\n }\n @case ('action') {\n <button type=\"button\" [si-navbar-vertical-item]=\"item\" [activeOverride]=\"item.active\">\n {{ item.label | translate }}\n </button>\n }\n @case ('link') {\n <a [si-navbar-vertical-item]=\"item\" [href]=\"item.href\" [target]=\"item.target\">\n {{ item.label | translate }}\n </a>\n }\n }\n }\n </si-navbar-vertical-group>\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiNavbarVerticalComponent } from './si-navbar-vertical.component';\n\n@NgModule({\n imports: [SiNavbarVerticalComponent],\n exports: [SiNavbarVerticalComponent]\n})\nexport class SiNavbarVerticalModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-navbar-vertical.component';\nexport * from './si-navbar-vertical.module';\nexport * from './si-navbar-vertical.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -27,11 +27,11 @@ class SiResultDetailsListComponent {
27
27
  elementStateTick
28
28
  });
29
29
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiResultDetailsListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
30
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiResultDetailsListComponent, isStandalone: true, selector: "si-result-details-list", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n } @else {\n @if (step.icon) {\n <si-icon class=\"me-4 icon\" [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: var(--si-sys-sizing-icon-md);--loading-spinner-color: var(--si-sys-text-accent)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:calc(var(--si-sys-typography-font-size-body) * var(--si-sys-typography-line-height-body) * 2);word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--si-sys-border-2);block-size:calc(50% - var(--si-sys-sizing-icon-md) / 2);margin-inline-start:calc(var(--si-sys-sizing-icon-md) / 2 - .5px)}si-icon{color:var(--si-sys-text-secondary)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"], dependencies: [{ kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
30
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiResultDetailsListComponent, isStandalone: true, selector: "si-result-details-list", inputs: { steps: { classPropertyName: "steps", publicName: "steps", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n <div class=\"icon-stack icon me-4\">\n @if (step.state === 'running') {\n <si-loading-spinner />\n } @else {\n @if (step.icon) {\n <si-icon [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n }\n @case ('failed') {\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n }\n @case ('not-started') {\n <si-icon [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n </div>\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: var(--si-sys-sizing-icon-md);--loading-spinner-color: var(--si-sys-text-accent);line-height:0}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:calc(var(--si-sys-typography-font-size-body) * var(--si-sys-typography-line-height-body) * 2);word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--si-sys-border-2);block-size:calc(50% - var(--si-sys-sizing-icon-md) / 2);margin-inline-start:calc(var(--si-sys-sizing-icon-md) / 2 - .5px)}si-icon{color:var(--si-sys-text-secondary)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"], dependencies: [{ kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
31
31
  }
32
32
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiResultDetailsListComponent, decorators: [{
33
33
  type: Component,
34
- args: [{ selector: 'si-result-details-list', imports: [SiLoadingSpinnerComponent, SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n } @else {\n @if (step.icon) {\n <si-icon class=\"me-4 icon\" [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: var(--si-sys-sizing-icon-md);--loading-spinner-color: var(--si-sys-text-accent)}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:calc(var(--si-sys-typography-font-size-body) * var(--si-sys-typography-line-height-body) * 2);word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--si-sys-border-2);block-size:calc(50% - var(--si-sys-sizing-icon-md) / 2);margin-inline-start:calc(var(--si-sys-sizing-icon-md) / 2 - .5px)}si-icon{color:var(--si-sys-text-secondary)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"] }]
34
+ args: [{ selector: 'si-result-details-list', imports: [SiLoadingSpinnerComponent, SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.Eager, template: "<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n <div class=\"icon-stack icon me-4\">\n @if (step.state === 'running') {\n <si-loading-spinner />\n } @else {\n @if (step.icon) {\n <si-icon [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n }\n @case ('failed') {\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n }\n @case ('not-started') {\n <si-icon [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n </div>\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n", styles: ["si-loading-spinner{--loading-spinner-size: var(--si-sys-sizing-icon-md);--loading-spinner-color: var(--si-sys-text-accent);line-height:0}.result-description{flex:2 1;align-self:center;overflow:hidden}.result-value{flex:1 1;white-space:nowrap;align-self:top}.result-detail{letter-spacing:.15px;display:block;display:-webkit-box;max-block-size:calc(var(--si-sys-typography-font-size-body) * var(--si-sys-typography-line-height-body) * 2);word-wrap:break-word;line-clamp:2;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;text-overflow:ellipsis}.timeline:not(:last-child):after,.timeline:not(:first-child):before{content:\"\";position:absolute;inline-size:1px;background-color:var(--si-sys-border-2);block-size:calc(50% - var(--si-sys-sizing-icon-md) / 2);margin-inline-start:calc(var(--si-sys-sizing-icon-md) / 2 - .5px)}si-icon{color:var(--si-sys-text-secondary)}.timeline:not(:first-child):before{inset-block-start:0}.timeline:not(:last-child):after{inset-block-end:0}\n"] }]
35
35
  }], propDecorators: { steps: [{ type: i0.Input, args: [{ isSignal: true, alias: "steps", required: false }] }] } });
36
36
 
37
37
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-result-details-list.mjs","sources":["../../../../projects/element-ng/result-details-list/si-result-details-list.component.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.component.html","../../../../projects/element-ng/result-details-list/si-result-details-list.datamodel.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.module.ts","../../../../projects/element-ng/result-details-list/index.ts","../../../../projects/element-ng/result-details-list/siemens-element-ng-result-details-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n} from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { ResultDetailStep } from './si-result-details-list.datamodel';\n\n@Component({\n selector: 'si-result-details-list',\n imports: [SiLoadingSpinnerComponent, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-result-details-list.component.html',\n styleUrl: './si-result-details-list.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiResultDetailsListComponent {\n /**\n * Array of steps to show in the list.\n *\n * @defaultValue []\n */\n readonly steps = input<ResultDetailStep[]>([]);\n\n protected readonly stepHasValue = computed(() => this.steps().some(item => !!item.value));\n\n protected readonly icons = addIcons({\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n });\n}\n","<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n @if (step.state === 'running') {\n <si-loading-spinner class=\"me-4\" />\n } @else {\n @if (step.icon) {\n <si-icon class=\"me-4 icon\" [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n </span>\n }\n @case ('failed') {\n <span class=\"me-4 icon icon-stack\">\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n </span>\n }\n @case ('not-started') {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon class=\"me-4 icon\" [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/** */\nexport interface ResultDetailStep {\n /**\n * A description of the step.\n */\n description: TranslatableString;\n /**\n * A state object defining the state of the step.\n */\n state: ResultDetailStepState;\n /**\n * Optional value to be displayed for the step.\n */\n value?: string;\n /**\n * Optional error message to display.\n */\n errorMessage?: string;\n /**\n * Optional custom icon to display. Otherwise a default icon will be shown based on the state property.\n */\n icon?: string;\n /**\n * Optional detail text which appears below description.\n */\n detail?: TranslatableString;\n /**\n * Optional translation params to be used with translate pipe.\n */\n translationParams?: Record<string, unknown>;\n}\n\n/**\n * This type defines the state that a detailed result step can have.\n */\nexport type ResultDetailStepState =\n 'passed' | 'failed' | 'running' | 'not-supported' | 'not-started';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResultDetailsListComponent } from './si-result-details-list.component';\n\n@NgModule({\n imports: [SiResultDetailsListComponent],\n exports: [SiResultDetailsListComponent]\n})\nexport class SiResultDetailsListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-result-details-list.component';\nexport * from './si-result-details-list.datamodel';\nexport * from './si-result-details-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;MAsBU,4BAA4B,CAAA;AACvC;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAqB,EAAE;8EAAC;IAE3B,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;qFAAC;IAEtE,KAAK,GAAG,QAAQ,CAAC;QAClC,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,2BAA2B;QAC3B;AACD,KAAA,CAAC;uGAhBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,sNCzBzC,y8EAgEA,EAAA,MAAA,EAAA,CAAA,88BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED5CY,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,iEAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAK1D,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,wBAAwB,EAAA,OAAA,EACzB,CAAC,yBAAyB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,eAAA,EAGrD,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,y8EAAA,EAAA,MAAA,EAAA,CAAA,88BAAA,CAAA,EAAA;;;AEvBhD;;;AAGG;;ACHH;;;AAGG;MASU,yBAAyB,CAAA;uGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAzB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAC5B,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAH1B,4BAA4B,CAAA,EAAA,CAAA;;2FAG3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,4BAA4B,CAAC;oBACvC,OAAO,EAAE,CAAC,4BAA4B;AACvC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
1
+ {"version":3,"file":"siemens-element-ng-result-details-list.mjs","sources":["../../../../projects/element-ng/result-details-list/si-result-details-list.component.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.component.html","../../../../projects/element-ng/result-details-list/si-result-details-list.datamodel.ts","../../../../projects/element-ng/result-details-list/si-result-details-list.module.ts","../../../../projects/element-ng/result-details-list/index.ts","../../../../projects/element-ng/result-details-list/siemens-element-ng-result-details-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport {\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n} from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { ResultDetailStep } from './si-result-details-list.datamodel';\n\n@Component({\n selector: 'si-result-details-list',\n imports: [SiLoadingSpinnerComponent, SiIconComponent, SiTranslatePipe],\n templateUrl: './si-result-details-list.component.html',\n styleUrl: './si-result-details-list.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager\n})\nexport class SiResultDetailsListComponent {\n /**\n * Array of steps to show in the list.\n *\n * @defaultValue []\n */\n readonly steps = input<ResultDetailStep[]>([]);\n\n protected readonly stepHasValue = computed(() => this.steps().some(item => !!item.value));\n\n protected readonly icons = addIcons({\n elementCircleFilled,\n elementNotChecked,\n elementOutOfService,\n elementStateExclamationMark,\n elementStateTick\n });\n}\n","<ul class=\"list-unstyled d-flex flex-column mb-0\">\n @for (step of steps(); track $index) {\n <li\n class=\"position-relative d-flex align-items-center timeline px-6 py-5\"\n [class.text-accent]=\"step.state === 'running'\"\n >\n <div class=\"icon-stack icon me-4\">\n @if (step.state === 'running') {\n <si-loading-spinner />\n } @else {\n @if (step.icon) {\n <si-icon [icon]=\"step.icon\" />\n } @else {\n @switch (step.state) {\n @case ('passed') {\n <si-icon class=\"status-success\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon class=\"status-critical-contrast\" [icon]=\"icons.elementStateTick\" />\n }\n @case ('failed') {\n <si-icon class=\"status-danger\" [icon]=\"icons.elementCircleFilled\" />\n <si-icon\n class=\"status-critical-contrast\"\n [icon]=\"icons.elementStateExclamationMark\"\n />\n }\n @case ('not-started') {\n <si-icon [icon]=\"icons.elementNotChecked\" />\n }\n @default {\n <si-icon [icon]=\"icons.elementOutOfService\" />\n }\n }\n }\n }\n </div>\n\n <div class=\"d-flex flex-column justify-content-center w-100 overflow-hidden\">\n <div class=\"d-flex\">\n <div class=\"result-description\">\n <span class=\"si-h5\">{{ step.description | translate: step.translationParams }}</span>\n @if (step.detail) {\n <div class=\"si-body text-secondary result-detail\">{{\n step.detail | translate: step.translationParams\n }}</div>\n }\n @if (step.errorMessage) {\n <div class=\"si-h5 text-danger\">{{\n step.errorMessage | translate: step.translationParams\n }}</div>\n }\n </div>\n @if (step.value) {\n <span class=\"result-value\">{{ step.value }}</span>\n } @else if (stepHasValue()) {\n <!-- empty placeholder to align step description with other steps-->\n <span class=\"result-value\"></span>\n }\n </div>\n </div>\n </li>\n }\n</ul>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\n/** */\nexport interface ResultDetailStep {\n /**\n * A description of the step.\n */\n description: TranslatableString;\n /**\n * A state object defining the state of the step.\n */\n state: ResultDetailStepState;\n /**\n * Optional value to be displayed for the step.\n */\n value?: string;\n /**\n * Optional error message to display.\n */\n errorMessage?: string;\n /**\n * Optional custom icon to display. Otherwise a default icon will be shown based on the state property.\n */\n icon?: string;\n /**\n * Optional detail text which appears below description.\n */\n detail?: TranslatableString;\n /**\n * Optional translation params to be used with translate pipe.\n */\n translationParams?: Record<string, unknown>;\n}\n\n/**\n * This type defines the state that a detailed result step can have.\n */\nexport type ResultDetailStepState =\n 'passed' | 'failed' | 'running' | 'not-supported' | 'not-started';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiResultDetailsListComponent } from './si-result-details-list.component';\n\n@NgModule({\n imports: [SiResultDetailsListComponent],\n exports: [SiResultDetailsListComponent]\n})\nexport class SiResultDetailsListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-result-details-list.component';\nexport * from './si-result-details-list.datamodel';\nexport * from './si-result-details-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAAA;;;AAGG;MAsBU,4BAA4B,CAAA;AACvC;;;;AAIG;IACM,KAAK,GAAG,KAAK,CAAqB,EAAE;8EAAC;IAE3B,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC;qFAAC;IAEtE,KAAK,GAAG,QAAQ,CAAC;QAClC,mBAAmB;QACnB,iBAAiB;QACjB,mBAAmB;QACnB,2BAA2B;QAC3B;AACD,KAAA,CAAC;uGAhBS,4BAA4B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAA5B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,sNCzBzC,w0EA8DA,EAAA,MAAA,EAAA,CAAA,49BAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,ED1CY,yBAAyB,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,kBAAA,EAAA,WAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,eAAe,iEAAE,eAAe,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,KAAA,EAAA,CAAA;;2FAK1D,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBAPxC,SAAS;+BACE,wBAAwB,EAAA,OAAA,EACzB,CAAC,yBAAyB,EAAE,eAAe,EAAE,eAAe,CAAC,EAAA,eAAA,EAGrD,uBAAuB,CAAC,KAAK,EAAA,QAAA,EAAA,w0EAAA,EAAA,MAAA,EAAA,CAAA,49BAAA,CAAA,EAAA;;;AEvBhD;;;AAGG;;ACHH;;;AAGG;MASU,yBAAyB,CAAA;uGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;wGAAzB,yBAAyB,EAAA,OAAA,EAAA,CAH1B,4BAA4B,CAAA,EAAA,OAAA,EAAA,CAC5B,4BAA4B,CAAA,EAAA,CAAA;AAE3B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,yBAAyB,YAH1B,4BAA4B,CAAA,EAAA,CAAA;;2FAG3B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,4BAA4B,CAAC;oBACvC,OAAO,EAAE,CAAC,4BAA4B;AACvC,iBAAA;;;ACXD;;;AAGG;;ACHH;;AAEG;;;;"}
@@ -33,7 +33,8 @@ const SI_SELECT_OPTIONS_STRATEGY = new InjectionToken('si-select.options-strateg
33
33
  * SPDX-License-Identifier: MIT
34
34
  */
35
35
  /**
36
- * The directive allows to template/customize the value option rendering.
36
+ * The directive allows to template/customize the option rendering in the dropdown.
37
+ * It is also used for rendering selected values in the input if no input template is provided.
37
38
  * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.
38
39
  *
39
40
  * @example
@@ -552,6 +553,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
552
553
  }]
553
554
  }] });
554
555
 
556
+ /**
557
+ * Copyright (c) Siemens 2016 - 2026
558
+ * SPDX-License-Identifier: MIT
559
+ */
560
+ /**
561
+ * The directive allows to template/customize the selected value rendering in the select input.
562
+ * This requires using the {@link SiSelectSimpleOptionsDirective} to specify options as input.
563
+ *
564
+ * @example
565
+ * ```html
566
+ * <si-select [options]="[
567
+ * { type: 'option', value: 'good', label: 'Good' },
568
+ * { type: 'option', value: 'fair', label: 'Fair' }
569
+ * ]">
570
+ * <ng-template siSelectValueTemplate let-option>{{ option.label }}</ng-template>
571
+ * </si-select>
572
+ * ```
573
+ */
574
+ class SiSelectValueTemplateDirective {
575
+ /** @internal */
576
+ static ngTemplateContextGuard(directive, context) {
577
+ return true;
578
+ }
579
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSelectValueTemplateDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
580
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SiSelectValueTemplateDirective, isStandalone: true, selector: "[siSelectValueTemplate]", ngImport: i0 });
581
+ }
582
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSelectValueTemplateDirective, decorators: [{
583
+ type: Directive,
584
+ args: [{
585
+ selector: '[siSelectValueTemplate]'
586
+ }]
587
+ }] });
588
+
555
589
  /**
556
590
  * Copyright (c) Siemens 2016 - 2026
557
591
  * SPDX-License-Identifier: MIT
@@ -622,6 +656,7 @@ class SiSelectComponent {
622
656
  isOpen = signal(false, /* @ts-ignore */
623
657
  ...(ngDevMode ? [{ debugName: "isOpen" }] : /* istanbul ignore next */ []));
624
658
  optionTemplate = contentChild(SiSelectOptionTemplateDirective, { ...(ngDevMode ? { debugName: "optionTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
659
+ selectedValueTemplate = contentChild(SiSelectValueTemplateDirective, { ...(ngDevMode ? { debugName: "selectedValueTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
625
660
  groupTemplate = contentChild(SiSelectGroupTemplateDirective, { ...(ngDevMode ? { debugName: "groupTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
626
661
  actionsTemplate = contentChild(SiSelectActionsDirective, { ...(ngDevMode ? { debugName: "actionsTemplate" } : /* istanbul ignore next */ {}), read: TemplateRef });
627
662
  trigger = viewChild.required(CdkOverlayOrigin, { ...(ngDevMode ? { debugName: "trigger" } : /* istanbul ignore next */ {}), read: ElementRef });
@@ -676,7 +711,7 @@ class SiSelectComponent {
676
711
  this.isOpen.set(false);
677
712
  }
678
713
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSelectComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
679
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSelectComponent, isStandalone: true, selector: "si-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, labelledbyInput: { classPropertyName: "labelledbyInput", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, noResultsFoundLabel: { classPropertyName: "noResultsFoundLabel", publicName: "noResultsFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, errormessageId: { classPropertyName: "errormessageId", publicName: "errormessageId", isSignal: true, isRequired: false, transformFunction: null }, hasFilter: { classPropertyName: "hasFilter", publicName: "hasFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, host: { properties: { "class.readonly": "readonly()", "class.open": "isOpen()", "class.si-select-has-filter": "hasFilter()" }, classAttribute: "dropdown" }, providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiSelectComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: SiSelectOptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupTemplate", first: true, predicate: SiSelectGroupTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "actionsTemplate", first: true, predicate: SiSelectActionsDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkOverlayOrigin, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n", styles: [":host{display:inline-block;padding:0;block-size:2rem}:host:focus-within,:host.open:not(.si-select-has-filter){outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}:host.readonly,:host.disabled{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$3.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: SiSelectInputComponent, selector: "si-select-input", inputs: ["baseId", "labelledby", "ariaLabel", "open", "placeholder", "controls", "optionTemplate", "readonly"], outputs: ["openListbox"] }, { kind: "component", type: SiSelectListComponent, selector: "si-select-list" }, { kind: "component", type: SiSelectListHasFilterComponent, selector: "si-select-list-has-filter", inputs: ["filterPlaceholder", "noResultsFoundLabel"] }] });
714
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiSelectComponent, isStandalone: true, selector: "si-select", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null }, labelledbyInput: { classPropertyName: "labelledbyInput", publicName: "labelledby", isSignal: true, isRequired: false, transformFunction: null }, filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: false, transformFunction: null }, noResultsFoundLabel: { classPropertyName: "noResultsFoundLabel", publicName: "noResultsFoundLabel", isSignal: true, isRequired: false, transformFunction: null }, placeholder: { classPropertyName: "placeholder", publicName: "placeholder", isSignal: true, isRequired: false, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null }, scrollStrategy: { classPropertyName: "scrollStrategy", publicName: "scrollStrategy", isSignal: true, isRequired: false, transformFunction: null }, errormessageId: { classPropertyName: "errormessageId", publicName: "errormessageId", isSignal: true, isRequired: false, transformFunction: null }, hasFilter: { classPropertyName: "hasFilter", publicName: "hasFilter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { openChange: "openChange" }, host: { properties: { "class.readonly": "readonly()", "class.open": "isOpen()", "class.si-select-has-filter": "hasFilter()" }, classAttribute: "dropdown" }, providers: [{ provide: SI_FORM_ITEM_CONTROL, useExisting: SiSelectComponent }], queries: [{ propertyName: "optionTemplate", first: true, predicate: SiSelectOptionTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "selectedValueTemplate", first: true, predicate: SiSelectValueTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "groupTemplate", first: true, predicate: SiSelectGroupTemplateDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "actionsTemplate", first: true, predicate: SiSelectActionsDirective, descendants: true, read: TemplateRef, isSignal: true }], viewQueries: [{ propertyName: "trigger", first: true, predicate: CdkOverlayOrigin, descendants: true, read: ElementRef, isSignal: true }], ngImport: i0, template: "<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"selectedValueTemplate() ?? optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n", styles: [":host{display:inline-block;padding:0;block-size:2rem}:host:focus-within,:host.open:not(.si-select-has-filter){outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}:host.readonly,:host.disabled{pointer-events:none}\n"], dependencies: [{ kind: "ngmodule", type: OverlayModule }, { kind: "directive", type: i1$3.CdkConnectedOverlay, selector: "[cdk-connected-overlay], [connected-overlay], [cdkConnectedOverlay]", inputs: ["cdkConnectedOverlayOrigin", "cdkConnectedOverlayPositions", "cdkConnectedOverlayPositionStrategy", "cdkConnectedOverlayOffsetX", "cdkConnectedOverlayOffsetY", "cdkConnectedOverlayWidth", "cdkConnectedOverlayHeight", "cdkConnectedOverlayMinWidth", "cdkConnectedOverlayMinHeight", "cdkConnectedOverlayBackdropClass", "cdkConnectedOverlayPanelClass", "cdkConnectedOverlayViewportMargin", "cdkConnectedOverlayScrollStrategy", "cdkConnectedOverlayOpen", "cdkConnectedOverlayDisableClose", "cdkConnectedOverlayTransformOriginOn", "cdkConnectedOverlayHasBackdrop", "cdkConnectedOverlayLockPosition", "cdkConnectedOverlayFlexibleDimensions", "cdkConnectedOverlayGrowAfterOpen", "cdkConnectedOverlayPush", "cdkConnectedOverlayDisposeOnNavigation", "cdkConnectedOverlayUsePopover", "cdkConnectedOverlayMatchWidth", "cdkConnectedOverlay"], outputs: ["backdropClick", "positionChange", "attach", "detach", "overlayKeydown", "overlayOutsideClick"], exportAs: ["cdkConnectedOverlay"] }, { kind: "directive", type: i1$3.CdkOverlayOrigin, selector: "[cdk-overlay-origin], [overlay-origin], [cdkOverlayOrigin]", exportAs: ["cdkOverlayOrigin"] }, { kind: "component", type: SiSelectInputComponent, selector: "si-select-input", inputs: ["baseId", "labelledby", "ariaLabel", "open", "placeholder", "controls", "optionTemplate", "readonly"], outputs: ["openListbox"] }, { kind: "component", type: SiSelectListComponent, selector: "si-select-list" }, { kind: "component", type: SiSelectListHasFilterComponent, selector: "si-select-list-has-filter", inputs: ["filterPlaceholder", "noResultsFoundLabel"] }] });
680
715
  }
681
716
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSelectComponent, decorators: [{
682
717
  type: Component,
@@ -690,8 +725,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
690
725
  '[class.readonly]': 'readonly()',
691
726
  '[class.open]': 'isOpen()',
692
727
  '[class.si-select-has-filter]': 'hasFilter()'
693
- }, template: "<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n", styles: [":host{display:inline-block;padding:0;block-size:2rem}:host:focus-within,:host.open:not(.si-select-has-filter){outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}:host.readonly,:host.disabled{pointer-events:none}\n"] }]
694
- }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], labelledbyInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelledby", required: false }] }], filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: false }] }], noResultsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsFoundLabel", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], scrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollStrategy", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], optionTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectOptionTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectGroupTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], actionsTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectActionsDirective), { ...{ read: TemplateRef }, isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkOverlayOrigin), { ...{
728
+ }, template: "<si-select-input\n #trigger=\"cdkOverlayOrigin\"\n cdkOverlayOrigin\n [baseId]=\"id()\"\n [labelledby]=\"labelledby()\"\n [optionTemplate]=\"selectedValueTemplate() ?? optionTemplate()\"\n [ariaLabel]=\"ariaLabel()\"\n [controls]=\"id() + '-listbox'\"\n [open]=\"isOpen()\"\n [placeholder]=\"placeholder()\"\n [readonly]=\"readonly()\"\n [attr.aria-describedby]=\"errormessageId()\"\n (openListbox)=\"open()\"\n/>\n\n<ng-template\n cdkConnectedOverlay\n cdkConnectedOverlayBackdropClass=\"cdk-overlay-transparent-backdrop\"\n [cdkConnectedOverlayHasBackdrop]=\"true\"\n [cdkConnectedOverlayOrigin]=\"trigger\"\n [cdkConnectedOverlayOpen]=\"isOpen()\"\n [cdkConnectedOverlayScrollStrategy]=\"scrollStrategy()\"\n [cdkConnectedOverlayFlexibleDimensions]=\"true\"\n [cdkConnectedOverlayOffsetX]=\"-1\"\n [cdkConnectedOverlayMinWidth]=\"overlayWidth\"\n (backdropClick)=\"backdropClick()\"\n (detach)=\"close()\"\n>\n @if (!hasFilter()) {\n <si-select-list\n [baseId]=\"id()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n } @else {\n <si-select-list-has-filter\n [baseId]=\"id()\"\n [filterPlaceholder]=\"filterPlaceholder()\"\n [noResultsFoundLabel]=\"noResultsFoundLabel()\"\n [optionTemplate]=\"optionTemplate()\"\n [groupTemplate]=\"groupTemplate()\"\n [labelledby]=\"labelledby()\"\n [actionsTemplate]=\"actionsTemplate()\"\n (closeOverlay)=\"close()\"\n />\n }\n</ng-template>\n", styles: [":host{display:inline-block;padding:0;block-size:2rem}:host:focus-within,:host.open:not(.si-select-has-filter){outline:var(--element-button-focus-width) solid var(--si-sys-effects-focus);outline-offset:var(--element-button-focus-overlay-width)}:host.readonly,:host.disabled{pointer-events:none}\n"] }]
729
+ }], propDecorators: { id: [{ type: i0.Input, args: [{ isSignal: true, alias: "id", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], labelledbyInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "labelledby", required: false }] }], filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: false }] }], noResultsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsFoundLabel", required: false }] }], placeholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "placeholder", required: false }] }], readonly: [{ type: i0.Input, args: [{ isSignal: true, alias: "readonly", required: false }] }], scrollStrategy: [{ type: i0.Input, args: [{ isSignal: true, alias: "scrollStrategy", required: false }] }], openChange: [{ type: i0.Output, args: ["openChange"] }], optionTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectOptionTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], selectedValueTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectValueTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], groupTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectGroupTemplateDirective), { ...{ read: TemplateRef }, isSignal: true }] }], actionsTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiSelectActionsDirective), { ...{ read: TemplateRef }, isSignal: true }] }], trigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkOverlayOrigin), { ...{
695
730
  read: ElementRef
696
731
  }, isSignal: true }] }], errormessageId: [{ type: i0.Input, args: [{ isSignal: true, alias: "errormessageId", required: false }] }], hasFilter: [{ type: i0.Input, args: [{ isSignal: true, alias: "hasFilter", required: false }] }] } });
697
732
 
@@ -1067,6 +1102,7 @@ class SiSelectModule {
1067
1102
  SiSelectGroupTemplateDirective,
1068
1103
  SiSelectMultiValueDirective,
1069
1104
  SiSelectOptionTemplateDirective,
1105
+ SiSelectValueTemplateDirective,
1070
1106
  SiSelectSimpleOptionsDirective,
1071
1107
  SiSelectSingleValueDirective], exports: [SiSelectActionDirective,
1072
1108
  SiSelectActionsDirective,
@@ -1074,6 +1110,7 @@ class SiSelectModule {
1074
1110
  SiSelectGroupTemplateDirective,
1075
1111
  SiSelectMultiValueDirective,
1076
1112
  SiSelectOptionTemplateDirective,
1113
+ SiSelectValueTemplateDirective,
1077
1114
  SiSelectSimpleOptionsDirective,
1078
1115
  SiSelectSingleValueDirective] });
1079
1116
  static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiSelectModule, imports: [SiSelectComponent] });
@@ -1088,6 +1125,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1088
1125
  SiSelectGroupTemplateDirective,
1089
1126
  SiSelectMultiValueDirective,
1090
1127
  SiSelectOptionTemplateDirective,
1128
+ SiSelectValueTemplateDirective,
1091
1129
  SiSelectSimpleOptionsDirective,
1092
1130
  SiSelectSingleValueDirective
1093
1131
  ],
@@ -1098,6 +1136,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1098
1136
  SiSelectGroupTemplateDirective,
1099
1137
  SiSelectMultiValueDirective,
1100
1138
  SiSelectOptionTemplateDirective,
1139
+ SiSelectValueTemplateDirective,
1101
1140
  SiSelectSimpleOptionsDirective,
1102
1141
  SiSelectSingleValueDirective
1103
1142
  ]
@@ -1561,5 +1600,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1561
1600
  * Generated bundle index. Do not edit.
1562
1601
  */
1563
1602
 
1564
- export { SiCustomSelectDirective, SiSelectActionDirective, SiSelectActionsDirective, SiSelectComboboxComponent, SiSelectComboboxValueComponent, SiSelectComponent, SiSelectDropdownDirective, SiSelectGroupTemplateDirective, SiSelectLazyOptionsDirective, SiSelectListHasFilterComponent, SiSelectModule, SiSelectMultiValueDirective, SiSelectOptionTemplateDirective, SiSelectSimpleOptionsDirective, SiSelectSingleValueDirective };
1603
+ export { SiCustomSelectDirective, SiSelectActionDirective, SiSelectActionsDirective, SiSelectComboboxComponent, SiSelectComboboxValueComponent, SiSelectComponent, SiSelectDropdownDirective, SiSelectGroupTemplateDirective, SiSelectLazyOptionsDirective, SiSelectListHasFilterComponent, SiSelectModule, SiSelectMultiValueDirective, SiSelectOptionTemplateDirective, SiSelectSimpleOptionsDirective, SiSelectSingleValueDirective, SiSelectValueTemplateDirective };
1565
1604
  //# sourceMappingURL=siemens-element-ng-select.mjs.map