@siemens/element-ng 49.5.0 → 49.7.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 (63) hide show
  1. package/fesm2022/siemens-element-ng-about.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-application-header.mjs +5 -5
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-avatar.mjs +2 -2
  6. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  8. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-circle-status.mjs +2 -2
  10. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-color-picker.mjs +2 -2
  12. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-dashboard.mjs +28 -10
  14. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-date-range-filter.mjs +16 -4
  16. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-datepicker.mjs +13 -9
  18. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +2 -2
  20. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-filter-bar.mjs +4 -4
  22. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-header-dropdown.mjs +3 -3
  24. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-loading-spinner.mjs +19 -11
  26. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-modal.mjs +25 -26
  28. package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +324 -354
  30. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +4 -4
  32. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-pagination.mjs +5 -2
  34. package/fesm2022/siemens-element-ng-pagination.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-pills-input.mjs +2 -2
  36. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-side-panel.mjs +8 -5
  38. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-status-bar.mjs +26 -11
  40. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
  42. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-tabs.mjs +10 -10
  44. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-toast-notification.mjs +48 -57
  46. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  48. package/fesm2022/siemens-element-ng-wizard.mjs +88 -53
  49. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  50. package/package.json +4 -4
  51. package/schematics/migrations/data/class-member-replacement.js +5 -0
  52. package/schematics/migrations/data/migration-test-data.js +5 -0
  53. package/schematics/migrations/utilities/class-member-replacement.migration.js +29 -1
  54. package/template-i18n.json +1 -0
  55. package/types/siemens-element-ng-dashboard.d.ts +4 -1
  56. package/types/siemens-element-ng-date-range-filter.d.ts +10 -1
  57. package/types/siemens-element-ng-loading-spinner.d.ts +4 -2
  58. package/types/siemens-element-ng-navbar-vertical-next.d.ts +163 -171
  59. package/types/siemens-element-ng-side-panel.d.ts +2 -0
  60. package/types/siemens-element-ng-status-bar.d.ts +8 -5
  61. package/types/siemens-element-ng-toast-notification.d.ts +4 -8
  62. package/types/siemens-element-ng-translate.d.ts +1 -0
  63. package/types/siemens-element-ng-wizard.d.ts +23 -5
@@ -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 HostListener,\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 }\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 @HostListener('click') 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, HostListener, 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 }\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 @HostListener('keydown.escape') 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 {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n OnInit\n} 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 }\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 @HostListener('click') 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 booleanAttribute,\n Component,\n computed,\n Directive,\n HostBinding,\n inject,\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 }\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 // Is required to prevent the navbar from running the padding animation on creation.\n @HostBinding('class.ready') protected readonly ready = true;\n\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n private breakpointObserver = inject(BreakpointObserver);\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 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 });\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-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 p-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 EmbeddedViewRef,\n HostListener,\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 }\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 @HostListener('click') 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, HostListener, 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 }\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 @HostListener('keydown.escape') 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 {\n ChangeDetectionStrategy,\n Component,\n computed,\n HostListener,\n inject,\n input,\n OnInit\n} 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 }\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 @HostListener('click') 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 booleanAttribute,\n Component,\n computed,\n Directive,\n HostBinding,\n inject,\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 }\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 // Is required to prevent the navbar from running the padding animation on creation.\n @HostBinding('class.ready') protected readonly ready = true;\n\n private uiStateService = inject(SI_UI_STATE_SERVICE, { optional: true });\n private breakpointObserver = inject(BreakpointObserver);\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 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 });\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-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 p-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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"}
@@ -104,15 +104,18 @@ class SiPaginationComponent {
104
104
  this.setPage(event, this.currentPage() + delta);
105
105
  }
106
106
  setPage(event, page) {
107
+ if (page === this.currentPage()) {
108
+ return;
109
+ }
107
110
  event.currentTarget.blur();
108
111
  this.currentPage.set(page);
109
112
  }
