@siemens/element-ng 49.10.0 → 49.11.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 (32) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +13 -4
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-application-header.mjs +4 -4
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-date-range-filter.mjs +12 -3
  6. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-datepicker.mjs +1 -1
  8. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-filtered-search.mjs +2 -2
  10. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-form.mjs +6 -6
  12. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-landing-page.mjs +2 -2
  14. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +355 -258
  16. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +18 -2
  18. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-photo-upload.mjs +2 -2
  20. package/fesm2022/siemens-element-ng-select.mjs +2 -2
  21. package/fesm2022/siemens-element-ng-side-panel.mjs +2 -2
  22. package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
  23. package/fesm2022/siemens-element-ng-tour.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-tree-view.mjs +2 -2
  26. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  27. package/package.json +3 -3
  28. package/template-i18n.json +8 -6
  29. package/types/siemens-element-ng-about.d.ts +11 -1
  30. package/types/siemens-element-ng-date-range-filter.d.ts +10 -1
  31. package/types/siemens-element-ng-navbar-vertical-next.d.ts +161 -85
  32. package/types/siemens-element-ng-translate.d.ts +2 -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 { 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})\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 Component,\n ComponentRef,\n computed,\n Directive,\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 host: { '[attr.aria-owns]': 'groupId()' }\n})\nclass SiNavbarFlyoutAnchorComponent {\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 readonly groupTemplate = input.required<TemplateRef<unknown>>({\n alias: 'siNavbarVerticalGroupTriggerFor'\n });\n\n readonly groupData = input<{ item?: NavbarVerticalItem; group: NavbarVerticalItemGroup }>();\n\n readonly stateId = input<string>();\n\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 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 { 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 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 { 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 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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\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 readonly item = input.required<NavbarVerticalItemInteractive | MenuItem>({\n alias: 'si-navbar-vertical-item'\n });\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-lg\" [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 aria-hidden=\"true\" class=\"dropdown-caret me-0 text-body\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input, model, viewChildren } 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 host: {\n 'class': 'd-block mb-4'\n }\n})\nexport class SiNavbarVerticalItemLegacyComponent {\n readonly item = input.required<MenuItem>();\n readonly navbarExpandButtonText = input.required();\n readonly navbarCollapseButtonText = input.required();\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 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 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=\"bg-base-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 bg-base-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 { 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})\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 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 host: { '[attr.aria-owns]': 'groupId()' }\n})\nclass SiNavbarFlyoutAnchorComponent {\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 readonly groupTemplate = input.required<TemplateRef<unknown>>({\n alias: 'siNavbarVerticalGroupTriggerFor'\n });\n\n readonly groupData = input<{ item?: NavbarVerticalItem; group: NavbarVerticalItemGroup }>();\n\n readonly stateId = input<string>();\n\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 { 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 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 { 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 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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\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 readonly item = input.required<NavbarVerticalItemInteractive | MenuItem>({\n alias: 'si-navbar-vertical-item'\n });\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-lg\" [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 aria-hidden=\"true\" class=\"dropdown-caret me-0 text-body\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, computed, inject, input, model, viewChildren } 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 host: {\n 'class': 'd-block mb-4'\n }\n})\nexport class SiNavbarVerticalItemLegacyComponent {\n readonly item = input.required<MenuItem>();\n readonly navbarExpandButtonText = input.required();\n readonly navbarCollapseButtonText = input.required();\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 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 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=\"bg-base-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 bg-base-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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"}
@@ -16,11 +16,11 @@ import { ImageCropperComponent } from 'ngx-image-cropper';
16
16
  */
17
17
  class SiImageCropperStyleComponent {
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiImageCropperStyleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiImageCropperStyleComponent, isStandalone: true, selector: "si-image-cropper-style", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host ::ng-deep image-cropper{max-block-size:70vh;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.0.8", type: SiImageCropperStyleComponent, isStandalone: true, selector: "si-image-cropper-style", ngImport: i0, template: '<ng-content />', isInline: true, styles: [":host ::ng-deep image-cropper{max-block-size:70vb;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"], changeDetection: i0.ChangeDetectionStrategy.OnPush });
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiImageCropperStyleComponent, decorators: [{
22
22
  type: Component,
23
- args: [{ selector: 'si-image-cropper-style', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host ::ng-deep image-cropper{max-block-size:70vh;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"] }]
23
+ args: [{ selector: 'si-image-cropper-style', template: '<ng-content />', changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host ::ng-deep image-cropper{max-block-size:70vb;--image-cropper-outline-color: var(--element-base-translucent-1);--cropper-outline-color: var(--image-cropper-outline-color);--cropper-overlay-color: var(--element-ui-5)}:host ::ng-deep image-cropper .ngx-ic-square{background:var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper{outline:2px solid var(--element-ui-0)!important}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper:after{z-index:0;border:unset;box-shadow:0 0 0 9999px var(--cropper-outline-color)}:host ::ng-deep image-cropper .ngx-ic-cropper.ngx-ic-cropper .ngx-ic-move.ngx-ic-move{position:relative;overflow:hidden;border:0}\n"] }]
24
24
  }] });
25
25
 
26
26
  /**
@@ -401,7 +401,7 @@ class SiSelectListHasFilterComponent extends SiSelectListBase {
401
401
  this.closeOverlayIfSingle();
402
402
  }
403
403
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiSelectListHasFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
404
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiSelectListHasFilterComponent, isStandalone: true, selector: "si-select-list-has-filter", inputs: { filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: true, transformFunction: null }, noResultsFoundLabel: { classPropertyName: "noResultsFoundLabel", publicName: "noResultsFoundLabel", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.id": "id()" }, classAttribute: "pt-0" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control icon-start border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n", styles: [".si-select-filtered-items{max-block-size:min(100vh - 56px,266px);overflow-y:auto}si-loading-spinner{--loading-spinner-size: 1.25rem}.icon-start{padding-inline-start:calc(1.25rem + 12px)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SiAutocompleteDirective, selector: "input[siAutocomplete]", exportAs: ["siAutocomplete"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiSelectGroupTemplateDirective, selector: "[siSelectGroupTemplate]" }, { kind: "component", type: SiSelectOptionRowComponent, selector: "si-select-option-row", inputs: ["option", "optionTemplate", "selected"] }, { kind: "directive", type: SiSelectOptionRowTemplateDirective, selector: "[siSelectOptionRowTemplate]" }, { kind: "ngmodule", type: SiAutocompleteModule }, { kind: "directive", type: i1$1.SiAutocompleteListboxDirective, selector: "[siAutocompleteListboxFor]", inputs: ["id", "siAutocompleteListboxFor", "siAutocompleteDefaultIndex"], outputs: ["siAutocompleteOptionSubmitted"], exportAs: ["siAutocompleteListbox"] }, { kind: "directive", type: i1$1.SiAutocompleteOptionDirective, selector: "[siAutocompleteOption]", inputs: ["id", "disabled", "siAutocompleteOption"], exportAs: ["siAutocompleteOption"] }, { kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
404
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiSelectListHasFilterComponent, isStandalone: true, selector: "si-select-list-has-filter", inputs: { filterPlaceholder: { classPropertyName: "filterPlaceholder", publicName: "filterPlaceholder", isSignal: true, isRequired: true, transformFunction: null }, noResultsFoundLabel: { classPropertyName: "noResultsFoundLabel", publicName: "noResultsFoundLabel", isSignal: true, isRequired: true, transformFunction: null } }, host: { properties: { "attr.id": "id()" }, classAttribute: "pt-0" }, viewQueries: [{ propertyName: "filterInput", first: true, predicate: ["filter"], descendants: true, isSignal: true }], usesInheritance: true, ngImport: i0, template: "<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control icon-start border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n", styles: [".si-select-filtered-items{max-block-size:min(100vb - 56px,266px);overflow-y:auto}si-loading-spinner{--loading-spinner-size: 1.25rem}.icon-start{padding-inline-start:calc(1.25rem + 12px)}\n"], dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: SiAutocompleteDirective, selector: "input[siAutocomplete]", exportAs: ["siAutocomplete"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiSelectGroupTemplateDirective, selector: "[siSelectGroupTemplate]" }, { kind: "component", type: SiSelectOptionRowComponent, selector: "si-select-option-row", inputs: ["option", "optionTemplate", "selected"] }, { kind: "directive", type: SiSelectOptionRowTemplateDirective, selector: "[siSelectOptionRowTemplate]" }, { kind: "ngmodule", type: SiAutocompleteModule }, { kind: "directive", type: i1$1.SiAutocompleteListboxDirective, selector: "[siAutocompleteListboxFor]", inputs: ["id", "siAutocompleteListboxFor", "siAutocompleteDefaultIndex"], outputs: ["siAutocompleteOptionSubmitted"], exportAs: ["siAutocompleteListbox"] }, { kind: "directive", type: i1$1.SiAutocompleteOptionDirective, selector: "[siAutocompleteOption]", inputs: ["id", "disabled", "siAutocompleteOption"], exportAs: ["siAutocompleteOption"] }, { kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
405
405
  }
406
406
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiSelectListHasFilterComponent, decorators: [{
407
407
  type: Component,
@@ -418,7 +418,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
418
418
  ], changeDetection: ChangeDetectionStrategy.OnPush, host: {
419
419
  class: 'pt-0',
420
420
  '[attr.id]': 'id()'
421
- }, template: "<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control icon-start border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n", styles: [".si-select-filtered-items{max-block-size:min(100vh - 56px,266px);overflow-y:auto}si-loading-spinner{--loading-spinner-size: 1.25rem}.icon-start{padding-inline-start:calc(1.25rem + 12px)}\n"] }]
421
+ }, template: "<div class=\"pt-5 pb-5 px-5 top-0\">\n <div class=\"position-relative\">\n <input\n #filter\n #siAutocomplete=\"siAutocomplete\"\n siAutocomplete\n class=\"form-control icon-start border-0 rounded-2 bg-base-0\"\n [placeholder]=\"filterPlaceholder() | translate\"\n [id]=\"baseId() + 'filter-input'\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (input)=\"input()\"\n />\n <si-icon\n class=\"icon text-secondary position-absolute top-0 bottom-0 d-flex align-items-center ps-2\"\n [icon]=\"icons.elementSearch\"\n />\n @if (selectOptions.loading?.()) {\n <si-loading-spinner class=\"position-absolute end-0 bottom-0 d-flex align-items-center p-2\" />\n }\n </div>\n</div>\n<div\n class=\"si-select-filtered-items\"\n tabindex=\"-1\"\n [siAutocompleteListboxFor]=\"siAutocomplete\"\n [siAutocompleteDefaultIndex]=\"initIndex()\"\n [attr.aria-labelledby]=\"baseId() + '-aria-label' + ' ' + labelledby()\"\n (siAutocompleteOptionSubmitted)=\"select($event)\"\n>\n @for (item of rows(); track item; let index = $index) {\n @if (item.type === 'group') {\n <div\n role=\"group\"\n class=\"ps-0\"\n aria-disabled=\"false\"\n [attr.aria-labelledby]=\"baseId() + '-' + index + '-group-header'\"\n >\n <div class=\"dropdown-header\" [id]=\"baseId() + '-' + index + '-group-header'\">\n <ng-container\n [ngTemplateOutlet]=\"groupTemplate() ?? defaultGroupTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n </div>\n @for (optionRow of item.options; track optionRow) {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: optionRow }\"\n />\n }\n </div>\n }\n @if (item.type === 'option') {\n <ng-container\n [ngTemplateOutlet]=\"optionRowTemplate\"\n [ngTemplateOutletContext]=\"{ $implicit: item }\"\n />\n }\n } @empty {\n <div\n role=\"option\"\n aria-disabled=\"true\"\n aria-selected=\"false\"\n class=\"dropdown-item disabled text-secondary justify-content-center mb-2\"\n >\n <span>{{ noResultsFoundLabel() | translate }}</span>\n </div>\n }\n\n <ng-template #optionRowTemplate let-option siSelectOptionRowTemplate>\n <si-select-option-row\n [option]=\"option\"\n [optionTemplate]=\"optionTemplate()\"\n [siAutocompleteOption]=\"option.value\"\n [disabled]=\"option.disabled\"\n [selected]=\"selectionStrategy.arrayValue().includes(option.value)\"\n />\n </ng-template>\n</div>\n@if (actionsTemplate()) {\n <div class=\"dropdown-divider\"></div>\n <div class=\"d-flex flex-column align-items-start\">\n <ng-container\n [ngTemplateOutlet]=\"actionsTemplate()!\"\n [ngTemplateOutletContext]=\"{\n searchText: filter.value,\n visibleOptionsCount: rows().length\n }\"\n />\n </div>\n}\n\n<ng-template #defaultGroupTemplate let-group siSelectGroupTemplate>\n {{ group.label | translate }}\n</ng-template>\n", styles: [".si-select-filtered-items{max-block-size:min(100vb - 56px,266px);overflow-y:auto}si-loading-spinner{--loading-spinner-size: 1.25rem}.icon-start{padding-inline-start:calc(1.25rem + 12px)}\n"] }]
422
422
  }], ctorParameters: () => [], propDecorators: { filterPlaceholder: [{ type: i0.Input, args: [{ isSignal: true, alias: "filterPlaceholder", required: true }] }], noResultsFoundLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "noResultsFoundLabel", required: true }] }], filterInput: [{ type: i0.ViewChild, args: ['filter', { isSignal: true }] }] } });
423
423
 
424
424
  /**
@@ -446,7 +446,7 @@ class SiSidePanelComponent {
446
446
  }
447
447
  }
448
448
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiSidePanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
449
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiSidePanelComponent, isStandalone: true, selector: "si-side-panel", inputs: { collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, breakpoints: { classPropertyName: "breakpoints", publicName: "breakpoints", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null }, disableBackdrop: { classPropertyName: "disableBackdrop", publicName: "disableBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", closed: "closed", contentResize: "contentResize" }, host: { properties: { "class.enable-mobile": "enableMobile()", "class.rpanel-size--regular": "this.size() === \"regular\"", "class.rpanel-size--wide": "this.size() === \"wide\"", "class.rpanel-size--extended": "this.size() === \"extended\"", "class.rpanel-mode--over": "isOverMode()", "class.rpanel-mode--scroll": "isScrollMode()", "class.rpanel-collapsed": "isCollapsed()", "class.ready": "ready()", "class.collapsible": "collapsible() && !this.showTempContent()", "class.collapsible-temp": "collapsible() && this.showTempContent()", "class.rpanel-hidden": "isHidden()", "class.rpanel-fullscreen-overlay": "isFullscreenOverlay()", "class.rpanel-resize-xs": "isXs()", "class.rpanel-resize-sm": "isSm()", "class.rpanel-resize-md": "isMd()", "class.rpanel-resize-lg": "isLg()", "class.rpanel-resize-xl": "isXl()", "class.rpanel-resize-xxl": "isXxl()", "class.rpanel-resize-xxxl": "isXxxl()" }, classAttribute: "si-layout-inner" }, viewQueries: [{ propertyName: "panelElement", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "portalOutlet", first: true, predicate: ["portalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "tmpPortalOutlet", first: true, predicate: ["tmpPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (showBackdrop()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleSidePanel()\"></div>\n}\n<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .modal-backdrop{opacity:1;transition:opacity .15s linear;z-index:1029}@starting-style{:host .modal-backdrop{opacity:0}}:host .modal-backdrop.backdrop-leave{opacity:0;transition:opacity .15s linear}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: calc(1.5rem + 24px) }:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100vw}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vw}:host.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none;padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100vw}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media(max-width:575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
449
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiSidePanelComponent, isStandalone: true, selector: "si-side-panel", inputs: { collapsible: { classPropertyName: "collapsible", publicName: "collapsible", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null }, mode: { classPropertyName: "mode", publicName: "mode", isSignal: true, isRequired: false, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: false, transformFunction: null }, toggleItemLabel: { classPropertyName: "toggleItemLabel", publicName: "toggleItemLabel", isSignal: true, isRequired: false, transformFunction: null }, breakpoints: { classPropertyName: "breakpoints", publicName: "breakpoints", isSignal: true, isRequired: false, transformFunction: null }, enableMobile: { classPropertyName: "enableMobile", publicName: "enableMobile", isSignal: true, isRequired: false, transformFunction: null }, disableBackdrop: { classPropertyName: "disableBackdrop", publicName: "disableBackdrop", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { collapsed: "collapsedChange", closed: "closed", contentResize: "contentResize" }, host: { properties: { "class.enable-mobile": "enableMobile()", "class.rpanel-size--regular": "this.size() === \"regular\"", "class.rpanel-size--wide": "this.size() === \"wide\"", "class.rpanel-size--extended": "this.size() === \"extended\"", "class.rpanel-mode--over": "isOverMode()", "class.rpanel-mode--scroll": "isScrollMode()", "class.rpanel-collapsed": "isCollapsed()", "class.ready": "ready()", "class.collapsible": "collapsible() && !this.showTempContent()", "class.collapsible-temp": "collapsible() && this.showTempContent()", "class.rpanel-hidden": "isHidden()", "class.rpanel-fullscreen-overlay": "isFullscreenOverlay()", "class.rpanel-resize-xs": "isXs()", "class.rpanel-resize-sm": "isSm()", "class.rpanel-resize-md": "isMd()", "class.rpanel-resize-lg": "isLg()", "class.rpanel-resize-xl": "isXl()", "class.rpanel-resize-xxl": "isXxl()", "class.rpanel-resize-xxxl": "isXxxl()" }, classAttribute: "si-layout-inner" }, viewQueries: [{ propertyName: "panelElement", first: true, predicate: ["sidePanel"], descendants: true, isSignal: true }, { propertyName: "contentElement", first: true, predicate: ["content"], descendants: true, isSignal: true }, { propertyName: "portalOutlet", first: true, predicate: ["portalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }, { propertyName: "tmpPortalOutlet", first: true, predicate: ["tmpPortalOutlet"], descendants: true, read: CdkPortalOutlet, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (showBackdrop()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleSidePanel()\"></div>\n}\n<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .modal-backdrop{opacity:1;transition:opacity .15s linear;z-index:1029}@starting-style{:host .modal-backdrop{opacity:0}}:host .modal-backdrop.backdrop-leave{opacity:0;transition:opacity .15s linear}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: calc(1.5rem + 24px) }:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100vi}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vi}:host.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none;padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100vi}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media(max-width:575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }] });
450
450
  }
451
451
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiSidePanelComponent, decorators: [{
452
452
  type: Component,
@@ -471,7 +471,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
471
471
  '[class.rpanel-resize-xl]': 'isXl()',
472
472
  '[class.rpanel-resize-xxl]': 'isXxl()',
473
473
  '[class.rpanel-resize-xxxl]': 'isXxxl()'
474
- }, template: "@if (showBackdrop()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleSidePanel()\"></div>\n}\n<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .modal-backdrop{opacity:1;transition:opacity .15s linear;z-index:1029}@starting-style{:host .modal-backdrop{opacity:0}}:host .modal-backdrop.backdrop-leave{opacity:0;transition:opacity .15s linear}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: calc(1.5rem + 24px) }:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100vw}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vw}:host.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none;padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100vw}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media(max-width:575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"] }]
474
+ }, template: "@if (showBackdrop()) {\n <div class=\"modal-backdrop\" animate.leave=\"backdrop-leave\" (click)=\"toggleSidePanel()\"></div>\n}\n<div #sidePanel class=\"side-panel focus-none\" tabindex=\"-1\">\n <div class=\"inner\" [class.d-none]=\"showTempContent()\">\n <ng-content select=\"si-side-panel-content, element-side-panel-content\" />\n <ng-container #portalOutlet cdkPortalOutlet />\n </div>\n <div class=\"inner\" [class.d-none]=\"!showTempContent()\">\n <ng-container #tmpPortalOutlet cdkPortalOutlet />\n </div>\n</div>\n<div #content class=\"main-content si-layout-inner\">\n <ng-content />\n</div>\n", styles: [":host{--rpanel-collapsed-padding: 0;--rpanel-size: 390px;display:block;padding-inline-end:var(--rpanel-size)}:host.ready{transition:padding-inline-end calc(.5s * var(--element-animations-enabled, 1))}:host.ready .side-panel,:host.ready .side-panel>.inner{transition:inline-size calc(.5s * var(--element-animations-enabled, 1)),box-shadow calc(.5s * var(--element-animations-enabled, 1))}:host .modal-backdrop{opacity:1;transition:opacity .15s linear;z-index:1029}@starting-style{:host .modal-backdrop{opacity:0}}:host .modal-backdrop.backdrop-leave{opacity:0;transition:opacity .15s linear}:host .side-panel,:host .side-panel>.inner{inline-size:var(--rpanel-width-fullscreen, var(--rpanel-size))}:host.collapsible,:host.collapsible-temp{--rpanel-collapsed-width: calc(1.5rem + 24px) }:host.rpanel-size--wide{--rpanel-size: 500px}:host.rpanel-size--extended{--rpanel-size: 100vi}:host.rpanel-fullscreen-overlay{--rpanel-width-fullscreen: 100vi}:host.rpanel-mode--over{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-mode--over:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-md.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-lg.rpanel-size--extended{--rpanel-size: 480px}:host.rpanel-resize-xl.rpanel-size--extended{--rpanel-size: 640px}:host.rpanel-resize-xxl.rpanel-size--extended{--rpanel-size: 720px}:host.rpanel-resize-xxxl.rpanel-size--extended{--rpanel-size: 912px}:host.rpanel-resize-sm.rpanel-size--extended{--fullscreen-button-display: none}:host.rpanel-resize-xs{--fullscreen-button-display: none;padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-resize-xs .side-panel{z-index:1031}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel{box-shadow:0 0 8px var(--element-box-shadow-color-1),0 8px 8px var(--element-box-shadow-color-2)}:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel,:host.rpanel-resize-xs:not(.rpanel-collapsed) .side-panel>.inner{inline-size:100vi}:host.rpanel-hidden:not(.collapsible) .side-panel{display:none}:host.rpanel-collapsed{padding-inline-end:var(--rpanel-collapsed-width)}:host.rpanel-collapsed:not(.collapsible) .side-panel{inline-size:0;overflow:hidden}:host.rpanel-collapsed.collapsible .side-panel{inline-size:var(--rpanel-collapsed-width);overflow:hidden}.side-panel{position:fixed;z-index:1029;inset-block-start:calc(1.5rem + 25px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-block-end:0;inset-inline-end:0;overflow-x:hidden;background:var(--element-base-1)}.side-panel>.inner{display:flex;flex-direction:column;position:absolute;inset-block:0;inset-inline-start:0}@media(max-width:575.98px){:host.enable-mobile{padding-inline-end:0!important;--si-layout-header-first-element-offset-end: 40px}:host.enable-mobile.rpanel-collapsed .side-panel{inline-size:0!important}}\n"] }]
475
475
  }], ctorParameters: () => [], propDecorators: { collapsible: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsible", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }, { type: i0.Output, args: ["collapsedChange"] }], mode: [{ type: i0.Input, args: [{ isSignal: true, alias: "mode", required: false }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: false }] }], toggleItemLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "toggleItemLabel", required: false }] }], breakpoints: [{ type: i0.Input, args: [{ isSignal: true, alias: "breakpoints", required: false }] }], enableMobile: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableMobile", required: false }] }], disableBackdrop: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableBackdrop", required: false }] }], closed: [{ type: i0.Output, args: ["closed"] }], contentResize: [{ type: i0.Output, args: ["contentResize"] }], panelElement: [{ type: i0.ViewChild, args: ['sidePanel', { isSignal: true }] }], contentElement: [{ type: i0.ViewChild, args: ['content', { isSignal: true }] }], portalOutlet: [{ type: i0.ViewChild, args: ['portalOutlet', { ...{
476
476
  read: CdkPortalOutlet
477
477
  }, isSignal: true }] }], tmpPortalOutlet: [{ type: i0.ViewChild, args: ['tmpPortalOutlet', { ...{
@@ -51,11 +51,11 @@ class SiToastNotificationComponent {
51
51
  this.toast().close();
52
52
  }
53
53
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiToastNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
54
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiToastNotificationComponent, isStandalone: true, selector: "si-toast-notification", inputs: { toast: { classPropertyName: "toast", publicName: "toast", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { paused: "paused", resumed: "resumed" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "@let toastValue = toast();\n@let autoClose = !toastValue.disableAutoClose;\n@let manualClose = !toastValue.disableManualClose;\n<div class=\"si-toast elevation-2\" [class.si-toast-auto-close]=\"autoClose\">\n @if (autoClose) {\n <div\n class=\"si-toast-timer-bar\"\n [style.--play-state]=\"animationMode()\"\n [style.--toast-timer-duration.s]=\"toastTimeoutInSeconds()\"\n ></div>\n }\n <div [class]=\"`bar ${statusColor()}`\"></div>\n <si-status-icon class=\"icon\" [status]=\"status()\" />\n\n <div class=\"toast-content px-4\">\n <p class=\"toast-title\"\n ><b>{{ toastValue.title | translate: toastValue.translationParams }}</b></p\n >\n @if (toastValue.message) {\n <p class=\"mt-4\">{{ toastValue.message | translate: toastValue.translationParams }}</p>\n }\n @if (toastValue.action) {\n <p [class.mt-3]=\"toastValue.message\" [class.mt-4]=\"!toastValue.message\">\n <a [siLink]=\"toastValue.action\">{{\n toastValue.action!.title | translate: toastValue.translationParams\n }}</a>\n </p>\n }\n </div>\n @if (manualClose) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost mt-n2 me-n2\"\n [attr.aria-label]=\"closeAriaLabel() | translate\"\n (click)=\"close()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [".si-toast-timer-bar,.si-toast.si-toast-auto-close:before{position:absolute;inset-block-end:0;inset-inline-start:0;block-size:2px}:host{display:block}.si-toast{block-size:auto;position:relative;display:flex;align-items:flex-start;color:var(--element-text-primary);background:var(--element-base-3);border-radius:var(--element-radius-2);padding-inline:12px 8px;padding-block:8px;margin-block-end:20px;font-size:1rem;pointer-events:all;overflow:hidden;min-inline-size:250px;max-inline-size:calc(100vw - 40px)}@media(min-width:768px){.si-toast{max-inline-size:400px}}.si-toast.si-toast-auto-close{padding-block-end:10px}.si-toast.si-toast-auto-close:before{content:\"\";background:var(--element-ui-4);inset-inline-end:0}.bar{inset-block-start:0;inset-inline-start:0;position:absolute;inline-size:4px;block-size:100%;background:currentColor}@keyframes si-toast-auto-close-animation{0%{inline-size:100%}to{inline-size:0}}.si-toast-timer-bar{animation:si-toast-auto-close-animation var(--toast-timer-duration, 4s) linear forwards;animation-play-state:var(--play-state, running);background-color:var(--element-ui-0)}.toast-content{flex:1;overflow:hidden;white-space:nowrap}.toast-content p{margin-block:0;line-height:1.125rem;white-space:pre-line;overflow-wrap:break-word;word-wrap:break-word}.toast-content .toast-title{line-height:1.25rem}\n"], dependencies: [{ kind: "ngmodule", type: SiLinkModule }, { kind: "directive", type: i1.SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusIconComponent, selector: "si-status-icon", inputs: ["status"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
54
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiToastNotificationComponent, isStandalone: true, selector: "si-toast-notification", inputs: { toast: { classPropertyName: "toast", publicName: "toast", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { paused: "paused", resumed: "resumed" }, host: { listeners: { "mouseenter": "onMouseEnter()", "mouseleave": "onMouseLeave()" } }, ngImport: i0, template: "@let toastValue = toast();\n@let autoClose = !toastValue.disableAutoClose;\n@let manualClose = !toastValue.disableManualClose;\n<div class=\"si-toast elevation-2\" [class.si-toast-auto-close]=\"autoClose\">\n @if (autoClose) {\n <div\n class=\"si-toast-timer-bar\"\n [style.--play-state]=\"animationMode()\"\n [style.--toast-timer-duration.s]=\"toastTimeoutInSeconds()\"\n ></div>\n }\n <div [class]=\"`bar ${statusColor()}`\"></div>\n <si-status-icon class=\"icon\" [status]=\"status()\" />\n\n <div class=\"toast-content px-4\">\n <p class=\"toast-title\"\n ><b>{{ toastValue.title | translate: toastValue.translationParams }}</b></p\n >\n @if (toastValue.message) {\n <p class=\"mt-4\">{{ toastValue.message | translate: toastValue.translationParams }}</p>\n }\n @if (toastValue.action) {\n <p [class.mt-3]=\"toastValue.message\" [class.mt-4]=\"!toastValue.message\">\n <a [siLink]=\"toastValue.action\">{{\n toastValue.action!.title | translate: toastValue.translationParams\n }}</a>\n </p>\n }\n </div>\n @if (manualClose) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost mt-n2 me-n2\"\n [attr.aria-label]=\"closeAriaLabel() | translate\"\n (click)=\"close()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [".si-toast-timer-bar,.si-toast.si-toast-auto-close:before{position:absolute;inset-block-end:0;inset-inline-start:0;block-size:2px}:host{display:block}.si-toast{block-size:auto;position:relative;display:flex;align-items:flex-start;color:var(--element-text-primary);background:var(--element-base-3);border-radius:var(--element-radius-2);padding-inline:12px 8px;padding-block:8px;margin-block-end:20px;font-size:1rem;pointer-events:all;overflow:hidden;min-inline-size:250px;max-inline-size:calc(100vi - 40px)}@media(min-width:768px){.si-toast{max-inline-size:400px}}.si-toast.si-toast-auto-close{padding-block-end:10px}.si-toast.si-toast-auto-close:before{content:\"\";background:var(--element-ui-4);inset-inline-end:0}.bar{inset-block-start:0;inset-inline-start:0;position:absolute;inline-size:4px;block-size:100%;background:currentColor}@keyframes si-toast-auto-close-animation{0%{inline-size:100%}to{inline-size:0}}.si-toast-timer-bar{animation:si-toast-auto-close-animation var(--toast-timer-duration, 4s) linear forwards;animation-play-state:var(--play-state, running);background-color:var(--element-ui-0)}.toast-content{flex:1;overflow:hidden;white-space:nowrap}.toast-content p{margin-block:0;line-height:1.125rem;white-space:pre-line;overflow-wrap:break-word;word-wrap:break-word}.toast-content .toast-title{line-height:1.25rem}\n"], dependencies: [{ kind: "ngmodule", type: SiLinkModule }, { kind: "directive", type: i1.SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiStatusIconComponent, selector: "si-status-icon", inputs: ["status"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }] });
55
55
  }
56
56
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiToastNotificationComponent, decorators: [{
57
57
  type: Component,
58
- args: [{ selector: 'si-toast-notification', imports: [SiLinkModule, SiIconComponent, SiStatusIconComponent, SiTranslatePipe], template: "@let toastValue = toast();\n@let autoClose = !toastValue.disableAutoClose;\n@let manualClose = !toastValue.disableManualClose;\n<div class=\"si-toast elevation-2\" [class.si-toast-auto-close]=\"autoClose\">\n @if (autoClose) {\n <div\n class=\"si-toast-timer-bar\"\n [style.--play-state]=\"animationMode()\"\n [style.--toast-timer-duration.s]=\"toastTimeoutInSeconds()\"\n ></div>\n }\n <div [class]=\"`bar ${statusColor()}`\"></div>\n <si-status-icon class=\"icon\" [status]=\"status()\" />\n\n <div class=\"toast-content px-4\">\n <p class=\"toast-title\"\n ><b>{{ toastValue.title | translate: toastValue.translationParams }}</b></p\n >\n @if (toastValue.message) {\n <p class=\"mt-4\">{{ toastValue.message | translate: toastValue.translationParams }}</p>\n }\n @if (toastValue.action) {\n <p [class.mt-3]=\"toastValue.message\" [class.mt-4]=\"!toastValue.message\">\n <a [siLink]=\"toastValue.action\">{{\n toastValue.action!.title | translate: toastValue.translationParams\n }}</a>\n </p>\n }\n </div>\n @if (manualClose) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost mt-n2 me-n2\"\n [attr.aria-label]=\"closeAriaLabel() | translate\"\n (click)=\"close()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [".si-toast-timer-bar,.si-toast.si-toast-auto-close:before{position:absolute;inset-block-end:0;inset-inline-start:0;block-size:2px}:host{display:block}.si-toast{block-size:auto;position:relative;display:flex;align-items:flex-start;color:var(--element-text-primary);background:var(--element-base-3);border-radius:var(--element-radius-2);padding-inline:12px 8px;padding-block:8px;margin-block-end:20px;font-size:1rem;pointer-events:all;overflow:hidden;min-inline-size:250px;max-inline-size:calc(100vw - 40px)}@media(min-width:768px){.si-toast{max-inline-size:400px}}.si-toast.si-toast-auto-close{padding-block-end:10px}.si-toast.si-toast-auto-close:before{content:\"\";background:var(--element-ui-4);inset-inline-end:0}.bar{inset-block-start:0;inset-inline-start:0;position:absolute;inline-size:4px;block-size:100%;background:currentColor}@keyframes si-toast-auto-close-animation{0%{inline-size:100%}to{inline-size:0}}.si-toast-timer-bar{animation:si-toast-auto-close-animation var(--toast-timer-duration, 4s) linear forwards;animation-play-state:var(--play-state, running);background-color:var(--element-ui-0)}.toast-content{flex:1;overflow:hidden;white-space:nowrap}.toast-content p{margin-block:0;line-height:1.125rem;white-space:pre-line;overflow-wrap:break-word;word-wrap:break-word}.toast-content .toast-title{line-height:1.25rem}\n"] }]
58
+ args: [{ selector: 'si-toast-notification', imports: [SiLinkModule, SiIconComponent, SiStatusIconComponent, SiTranslatePipe], template: "@let toastValue = toast();\n@let autoClose = !toastValue.disableAutoClose;\n@let manualClose = !toastValue.disableManualClose;\n<div class=\"si-toast elevation-2\" [class.si-toast-auto-close]=\"autoClose\">\n @if (autoClose) {\n <div\n class=\"si-toast-timer-bar\"\n [style.--play-state]=\"animationMode()\"\n [style.--toast-timer-duration.s]=\"toastTimeoutInSeconds()\"\n ></div>\n }\n <div [class]=\"`bar ${statusColor()}`\"></div>\n <si-status-icon class=\"icon\" [status]=\"status()\" />\n\n <div class=\"toast-content px-4\">\n <p class=\"toast-title\"\n ><b>{{ toastValue.title | translate: toastValue.translationParams }}</b></p\n >\n @if (toastValue.message) {\n <p class=\"mt-4\">{{ toastValue.message | translate: toastValue.translationParams }}</p>\n }\n @if (toastValue.action) {\n <p [class.mt-3]=\"toastValue.message\" [class.mt-4]=\"!toastValue.message\">\n <a [siLink]=\"toastValue.action\">{{\n toastValue.action!.title | translate: toastValue.translationParams\n }}</a>\n </p>\n }\n </div>\n @if (manualClose) {\n <button\n type=\"button\"\n class=\"btn btn-icon btn-tertiary-ghost mt-n2 me-n2\"\n [attr.aria-label]=\"closeAriaLabel() | translate\"\n (click)=\"close()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n }\n</div>\n", styles: [".si-toast-timer-bar,.si-toast.si-toast-auto-close:before{position:absolute;inset-block-end:0;inset-inline-start:0;block-size:2px}:host{display:block}.si-toast{block-size:auto;position:relative;display:flex;align-items:flex-start;color:var(--element-text-primary);background:var(--element-base-3);border-radius:var(--element-radius-2);padding-inline:12px 8px;padding-block:8px;margin-block-end:20px;font-size:1rem;pointer-events:all;overflow:hidden;min-inline-size:250px;max-inline-size:calc(100vi - 40px)}@media(min-width:768px){.si-toast{max-inline-size:400px}}.si-toast.si-toast-auto-close{padding-block-end:10px}.si-toast.si-toast-auto-close:before{content:\"\";background:var(--element-ui-4);inset-inline-end:0}.bar{inset-block-start:0;inset-inline-start:0;position:absolute;inline-size:4px;block-size:100%;background:currentColor}@keyframes si-toast-auto-close-animation{0%{inline-size:100%}to{inline-size:0}}.si-toast-timer-bar{animation:si-toast-auto-close-animation var(--toast-timer-duration, 4s) linear forwards;animation-play-state:var(--play-state, running);background-color:var(--element-ui-0)}.toast-content{flex:1;overflow:hidden;white-space:nowrap}.toast-content p{margin-block:0;line-height:1.125rem;white-space:pre-line;overflow-wrap:break-word;word-wrap:break-word}.toast-content .toast-title{line-height:1.25rem}\n"] }]
59
59
  }], propDecorators: { toast: [{ type: i0.Input, args: [{ isSignal: true, alias: "toast", required: true }] }], paused: [{ type: i0.Output, args: ["paused"] }], resumed: [{ type: i0.Output, args: ["resumed"] }], onMouseEnter: [{
60
60
  type: HostListener,
61
61
  args: ['mouseenter']
@@ -122,13 +122,13 @@ class SiTourComponent {
122
122
  setTimeout(() => this.arrowPos.set(calculateOverlayArrowPosition(update.change, this.elementRef, update.anchor)));
123
123
  }
124
124
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
125
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTourComponent, isStandalone: true, selector: "si-tour", host: { listeners: { "window:keydown": "keyListener($event)" }, properties: { "attr.data-step-id": "step()?.step?.id" } }, viewQueries: [{ propertyName: "focusTrap", first: true, predicate: ["focusTrap"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vw;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
125
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiTourComponent, isStandalone: true, selector: "si-tour", host: { listeners: { "window:keydown": "keyListener($event)" }, properties: { "attr.data-step-id": "step()?.step?.id" } }, viewQueries: [{ propertyName: "focusTrap", first: true, predicate: ["focusTrap"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vi;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
126
126
  }
127
127
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiTourComponent, decorators: [{
128
128
  type: Component,
129
129
  args: [{ selector: 'si-tour', imports: [A11yModule, SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, host: {
130
130
  '[attr.data-step-id]': 'step()?.step?.id'
131
- }, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vw;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"] }]
131
+ }, template: "<div class=\"backdrop\"></div>\n<div\n #focusTrap=\"cdkTrapFocus\"\n role=\"dialog\"\n aria-labelledby=\"__si-tour-step-title\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n [class]=\"['tour-content', 'popover', 'position-relative', positionClass()]\"\n [class.show]=\"show()\"\n>\n @if (arrowPos()) {\n <div\n class=\"popover-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n }\n @if (step()) {\n @let tourStep = step()!;\n <div class=\"d-flex\">\n <div class=\"p-6 flex-fill\">\n <div class=\"pb-2 si-body text-secondary\">\n {{ progressText | translate: { step: tourStep.stepNumber, total: tourStep.totalSteps } }}\n </div>\n <div id=\"__si-tour-step-title\" class=\"si-h4 mb-0\">\n {{ tourStep.step.title | translate }}\n </div>\n </div>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost mt-4 me-5\"\n [attr.aria-label]=\"ariaLabelClose | translate\"\n (click)=\"action('cancel')\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n <div class=\"step-text si-body px-6 pb-8\">\n {{ tourStep.step.text | translate }}\n </div>\n <div class=\"d-flex justify-content-end align-items-center p-6 gap-6\">\n @if (tourStep.stepNumber !== 1) {\n <button\n type=\"button\"\n class=\"btn btn-secondary\"\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action('back')\"\n >\n {{ backText | translate }}\n </button>\n } @else {\n <button type=\"button\" class=\"btn btn-tertiary\" (click)=\"action('cancel')\">\n {{ skipText | translate }}\n </button>\n }\n <button\n type=\"button\"\n class=\"btn btn-primary\"\n cdkFocusInitial\n [disabled]=\"tourToken.blocked()\"\n (click)=\"action(tourStep.stepNumber !== tourStep.totalSteps ? 'next' : 'complete')\"\n >\n @if (tourStep.stepNumber !== tourStep.totalSteps) {\n {{ nextText | translate }}\n } @else {\n {{ doneText | translate }}\n }\n </button>\n </div>\n }\n</div>\n", styles: [".tour-content{--popover-arrow-width: 24px;--popover-arrow-height: 12px;--popover-bg-color: var(--element-base-1);max-inline-size:400px;inline-size:100vi;opacity:0}.tour-content.show{opacity:1}.backdrop{position:fixed;inset:-200vmax}::ng-deep .cdk-overlay-connected-position-bounding-box:has(si-tour),::ng-deep .cdk-global-overlay-wrapper:has(si-tour){z-index:2000}\n"] }]
132
132
  }], ctorParameters: () => [], propDecorators: { focusTrap: [{ type: i0.ViewChild, args: ['focusTrap', { isSignal: true }] }], keyListener: [{
133
133
  type: HostListener,
134
134
  args: ['window:keydown', ['$event']]