110
113
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPaginationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
111
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiPaginationComponent, isStandalone: true, selector: "si-pagination", inputs: { totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, totalRowCount: { classPropertyName: "totalRowCount", publicName: "totalRowCount", isSignal: true, isRequired: false, transformFunction: null }, backButtonText: { classPropertyName: "backButtonText", publicName: "backButtonText", isSignal: true, isRequired: false, transformFunction: null }, forwardButtonText: { classPropertyName: "forwardButtonText", publicName: "forwardButtonText", isSignal: true, isRequired: false, transformFunction: null }, navAriaLabel: { classPropertyName: "navAriaLabel", publicName: "navAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange" }, ngImport: i0, template: "<nav role=\"navigation\" [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [class.active]=\"page.page === currentPage()\"\n [disabled]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
114
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiPaginationComponent, isStandalone: true, selector: "si-pagination", inputs: { totalPages: { classPropertyName: "totalPages", publicName: "totalPages", isSignal: true, isRequired: false, transformFunction: null }, currentPage: { classPropertyName: "currentPage", publicName: "currentPage", isSignal: true, isRequired: false, transformFunction: null }, pageSize: { classPropertyName: "pageSize", publicName: "pageSize", isSignal: true, isRequired: false, transformFunction: null }, totalRowCount: { classPropertyName: "totalRowCount", publicName: "totalRowCount", isSignal: true, isRequired: false, transformFunction: null }, backButtonText: { classPropertyName: "backButtonText", publicName: "backButtonText", isSignal: true, isRequired: false, transformFunction: null }, forwardButtonText: { classPropertyName: "forwardButtonText", publicName: "forwardButtonText", isSignal: true, isRequired: false, transformFunction: null }, navAriaLabel: { classPropertyName: "navAriaLabel", publicName: "navAriaLabel", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { currentPage: "currentPageChange" }, ngImport: i0, template: "<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
112
115
  }
113
116
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiPaginationComponent, decorators: [{
114
117
  type: Component,
115
- args: [{ selector: 'si-pagination', imports: [SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav role=\"navigation\" [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [class.active]=\"page.page === currentPage()\"\n [disabled]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n" }]
118
+ args: [{ selector: 'si-pagination', imports: [SiIconComponent, SiTranslatePipe], changeDetection: ChangeDetectionStrategy.OnPush, template: "<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n" }]
116
119
  }], propDecorators: { totalPages: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalPages", required: false }] }], currentPage: [{ type: i0.Input, args: [{ isSignal: true, alias: "currentPage", required: false }] }, { type: i0.Output, args: ["currentPageChange"] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], totalRowCount: [{ type: i0.Input, args: [{ isSignal: true, alias: "totalRowCount", required: false }] }], backButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "backButtonText", required: false }] }], forwardButtonText: [{ type: i0.Input, args: [{ isSignal: true, alias: "forwardButtonText", required: false }] }], navAriaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "navAriaLabel", required: false }] }] } });
117
120
 
118
121
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-pagination.mjs","sources":["../../../../projects/element-ng/pagination/si-pagination.component.ts","../../../../projects/element-ng/pagination/si-pagination.component.html","../../../../projects/element-ng/pagination/si-pagination.module.ts","../../../../projects/element-ng/pagination/index.ts","../../../../projects/element-ng/pagination/siemens-element-ng-pagination.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { elementLeft3, elementRight3 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-pagination',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiPaginationComponent {\n private static maxItems = 7;\n\n /**\n * The total number of pages.\n * Alternatively use `itemsPerPage` and `totalItems`\n */\n readonly totalPages = input<number>();\n /**\n * The current active page, counting starts from 1\n *\n * @defaultValue 1\n */\n readonly currentPage = model<number>(1);\n /**\n * The number of items per page.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly pageSize = input<number>();\n /**\n * The total number of items.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly totalRowCount = input<number>();\n\n /**\n * The text of the back button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_PAGINATION.BACK:Back`));\n\n /**\n * The text of the forward button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)\n * ```\n */\n readonly forwardButtonText = input(t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`));\n /**\n * When multiple paginations are used on the same page each pagination needs a distinct aria label.\n * Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)\n * ```\n */\n readonly navAriaLabel = input(t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`));\n\n private readonly calculatedTotalPages = computed(\n () => this.totalPages() ?? Math.ceil((this.totalRowCount() ?? 0) / (this.pageSize() ?? 1))\n );\n\n protected readonly prevDisabled = computed(() => this.currentPage() === 1);\n\n protected readonly nextDisabled = computed(\n () => this.currentPage() === this.calculatedTotalPages()\n );\n\n protected readonly pageButtons = computed(() => {\n const pageButtons: { page: number; sep: boolean }[] = [];\n const totalPages = this.calculatedTotalPages();\n const currentPage = this.currentPage();\n\n if (totalPages <= SiPaginationComponent.maxItems) {\n for (let i = 0; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else if (currentPage < SiPaginationComponent.maxItems - 2) {\n // separator only on the right (in LTR)\n for (let i = 0; i < SiPaginationComponent.maxItems - 2; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n } else if (currentPage >= totalPages - 3) {\n // separator only on the left (in LTR)\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = totalPages - SiPaginationComponent.maxItems + 2; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else {\n // separator on both sides\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = -1; i <= 1; i++) {\n pageButtons.push({ page: currentPage + i, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n }\n\n return pageButtons;\n });\n\n protected readonly icons = addIcons({ elementLeft3, elementRight3 });\n\n protected direction(event: Event, delta: number): void {\n this.setPage(event, this.currentPage() + delta);\n }\n\n protected setPage(event: Event, page: number): void {\n (event.currentTarget as HTMLElement).blur();\n this.currentPage.set(page);\n }\n}\n","<nav role=\"navigation\" [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [class.active]=\"page.page === currentPage()\"\n [disabled]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPaginationComponent } from './si-pagination.component';\n\n@NgModule({\n imports: [SiPaginationComponent],\n exports: [SiPaginationComponent]\n})\nexport class SiPaginationModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pagination.component';\nexport * from './si-pagination.module';\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-pagination.mjs","sources":["../../../../projects/element-ng/pagination/si-pagination.component.ts","../../../../projects/element-ng/pagination/si-pagination.component.html","../../../../projects/element-ng/pagination/si-pagination.module.ts","../../../../projects/element-ng/pagination/index.ts","../../../../projects/element-ng/pagination/siemens-element-ng-pagination.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, computed, input, model } from '@angular/core';\nimport { elementLeft3, elementRight3 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-pagination',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-pagination.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiPaginationComponent {\n private static maxItems = 7;\n\n /**\n * The total number of pages.\n * Alternatively use `itemsPerPage` and `totalItems`\n */\n readonly totalPages = input<number>();\n /**\n * The current active page, counting starts from 1\n *\n * @defaultValue 1\n */\n readonly currentPage = model<number>(1);\n /**\n * The number of items per page.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly pageSize = input<number>();\n /**\n * The total number of items.\n * Used to calculate the total number of page if `totalPages` is not available\n */\n readonly totalRowCount = input<number>();\n\n /**\n * The text of the back button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.BACK:Back`)\n * ```\n */\n readonly backButtonText = input(t(() => $localize`:@@SI_PAGINATION.BACK:Back`));\n\n /**\n * The text of the forward button for pagination. Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`)\n * ```\n */\n readonly forwardButtonText = input(t(() => $localize`:@@SI_PAGINATION.FORWARD:Forward`));\n /**\n * When multiple paginations are used on the same page each pagination needs a distinct aria label.\n * Required for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`)\n * ```\n */\n readonly navAriaLabel = input(t(() => $localize`:@@SI_PAGINATION.NAV_LABEL:Pagination`));\n\n private readonly calculatedTotalPages = computed(\n () => this.totalPages() ?? Math.ceil((this.totalRowCount() ?? 0) / (this.pageSize() ?? 1))\n );\n\n protected readonly prevDisabled = computed(() => this.currentPage() === 1);\n\n protected readonly nextDisabled = computed(\n () => this.currentPage() === this.calculatedTotalPages()\n );\n\n protected readonly pageButtons = computed(() => {\n const pageButtons: { page: number; sep: boolean }[] = [];\n const totalPages = this.calculatedTotalPages();\n const currentPage = this.currentPage();\n\n if (totalPages <= SiPaginationComponent.maxItems) {\n for (let i = 0; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else if (currentPage < SiPaginationComponent.maxItems - 2) {\n // separator only on the right (in LTR)\n for (let i = 0; i < SiPaginationComponent.maxItems - 2; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n } else if (currentPage >= totalPages - 3) {\n // separator only on the left (in LTR)\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = totalPages - SiPaginationComponent.maxItems + 2; i < totalPages; i++) {\n pageButtons.push({ page: i + 1, sep: false });\n }\n } else {\n // separator on both sides\n pageButtons.push({ page: 1, sep: false });\n pageButtons.push({ page: 0, sep: true });\n for (let i = -1; i <= 1; i++) {\n pageButtons.push({ page: currentPage + i, sep: false });\n }\n pageButtons.push({ page: 0, sep: true });\n pageButtons.push({ page: totalPages, sep: false });\n }\n\n return pageButtons;\n });\n\n protected readonly icons = addIcons({ elementLeft3, elementRight3 });\n\n protected direction(event: Event, delta: number): void {\n this.setPage(event, this.currentPage() + delta);\n }\n\n protected setPage(event: Event, page: number): void {\n if (page === this.currentPage()) {\n return;\n }\n (event.currentTarget as HTMLElement).blur();\n this.currentPage.set(page);\n }\n}\n","<nav [attr.aria-label]=\"navAriaLabel() | translate\">\n <ul class=\"pagination\">\n <li class=\"me-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"prevDisabled()\"\n [disabled]=\"prevDisabled()\"\n [attr.aria-label]=\"backButtonText() | translate\"\n (click)=\"direction($event, -1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementLeft3\" />\n </button>\n </li>\n @for (page of pageButtons(); track $index) {\n <li>\n @if (!page.sep) {\n <button\n type=\"button\"\n class=\"page-item\"\n [attr.aria-current]=\"page.page === currentPage() ? 'page' : ''\"\n [attr.aria-disabled]=\"page.page === currentPage() ? 'true' : null\"\n [class.active]=\"page.page === currentPage()\"\n (click)=\"setPage($event, page.page)\"\n >\n {{ page.page }}\n </button>\n } @else {\n <span class=\"page-item separator mx-2\">&hellip;</span>\n }\n </li>\n }\n <li class=\"ms-5\">\n <button\n type=\"button\"\n class=\"page-item mx-4\"\n [class.disabled]=\"nextDisabled()\"\n [disabled]=\"nextDisabled()\"\n [attr.aria-label]=\"forwardButtonText() | translate\"\n (click)=\"direction($event, 1)\"\n >\n <si-icon class=\"icon flip-rtl\" [icon]=\"icons.elementRight3\" />\n </button>\n </li>\n </ul>\n</nav>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPaginationComponent } from './si-pagination.component';\n\n@NgModule({\n imports: [SiPaginationComponent],\n exports: [SiPaginationComponent]\n})\nexport class SiPaginationModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pagination.component';\nexport * from './si-pagination.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -16,14 +16,14 @@ class SiInputPillComponent {
16
16
  hideClose = input(false, ...(ngDevMode ? [{ debugName: "hideClose" }] : []));
17
17
  icons = addIcons({ elementCancel });
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiInputPillComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiInputPillComponent, isStandalone: true, selector: "si-input-pill", inputs: { hideClose: { classPropertyName: "hideClose", publicName: "hideClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deletePill: "deletePill" }, host: { properties: { "class.pe-4": "hideClose()" }, classAttribute: "pill pe-0" }, ngImport: i0, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n", dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiInputPillComponent, isStandalone: true, selector: "si-input-pill", inputs: { hideClose: { classPropertyName: "hideClose", publicName: "hideClose", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { deletePill: "deletePill" }, host: { properties: { "class.pe-4": "hideClose()" }, classAttribute: "pill pe-0" }, ngImport: i0, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n", styles: [".btn{cursor:pointer}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }] });
20
20
  }
21
21
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiInputPillComponent, decorators: [{
22
22
  type: Component,
23
23
  args: [{ selector: 'si-input-pill', imports: [SiIconComponent], host: {
24
24
  class: 'pill pe-0',
25
25
  '[class.pe-4]': 'hideClose()'
26
- }, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n" }]
26
+ }, template: "<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n", styles: [".btn{cursor:pointer}\n"] }]
27
27
  }], propDecorators: { deletePill: [{ type: i0.Output, args: ["deletePill"] }], hideClose: [{ type: i0.Input, args: [{ isSignal: true, alias: "hideClose", required: false }] }] } });
28
28
 
29
29
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-pills-input.mjs","sources":["../../../../projects/element-ng/pills-input/si-input-pill.component.ts","../../../../projects/element-ng/pills-input/si-input-pill.component.html","../../../../projects/element-ng/pills-input/si-pills-input-value-handler.ts","../../../../projects/element-ng/pills-input/si-pills-input.component.ts","../../../../projects/element-ng/pills-input/si-pills-input.component.html","../../../../projects/element-ng/pills-input/si-pills-input-pattern-base.ts","../../../../projects/element-ng/pills-input/si-pills-input-csv.directive.ts","../../../../projects/element-ng/pills-input/si-pills-input-email.directive.ts","../../../../projects/element-ng/pills-input/si-pills-input.module.ts","../../../../projects/element-ng/pills-input/index.ts","../../../../projects/element-ng/pills-input/siemens-element-ng-pills-input.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, output } from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\n@Component({\n selector: 'si-input-pill',\n imports: [SiIconComponent],\n templateUrl: './si-input-pill.component.html',\n host: {\n class: 'pill pe-0',\n '[class.pe-4]': 'hideClose()'\n }\n})\nexport class SiInputPillComponent {\n readonly deletePill = output<void>();\n\n /** @defaultValue false */\n readonly hideClose = input(false);\n\n protected readonly icons = addIcons({ elementCancel });\n}\n","<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nexport interface SiPillsInputValueParseResult {\n newValue: string;\n newPills: string[];\n}\n\nexport type SiPillsInputValueHandlerTrigger = 'input' | 'keydown.enter' | 'blur';\n\n@Directive()\nexport abstract class SiPillsInputValueHandlerDirective {\n /** @internal */\n abstract handle(\n value: string,\n trigger: SiPillsInputValueHandlerTrigger\n ): SiPillsInputValueParseResult | undefined;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n OnInit,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiInputPillComponent } from './si-input-pill.component';\nimport {\n SiPillsInputValueHandlerDirective,\n SiPillsInputValueHandlerTrigger\n} from './si-pills-input-value-handler';\n\n@Component({\n selector: 'si-pills-input',\n imports: [SiInputPillComponent, SiTranslatePipe],\n templateUrl: './si-pills-input.component.html',\n styleUrl: './si-pills-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiPillsInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiPillsInputComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'form-control',\n role: 'listbox',\n 'aria-orientation': 'horizontal',\n '[class.disabled]': 'disabled()',\n '[attr.aria-disabled]': 'disabled()',\n '[class.readonly]': 'readonly()',\n '[attr.aria-readonly]': 'readonly()',\n // using attr so that tabindex is removed if not defined\n '[attr.tabindex]': 'tabindex()',\n '[attr.aria-activedescendant]': 'activeDescendant()',\n '[attr.aria-labelledby]': 'labelledby()',\n '[attr.aria-describedby]': 'errormessageId()'\n }\n})\nexport class SiPillsInputComponent implements OnInit, ControlValueAccessor, SiFormItemControl {\n private static idCounter = 0;\n\n /**\n * The identifier of the pills-input. Will be generated if not provided.\n *\n * @defaultValue\n * ```\n * `__si-pills-input-${SiPillsInputComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-pills-input-${SiPillsInputComponent.idCounter++}`);\n\n /**\n * The aria-label for the inner input where users enter new items.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`)\n * ```\n */\n readonly inputElementAriaLabel = input(\n t(() => $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`)\n );\n\n /**\n * Whether the pills-input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Whether the pills-input is readonly\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /** The placeholder to be shown if no value is currently present. */\n readonly placeholder = input<TranslatableString>();\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the pills-input.\n * Use this to reference the element containing the error message(s) for the pills-input.\n * It will be picked by the {@link SiFormItemComponent} if the pills-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected inputValue = '';\n protected onTouched: () => void = () => {};\n protected onChange: (val: any) => void = () => {};\n\n protected readonly pills = signal<string[]>([]);\n protected readonly activePillIndex = signal<number | undefined>(undefined);\n protected readonly inputId = computed(() => `${this.id()}-input`);\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly activeDescendant = computed(() => {\n const activePillIndex = this.activePillIndex();\n return activePillIndex !== undefined ? `${this.id()}-pill-${activePillIndex}` : null;\n });\n\n protected readonly tabindex = computed(() =>\n this.disabled() ? undefined : this.readonly() ? 0 : -1\n );\n private readonly inputElement = viewChild<ElementRef<HTMLInputElement>>('inputElement');\n private readonly disabledNgControl = signal(false);\n private siPillsInputValueHandlerDirective = inject(SiPillsInputValueHandlerDirective, {\n optional: true\n });\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnInit(): void {\n this.siPillsInputValueHandlerDirective ??= {\n handle: (value, trigger) => {\n if (trigger !== 'input') {\n return {\n newPills: [value],\n newValue: ''\n };\n }\n return undefined;\n }\n };\n }\n\n protected input(): void {\n this.inputValue = this.inputElement()!.nativeElement.value;\n this.rebuildValue(this.inputValue, 'input');\n }\n\n @HostListener('click')\n protected click(): void {\n this.inputElement()?.nativeElement.focus();\n }\n\n protected blur(): void {\n this.rebuildValue(this.inputValue, 'blur');\n this.activePillIndex.set(undefined);\n this.onTouched();\n }\n\n protected keydownEnter(event: Event): void {\n this.rebuildValue(this.inputValue, 'keydown.enter');\n event.preventDefault();\n }\n\n protected keydownBackspace(event: Event): void {\n const count = this.pills().length;\n if (!this.inputValue && count) {\n const lastChipValue = this.pills().at(-1)!;\n this.remove(count - 1, false);\n this.inputValue = lastChipValue;\n event.preventDefault();\n }\n }\n\n protected remove(index: number, focus = true): void {\n this.pills.update(pills => pills.filter((_, pillIndex) => index !== pillIndex));\n this.onTouched();\n this.onChange(this.pills());\n if (focus) {\n this.inputElement()!.nativeElement.focus();\n }\n }\n\n private rebuildValue(value: string, trigger: SiPillsInputValueHandlerTrigger): void {\n if (value) {\n const valueParseResult = this.siPillsInputValueHandlerDirective?.handle(value, trigger);\n if (valueParseResult) {\n this.pills.update(pills => [...pills, ...valueParseResult.newPills]);\n // Doesn't update when setting to empty string.\n // Not using setTimeout to avoid flickering.\n this.cdRef.detectChanges();\n this.inputValue = valueParseResult.newValue;\n this.cdRef.detectChanges();\n\n if (valueParseResult.newPills.length) {\n this.onTouched();\n this.onChange(this.pills());\n }\n }\n }\n }\n\n @HostListener('keydown.arrowLeft') protected arrowLeft(): void {\n const activePillIndex = this.activePillIndex();\n const count = this.pills().length;\n if (activePillIndex !== undefined) {\n this.activePillIndex.set(Math.max(0, activePillIndex - 1));\n } else if (!this.inputValue.length && count) {\n this.elementRef.nativeElement.focus();\n this.activePillIndex.set(count - 1);\n }\n }\n\n @HostListener('keydown.arrowRight') protected arrowRight(): void {\n const activePillIndex = this.activePillIndex();\n if (activePillIndex !== undefined) {\n this.activePillIndex.set(activePillIndex + 1);\n\n if (this.activePillIndex()! >= this.pills().length) {\n this.inputElement()?.nativeElement.focus();\n this.activePillIndex.set(undefined);\n }\n }\n }\n\n @HostListener('keydown.backspace')\n @HostListener('keydown.delete')\n protected delete(): void {\n const activePillIndex = this.activePillIndex();\n const count = this.pills().length;\n if (activePillIndex !== undefined && !this.readonly()) {\n const targetIndex = count > 1 ? Math.min(activePillIndex, count - 2) : undefined;\n this.remove(activePillIndex, targetIndex === undefined);\n this.activePillIndex.set(targetIndex);\n }\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n writeValue(value?: string[] | null): void {\n this.pills.set(value?.slice() ?? []);\n }\n}\n","<!-- aria-required-children is disabled here -->\n@for (chip of pills(); track $index) {\n <si-input-pill\n role=\"option\"\n [id]=\"id() + '-pill-' + $index\"\n [class.active]=\"$index === activePillIndex()\"\n [hideClose]=\"disabled() || readonly()\"\n (deletePill)=\"remove($index)\"\n >\n {{ chip }}\n </si-input-pill>\n}\n@if (!readonly() && !disabled()) {\n <div role=\"presentation\" class=\"flex-fill\">\n <input\n #inputElement\n class=\"focus-none\"\n [id]=\"inputId()\"\n [attr.aria-label]=\"inputElementAriaLabel() | translate\"\n [placeholder]=\"(!pills().length ? (placeholder() ?? '') : '') | translate\"\n [value]=\"inputValue\"\n (keydown.enter)=\"keydownEnter($event)\"\n (keydown.backspace)=\"keydownBackspace($event)\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { signal, Signal } from '@angular/core';\n\nimport {\n SiPillsInputValueHandlerTrigger,\n SiPillsInputValueParseResult\n} from './si-pills-input-value-handler';\n\nexport const SEPARATOR_REGEX = /\\s*[;,]\\s*/g;\n\nexport abstract class SiPillsInputPatternBase {\n /**\n * Regex to split the input value into segments.\n *\n * @defaultValue SEPARATOR_REGEX\n */\n readonly separatorRegex = signal(SEPARATOR_REGEX);\n /** Regex to validate an input string item. */\n readonly validationRegex?: Signal<RegExp | undefined>;\n\n /** @internal */\n handle(\n value: string,\n trigger: SiPillsInputValueHandlerTrigger\n ): SiPillsInputValueParseResult | undefined {\n const segments = value.split(this.separatorRegex());\n const itemRegex = this.validationRegex?.();\n if (segments.length) {\n const newValue = trigger === 'input' ? segments.pop()! : '';\n if (\n segments.every(segment => {\n return segment && (!itemRegex || segment.match(itemRegex));\n })\n ) {\n return {\n newPills: segments,\n newValue\n };\n }\n }\n\n return {\n newPills: [],\n newValue: value\n };\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, input } from '@angular/core';\n\nimport { SiPillsInputPatternBase } from './si-pills-input-pattern-base';\nimport { SiPillsInputValueHandlerDirective } from './si-pills-input-value-handler';\n\n@Directive({\n selector: '[siPillsInputCsv]',\n providers: [\n {\n provide: SiPillsInputValueHandlerDirective,\n useExisting: SiPillsInputCsvDirective\n }\n ]\n})\nexport class SiPillsInputCsvDirective extends SiPillsInputPatternBase {\n /** @defaultValue undefined */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n override readonly validationRegex = input<RegExp>(undefined, { alias: 'pillsInputCsvItemRegex' });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, signal } from '@angular/core';\n\nimport { SiPillsInputPatternBase } from './si-pills-input-pattern-base';\nimport { SiPillsInputValueHandlerDirective } from './si-pills-input-value-handler';\n\n// From Angular Email Validator\nconst EMAIL_REGEX =\n /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/g;\n\n@Directive({\n selector: '[siPillsInputEmail]',\n providers: [\n {\n provide: SiPillsInputValueHandlerDirective,\n useExisting: SiPillsInputEmailDirective\n }\n ]\n})\nexport class SiPillsInputEmailDirective extends SiPillsInputPatternBase {\n /**\n * @defaultValue signal(EMAIL_REGEX).asReadonly()\n */\n override readonly validationRegex = signal(EMAIL_REGEX).asReadonly();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPillsInputCsvDirective } from './si-pills-input-csv.directive';\nimport { SiPillsInputEmailDirective } from './si-pills-input-email.directive';\nimport { SiPillsInputComponent } from './si-pills-input.component';\n\n@NgModule({\n imports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective],\n exports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective]\n})\nexport class SiPillsInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pills-input.component';\nexport * from './si-pills-input.module';\nexport * from './si-pills-input-csv.directive';\nexport * from './si-pills-input-email.directive';\nexport * from './si-pills-input-value-handler';\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-pills-input.mjs","sources":["../../../../projects/element-ng/pills-input/si-input-pill.component.ts","../../../../projects/element-ng/pills-input/si-input-pill.component.html","../../../../projects/element-ng/pills-input/si-pills-input-value-handler.ts","../../../../projects/element-ng/pills-input/si-pills-input.component.ts","../../../../projects/element-ng/pills-input/si-pills-input.component.html","../../../../projects/element-ng/pills-input/si-pills-input-pattern-base.ts","../../../../projects/element-ng/pills-input/si-pills-input-csv.directive.ts","../../../../projects/element-ng/pills-input/si-pills-input-email.directive.ts","../../../../projects/element-ng/pills-input/si-pills-input.module.ts","../../../../projects/element-ng/pills-input/index.ts","../../../../projects/element-ng/pills-input/siemens-element-ng-pills-input.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input, output } from '@angular/core';\nimport { elementCancel } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\n@Component({\n selector: 'si-input-pill',\n imports: [SiIconComponent],\n templateUrl: './si-input-pill.component.html',\n styles: '.btn { cursor: pointer; }',\n host: {\n class: 'pill pe-0',\n '[class.pe-4]': 'hideClose()'\n }\n})\nexport class SiInputPillComponent {\n readonly deletePill = output<void>();\n\n /** @defaultValue false */\n readonly hideClose = input(false);\n\n protected readonly icons = addIcons({ elementCancel });\n}\n","<div class=\"text-truncate\">\n <ng-content />\n</div>\n@if (!hideClose()) {\n <span class=\"ms-2 btn btn-circle btn-sm btn-ghost\" aria-hidden=\"true\" (click)=\"deletePill.emit()\">\n <si-icon [icon]=\"icons.elementCancel\" />\n </span>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nexport interface SiPillsInputValueParseResult {\n newValue: string;\n newPills: string[];\n}\n\nexport type SiPillsInputValueHandlerTrigger = 'input' | 'keydown.enter' | 'blur';\n\n@Directive()\nexport abstract class SiPillsInputValueHandlerDirective {\n /** @internal */\n abstract handle(\n value: string,\n trigger: SiPillsInputValueHandlerTrigger\n ): SiPillsInputValueParseResult | undefined;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n computed,\n ElementRef,\n HostListener,\n inject,\n input,\n OnInit,\n signal,\n viewChild\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { SI_FORM_ITEM_CONTROL, SiFormItemControl } from '@siemens/element-ng/form';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiInputPillComponent } from './si-input-pill.component';\nimport {\n SiPillsInputValueHandlerDirective,\n SiPillsInputValueHandlerTrigger\n} from './si-pills-input-value-handler';\n\n@Component({\n selector: 'si-pills-input',\n imports: [SiInputPillComponent, SiTranslatePipe],\n templateUrl: './si-pills-input.component.html',\n styleUrl: './si-pills-input.component.scss',\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: SiPillsInputComponent,\n multi: true\n },\n {\n provide: SI_FORM_ITEM_CONTROL,\n useExisting: SiPillsInputComponent\n }\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'form-control',\n role: 'listbox',\n 'aria-orientation': 'horizontal',\n '[class.disabled]': 'disabled()',\n '[attr.aria-disabled]': 'disabled()',\n '[class.readonly]': 'readonly()',\n '[attr.aria-readonly]': 'readonly()',\n // using attr so that tabindex is removed if not defined\n '[attr.tabindex]': 'tabindex()',\n '[attr.aria-activedescendant]': 'activeDescendant()',\n '[attr.aria-labelledby]': 'labelledby()',\n '[attr.aria-describedby]': 'errormessageId()'\n }\n})\nexport class SiPillsInputComponent implements OnInit, ControlValueAccessor, SiFormItemControl {\n private static idCounter = 0;\n\n /**\n * The identifier of the pills-input. Will be generated if not provided.\n *\n * @defaultValue\n * ```\n * `__si-pills-input-${SiPillsInputComponent.idCounter++}`\n * ```\n */\n readonly id = input(`__si-pills-input-${SiPillsInputComponent.idCounter++}`);\n\n /**\n * The aria-label for the inner input where users enter new items.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`)\n * ```\n */\n readonly inputElementAriaLabel = input(\n t(() => $localize`:@@SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL:Create item`)\n );\n\n /**\n * Whether the pills-input is disabled.\n *\n * @defaultValue false\n */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n readonly disabledInput = input(false, { alias: 'disabled', transform: booleanAttribute });\n\n /**\n * Whether the pills-input is readonly\n *\n * @defaultValue false\n */\n readonly readonly = input(false, { transform: booleanAttribute });\n\n /** The placeholder to be shown if no value is currently present. */\n readonly placeholder = input<TranslatableString>();\n\n /**\n * @defaultValue\n * ```\n * `${this.id()}-label`\n * ```\n */\n readonly labelledby = input(`${this.id()}-label`);\n\n /**\n * This ID will be bound to the `aria-describedby` attribute of the pills-input.\n * Use this to reference the element containing the error message(s) for the pills-input.\n * It will be picked by the {@link SiFormItemComponent} if the pills-input is used inside a form item.\n *\n * @defaultValue\n * ```\n * `${this.id()}-errormessage`\n * ```\n */\n readonly errormessageId = input(`${this.id()}-errormessage`);\n\n protected inputValue = '';\n protected onTouched: () => void = () => {};\n protected onChange: (val: any) => void = () => {};\n\n protected readonly pills = signal<string[]>([]);\n protected readonly activePillIndex = signal<number | undefined>(undefined);\n protected readonly inputId = computed(() => `${this.id()}-input`);\n protected readonly disabled = computed(() => this.disabledInput() || this.disabledNgControl());\n protected readonly activeDescendant = computed(() => {\n const activePillIndex = this.activePillIndex();\n return activePillIndex !== undefined ? `${this.id()}-pill-${activePillIndex}` : null;\n });\n\n protected readonly tabindex = computed(() =>\n this.disabled() ? undefined : this.readonly() ? 0 : -1\n );\n private readonly inputElement = viewChild<ElementRef<HTMLInputElement>>('inputElement');\n private readonly disabledNgControl = signal(false);\n private siPillsInputValueHandlerDirective = inject(SiPillsInputValueHandlerDirective, {\n optional: true\n });\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n ngOnInit(): void {\n this.siPillsInputValueHandlerDirective ??= {\n handle: (value, trigger) => {\n if (trigger !== 'input') {\n return {\n newPills: [value],\n newValue: ''\n };\n }\n return undefined;\n }\n };\n }\n\n protected input(): void {\n this.inputValue = this.inputElement()!.nativeElement.value;\n this.rebuildValue(this.inputValue, 'input');\n }\n\n @HostListener('click')\n protected click(): void {\n this.inputElement()?.nativeElement.focus();\n }\n\n protected blur(): void {\n this.rebuildValue(this.inputValue, 'blur');\n this.activePillIndex.set(undefined);\n this.onTouched();\n }\n\n protected keydownEnter(event: Event): void {\n this.rebuildValue(this.inputValue, 'keydown.enter');\n event.preventDefault();\n }\n\n protected keydownBackspace(event: Event): void {\n const count = this.pills().length;\n if (!this.inputValue && count) {\n const lastChipValue = this.pills().at(-1)!;\n this.remove(count - 1, false);\n this.inputValue = lastChipValue;\n event.preventDefault();\n }\n }\n\n protected remove(index: number, focus = true): void {\n this.pills.update(pills => pills.filter((_, pillIndex) => index !== pillIndex));\n this.onTouched();\n this.onChange(this.pills());\n if (focus) {\n this.inputElement()!.nativeElement.focus();\n }\n }\n\n private rebuildValue(value: string, trigger: SiPillsInputValueHandlerTrigger): void {\n if (value) {\n const valueParseResult = this.siPillsInputValueHandlerDirective?.handle(value, trigger);\n if (valueParseResult) {\n this.pills.update(pills => [...pills, ...valueParseResult.newPills]);\n // Doesn't update when setting to empty string.\n // Not using setTimeout to avoid flickering.\n this.cdRef.detectChanges();\n this.inputValue = valueParseResult.newValue;\n this.cdRef.detectChanges();\n\n if (valueParseResult.newPills.length) {\n this.onTouched();\n this.onChange(this.pills());\n }\n }\n }\n }\n\n @HostListener('keydown.arrowLeft') protected arrowLeft(): void {\n const activePillIndex = this.activePillIndex();\n const count = this.pills().length;\n if (activePillIndex !== undefined) {\n this.activePillIndex.set(Math.max(0, activePillIndex - 1));\n } else if (!this.inputValue.length && count) {\n this.elementRef.nativeElement.focus();\n this.activePillIndex.set(count - 1);\n }\n }\n\n @HostListener('keydown.arrowRight') protected arrowRight(): void {\n const activePillIndex = this.activePillIndex();\n if (activePillIndex !== undefined) {\n this.activePillIndex.set(activePillIndex + 1);\n\n if (this.activePillIndex()! >= this.pills().length) {\n this.inputElement()?.nativeElement.focus();\n this.activePillIndex.set(undefined);\n }\n }\n }\n\n @HostListener('keydown.backspace')\n @HostListener('keydown.delete')\n protected delete(): void {\n const activePillIndex = this.activePillIndex();\n const count = this.pills().length;\n if (activePillIndex !== undefined && !this.readonly()) {\n const targetIndex = count > 1 ? Math.min(activePillIndex, count - 2) : undefined;\n this.remove(activePillIndex, targetIndex === undefined);\n this.activePillIndex.set(targetIndex);\n }\n }\n\n /** @internal */\n registerOnChange(fn: any): void {\n this.onChange = fn;\n }\n\n /** @internal */\n registerOnTouched(fn: () => void): void {\n this.onTouched = fn;\n }\n\n /** @internal */\n setDisabledState(isDisabled: boolean): void {\n this.disabledNgControl.set(isDisabled);\n }\n\n /** @internal */\n writeValue(value?: string[] | null): void {\n this.pills.set(value?.slice() ?? []);\n }\n}\n","<!-- aria-required-children is disabled here -->\n@for (chip of pills(); track $index) {\n <si-input-pill\n role=\"option\"\n [id]=\"id() + '-pill-' + $index\"\n [class.active]=\"$index === activePillIndex()\"\n [hideClose]=\"disabled() || readonly()\"\n (deletePill)=\"remove($index)\"\n >\n {{ chip }}\n </si-input-pill>\n}\n@if (!readonly() && !disabled()) {\n <div role=\"presentation\" class=\"flex-fill\">\n <input\n #inputElement\n class=\"focus-none\"\n [id]=\"inputId()\"\n [attr.aria-label]=\"inputElementAriaLabel() | translate\"\n [placeholder]=\"(!pills().length ? (placeholder() ?? '') : '') | translate\"\n [value]=\"inputValue\"\n (keydown.enter)=\"keydownEnter($event)\"\n (keydown.backspace)=\"keydownBackspace($event)\"\n (input)=\"input()\"\n (blur)=\"blur()\"\n />\n </div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { signal, Signal } from '@angular/core';\n\nimport {\n SiPillsInputValueHandlerTrigger,\n SiPillsInputValueParseResult\n} from './si-pills-input-value-handler';\n\nexport const SEPARATOR_REGEX = /\\s*[;,]\\s*/g;\n\nexport abstract class SiPillsInputPatternBase {\n /**\n * Regex to split the input value into segments.\n *\n * @defaultValue SEPARATOR_REGEX\n */\n readonly separatorRegex = signal(SEPARATOR_REGEX);\n /** Regex to validate an input string item. */\n readonly validationRegex?: Signal<RegExp | undefined>;\n\n /** @internal */\n handle(\n value: string,\n trigger: SiPillsInputValueHandlerTrigger\n ): SiPillsInputValueParseResult | undefined {\n const segments = value.split(this.separatorRegex());\n const itemRegex = this.validationRegex?.();\n if (segments.length) {\n const newValue = trigger === 'input' ? segments.pop()! : '';\n if (\n segments.every(segment => {\n return segment && (!itemRegex || segment.match(itemRegex));\n })\n ) {\n return {\n newPills: segments,\n newValue\n };\n }\n }\n\n return {\n newPills: [],\n newValue: value\n };\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, input } from '@angular/core';\n\nimport { SiPillsInputPatternBase } from './si-pills-input-pattern-base';\nimport { SiPillsInputValueHandlerDirective } from './si-pills-input-value-handler';\n\n@Directive({\n selector: '[siPillsInputCsv]',\n providers: [\n {\n provide: SiPillsInputValueHandlerDirective,\n useExisting: SiPillsInputCsvDirective\n }\n ]\n})\nexport class SiPillsInputCsvDirective extends SiPillsInputPatternBase {\n /** @defaultValue undefined */\n // eslint-disable-next-line @angular-eslint/no-input-rename\n override readonly validationRegex = input<RegExp>(undefined, { alias: 'pillsInputCsvItemRegex' });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, signal } from '@angular/core';\n\nimport { SiPillsInputPatternBase } from './si-pills-input-pattern-base';\nimport { SiPillsInputValueHandlerDirective } from './si-pills-input-value-handler';\n\n// From Angular Email Validator\nconst EMAIL_REGEX =\n /^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/g;\n\n@Directive({\n selector: '[siPillsInputEmail]',\n providers: [\n {\n provide: SiPillsInputValueHandlerDirective,\n useExisting: SiPillsInputEmailDirective\n }\n ]\n})\nexport class SiPillsInputEmailDirective extends SiPillsInputPatternBase {\n /**\n * @defaultValue signal(EMAIL_REGEX).asReadonly()\n */\n override readonly validationRegex = signal(EMAIL_REGEX).asReadonly();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiPillsInputCsvDirective } from './si-pills-input-csv.directive';\nimport { SiPillsInputEmailDirective } from './si-pills-input-email.directive';\nimport { SiPillsInputComponent } from './si-pills-input.component';\n\n@NgModule({\n imports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective],\n exports: [SiPillsInputComponent, SiPillsInputCsvDirective, SiPillsInputEmailDirective]\n})\nexport class SiPillsInputModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-pills-input.component';\nexport * from './si-pills-input.module';\nexport * from './si-pills-input-csv.directive';\nexport * from './si-pills-input-email.directive';\nexport * from './si-pills-input-value-handler';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}