@siemens/element-ng 51.0.0 → 51.1.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 (140) hide show
  1. package/fesm2022/siemens-element-ng-accordion.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-ag-grid.mjs +125 -125
  4. package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-application-header.mjs +4 -4
  6. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs +7 -5
  8. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  9. package/fesm2022/siemens-element-ng-avatar.mjs +5 -5
  10. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  11. package/fesm2022/siemens-element-ng-breadcrumb.mjs +2 -2
  12. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  13. package/fesm2022/siemens-element-ng-card.mjs +2 -2
  14. package/fesm2022/siemens-element-ng-card.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-carousel.mjs +2 -2
  16. package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-chat-messages.mjs +18 -18
  18. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  19. package/fesm2022/siemens-element-ng-circle-status.mjs +2 -2
  20. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-color-picker.mjs +18 -18
  22. package/fesm2022/siemens-element-ng-color-picker.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-connection-strength.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-connection-strength.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
  26. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  27. package/fesm2022/siemens-element-ng-dashboard.mjs +8 -8
  28. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  29. package/fesm2022/siemens-element-ng-date-range-filter.mjs +2 -2
  30. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  31. package/fesm2022/siemens-element-ng-datepicker.mjs +8 -8
  32. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-electron-titlebar.mjs +2 -2
  34. package/fesm2022/siemens-element-ng-electron-titlebar.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
  36. package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-file-uploader.mjs +2 -2
  38. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-filter-bar.mjs +4 -4
  40. package/fesm2022/siemens-element-ng-filter-bar.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-filtered-search.mjs +4 -4
  42. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-footer.mjs +2 -2
  44. package/fesm2022/siemens-element-ng-footer.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-help-button.mjs +2 -2
  46. package/fesm2022/siemens-element-ng-help-button.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-landing-page.mjs +2 -2
  48. package/fesm2022/siemens-element-ng-landing-page.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-language-switcher.mjs +2 -2
  50. package/fesm2022/siemens-element-ng-language-switcher.mjs.map +1 -1
  51. package/fesm2022/siemens-element-ng-list-details.mjs +2 -2
  52. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  53. package/fesm2022/siemens-element-ng-loading-spinner.mjs +4 -4
  54. package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
  55. package/fesm2022/siemens-element-ng-maplibre.mjs +21 -21
  56. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
  57. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +2 -2
  58. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
  59. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs +2 -2
  60. package/fesm2022/siemens-element-ng-markdown-hightlighter-highlightjs.mjs.map +1 -1
  61. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  62. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  63. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +177 -34
  64. package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
  65. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +6 -6
  66. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  67. package/fesm2022/siemens-element-ng-notification-item.mjs +2 -4
  68. package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
  69. package/fesm2022/siemens-element-ng-number-input.mjs +2 -2
  70. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  71. package/fesm2022/siemens-element-ng-password-strength.mjs +2 -2
  72. package/fesm2022/siemens-element-ng-password-strength.mjs.map +1 -1
  73. package/fesm2022/siemens-element-ng-phone-number.mjs +2 -2
  74. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  75. package/fesm2022/siemens-element-ng-photo-upload.mjs +4 -4
  76. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  77. package/fesm2022/siemens-element-ng-pills-input.mjs +2 -2
  78. package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
  79. package/fesm2022/siemens-element-ng-resize-observer.mjs +5 -5
  80. package/fesm2022/siemens-element-ng-resize-observer.mjs.map +1 -1
  81. package/fesm2022/siemens-element-ng-result-details-list.mjs +2 -2
  82. package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
  83. package/fesm2022/siemens-element-ng-search-bar.mjs +2 -2
  84. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  85. package/fesm2022/siemens-element-ng-select.mjs +4 -4
  86. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  87. package/fesm2022/siemens-element-ng-side-panel.mjs +6 -6
  88. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  89. package/fesm2022/siemens-element-ng-skip-links.mjs +2 -2
  90. package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
  91. package/fesm2022/siemens-element-ng-slider.mjs +2 -2
  92. package/fesm2022/siemens-element-ng-slider.mjs.map +1 -1
  93. package/fesm2022/siemens-element-ng-source-chip.mjs +2 -2
  94. package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
  95. package/fesm2022/siemens-element-ng-split.mjs +4 -4
  96. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  97. package/fesm2022/siemens-element-ng-status-bar.mjs +4 -4
  98. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  99. package/fesm2022/siemens-element-ng-status-counter.mjs +2 -2
  100. package/fesm2022/siemens-element-ng-status-counter.mjs.map +1 -1
  101. package/fesm2022/siemens-element-ng-status-toggle.mjs +2 -2
  102. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  103. package/fesm2022/siemens-element-ng-summary-chip.mjs +2 -2
  104. package/fesm2022/siemens-element-ng-summary-chip.mjs.map +1 -1
  105. package/fesm2022/siemens-element-ng-summary-widget.mjs +2 -2
  106. package/fesm2022/siemens-element-ng-summary-widget.mjs.map +1 -1
  107. package/fesm2022/siemens-element-ng-system-banner.mjs +2 -2
  108. package/fesm2022/siemens-element-ng-system-banner.mjs.map +1 -1
  109. package/fesm2022/siemens-element-ng-tabs-legacy.mjs +2 -2
  110. package/fesm2022/siemens-element-ng-tabs-legacy.mjs.map +1 -1
  111. package/fesm2022/siemens-element-ng-tabs.mjs +2 -2
  112. package/fesm2022/siemens-element-ng-tabs.mjs.map +1 -1
  113. package/fesm2022/siemens-element-ng-threshold.mjs +2 -2
  114. package/fesm2022/siemens-element-ng-threshold.mjs.map +1 -1
  115. package/fesm2022/siemens-element-ng-toast-notification.mjs +2 -2
  116. package/fesm2022/siemens-element-ng-toast-notification.mjs.map +1 -1
  117. package/fesm2022/siemens-element-ng-tour.mjs +4 -4
  118. package/fesm2022/siemens-element-ng-tour.mjs.map +1 -1
  119. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  120. package/fesm2022/siemens-element-ng-tree-view.mjs +4 -4
  121. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  122. package/fesm2022/siemens-element-ng-wizard.mjs +2 -2
  123. package/fesm2022/siemens-element-ng-wizard.mjs.map +1 -1
  124. package/maplibre/styles/maplibre-gl.scss +22 -22
  125. package/package.json +4 -4
  126. package/schematics/migration.json +5 -0
  127. package/schematics/migrations/data/css-custom-properties.js +204 -12
  128. package/schematics/migrations/data/element-migration-data.js +13 -1
  129. package/schematics/migrations/data/index.js +1 -1
  130. package/schematics/ng-update/index.js +1 -0
  131. package/schematics/ng-update/migrate-to-v51-0-1.js +12 -0
  132. package/schematics/utils/index.js +0 -1
  133. package/template-i18n.json +1 -0
  134. package/types/siemens-element-ng-auto-collapsable-list.d.ts +2 -1
  135. package/types/siemens-element-ng-avatar.d.ts +1 -1
  136. package/types/siemens-element-ng-navbar-vertical-next.d.ts +48 -1
  137. package/types/siemens-element-ng-notification-item.d.ts +0 -12
  138. package/types/siemens-element-ng-translate.d.ts +1 -0
  139. package/schematics/migrations/data/migration-test-data.js +0 -304
  140. package/schematics/utils/testing.js +0 -42
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-application-header.mjs","sources":["../../../../projects/element-ng/application-header/si-application-header.component.ts","../../../../projects/element-ng/application-header/si-application-header.component.html","../../../../projects/element-ng/application-header/si-account-details.component.ts","../../../../projects/element-ng/application-header/si-header-navigation-item.component.ts","../../../../projects/element-ng/application-header/si-header-collapsible-actions.component.ts","../../../../projects/element-ng/application-header/si-header-collapsible-actions.component.html","../../../../projects/element-ng/application-header/si-header-action-item.base.ts","../../../../projects/element-ng/application-header/si-header-action-item-icon-base.directive.ts","../../../../projects/element-ng/application-header/si-header-action-item.component.ts","../../../../projects/element-ng/application-header/si-header-action-item.component.html","../../../../projects/element-ng/application-header/si-header-account-item.component.ts","../../../../projects/element-ng/application-header/si-header-account-item.component.html","../../../../projects/element-ng/application-header/si-header-selection-item.component.ts","../../../../projects/element-ng/application-header/si-header-selection-item.component.html","../../../../projects/element-ng/application-header/si-header-logo.directive.ts","../../../../projects/element-ng/application-header/si-header-actions.directive.ts","../../../../projects/element-ng/application-header/si-header-brand.directive.ts","../../../../projects/element-ng/application-header/si-header-navigation.component.ts","../../../../projects/element-ng/application-header/si-header-navigation.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-app.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-app.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-category.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-category.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-factory.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-factory.component.html","../../../../projects/element-ng/application-header/index.ts","../../../../projects/element-ng/application-header/siemens-element-ng-application-header.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n OnDestroy,\n signal,\n TemplateRef,\n untracked,\n viewChild\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { elementMenu, elementThumbnails } from '@siemens/element-icons';\nimport {\n HeaderWithDropdowns,\n SI_HEADER_WITH_DROPDOWNS,\n SiHeaderDropdownTriggerDirective\n} from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS, Breakpoints } from '@siemens/element-ng/resize-observer';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { of, Subject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\n/** Root component for the application header. */\n@Component({\n selector: 'si-application-header',\n imports: [SiTranslatePipe, A11yModule, NgTemplateOutlet, SiIconComponent],\n templateUrl: './si-application-header.component.html',\n styleUrl: './si-application-header.component.scss',\n providers: [{ provide: SI_HEADER_WITH_DROPDOWNS, useExisting: SiApplicationHeaderComponent }]\n})\nexport class SiApplicationHeaderComponent implements HeaderWithDropdowns, OnDestroy {\n private static idCounter = 0;\n\n /**\n * Defines the minimum breakpoint which must be matched to expand the header / switch to desktop mode.\n *\n * @defaultValue 'sm'\n */\n readonly expandBreakpoint = input<'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'never'>('sm');\n /** Template reference for the launchpad content rendered inside the header. */\n readonly launchpad = input<TemplateRef<void>>();\n /**\n * Accessible label for the launchpad toggle button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_APPLICATION_HEADER.LAUNCHPAD:Launchpad`)\n * ```\n */\n readonly launchpadLabel = input(t(() => $localize`:@@SI_APPLICATION_HEADER.LAUNCHPAD:Launchpad`));\n\n /** @internal */\n readonly closeMobileMenus = new Subject<void>();\n\n /** @internal */\n readonly mobileNavigationExpanded = signal(false);\n /** @internal */\n readonly hasNavigation = signal(false);\n\n protected readonly openDropdownCount = signal(0);\n protected readonly launchpadOpen = signal(false);\n protected readonly id = `__si-application-header-${SiApplicationHeaderComponent.idCounter++}`;\n protected toggleNavigation = t(\n () => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_NAVIGATION:Show navigation`\n );\n protected injector = inject(Injector);\n protected readonly icons = addIcons({ elementThumbnails, elementMenu });\n\n private readonly navigationToggle = viewChild<ElementRef<HTMLDivElement>>('navigationToggle');\n private readonly focusTrap = viewChild.required(CdkTrapFocus);\n private breakpointObserver = inject(BreakpointObserver);\n private openDropdown?: SiHeaderDropdownTriggerDirective;\n private closeMobileSub = this.closeMobileMenus.subscribe(() => {\n this.closeMobileNavigation();\n this.closeLaunchpad();\n });\n\n /** @internal */\n readonly inlineDropdown = toSignal(\n toObservable(this.expandBreakpoint).pipe(\n switchMap(expandBreakpoint => {\n if (expandBreakpoint === 'never') {\n return of(true);\n }\n return this.breakpointObserver\n .observe(\n `(min-width: ${\n BOOTSTRAP_BREAKPOINTS[(expandBreakpoint + 'Minimum') as keyof Breakpoints]\n }px)`\n )\n .pipe(map(({ matches }) => !matches));\n })\n ),\n { initialValue: false }\n );\n\n constructor() {\n effect(() => {\n this.inlineDropdown();\n untracked(() => this.closeMobileMenus.next());\n });\n }\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n this.closeMobileMenus.next();\n this.closeMobileMenus.complete();\n }\n\n /** @internal */\n onDropdownItemTriggered(): void {\n this.closeMobileMenus.next();\n }\n\n /** @internal */\n dropdownClosed(trigger?: SiHeaderDropdownTriggerDirective): void {\n this.openDropdownCount.update(v => v - 1);\n if (trigger === this.openDropdown) {\n this.openDropdown = undefined;\n }\n }\n\n /** @internal */\n dropdownOpened(trigger?: SiHeaderDropdownTriggerDirective): void {\n this.openDropdown ??= trigger;\n this.openDropdownCount.update(v => v + 1);\n this.closeLaunchpad();\n }\n\n /** @internal */\n closeLaunchpad(): void {\n if (this.launchpadOpen()) {\n this.launchpadOpen.set(false);\n this.dropdownClosed();\n\n if (this.hasNavigation()) {\n // This is also fine in expanded view when the mobile toggle is not visible.\n // Then the focus call will be ignored.\n this.navigationToggle()?.nativeElement.focus();\n }\n }\n }\n\n /** @internal */\n openLaunchpad(): void {\n if (!this.launchpadOpen()) {\n this.dropdownOpened();\n this.closeMobileMenus.next();\n this.launchpadOpen.set(true);\n }\n }\n\n protected toggleMobileNavigationExpanded(): void {\n if (this.mobileNavigationExpanded()) {\n this.closeMobileNavigation();\n } else {\n this.openMobileNavigation();\n }\n }\n\n protected toggleLaunchpad(): void {\n if (this.launchpadOpen()) {\n this.closeLaunchpad();\n } else {\n this.openLaunchpad();\n }\n }\n\n protected navigationEscapePressed(): void {\n this.closeMobileNavigation();\n this.navigationToggle()?.nativeElement.focus();\n }\n\n protected backdropClicked(): void {\n this.closeMobileMenus.next();\n }\n\n private openMobileNavigation(): void {\n if (!this.mobileNavigationExpanded()) {\n this.closeMobileMenus.next();\n this.mobileNavigationExpanded.set(true);\n this.dropdownOpened();\n this.focusTrap().focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n private closeMobileNavigation(): void {\n if (this.mobileNavigationExpanded()) {\n this.mobileNavigationExpanded.set(false);\n this.openDropdown?.close();\n this.dropdownClosed();\n }\n }\n}\n","<header\n [class]=\"`application-header expand-${expandBreakpoint()}`\"\n [class.show-navigation]=\"mobileNavigationExpanded()\"\n>\n @if (launchpad()) {\n <button\n type=\"button\"\n aria-haspopup=\"dialog\"\n [class]=\"`header-toggle focus-inside d-${expandBreakpoint()}-block`\"\n [class.show]=\"launchpadOpen()\"\n [class.d-none]=\"hasNavigation()\"\n [attr.aria-expanded]=\"launchpadOpen()\"\n [attr.aria-label]=\"launchpadLabel() | translate\"\n [attr.aria-controls]=\"id + '-launchpad'\"\n (click)=\"toggleLaunchpad()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementThumbnails\" />\n </button>\n }\n @if (hasNavigation()) {\n <button\n #navigationToggle\n type=\"button\"\n class=\"header-toggle focus-inside\"\n [class.show]=\"mobileNavigationExpanded()\"\n [attr.aria-expanded]=\"mobileNavigationExpanded()\"\n [attr.aria-label]=\"toggleNavigation | translate\"\n [attr.aria-controls]=\"id + '-navigation-wrapper'\"\n (click)=\"toggleMobileNavigationExpanded()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementMenu\" />\n </button>\n }\n <ng-content select=\"si-header-brand, element-header-brand\">\n <div class=\"header-brand\"></div>\n </ng-content>\n\n <div\n class=\"d-contents\"\n [id]=\"id + '-navigation-wrapper'\"\n [cdkTrapFocus]=\"mobileNavigationExpanded()\"\n (keydown.escape)=\"navigationEscapePressed()\"\n >\n <ng-content select=\"si-header-navigation, element-header-navigation\">\n <div class=\"header-navigation\"></div>\n </ng-content>\n </div>\n\n <ng-content select=\"si-header-actions, element-header-actions\">\n <div class=\"header-actions\"></div>\n </ng-content>\n</header>\n\n@if (launchpadOpen() && launchpad()) {\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n [id]=\"id + '-launchpad'\"\n [attr.aria-label]=\"launchpadLabel() | translate\"\n >\n <ng-template [ngTemplateOutlet]=\"launchpad()!\" [ngTemplateOutletInjector]=\"injector\" />\n </div>\n}\n\n@if (openDropdownCount() || launchpadOpen()) {\n <div\n [class]=\"`modal-backdrop ${launchpadOpen() ? 'd-block' : `d-${expandBreakpoint()}-none`}`\"\n (click)=\"backdropClicked()\"\n ></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-account-details',\n imports: [SiTranslatePipe],\n template: `\n <div class=\"mx-5\">\n <div class=\"si-h5\">{{ name() }}</div>\n @if (email()) {\n <div>{{ email() }}</div>\n }\n @if (company() || userRole()) {\n <div class=\"d-flex align-items-center text-secondary mt-2\">\n @if (company()) {\n {{ company() }}\n }\n @if (userRole()) {\n <span class=\"badge bg-default\">{{ userRole()! | translate }}</span>\n }\n </div>\n }\n </div>\n `\n})\nexport class SiAccountDetailsComponent {\n /** The user's full name. */\n readonly name = input.required<string>();\n /** The user's company name. */\n readonly company = input<string>();\n /** The user's email address. */\n readonly email = input<string>();\n /** The user's role. */\n readonly userRole = input<TranslatableString>();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject } from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport {\n SI_HEADER_DROPDOWN_OPTIONS,\n SiHeaderDropdownTriggerDirective\n} from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\n/** Adds a navigation item to the header. Should be located inside `.header-navigation`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-navigation-item], a[si-header-navigation-item]',\n imports: [SiIconComponent],\n template: `\n <div class=\"item-title\">\n <ng-content />\n </div>\n @if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n }\n `,\n providers: [\n { provide: SI_HEADER_DROPDOWN_OPTIONS, useValue: { disableRootFocusTrapForInlineMode: true } }\n ],\n host: {\n class: 'header-item focus-inside',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderNavigationItemComponent {\n /** @internal */\n dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected readonly icons = addIcons({ elementDown2 });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core';\nimport { elementOptionsVertical } from '@siemens/element-icons';\nimport { SI_HEADER_DROPDOWN_OPTIONS } from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\n\n/** Container for actions that should be collapsed in mobile mode. */\n@Component({\n selector: 'si-header-collapsible-actions',\n imports: [SiTranslatePipe, A11yModule, SiIconComponent],\n templateUrl: './si-header-collapsible-actions.component.html',\n styles: '.badge-dot::after { inset-inline-end: 4px; }',\n providers: [\n { provide: SI_HEADER_DROPDOWN_OPTIONS, useValue: { disableRootFocusTrapForInlineMode: true } }\n ],\n host: { class: 'd-contents' }\n})\nexport class SiHeaderCollapsibleActionsComponent implements OnDestroy {\n private static idCounter = 0;\n\n /**\n * Accessible label of the toggle button if actions are collapsed.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Show actions`)\n * ```\n */\n readonly mobileToggleLabel = input(\n t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Show actions`)\n );\n\n /** @internal **/\n readonly mobileExpanded = signal(false);\n /** @internal **/\n readonly badgeCount = signal(0);\n\n protected readonly id = `__si-header-collapsible-actions-${SiHeaderCollapsibleActionsComponent.idCounter++}`;\n protected readonly icons = addIcons({ elementOptionsVertical });\n\n private readonly toggle = viewChild.required<ElementRef<HTMLDivElement>>('toggle');\n private readonly focusTrap = viewChild.required(CdkTrapFocus);\n private header = inject(SiApplicationHeaderComponent);\n private closeMobileSub = this.header.closeMobileMenus.subscribe(() => this.closeMobile());\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n }\n\n protected toggleMobileExpanded(): void {\n if (this.mobileExpanded()) {\n this.closeMobile();\n } else {\n this.openMobile();\n }\n }\n\n protected escapePressed(): void {\n this.closeMobile();\n this.toggle().nativeElement.focus();\n }\n\n private openMobile(): void {\n if (!this.mobileExpanded()) {\n this.header.closeMobileMenus.next();\n this.header.dropdownOpened();\n this.mobileExpanded.set(true);\n this.focusTrap().focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n private closeMobile(): void {\n if (this.mobileExpanded()) {\n this.header.dropdownClosed();\n this.mobileExpanded.set(false);\n this.toggle().nativeElement.focus();\n }\n }\n}\n","<button\n #toggle\n type=\"button\"\n class=\"header-toggle focus-inside\"\n [class.show]=\"mobileExpanded()\"\n [attr.aria-expanded]=\"mobileExpanded()\"\n [attr.aria-label]=\"mobileToggleLabel() | translate\"\n [attr.aria-controls]=\"id + '-content'\"\n (click)=\"toggleMobileExpanded()\"\n>\n <si-icon class=\"icon\" [icon]=\"icons.elementOptionsVertical\" [class.badge-dot]=\"badgeCount()\" />\n</button>\n<div\n class=\"header-collapsible-actions\"\n [id]=\"id + '-content'\"\n [class.show]=\"mobileExpanded()\"\n [cdkTrapFocus]=\"mobileExpanded()\"\n (keydown.escape)=\"escapePressed()\"\n>\n <ng-content />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, inject, OnInit } from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { SiHeaderDropdownTriggerDirective } from '@siemens/element-ng/header-dropdown';\nimport { addIcons } from '@siemens/element-ng/icon';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\nimport { SiHeaderCollapsibleActionsComponent } from './si-header-collapsible-actions.component';\n\n@Directive({\n host: {\n '(click)': 'click()'\n }\n})\nexport abstract class SiHeaderActionItemBase implements OnInit {\n /** @internal */\n readonly dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected readonly collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, {\n optional: true\n });\n protected readonly icons = addIcons({ elementDown2 });\n\n private readonly header = inject(SiApplicationHeaderComponent);\n\n ngOnInit(): void {\n if (this.dropdownTrigger) {\n this.header.closeMobileMenus.subscribe(() => this.dropdownTrigger!.close());\n }\n }\n\n protected click(): void {\n if (!this.dropdownTrigger?.isOpen && !this.collapsibleActions?.mobileExpanded()) {\n // we must close other immediately as we would close the dropdown else wise immediately after opening.\n this.header.closeMobileMenus.next();\n } else if (!this.dropdownTrigger || !this.collapsibleActions?.mobileExpanded()) {\n // we must use queueMicrotask, otherwise the dropdown gets re-opened immediately.\n queueMicrotask(() => this.header.closeMobileMenus.next());\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n Signal,\n SimpleChanges\n} from '@angular/core';\nimport { SiTooltipDirective, SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionItemBase } from './si-header-action-item.base';\n\n/**\n * Base for icon based actions.\n * @internal\n */\n@Directive({})\nexport abstract class SiHeaderActionIconItemBase\n extends SiHeaderActionItemBase\n implements OnChanges\n{\n /**\n * Adds a badge to the header item.\n * If type\n * - =number, the number will be shown and automatically trimmed if \\>99\n * - =true, an empty red dot will be shown\n */\n readonly badge = input<number | boolean | undefined | null>();\n\n protected abstract readonly itemTitle: Signal<string | ElementRef<Element>>;\n\n private readonly tooltipService = inject(SiTooltipService);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly existingTooltip = inject(SiTooltipDirective, { optional: true, host: true });\n private readonly canShowTooltip = computed(\n () =>\n this.visuallyHideTitle() &&\n (!this.existingTooltip ||\n this.existingTooltip.isDisabled() ||\n !this.existingTooltip.siTooltip())\n );\n\n protected readonly badgeDot = computed(() =>\n typeof this.badge() === 'boolean' ? (this.badge() as boolean) : false\n );\n protected readonly badgeValue = computed(() => {\n const badge = this.badge();\n return typeof badge === 'number'\n ? `${badge > 99 ? '+' : ''}${Math.min(99, Math.round(badge))}`\n : undefined;\n });\n\n constructor() {\n super();\n this.tooltipService.createTooltip({\n element: this.elementRef,\n placement: () => 'auto',\n canShow: this.canShowTooltip,\n // Subclass field initializers run after this base constructor. So we cannot directly pass `this.itemTitle`.\n tooltip: () => this.itemTitle(),\n tooltipContext: () => undefined\n });\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.badge) {\n if (changes.badge.currentValue && !changes.badge.previousValue) {\n this.collapsibleActions?.badgeCount.update(count => count + 1);\n } else if (!changes.badge.currentValue && changes.badge.previousValue) {\n this.collapsibleActions?.badgeCount.update(count => count - 1);\n }\n }\n }\n\n protected readonly visuallyHideTitle = computed(() => !this.collapsibleActions?.mobileExpanded());\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, ElementRef, input, viewChild } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionIconItemBase } from './si-header-action-item-icon-base.directive';\n\n/** Adds an action item to the header. Should be located inside `.header-actions`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-action-item], a[si-header-action-item]',\n imports: [SiIconComponent],\n templateUrl: './si-header-action-item.component.html',\n providers: [SiTooltipService],\n host: {\n class: 'header-item focus-inside',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderActionItemComponent extends SiHeaderActionIconItemBase {\n /** The icon to be shown. */\n readonly icon = input.required<string>();\n\n protected readonly itemTitle = viewChild.required<ElementRef<HTMLElement>>('itemTitle');\n}\n","<si-icon class=\"icon\" [class.badge-dot]=\"badgeDot()\" [icon]=\"icon()\" />\n@if (badgeValue()) {\n <span class=\"badge-text\">{{ badgeValue() }}</span>\n}\n<ng-content select=\"si-avatar\" />\n<div #itemTitle class=\"item-title\" [class.visually-hidden]=\"visuallyHideTitle()\">\n <ng-content />\n</div>\n@if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiAvatarComponent } from '@siemens/element-ng/avatar';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionIconItemBase } from './si-header-action-item-icon-base.directive';\n\n/** Adds an account item to the header. Should be located inside `.header-actions`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-account-item]',\n imports: [SiAvatarComponent, SiIconComponent],\n templateUrl: './si-header-account-item.component.html',\n styleUrl: './si-header-account-item.component.scss',\n providers: [SiTooltipService],\n host: {\n class: 'header-item focus-inside px-4 py-0',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderAccountItemComponent extends SiHeaderActionIconItemBase {\n /** Name of the account. */\n readonly name = input.required<string>();\n /** Initials of the account. If not provided, they will be calculated. */\n readonly initials = input<string>();\n /** URL to an image which should be shown instead of the initials. */\n readonly imageUrl = input<string>();\n\n protected readonly itemTitle = this.name;\n}\n","<si-avatar\n size=\"small\"\n color=\"0\"\n [altText]=\"name()\"\n [initials]=\"initials()\"\n [imageUrl]=\"imageUrl()\"\n/>\n<div class=\"item-title\" aria-hidden=\"true\" [class.d-none]=\"visuallyHideTitle()\">\n {{ name() }}\n</div>\n@if (badgeValue()) {\n <div class=\"badge-text\">{{ badgeValue() }}</div>\n}\n@if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiHeaderActionItemBase } from './si-header-action-item.base';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-selection-item]',\n imports: [SiIconComponent],\n templateUrl: './si-header-selection-item.component.html',\n host: {\n class: 'header-item header-selection-item focus-inside dropdown-toggle',\n '[class.show]': 'open()'\n }\n})\nexport class SiHeaderSelectionItemComponent extends SiHeaderActionItemBase {\n /**\n * Sets the open state which will only affect the arrow. Only use this property when not using {@link SiHeaderDropdownTriggerDirective}.\n *\n * @defaultValue false\n */\n readonly open = input(false);\n}\n","<div class=\"item-title\">\n <ng-content />\n</div>\n<si-icon class=\"d-block dropdown-caret\" [icon]=\"icons.elementDown2\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n afterNextRender,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Injector,\n OnInit,\n signal\n} from '@angular/core';\n\n/** The siemens logo. Should be located inside `.header-brand`. */\n@Directive({\n selector: 'si-header-logo, [siHeaderLogo]',\n host: {\n class: 'header-logo px-6 focus-inside',\n '[attr.aria-label]': 'logoText()'\n }\n})\nexport class SiHeaderLogoDirective implements OnInit {\n protected readonly logoText = signal<string | undefined>(undefined);\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private injector = inject(Injector);\n\n ngOnInit(): void {\n this.updateLogoText();\n }\n\n @HostListener('window:theme-switch')\n protected updateLogoText(): void {\n afterNextRender(\n {\n read: () =>\n this.logoText.set(\n window\n .getComputedStyle(this.elementRef.nativeElement)\n .getPropertyValue('--element-brand-logo-text')\n .replace(/^[\"']|[\"']$/g, '')\n )\n },\n { injector: this.injector }\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-header-actions',\n host: { class: 'header-actions' }\n})\nexport class SiHeaderActionsDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-header-brand',\n host: { class: 'header-brand' }\n})\nexport class SiHeaderBrandDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { elementThumbnails } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\n\n@Component({\n selector: 'si-header-navigation',\n imports: [SiTranslatePipe, SiIconComponent],\n templateUrl: './si-header-navigation.component.html',\n host: { class: 'header-navigation', role: 'navigation' }\n})\nexport class SiHeaderNavigationComponent implements OnDestroy {\n protected header = inject(SiApplicationHeaderComponent);\n protected readonly icons = addIcons({ elementThumbnails });\n\n constructor() {\n this.header.hasNavigation.set(true);\n }\n\n ngOnDestroy(): void {\n this.header.hasNavigation.set(false);\n }\n}\n","@if (header.launchpad()) {\n <button\n type=\"button\"\n [class]=\"`header-item focus-inside d-${header.expandBreakpoint()}-none`\"\n (click)=\"header.openLaunchpad()\"\n >\n <si-icon class=\"icon pe-5\" [icon]=\"icons.elementThumbnails\" />\n {{ header.launchpadLabel() | translate }}\n </button>\n}\n<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, HostListener, inject, input, model } from '@angular/core';\nimport { elementExport, elementFavorites, elementFavoritesFilled } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from '../si-application-header.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-launchpad-app]',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-launchpad-app.component.html',\n styleUrl: './si-launchpad-app.component.scss',\n host: {\n class: 'focus-inside',\n '[class.active]': 'active()',\n '[class.action]': 'action()'\n }\n})\nexport class SiLaunchpadAppComponent {\n /**\n * When `true`, an external link icon is shown to indicate the app opens in a new tab.\n *\n * @defaultValue false\n */\n readonly external = input(false, { transform: booleanAttribute });\n /**\n * When `true`, the app item is highlighted as the currently active application.\n *\n * @defaultValue false\n */\n readonly active = input(false, { transform: booleanAttribute });\n /**\n * When `true`, a toggle button is shown to allow the user to mark or unmark this app as a favorite.\n *\n * @defaultValue false\n */\n readonly enableFavoriteToggle = input(false, { transform: booleanAttribute });\n /**\n * Whether this app is currently marked as a favorite by the user.\n *\n * @defaultValue false\n */\n readonly favorite = model(false);\n /**\n * When `true`, the item is styled as an action entry rather than a regular app link.\n *\n * @defaultValue false\n */\n readonly action = input(false, { transform: booleanAttribute });\n\n /** URL of the app icon. */\n readonly iconUrl = input<string>();\n /** CSS class applied to the app icon element. */\n readonly iconClass = input<string>();\n /**\n * Aria-label for the external link icon.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:Open in new tab`)\n * ```\n */\n readonly externalLinkText = input<TranslatableString>(\n t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:Open in new tab`)\n );\n\n protected readonly icons = addIcons({ elementExport, elementFavorites, elementFavoritesFilled });\n\n private header = inject(SiApplicationHeaderComponent);\n\n @HostListener('keydown.space', ['$event'])\n protected favoriteClicked(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.favorite.update(old => !old);\n }\n\n @HostListener('click') protected click(): void {\n this.header.closeLaunchpad();\n }\n}\n","@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"app-text\">\n <div class=\"si-h4 d-flex align-items-center mw-100 gap-1\">\n <span class=\"text-truncate\">\n <ng-content select=\"[app-name]\" />\n </span>\n @if (external()) {\n <si-icon\n class=\"icon\"\n [icon]=\"icons.elementExport\"\n [attr.aria-label]=\"externalLinkText() | translate\"\n />\n }\n </div>\n <div class=\"si-body text-secondary mt-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n </div>\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon\n class=\"icon favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, input, output } from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiLaunchpadAppComponent } from './si-launchpad-app.component';\nimport { App, AppCategory, FavoriteChangeEvent } from './si-launchpad.model';\n\n@Component({\n selector: 'si-launchpad-category',\n imports: [SiLaunchpadAppComponent, SiTranslatePipe, RouterLinkActive, RouterLink],\n templateUrl: './si-launchpad-category.component.html',\n host: {\n class: 'd-block',\n '[class.has-title]': '!!category().name'\n }\n})\nexport class SiLaunchpadCategoryComponent {\n readonly category = input.required<AppCategory>();\n /** @defaultValue false */\n readonly enableFavorites = input(false);\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n\n protected toggleFavorite(app: App, favorite: boolean): void {\n this.favoriteChange.emit({ app, favorite });\n }\n\n protected isFavoriteToggleDisabled(app: App): boolean {\n return '_noFavorite' in app && !!app._noFavorite;\n }\n}\n","@if (category().name) {\n <div class=\"si-h4 launchpad-category-title mt-4 mb-6\">\n {{ category().name | translate }}\n </div>\n}\n<div class=\"d-flex flex-wrap gap-4\">\n @for (app of category().apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { booleanAttribute, Component, computed, inject, input, output } from '@angular/core';\nimport { elementCancel, elementDown2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLinkModule } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from '../si-application-header.component';\nimport { SiLaunchpadCategoryComponent } from './si-launchpad-category.component';\nimport { App, AppCategory, FavoriteChangeEvent } from './si-launchpad.model';\n\n@Component({\n selector: 'si-launchpad-factory',\n imports: [\n A11yModule,\n SiLinkModule,\n SiTranslatePipe,\n SiLaunchpadCategoryComponent,\n SiIconComponent\n ],\n templateUrl: './si-launchpad-factory.component.html',\n styleUrl: './si-launchpad-factory.component.scss'\n})\nexport class SiLaunchpadFactoryComponent {\n /**\n * Text to close the launchpad. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.CLOSE:Close launchpad`)\n * ```\n */\n readonly closeText = input(t(() => $localize`:@@SI_LAUNCHPAD.CLOSE:Close launchpad`));\n\n /**\n * Title of the launchpad.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`)\n * ```\n */\n readonly titleText = input(t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`));\n\n /**\n * Subtitle of the launchpad.\n * When not provided, no subtitle is displayed.\n */\n readonly subtitleText = input<TranslatableString>();\n\n /** All app items shown in the launchpad. */\n readonly apps = input.required<App[] | AppCategory[]>();\n\n /**\n * Allow the user to select favorite apps which will then be displayed at the top.\n *\n * @defaultValue false\n */\n readonly enableFavorites = input(false, { transform: booleanAttribute });\n\n /**\n * Title of the favorite apps section.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.FAVORITE_APPS:Favorites`)\n * ```\n */\n readonly favoriteAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.FAVORITE_APPS:Favorites`));\n\n /**\n * Title of the show more apps button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.SHOW_MORE:Show more`)\n * ```\n */\n readonly showMoreAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.SHOW_MORE:Show more`));\n\n /** @deprecated This input no longer has an effect. {@link showMoreAppsText} is shown in all cases. */\n readonly showLessAppsText = input();\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected showAllApps = false;\n protected readonly allAppsId = '__si-launchpad-factory-all-apps';\n protected readonly categories = computed(() => {\n const apps = this.apps();\n if (this.isCategories(apps)) {\n return apps;\n }\n return [{ name: '', apps: [...apps] }];\n });\n protected readonly favorites = computed(() =>\n this.apps()\n .flatMap(app => ('apps' in app ? app.apps : (app as App)))\n .filter(app => app.favorite)\n );\n protected readonly hasFavorites = computed(() => this.favorites().length > 0);\n protected readonly icons = addIcons({ elementDown2, elementCancel });\n private header = inject(SiApplicationHeaderComponent);\n\n protected closeLaunchpad(): void {\n this.header.closeLaunchpad();\n }\n\n protected toggleFavorite(event: FavoriteChangeEvent): void {\n this.favoriteChange.emit(event);\n }\n\n protected escape(): void {\n this.closeLaunchpad();\n }\n\n protected isCategories(items: App[] | AppCategory[]): items is AppCategory[] {\n return items.some(item => 'apps' in item);\n }\n}\n","<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @if (enableFavorites() && hasFavorites()) {\n <si-launchpad-category\n [category]=\"{ name: favoriteAppsText(), apps: favorites() }\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n [attr.aria-expanded]=\"showAllApps\"\n [attr.aria-controls]=\"allAppsId\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ showMoreAppsText() | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n\n <div class=\"all-apps\" [id]=\"allAppsId\">\n @if (!enableFavorites() || !hasFavorites() || showAllApps) {\n @for (category of categories(); track category.name) {\n <si-launchpad-category\n [class.pt-6]=\"!!category.name && (hasFavorites() || !$first)\"\n [category]=\"category\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\n }\n }\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-application-header.component';\nexport * from './si-account-details.component';\nexport * from './si-header-navigation-item.component';\nexport * from './si-header-collapsible-actions.component';\nexport * from './si-header-action-item.component';\nexport * from './si-header-account-item.component';\nexport * from './si-header-selection-item.component';\nexport * from './si-header-logo.directive';\nexport * from './si-header-actions.directive';\nexport * from './si-header-brand.directive';\nexport * from './si-header-navigation.component';\nexport * from './launchpad/si-launchpad-factory.component';\nexport * from './launchpad/si-launchpad.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-application-header.mjs","sources":["../../../../projects/element-ng/application-header/si-application-header.component.ts","../../../../projects/element-ng/application-header/si-application-header.component.html","../../../../projects/element-ng/application-header/si-account-details.component.ts","../../../../projects/element-ng/application-header/si-header-navigation-item.component.ts","../../../../projects/element-ng/application-header/si-header-collapsible-actions.component.ts","../../../../projects/element-ng/application-header/si-header-collapsible-actions.component.html","../../../../projects/element-ng/application-header/si-header-action-item.base.ts","../../../../projects/element-ng/application-header/si-header-action-item-icon-base.directive.ts","../../../../projects/element-ng/application-header/si-header-action-item.component.ts","../../../../projects/element-ng/application-header/si-header-action-item.component.html","../../../../projects/element-ng/application-header/si-header-account-item.component.ts","../../../../projects/element-ng/application-header/si-header-account-item.component.html","../../../../projects/element-ng/application-header/si-header-selection-item.component.ts","../../../../projects/element-ng/application-header/si-header-selection-item.component.html","../../../../projects/element-ng/application-header/si-header-logo.directive.ts","../../../../projects/element-ng/application-header/si-header-actions.directive.ts","../../../../projects/element-ng/application-header/si-header-brand.directive.ts","../../../../projects/element-ng/application-header/si-header-navigation.component.ts","../../../../projects/element-ng/application-header/si-header-navigation.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-app.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-app.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-category.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-category.component.html","../../../../projects/element-ng/application-header/launchpad/si-launchpad-factory.component.ts","../../../../projects/element-ng/application-header/launchpad/si-launchpad-factory.component.html","../../../../projects/element-ng/application-header/index.ts","../../../../projects/element-ng/application-header/siemens-element-ng-application-header.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { BreakpointObserver } from '@angular/cdk/layout';\nimport { NgTemplateOutlet } from '@angular/common';\nimport {\n Component,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n OnDestroy,\n signal,\n TemplateRef,\n untracked,\n viewChild\n} from '@angular/core';\nimport { toObservable, toSignal } from '@angular/core/rxjs-interop';\nimport { elementMenu, elementThumbnails } from '@siemens/element-icons';\nimport {\n HeaderWithDropdowns,\n SI_HEADER_WITH_DROPDOWNS,\n SiHeaderDropdownTriggerDirective\n} from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { BOOTSTRAP_BREAKPOINTS, Breakpoints } from '@siemens/element-ng/resize-observer';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\nimport { of, Subject } from 'rxjs';\nimport { map, switchMap } from 'rxjs/operators';\n\n/** Root component for the application header. */\n@Component({\n selector: 'si-application-header',\n imports: [SiTranslatePipe, A11yModule, NgTemplateOutlet, SiIconComponent],\n templateUrl: './si-application-header.component.html',\n styleUrl: './si-application-header.component.scss',\n providers: [{ provide: SI_HEADER_WITH_DROPDOWNS, useExisting: SiApplicationHeaderComponent }]\n})\nexport class SiApplicationHeaderComponent implements HeaderWithDropdowns, OnDestroy {\n private static idCounter = 0;\n\n /**\n * Defines the minimum breakpoint which must be matched to expand the header / switch to desktop mode.\n *\n * @defaultValue 'sm'\n */\n readonly expandBreakpoint = input<'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'never'>('sm');\n /** Template reference for the launchpad content rendered inside the header. */\n readonly launchpad = input<TemplateRef<void>>();\n /**\n * Accessible label for the launchpad toggle button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_APPLICATION_HEADER.LAUNCHPAD:Launchpad`)\n * ```\n */\n readonly launchpadLabel = input(t(() => $localize`:@@SI_APPLICATION_HEADER.LAUNCHPAD:Launchpad`));\n\n /** @internal */\n readonly closeMobileMenus = new Subject<void>();\n\n /** @internal */\n readonly mobileNavigationExpanded = signal(false);\n /** @internal */\n readonly hasNavigation = signal(false);\n\n protected readonly openDropdownCount = signal(0);\n protected readonly launchpadOpen = signal(false);\n protected readonly id = `__si-application-header-${SiApplicationHeaderComponent.idCounter++}`;\n protected toggleNavigation = t(\n () => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_NAVIGATION:Show navigation`\n );\n protected injector = inject(Injector);\n protected readonly icons = addIcons({ elementThumbnails, elementMenu });\n\n private readonly navigationToggle = viewChild<ElementRef<HTMLDivElement>>('navigationToggle');\n private readonly focusTrap = viewChild.required(CdkTrapFocus);\n private breakpointObserver = inject(BreakpointObserver);\n private openDropdown?: SiHeaderDropdownTriggerDirective;\n private closeMobileSub = this.closeMobileMenus.subscribe(() => {\n this.closeMobileNavigation();\n this.closeLaunchpad();\n });\n\n /** @internal */\n readonly inlineDropdown = toSignal(\n toObservable(this.expandBreakpoint).pipe(\n switchMap(expandBreakpoint => {\n if (expandBreakpoint === 'never') {\n return of(true);\n }\n return this.breakpointObserver\n .observe(\n `(min-width: ${\n BOOTSTRAP_BREAKPOINTS[(expandBreakpoint + 'Minimum') as keyof Breakpoints]\n }px)`\n )\n .pipe(map(({ matches }) => !matches));\n })\n ),\n { initialValue: false }\n );\n\n constructor() {\n effect(() => {\n this.inlineDropdown();\n untracked(() => this.closeMobileMenus.next());\n });\n }\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n this.closeMobileMenus.next();\n this.closeMobileMenus.complete();\n }\n\n /** @internal */\n onDropdownItemTriggered(): void {\n this.closeMobileMenus.next();\n }\n\n /** @internal */\n dropdownClosed(trigger?: SiHeaderDropdownTriggerDirective): void {\n this.openDropdownCount.update(v => v - 1);\n if (trigger === this.openDropdown) {\n this.openDropdown = undefined;\n }\n }\n\n /** @internal */\n dropdownOpened(trigger?: SiHeaderDropdownTriggerDirective): void {\n this.openDropdown ??= trigger;\n this.openDropdownCount.update(v => v + 1);\n this.closeLaunchpad();\n }\n\n /** @internal */\n closeLaunchpad(): void {\n if (this.launchpadOpen()) {\n this.launchpadOpen.set(false);\n this.dropdownClosed();\n\n if (this.hasNavigation()) {\n // This is also fine in expanded view when the mobile toggle is not visible.\n // Then the focus call will be ignored.\n this.navigationToggle()?.nativeElement.focus();\n }\n }\n }\n\n /** @internal */\n openLaunchpad(): void {\n if (!this.launchpadOpen()) {\n this.dropdownOpened();\n this.closeMobileMenus.next();\n this.launchpadOpen.set(true);\n }\n }\n\n protected toggleMobileNavigationExpanded(): void {\n if (this.mobileNavigationExpanded()) {\n this.closeMobileNavigation();\n } else {\n this.openMobileNavigation();\n }\n }\n\n protected toggleLaunchpad(): void {\n if (this.launchpadOpen()) {\n this.closeLaunchpad();\n } else {\n this.openLaunchpad();\n }\n }\n\n protected navigationEscapePressed(): void {\n this.closeMobileNavigation();\n this.navigationToggle()?.nativeElement.focus();\n }\n\n protected backdropClicked(): void {\n this.closeMobileMenus.next();\n }\n\n private openMobileNavigation(): void {\n if (!this.mobileNavigationExpanded()) {\n this.closeMobileMenus.next();\n this.mobileNavigationExpanded.set(true);\n this.dropdownOpened();\n this.focusTrap().focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n private closeMobileNavigation(): void {\n if (this.mobileNavigationExpanded()) {\n this.mobileNavigationExpanded.set(false);\n this.openDropdown?.close();\n this.dropdownClosed();\n }\n }\n}\n","<header\n [class]=\"`application-header expand-${expandBreakpoint()}`\"\n [class.show-navigation]=\"mobileNavigationExpanded()\"\n>\n @if (launchpad()) {\n <button\n type=\"button\"\n aria-haspopup=\"dialog\"\n [class]=\"`header-toggle focus-inside d-${expandBreakpoint()}-block`\"\n [class.show]=\"launchpadOpen()\"\n [class.d-none]=\"hasNavigation()\"\n [attr.aria-expanded]=\"launchpadOpen()\"\n [attr.aria-label]=\"launchpadLabel() | translate\"\n [attr.aria-controls]=\"id + '-launchpad'\"\n (click)=\"toggleLaunchpad()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementThumbnails\" />\n </button>\n }\n @if (hasNavigation()) {\n <button\n #navigationToggle\n type=\"button\"\n class=\"header-toggle focus-inside\"\n [class.show]=\"mobileNavigationExpanded()\"\n [attr.aria-expanded]=\"mobileNavigationExpanded()\"\n [attr.aria-label]=\"toggleNavigation | translate\"\n [attr.aria-controls]=\"id + '-navigation-wrapper'\"\n (click)=\"toggleMobileNavigationExpanded()\"\n >\n <si-icon class=\"icon\" [icon]=\"icons.elementMenu\" />\n </button>\n }\n <ng-content select=\"si-header-brand, element-header-brand\">\n <div class=\"header-brand\"></div>\n </ng-content>\n\n <div\n class=\"d-contents\"\n [id]=\"id + '-navigation-wrapper'\"\n [cdkTrapFocus]=\"mobileNavigationExpanded()\"\n (keydown.escape)=\"navigationEscapePressed()\"\n >\n <ng-content select=\"si-header-navigation, element-header-navigation\">\n <div class=\"header-navigation\"></div>\n </ng-content>\n </div>\n\n <ng-content select=\"si-header-actions, element-header-actions\">\n <div class=\"header-actions\"></div>\n </ng-content>\n</header>\n\n@if (launchpadOpen() && launchpad()) {\n <div\n role=\"dialog\"\n aria-modal=\"true\"\n [id]=\"id + '-launchpad'\"\n [attr.aria-label]=\"launchpadLabel() | translate\"\n >\n <ng-template [ngTemplateOutlet]=\"launchpad()!\" [ngTemplateOutletInjector]=\"injector\" />\n </div>\n}\n\n@if (openDropdownCount() || launchpadOpen()) {\n <div\n [class]=\"`modal-backdrop ${launchpadOpen() ? 'd-block' : `d-${expandBreakpoint()}-none`}`\"\n (click)=\"backdropClicked()\"\n ></div>\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\n\n@Component({\n selector: 'si-account-details',\n imports: [SiTranslatePipe],\n template: `\n <div class=\"mx-5\">\n <div class=\"si-h5\">{{ name() }}</div>\n @if (email()) {\n <div>{{ email() }}</div>\n }\n @if (company() || userRole()) {\n <div class=\"d-flex align-items-center text-secondary mt-2\">\n @if (company()) {\n {{ company() }}\n }\n @if (userRole()) {\n <span class=\"badge bg-default\">{{ userRole()! | translate }}</span>\n }\n </div>\n }\n </div>\n `\n})\nexport class SiAccountDetailsComponent {\n /** The user's full name. */\n readonly name = input.required<string>();\n /** The user's company name. */\n readonly company = input<string>();\n /** The user's email address. */\n readonly email = input<string>();\n /** The user's role. */\n readonly userRole = input<TranslatableString>();\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject } from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport {\n SI_HEADER_DROPDOWN_OPTIONS,\n SiHeaderDropdownTriggerDirective\n} from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\n\n/** Adds a navigation item to the header. Should be located inside `.header-navigation`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-navigation-item], a[si-header-navigation-item]',\n imports: [SiIconComponent],\n template: `\n <div class=\"item-title\">\n <ng-content />\n </div>\n @if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n }\n `,\n providers: [\n { provide: SI_HEADER_DROPDOWN_OPTIONS, useValue: { disableRootFocusTrapForInlineMode: true } }\n ],\n host: {\n class: 'header-item focus-inside',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderNavigationItemComponent {\n /** @internal */\n dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected readonly icons = addIcons({ elementDown2 });\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule, CdkTrapFocus } from '@angular/cdk/a11y';\nimport { Component, ElementRef, inject, input, OnDestroy, signal, viewChild } from '@angular/core';\nimport { elementOptionsVertical } from '@siemens/element-icons';\nimport { SI_HEADER_DROPDOWN_OPTIONS } from '@siemens/element-ng/header-dropdown';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\n\n/** Container for actions that should be collapsed in mobile mode. */\n@Component({\n selector: 'si-header-collapsible-actions',\n imports: [SiTranslatePipe, A11yModule, SiIconComponent],\n templateUrl: './si-header-collapsible-actions.component.html',\n styles: '.badge-dot::after { inset-inline-end: 4px; }',\n providers: [\n { provide: SI_HEADER_DROPDOWN_OPTIONS, useValue: { disableRootFocusTrapForInlineMode: true } }\n ],\n host: { class: 'd-contents' }\n})\nexport class SiHeaderCollapsibleActionsComponent implements OnDestroy {\n private static idCounter = 0;\n\n /**\n * Accessible label of the toggle button if actions are collapsed.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Show actions`)\n * ```\n */\n readonly mobileToggleLabel = input(\n t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Show actions`)\n );\n\n /** @internal **/\n readonly mobileExpanded = signal(false);\n /** @internal **/\n readonly badgeCount = signal(0);\n\n protected readonly id = `__si-header-collapsible-actions-${SiHeaderCollapsibleActionsComponent.idCounter++}`;\n protected readonly icons = addIcons({ elementOptionsVertical });\n\n private readonly toggle = viewChild.required<ElementRef<HTMLDivElement>>('toggle');\n private readonly focusTrap = viewChild.required(CdkTrapFocus);\n private header = inject(SiApplicationHeaderComponent);\n private closeMobileSub = this.header.closeMobileMenus.subscribe(() => this.closeMobile());\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n }\n\n protected toggleMobileExpanded(): void {\n if (this.mobileExpanded()) {\n this.closeMobile();\n } else {\n this.openMobile();\n }\n }\n\n protected escapePressed(): void {\n this.closeMobile();\n this.toggle().nativeElement.focus();\n }\n\n private openMobile(): void {\n if (!this.mobileExpanded()) {\n this.header.closeMobileMenus.next();\n this.header.dropdownOpened();\n this.mobileExpanded.set(true);\n this.focusTrap().focusTrap.focusFirstTabbableElementWhenReady();\n }\n }\n\n private closeMobile(): void {\n if (this.mobileExpanded()) {\n this.header.dropdownClosed();\n this.mobileExpanded.set(false);\n this.toggle().nativeElement.focus();\n }\n }\n}\n","<button\n #toggle\n type=\"button\"\n class=\"header-toggle focus-inside\"\n [class.show]=\"mobileExpanded()\"\n [attr.aria-expanded]=\"mobileExpanded()\"\n [attr.aria-label]=\"mobileToggleLabel() | translate\"\n [attr.aria-controls]=\"id + '-content'\"\n (click)=\"toggleMobileExpanded()\"\n>\n <si-icon class=\"icon\" [icon]=\"icons.elementOptionsVertical\" [class.badge-dot]=\"badgeCount()\" />\n</button>\n<div\n class=\"header-collapsible-actions\"\n [id]=\"id + '-content'\"\n [class.show]=\"mobileExpanded()\"\n [cdkTrapFocus]=\"mobileExpanded()\"\n (keydown.escape)=\"escapePressed()\"\n>\n <ng-content />\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, inject, OnInit } from '@angular/core';\nimport { elementDown2 } from '@siemens/element-icons';\nimport { SiHeaderDropdownTriggerDirective } from '@siemens/element-ng/header-dropdown';\nimport { addIcons } from '@siemens/element-ng/icon';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\nimport { SiHeaderCollapsibleActionsComponent } from './si-header-collapsible-actions.component';\n\n@Directive({\n host: {\n '(click)': 'click()'\n }\n})\nexport abstract class SiHeaderActionItemBase implements OnInit {\n /** @internal */\n readonly dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected readonly collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, {\n optional: true\n });\n protected readonly icons = addIcons({ elementDown2 });\n\n private readonly header = inject(SiApplicationHeaderComponent);\n\n ngOnInit(): void {\n if (this.dropdownTrigger) {\n this.header.closeMobileMenus.subscribe(() => this.dropdownTrigger!.close());\n }\n }\n\n protected click(): void {\n if (!this.dropdownTrigger?.isOpen && !this.collapsibleActions?.mobileExpanded()) {\n // we must close other immediately as we would close the dropdown else wise immediately after opening.\n this.header.closeMobileMenus.next();\n } else if (!this.dropdownTrigger || !this.collapsibleActions?.mobileExpanded()) {\n // we must use queueMicrotask, otherwise the dropdown gets re-opened immediately.\n queueMicrotask(() => this.header.closeMobileMenus.next());\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n OnChanges,\n Signal,\n SimpleChanges\n} from '@angular/core';\nimport { SiTooltipDirective, SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionItemBase } from './si-header-action-item.base';\n\n/**\n * Base for icon based actions.\n * @internal\n */\n@Directive({})\nexport abstract class SiHeaderActionIconItemBase\n extends SiHeaderActionItemBase\n implements OnChanges\n{\n /**\n * Adds a badge to the header item.\n * If type\n * - =number, the number will be shown and automatically trimmed if \\>99\n * - =true, an empty red dot will be shown\n */\n readonly badge = input<number | boolean | undefined | null>();\n\n protected abstract readonly itemTitle: Signal<string | ElementRef<Element>>;\n\n private readonly tooltipService = inject(SiTooltipService);\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly existingTooltip = inject(SiTooltipDirective, { optional: true, host: true });\n private readonly canShowTooltip = computed(\n () =>\n this.visuallyHideTitle() &&\n (!this.existingTooltip ||\n this.existingTooltip.isDisabled() ||\n !this.existingTooltip.siTooltip())\n );\n\n protected readonly badgeDot = computed(() =>\n typeof this.badge() === 'boolean' ? (this.badge() as boolean) : false\n );\n protected readonly badgeValue = computed(() => {\n const badge = this.badge();\n return typeof badge === 'number'\n ? `${badge > 99 ? '+' : ''}${Math.min(99, Math.round(badge))}`\n : undefined;\n });\n\n constructor() {\n super();\n this.tooltipService.createTooltip({\n element: this.elementRef,\n placement: () => 'auto',\n canShow: this.canShowTooltip,\n // Subclass field initializers run after this base constructor. So we cannot directly pass `this.itemTitle`.\n tooltip: () => this.itemTitle(),\n tooltipContext: () => undefined\n });\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.badge) {\n if (changes.badge.currentValue && !changes.badge.previousValue) {\n this.collapsibleActions?.badgeCount.update(count => count + 1);\n } else if (!changes.badge.currentValue && changes.badge.previousValue) {\n this.collapsibleActions?.badgeCount.update(count => count - 1);\n }\n }\n }\n\n protected readonly visuallyHideTitle = computed(() => !this.collapsibleActions?.mobileExpanded());\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, ElementRef, input, viewChild } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionIconItemBase } from './si-header-action-item-icon-base.directive';\n\n/** Adds an action item to the header. Should be located inside `.header-actions`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-action-item], a[si-header-action-item]',\n imports: [SiIconComponent],\n templateUrl: './si-header-action-item.component.html',\n providers: [SiTooltipService],\n host: {\n class: 'header-item focus-inside',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderActionItemComponent extends SiHeaderActionIconItemBase {\n /** The icon to be shown. */\n readonly icon = input.required<string>();\n\n protected readonly itemTitle = viewChild.required<ElementRef<HTMLElement>>('itemTitle');\n}\n","<si-icon class=\"icon\" [class.badge-dot]=\"badgeDot()\" [icon]=\"icon()\" />\n@if (badgeValue()) {\n <span class=\"badge-text\">{{ badgeValue() }}</span>\n}\n<ng-content select=\"si-avatar\" />\n<div #itemTitle class=\"item-title\" [class.visually-hidden]=\"visuallyHideTitle()\">\n <ng-content />\n</div>\n@if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiAvatarComponent } from '@siemens/element-ng/avatar';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\n\nimport { SiHeaderActionIconItemBase } from './si-header-action-item-icon-base.directive';\n\n/** Adds an account item to the header. Should be located inside `.header-actions`. */\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-account-item]',\n imports: [SiAvatarComponent, SiIconComponent],\n templateUrl: './si-header-account-item.component.html',\n styleUrl: './si-header-account-item.component.scss',\n providers: [SiTooltipService],\n host: {\n class: 'header-item focus-inside px-4 py-0',\n '[class.dropdown-toggle]': '!!dropdownTrigger'\n }\n})\nexport class SiHeaderAccountItemComponent extends SiHeaderActionIconItemBase {\n /** Name of the account. */\n readonly name = input.required<string>();\n /** Initials of the account. If not provided, they will be calculated. */\n readonly initials = input<string>();\n /** URL to an image which should be shown instead of the initials. */\n readonly imageUrl = input<string>();\n\n protected readonly itemTitle = this.name;\n}\n","<si-avatar\n size=\"small\"\n color=\"0\"\n [altText]=\"name()\"\n [initials]=\"initials()\"\n [imageUrl]=\"imageUrl()\"\n/>\n<div class=\"item-title\" aria-hidden=\"true\" [class.d-none]=\"visuallyHideTitle()\">\n {{ name() }}\n</div>\n@if (badgeValue()) {\n <div class=\"badge-text\">{{ badgeValue() }}</div>\n}\n@if (dropdownTrigger) {\n <si-icon class=\"dropdown-caret\" [icon]=\"icons.elementDown2\" />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, input } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\n\nimport { SiHeaderActionItemBase } from './si-header-action-item.base';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'button[si-header-selection-item]',\n imports: [SiIconComponent],\n templateUrl: './si-header-selection-item.component.html',\n host: {\n class: 'header-item header-selection-item focus-inside dropdown-toggle',\n '[class.show]': 'open()'\n }\n})\nexport class SiHeaderSelectionItemComponent extends SiHeaderActionItemBase {\n /**\n * Sets the open state which will only affect the arrow. Only use this property when not using {@link SiHeaderDropdownTriggerDirective}.\n *\n * @defaultValue false\n */\n readonly open = input(false);\n}\n","<div class=\"item-title\">\n <ng-content />\n</div>\n<si-icon class=\"d-block dropdown-caret\" [icon]=\"icons.elementDown2\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n afterNextRender,\n Directive,\n ElementRef,\n HostListener,\n inject,\n Injector,\n OnInit,\n signal\n} from '@angular/core';\n\n/** The siemens logo. Should be located inside `.header-brand`. */\n@Directive({\n selector: 'si-header-logo, [siHeaderLogo]',\n host: {\n class: 'header-logo px-6 focus-inside',\n '[attr.aria-label]': 'logoText()'\n }\n})\nexport class SiHeaderLogoDirective implements OnInit {\n protected readonly logoText = signal<string | undefined>(undefined);\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private injector = inject(Injector);\n\n ngOnInit(): void {\n this.updateLogoText();\n }\n\n @HostListener('window:theme-switch')\n protected updateLogoText(): void {\n afterNextRender(\n {\n read: () =>\n this.logoText.set(\n window\n .getComputedStyle(this.elementRef.nativeElement)\n .getPropertyValue('--element-brand-logo-text')\n .replace(/^[\"']|[\"']$/g, '')\n )\n },\n { injector: this.injector }\n );\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-header-actions',\n host: { class: 'header-actions' }\n})\nexport class SiHeaderActionsDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'si-header-brand',\n host: { class: 'header-brand' }\n})\nexport class SiHeaderBrandDirective {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, OnDestroy } from '@angular/core';\nimport { elementThumbnails } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from './si-application-header.component';\n\n@Component({\n selector: 'si-header-navigation',\n imports: [SiTranslatePipe, SiIconComponent],\n templateUrl: './si-header-navigation.component.html',\n host: { class: 'header-navigation', role: 'navigation' }\n})\nexport class SiHeaderNavigationComponent implements OnDestroy {\n protected header = inject(SiApplicationHeaderComponent);\n protected readonly icons = addIcons({ elementThumbnails });\n\n constructor() {\n this.header.hasNavigation.set(true);\n }\n\n ngOnDestroy(): void {\n this.header.hasNavigation.set(false);\n }\n}\n","@if (header.launchpad()) {\n <button\n type=\"button\"\n [class]=\"`header-item focus-inside d-${header.expandBreakpoint()}-none`\"\n (click)=\"header.openLaunchpad()\"\n >\n <si-icon class=\"icon pe-5\" [icon]=\"icons.elementThumbnails\" />\n {{ header.launchpadLabel() | translate }}\n </button>\n}\n<ng-content />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { booleanAttribute, Component, HostListener, inject, input, model } from '@angular/core';\nimport { elementExport, elementFavorites, elementFavoritesFilled } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from '../si-application-header.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'a[si-launchpad-app]',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-launchpad-app.component.html',\n styleUrl: './si-launchpad-app.component.scss',\n host: {\n class: 'focus-inside',\n '[class.active]': 'active()',\n '[class.action]': 'action()'\n }\n})\nexport class SiLaunchpadAppComponent {\n /**\n * When `true`, an external link icon is shown to indicate the app opens in a new tab.\n *\n * @defaultValue false\n */\n readonly external = input(false, { transform: booleanAttribute });\n /**\n * When `true`, the app item is highlighted as the currently active application.\n *\n * @defaultValue false\n */\n readonly active = input(false, { transform: booleanAttribute });\n /**\n * When `true`, a toggle button is shown to allow the user to mark or unmark this app as a favorite.\n *\n * @defaultValue false\n */\n readonly enableFavoriteToggle = input(false, { transform: booleanAttribute });\n /**\n * Whether this app is currently marked as a favorite by the user.\n *\n * @defaultValue false\n */\n readonly favorite = model(false);\n /**\n * When `true`, the item is styled as an action entry rather than a regular app link.\n *\n * @defaultValue false\n */\n readonly action = input(false, { transform: booleanAttribute });\n\n /** URL of the app icon. */\n readonly iconUrl = input<string>();\n /** CSS class applied to the app icon element. */\n readonly iconClass = input<string>();\n /**\n * Aria-label for the external link icon.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:Open in new tab`)\n * ```\n */\n readonly externalLinkText = input<TranslatableString>(\n t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:Open in new tab`)\n );\n\n protected readonly icons = addIcons({ elementExport, elementFavorites, elementFavoritesFilled });\n\n private header = inject(SiApplicationHeaderComponent);\n\n @HostListener('keydown.space', ['$event'])\n protected favoriteClicked(event: Event): void {\n event.stopPropagation();\n event.preventDefault();\n this.favorite.update(old => !old);\n }\n\n @HostListener('click') protected click(): void {\n this.header.closeLaunchpad();\n }\n}\n","@if (iconUrl()) {\n <img alt=\"\" width=\"64\" height=\"64\" class=\"app-icon\" [src]=\"iconUrl()\" />\n} @else if (iconClass()) {\n <si-icon class=\"app-icon\" [icon]=\"iconClass()!\" />\n}\n<div class=\"app-text\">\n <div class=\"si-h4 d-flex align-items-center mw-100 gap-1\">\n <span class=\"text-truncate\">\n <ng-content select=\"[app-name]\" />\n </span>\n @if (external()) {\n <si-icon\n class=\"icon\"\n [icon]=\"icons.elementExport\"\n [attr.aria-label]=\"externalLinkText() | translate\"\n />\n }\n </div>\n <div class=\"si-body text-secondary mt-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n </div>\n</div>\n@if (enableFavoriteToggle()) {\n <si-icon\n class=\"icon favorite-icon\"\n [class.is-favorite]=\"favorite()\"\n [icon]=\"favorite() ? icons.elementFavoritesFilled : icons.elementFavorites\"\n (click)=\"favoriteClicked($event)\"\n />\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Component, inject, input, output } from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiLaunchpadAppComponent } from './si-launchpad-app.component';\nimport { App, AppCategory, FavoriteChangeEvent } from './si-launchpad.model';\n\n@Component({\n selector: 'si-launchpad-category',\n imports: [SiLaunchpadAppComponent, SiTranslatePipe, RouterLinkActive, RouterLink],\n templateUrl: './si-launchpad-category.component.html',\n host: {\n class: 'd-block',\n '[class.has-title]': '!!category().name'\n }\n})\nexport class SiLaunchpadCategoryComponent {\n readonly category = input.required<AppCategory>();\n /** @defaultValue false */\n readonly enableFavorites = input(false);\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n\n protected toggleFavorite(app: App, favorite: boolean): void {\n this.favoriteChange.emit({ app, favorite });\n }\n\n protected isFavoriteToggleDisabled(app: App): boolean {\n return '_noFavorite' in app && !!app._noFavorite;\n }\n}\n","@if (category().name) {\n <div class=\"si-h4 launchpad-category-title mt-4 mb-6\">\n {{ category().name | translate }}\n </div>\n}\n<div class=\"d-flex flex-wrap gap-4\">\n @for (app of category().apps; track app) {\n @switch (app.type) {\n @case ('router-link') {\n <a\n si-launchpad-app\n routerLinkActive=\"active\"\n [routerLinkActiveOptions]=\"app.activeMatchOptions ?? { exact: false }\"\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n [favorite]=\"!!app.favorite\"\n [routerLink]=\"app.routerLink\"\n [queryParams]=\"app.extras?.queryParams\"\n [queryParamsHandling]=\"app.extras?.queryParamsHandling\"\n [fragment]=\"app.extras?.fragment\"\n [state]=\"app.extras?.state\"\n [relativeTo]=\"app.extras?.relativeTo ?? this.activatedRoute\"\n [preserveFragment]=\"app.extras?.preserveFragment\"\n [skipLocationChange]=\"app.extras?.skipLocationChange\"\n [replaceUrl]=\"app.extras?.replaceUrl\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n @default {\n <!--fallback for existing apps that do not have a type defined -->\n <a\n si-launchpad-app\n [enableFavoriteToggle]=\"enableFavorites() && !isFavoriteToggleDisabled(app)\"\n [favorite]=\"!!app.favorite\"\n [href]=\"app.href\"\n [target]=\"app.target ?? ''\"\n [active]=\"app.active\"\n [external]=\"app.external\"\n [iconUrl]=\"app.iconUrl\"\n [iconClass]=\"app.iconClass\"\n (favoriteChange)=\"toggleFavorite(app, $event)\"\n >\n <span app-name>{{ app.name | translate }}</span>\n <span app-systemName>{{ app.systemName | translate }}</span>\n </a>\n }\n }\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { booleanAttribute, Component, computed, inject, input, output } from '@angular/core';\nimport { elementCancel, elementDown2 } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiLinkModule } from '@siemens/element-ng/link';\nimport { SiTranslatePipe, t, TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiApplicationHeaderComponent } from '../si-application-header.component';\nimport { SiLaunchpadCategoryComponent } from './si-launchpad-category.component';\nimport { App, AppCategory, FavoriteChangeEvent } from './si-launchpad.model';\n\n@Component({\n selector: 'si-launchpad-factory',\n imports: [\n A11yModule,\n SiLinkModule,\n SiTranslatePipe,\n SiLaunchpadCategoryComponent,\n SiIconComponent\n ],\n templateUrl: './si-launchpad-factory.component.html',\n styleUrl: './si-launchpad-factory.component.scss'\n})\nexport class SiLaunchpadFactoryComponent {\n /**\n * Text to close the launchpad. Needed for a11y.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.CLOSE:Close launchpad`)\n * ```\n */\n readonly closeText = input(t(() => $localize`:@@SI_LAUNCHPAD.CLOSE:Close launchpad`));\n\n /**\n * Title of the launchpad.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`)\n * ```\n */\n readonly titleText = input(t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch app`));\n\n /**\n * Subtitle of the launchpad.\n * When not provided, no subtitle is displayed.\n */\n readonly subtitleText = input<TranslatableString>();\n\n /** All app items shown in the launchpad. */\n readonly apps = input.required<App[] | AppCategory[]>();\n\n /**\n * Allow the user to select favorite apps which will then be displayed at the top.\n *\n * @defaultValue false\n */\n readonly enableFavorites = input(false, { transform: booleanAttribute });\n\n /**\n * Title of the favorite apps section.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.FAVORITE_APPS:Favorites`)\n * ```\n */\n readonly favoriteAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.FAVORITE_APPS:Favorites`));\n\n /**\n * Title of the show more apps button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.SHOW_MORE:Show more`)\n * ```\n */\n readonly showMoreAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.SHOW_MORE:Show more`));\n\n /** @deprecated This input no longer has an effect. {@link showMoreAppsText} is shown in all cases. */\n readonly showLessAppsText = input();\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected showAllApps = false;\n protected readonly allAppsId = '__si-launchpad-factory-all-apps';\n protected readonly categories = computed(() => {\n const apps = this.apps();\n if (this.isCategories(apps)) {\n return apps;\n }\n return [{ name: '', apps: [...apps] }];\n });\n protected readonly favorites = computed(() =>\n this.apps()\n .flatMap(app => ('apps' in app ? app.apps : (app as App)))\n .filter(app => app.favorite)\n );\n protected readonly hasFavorites = computed(() => this.favorites().length > 0);\n protected readonly icons = addIcons({ elementDown2, elementCancel });\n private header = inject(SiApplicationHeaderComponent);\n\n protected closeLaunchpad(): void {\n this.header.closeLaunchpad();\n }\n\n protected toggleFavorite(event: FavoriteChangeEvent): void {\n this.favoriteChange.emit(event);\n }\n\n protected escape(): void {\n this.closeLaunchpad();\n }\n\n protected isCategories(items: App[] | AppCategory[]): items is AppCategory[] {\n return items.some(item => 'apps' in item);\n }\n}\n","<!-- temporary until old primary-navbar is removed -->\n<div\n class=\"app-switcher gap-6 g-5 g-sm-9 container-fluid\"\n cdkTrapFocus\n cdkTrapFocusAutoCapture\n (keydown.escape)=\"escape()\"\n>\n @if (titleText()) {\n <div class=\"apps-header\">\n <span>\n <p class=\"si-h4 lh-1 m-0\">{{ titleText() | translate }}</p>\n @if (subtitleText()) {\n <p class=\"si-body text-secondary mt-4 mb-0\">{{ subtitleText() | translate }}</p>\n }\n </span>\n <button\n type=\"button\"\n class=\"btn btn-circle btn-tertiary-ghost\"\n [attr.aria-label]=\"closeText() | translate\"\n (click)=\"closeLaunchpad()\"\n >\n <si-icon [icon]=\"icons.elementCancel\" />\n </button>\n </div>\n }\n <div class=\"apps-scroll ms-n2 ps-2\">\n @if (enableFavorites() && hasFavorites()) {\n <si-launchpad-category\n [category]=\"{ name: favoriteAppsText(), apps: favorites() }\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n [attr.aria-expanded]=\"showAllApps\"\n [attr.aria-controls]=\"allAppsId\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ showMoreAppsText() | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n\n <div class=\"all-apps\" [id]=\"allAppsId\">\n @if (!enableFavorites() || !hasFavorites() || showAllApps) {\n @for (category of categories(); track category.name) {\n <si-launchpad-category\n [class.pt-6]=\"!!category.name && (hasFavorites() || !$first)\"\n [category]=\"category\"\n [enableFavorites]=\"enableFavorites()\"\n (favoriteChange)=\"toggleFavorite($event)\"\n />\n }\n }\n </div>\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-application-header.component';\nexport * from './si-account-details.component';\nexport * from './si-header-navigation-item.component';\nexport * from './si-header-collapsible-actions.component';\nexport * from './si-header-action-item.component';\nexport * from './si-header-account-item.component';\nexport * from './si-header-selection-item.component';\nexport * from './si-header-logo.directive';\nexport * from './si-header-actions.directive';\nexport * from './si-header-brand.directive';\nexport * from './si-header-navigation.component';\nexport * from './launchpad/si-launchpad-factory.component';\nexport * from './launchpad/si-launchpad.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { inject, ElementRef, Directive, input, booleanAttribute, signal, computed, contentChildren, contentChild, ChangeDetectorRef, INJECTOR, NgModule } from '@angular/core';
3
+ import { takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
3
4
  import { ResizeObserverService } from '@siemens/element-ng/resize-observer';
4
5
  import { map, distinctUntilChanged, shareReplay, switchMap, startWith, auditTime } from 'rxjs/operators';
5
- import { toObservable } from '@angular/core/rxjs-interop';
6
6
  import { BehaviorSubject, of, combineLatest } from 'rxjs';
7
7
 
8
8
  /**
@@ -22,11 +22,12 @@ class SiAutoCollapsableListMeasurable {
22
22
  * .pipe(
23
23
  * map(size => size.width),
24
24
  * distinctUntilChanged(),
25
- * shareReplay(1)
25
+ * takeUntilDestroyed(),
26
+ * shareReplay({ bufferSize: 1, refCount: true })
26
27
  * )
27
28
  * ```
28
29
  */
29
- size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(map(size => size.width), distinctUntilChanged(), shareReplay(1));
30
+ size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(map(size => size.width), distinctUntilChanged(), takeUntilDestroyed(), shareReplay({ bufferSize: 1, refCount: true }));
30
31
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiAutoCollapsableListMeasurable, deps: [], target: i0.ɵɵFactoryTarget.Directive });
31
32
  static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.8", type: SiAutoCollapsableListMeasurable, isStandalone: true, ngImport: i0 });
32
33
  }
@@ -163,11 +164,11 @@ class SiAutoCollapsableListDirective {
163
164
  computedGap = 0;
164
165
  injector = inject(INJECTOR);
165
166
  ngAfterViewInit() {
166
- if (this.siAutoCollapsableList()) {
167
+ if (this.siAutoCollapsableList() && !this.resizeSubscription) {
167
168
  this.readGapSize();
168
169
  this.setupResizeListener();
169
170
  }
170
- else {
171
+ else if (!this.siAutoCollapsableList()) {
171
172
  this.reset();
172
173
  }
173
174
  }
@@ -178,6 +179,7 @@ class SiAutoCollapsableListDirective {
178
179
  this.reset();
179
180
  }
180
181
  else if (siAutoCollapsableList && !this.resizeSubscription && this.items()) {
182
+ this.readGapSize();
181
183
  this.setupResizeListener();
182
184
  }
183
185
  }
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-auto-collapsable-list.mjs","sources":["../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-measurable.class.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.module.ts","../../../../projects/element-ng/auto-collapsable-list/index.ts","../../../../projects/element-ng/auto-collapsable-list/siemens-element-ng-auto-collapsable-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject } from '@angular/core';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\n@Directive()\nexport class SiAutoCollapsableListMeasurable {\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly resizeObserverService = inject(ResizeObserverService);\n\n /**\n * Emits on element width changes.\n *\n * @defaultValue\n * ```\n * this.resizeObserverService\n * .observe(this.elementRef.nativeElement, 0, true, true)\n * .pipe(\n * map(size => size.width),\n * distinctUntilChanged(),\n * shareReplay(1)\n * )\n * ```\n */\n size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(\n map(size => size.width),\n distinctUntilChanged(),\n shareReplay(1)\n );\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { AfterViewInit, booleanAttribute, computed, Directive, input, signal } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListItem]',\n host: {\n '[class.visible]': 'isVisible()',\n '[class.invisible]': '!isVisible()',\n '[class.position-absolute]': '!isVisible()',\n // Ensure hidden items are behind the visible ones. Otherwise, the visible ones are not clickable\n '[class.z-n1]': '!isVisible()'\n },\n exportAs: 'siAutoCollapsableListItem'\n})\nexport class SiAutoCollapsableListItemDirective\n extends SiAutoCollapsableListMeasurable\n implements AfterViewInit\n{\n /**\n * Hide this item even if enough space is available.\n * When calculating the overall available size, this item is still considered when forceHide=true\n *\n * @defaultValue false\n */\n readonly forceHide = input(false, { transform: booleanAttribute });\n\n /**\n * True if enough space is available for this item.\n *\n * @defaultValue false\n */\n readonly canBeVisible = signal<boolean>(false);\n\n /**\n * True if this item is actually visible to the user\n */\n readonly isVisible = computed(() => this.canBeVisible() && !this.forceHide());\n\n ngAfterViewInit(): void {\n if (getComputedStyle(this.elementRef.nativeElement).display === 'inline') {\n console.error('siAutoCollapsibleListItem does not work on items with display=\"inline\"');\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListAdditionalContent]'\n})\nexport class SiAutoCollapsableListAdditionalContentDirective extends SiAutoCollapsableListMeasurable {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableListOverflowItem]',\n exportAs: 'siAutoCollapsableListOverflowItem'\n})\nexport class SiAutoCollapsableListOverflowItemDirective extends SiAutoCollapsableListItemDirective {\n /**\n * Number of hidden items.\n *\n * @defaultValue 0\n */\n hiddenItemCount = 0;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n contentChild,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n INJECTOR,\n input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { BehaviorSubject, combineLatest, of, Subscription } from 'rxjs';\nimport { auditTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableList]',\n host: {\n class: 'position-relative',\n '[class.overflow-hidden]': 'siAutoCollapsableList()'\n },\n exportAs: 'siAutoCollapsableList'\n})\nexport class SiAutoCollapsableListDirective implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * The items which are displayed in the siAutoCollapsableList.\n */\n readonly items = contentChildren(SiAutoCollapsableListItemDirective);\n\n private readonly overflowItem = contentChild(SiAutoCollapsableListOverflowItemDirective);\n\n private readonly additionalContent = contentChildren(\n SiAutoCollapsableListAdditionalContentDirective\n );\n\n /**\n * Enables the auto-collapsing behavior. When `true`, items that overflow the container\n * are hidden and an overflow indicator item is shown instead.\n *\n * @defaultValue true\n */\n readonly siAutoCollapsableList = input(true, { transform: booleanAttribute });\n\n /**\n * The (flex) gap in pixels, will automatically be set if a pixel value is used in CSS.\n */\n readonly gap = input<number>();\n\n /**\n * The element which size is available for the content of the siAutoCollapsableList.\n *\n * @defaultValue undefined\n */\n readonly containerElement = input<HTMLElement | undefined | null>(undefined, {\n alias: 'siAutoCollapsableListContainerElement'\n });\n\n private resizeSubscription?: Subscription;\n private disableInitSubscription?: Subscription;\n private readonly elementRef = inject(ElementRef);\n private readonly resizeObserverService = inject(ResizeObserverService);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly containerElementSubject = new BehaviorSubject<HTMLElement | null>(\n this.elementRef.nativeElement\n );\n\n /**\n * The same as {@link gap}, but automatically read from the computed styles.\n * Used if not set by user.\n */\n private computedGap = 0;\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n if (this.siAutoCollapsableList()) {\n this.readGapSize();\n this.setupResizeListener();\n } else {\n this.reset();\n }\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.siAutoCollapsableList) {\n const siAutoCollapsableList = this.siAutoCollapsableList();\n if (!siAutoCollapsableList && this.resizeSubscription) {\n this.reset();\n } else if (siAutoCollapsableList && !this.resizeSubscription && this.items()) {\n this.setupResizeListener();\n }\n }\n\n if (changes.containerElement) {\n this.containerElementSubject.next(this.containerElement() ?? this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription?.unsubscribe();\n this.disableInitSubscription?.unsubscribe();\n this.containerElementSubject.complete();\n }\n\n private setupResizeListener(): void {\n this.disableInitSubscription?.unsubscribe();\n const containerSize$ = this.containerElementSubject.pipe(\n switchMap(element => this.resizeObserverService.observe(element!, 0, true, true)),\n map(size => size.width),\n distinctUntilChanged(),\n map(size => {\n const { paddingInlineStart, paddingInlineEnd } = getComputedStyle(\n this.containerElement() ?? this.elementRef.nativeElement\n );\n return size - parseFloat(paddingInlineStart) - parseFloat(paddingInlineEnd);\n })\n );\n\n const itemSizes$ = toObservable(this.items, { injector: this.injector }).pipe(\n startWith(this.items()),\n switchMap(items =>\n !items.length\n ? of([])\n : combineLatest(\n items.map(item =>\n item.size$.pipe(\n map(size => ({\n size,\n directive: item\n }))\n )\n )\n )\n )\n );\n const additionalContentSizes$ = toObservable(this.additionalContent, {\n injector: this.injector\n }).pipe(\n startWith(this.additionalContent()),\n switchMap(additionalContent => combineLatest(additionalContent.map(item => item.size$))),\n startWith([])\n );\n\n this.resizeSubscription = combineLatest([\n containerSize$,\n this.overflowItem()?.size$ ?? of(0),\n itemSizes$,\n additionalContentSizes$\n ])\n .pipe(auditTime(0))\n .subscribe(([containerSize, overflowItemSize, items, additionalContentSizes]) =>\n this.updateItemVisibility(containerSize, overflowItemSize, items, additionalContentSizes)\n );\n }\n\n private updateItemVisibility(\n containerSize: number,\n overflowItemSize: number,\n items: { size: number; directive: SiAutoCollapsableListItemDirective }[],\n additionalContent: number[]\n ): void {\n let remainingSpace = containerSize - additionalContent.reduce((a, b) => a + b, 0);\n\n const itemsRemaining = items.slice();\n\n const gap = this.gap() ?? this.computedGap;\n\n while (remainingSpace > 0 && itemsRemaining.length) {\n const item = itemsRemaining.shift()!;\n if (remainingSpace - item.size - gap - overflowItemSize >= 0) {\n // There is space for the item and an overflow item.\n item.directive.canBeVisible.set(true);\n remainingSpace -= item.size + gap;\n } else if (\n !itemsRemaining.length &&\n (remainingSpace - item.size >= 0 || overflowItemSize >= item.size)\n ) {\n // There are no other items remaining and there is enough space or the overflow item is biggger than the current one.\n item.directive.canBeVisible.set(true);\n remainingSpace = 0;\n } else {\n // There is no space for the item.\n remainingSpace = 0;\n item.directive.canBeVisible.set(false);\n }\n }\n itemsRemaining.forEach(item => item.directive.canBeVisible.set(false));\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n overflowItem.hiddenItemCount = this.items().filter(item => !item.canBeVisible()).length;\n overflowItem.canBeVisible.set(overflowItem.hiddenItemCount !== 0);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private reset(): void {\n this.resizeSubscription?.unsubscribe();\n this.resizeSubscription = undefined;\n this.disableInitSubscription = toObservable(this.items, { injector: this.injector }).subscribe(\n items =>\n queueMicrotask(() => {\n items.forEach(item => item.canBeVisible.set(true));\n })\n );\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n queueMicrotask(() => {\n overflowItem!.canBeVisible.set(false);\n overflowItem!.hiddenItemCount = 0;\n });\n }\n }\n\n private readGapSize(): void {\n const { gap } = getComputedStyle(this.containerElement() ?? this.elementRef.nativeElement);\n if (gap.endsWith('px') || gap === '0') {\n this.computedGap = parseFloat(gap);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\nimport { SiAutoCollapsableListDirective } from './si-auto-collapsable-list.directive';\n\n@NgModule({\n imports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ],\n exports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ]\n})\nexport class SiAutoCollapsableListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-auto-collapsable-list-item.directive';\nexport * from './si-auto-collapsable-list.directive';\nexport * from './si-auto-collapsable-list-overflow-item.directive';\nexport * from './si-auto-collapsable-list-measurable.class';\nexport * from './si-auto-collapsable-list-additional-content.directive';\nexport * from './si-auto-collapsable-list.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-auto-collapsable-list.mjs","sources":["../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-measurable.class.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-additional-content.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list-overflow-item.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.directive.ts","../../../../projects/element-ng/auto-collapsable-list/si-auto-collapsable-list.module.ts","../../../../projects/element-ng/auto-collapsable-list/index.ts","../../../../projects/element-ng/auto-collapsable-list/siemens-element-ng-auto-collapsable-list.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { distinctUntilChanged, map, shareReplay } from 'rxjs/operators';\n\n@Directive()\nexport class SiAutoCollapsableListMeasurable {\n protected readonly elementRef = inject(ElementRef<HTMLElement>);\n private readonly resizeObserverService = inject(ResizeObserverService);\n\n /**\n * Emits on element width changes.\n *\n * @defaultValue\n * ```\n * this.resizeObserverService\n * .observe(this.elementRef.nativeElement, 0, true, true)\n * .pipe(\n * map(size => size.width),\n * distinctUntilChanged(),\n * takeUntilDestroyed(),\n * shareReplay({ bufferSize: 1, refCount: true })\n * )\n * ```\n */\n size$ = this.resizeObserverService.observe(this.elementRef.nativeElement, 0, true, true).pipe(\n map(size => size.width),\n distinctUntilChanged(),\n takeUntilDestroyed(),\n shareReplay({ bufferSize: 1, refCount: true })\n );\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { AfterViewInit, booleanAttribute, computed, Directive, input, signal } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListItem]',\n host: {\n '[class.visible]': 'isVisible()',\n '[class.invisible]': '!isVisible()',\n '[class.position-absolute]': '!isVisible()',\n // Ensure hidden items are behind the visible ones. Otherwise, the visible ones are not clickable\n '[class.z-n1]': '!isVisible()'\n },\n exportAs: 'siAutoCollapsableListItem'\n})\nexport class SiAutoCollapsableListItemDirective\n extends SiAutoCollapsableListMeasurable\n implements AfterViewInit\n{\n /**\n * Hide this item even if enough space is available.\n * When calculating the overall available size, this item is still considered when forceHide=true\n *\n * @defaultValue false\n */\n readonly forceHide = input(false, { transform: booleanAttribute });\n\n /**\n * True if enough space is available for this item.\n *\n * @defaultValue false\n */\n readonly canBeVisible = signal<boolean>(false);\n\n /**\n * True if this item is actually visible to the user\n */\n readonly isVisible = computed(() => this.canBeVisible() && !this.forceHide());\n\n ngAfterViewInit(): void {\n if (getComputedStyle(this.elementRef.nativeElement).display === 'inline') {\n console.error('siAutoCollapsibleListItem does not work on items with display=\"inline\"');\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListMeasurable } from './si-auto-collapsable-list-measurable.class';\n\n@Directive({\n selector: '[siAutoCollapsableListAdditionalContent]'\n})\nexport class SiAutoCollapsableListAdditionalContentDirective extends SiAutoCollapsableListMeasurable {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive } from '@angular/core';\n\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableListOverflowItem]',\n exportAs: 'siAutoCollapsableListOverflowItem'\n})\nexport class SiAutoCollapsableListOverflowItemDirective extends SiAutoCollapsableListItemDirective {\n /**\n * Number of hidden items.\n *\n * @defaultValue 0\n */\n hiddenItemCount = 0;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n AfterViewInit,\n booleanAttribute,\n ChangeDetectorRef,\n contentChild,\n contentChildren,\n Directive,\n ElementRef,\n inject,\n INJECTOR,\n input,\n OnChanges,\n OnDestroy,\n SimpleChanges\n} from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { ResizeObserverService } from '@siemens/element-ng/resize-observer';\nimport { BehaviorSubject, combineLatest, of, Subscription } from 'rxjs';\nimport { auditTime, distinctUntilChanged, map, startWith, switchMap } from 'rxjs/operators';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\n\n@Directive({\n selector: '[siAutoCollapsableList]',\n host: {\n class: 'position-relative',\n '[class.overflow-hidden]': 'siAutoCollapsableList()'\n },\n exportAs: 'siAutoCollapsableList'\n})\nexport class SiAutoCollapsableListDirective implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * The items which are displayed in the siAutoCollapsableList.\n */\n readonly items = contentChildren(SiAutoCollapsableListItemDirective);\n\n private readonly overflowItem = contentChild(SiAutoCollapsableListOverflowItemDirective);\n\n private readonly additionalContent = contentChildren(\n SiAutoCollapsableListAdditionalContentDirective\n );\n\n /**\n * Enables the auto-collapsing behavior. When `true`, items that overflow the container\n * are hidden and an overflow indicator item is shown instead.\n *\n * @defaultValue true\n */\n readonly siAutoCollapsableList = input(true, { transform: booleanAttribute });\n\n /**\n * The (flex) gap in pixels, will automatically be set if a pixel value is used in CSS.\n */\n readonly gap = input<number>();\n\n /**\n * The element which size is available for the content of the siAutoCollapsableList.\n *\n * @defaultValue undefined\n */\n readonly containerElement = input<HTMLElement | undefined | null>(undefined, {\n alias: 'siAutoCollapsableListContainerElement'\n });\n\n private resizeSubscription?: Subscription;\n private disableInitSubscription?: Subscription;\n private readonly elementRef = inject(ElementRef);\n private readonly resizeObserverService = inject(ResizeObserverService);\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n private readonly containerElementSubject = new BehaviorSubject<HTMLElement | null>(\n this.elementRef.nativeElement\n );\n\n /**\n * The same as {@link gap}, but automatically read from the computed styles.\n * Used if not set by user.\n */\n private computedGap = 0;\n private injector = inject(INJECTOR);\n\n ngAfterViewInit(): void {\n if (this.siAutoCollapsableList() && !this.resizeSubscription) {\n this.readGapSize();\n this.setupResizeListener();\n } else if (!this.siAutoCollapsableList()) {\n this.reset();\n }\n }\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (changes.siAutoCollapsableList) {\n const siAutoCollapsableList = this.siAutoCollapsableList();\n if (!siAutoCollapsableList && this.resizeSubscription) {\n this.reset();\n } else if (siAutoCollapsableList && !this.resizeSubscription && this.items()) {\n this.readGapSize();\n this.setupResizeListener();\n }\n }\n\n if (changes.containerElement) {\n this.containerElementSubject.next(this.containerElement() ?? this.elementRef.nativeElement);\n }\n }\n\n ngOnDestroy(): void {\n this.resizeSubscription?.unsubscribe();\n this.disableInitSubscription?.unsubscribe();\n this.containerElementSubject.complete();\n }\n\n private setupResizeListener(): void {\n this.disableInitSubscription?.unsubscribe();\n const containerSize$ = this.containerElementSubject.pipe(\n switchMap(element => this.resizeObserverService.observe(element!, 0, true, true)),\n map(size => size.width),\n distinctUntilChanged(),\n map(size => {\n const { paddingInlineStart, paddingInlineEnd } = getComputedStyle(\n this.containerElement() ?? this.elementRef.nativeElement\n );\n return size - parseFloat(paddingInlineStart) - parseFloat(paddingInlineEnd);\n })\n );\n\n const itemSizes$ = toObservable(this.items, { injector: this.injector }).pipe(\n startWith(this.items()),\n switchMap(items =>\n !items.length\n ? of([])\n : combineLatest(\n items.map(item =>\n item.size$.pipe(\n map(size => ({\n size,\n directive: item\n }))\n )\n )\n )\n )\n );\n const additionalContentSizes$ = toObservable(this.additionalContent, {\n injector: this.injector\n }).pipe(\n startWith(this.additionalContent()),\n switchMap(additionalContent => combineLatest(additionalContent.map(item => item.size$))),\n startWith([])\n );\n\n this.resizeSubscription = combineLatest([\n containerSize$,\n this.overflowItem()?.size$ ?? of(0),\n itemSizes$,\n additionalContentSizes$\n ])\n .pipe(auditTime(0))\n .subscribe(([containerSize, overflowItemSize, items, additionalContentSizes]) =>\n this.updateItemVisibility(containerSize, overflowItemSize, items, additionalContentSizes)\n );\n }\n\n private updateItemVisibility(\n containerSize: number,\n overflowItemSize: number,\n items: { size: number; directive: SiAutoCollapsableListItemDirective }[],\n additionalContent: number[]\n ): void {\n let remainingSpace = containerSize - additionalContent.reduce((a, b) => a + b, 0);\n\n const itemsRemaining = items.slice();\n\n const gap = this.gap() ?? this.computedGap;\n\n while (remainingSpace > 0 && itemsRemaining.length) {\n const item = itemsRemaining.shift()!;\n if (remainingSpace - item.size - gap - overflowItemSize >= 0) {\n // There is space for the item and an overflow item.\n item.directive.canBeVisible.set(true);\n remainingSpace -= item.size + gap;\n } else if (\n !itemsRemaining.length &&\n (remainingSpace - item.size >= 0 || overflowItemSize >= item.size)\n ) {\n // There are no other items remaining and there is enough space or the overflow item is biggger than the current one.\n item.directive.canBeVisible.set(true);\n remainingSpace = 0;\n } else {\n // There is no space for the item.\n remainingSpace = 0;\n item.directive.canBeVisible.set(false);\n }\n }\n itemsRemaining.forEach(item => item.directive.canBeVisible.set(false));\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n overflowItem.hiddenItemCount = this.items().filter(item => !item.canBeVisible()).length;\n overflowItem.canBeVisible.set(overflowItem.hiddenItemCount !== 0);\n }\n this.changeDetectorRef.markForCheck();\n }\n\n private reset(): void {\n this.resizeSubscription?.unsubscribe();\n this.resizeSubscription = undefined;\n this.disableInitSubscription = toObservable(this.items, { injector: this.injector }).subscribe(\n items =>\n queueMicrotask(() => {\n items.forEach(item => item.canBeVisible.set(true));\n })\n );\n\n const overflowItem = this.overflowItem();\n if (overflowItem) {\n queueMicrotask(() => {\n overflowItem!.canBeVisible.set(false);\n overflowItem!.hiddenItemCount = 0;\n });\n }\n }\n\n private readGapSize(): void {\n const { gap } = getComputedStyle(this.containerElement() ?? this.elementRef.nativeElement);\n if (gap.endsWith('px') || gap === '0') {\n this.computedGap = parseFloat(gap);\n }\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiAutoCollapsableListAdditionalContentDirective } from './si-auto-collapsable-list-additional-content.directive';\nimport { SiAutoCollapsableListItemDirective } from './si-auto-collapsable-list-item.directive';\nimport { SiAutoCollapsableListOverflowItemDirective } from './si-auto-collapsable-list-overflow-item.directive';\nimport { SiAutoCollapsableListDirective } from './si-auto-collapsable-list.directive';\n\n@NgModule({\n imports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ],\n exports: [\n SiAutoCollapsableListAdditionalContentDirective,\n SiAutoCollapsableListDirective,\n SiAutoCollapsableListItemDirective,\n SiAutoCollapsableListOverflowItemDirective\n ]\n})\nexport class SiAutoCollapsableListModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-auto-collapsable-list-item.directive';\nexport * from './si-auto-collapsable-list.directive';\nexport * from './si-auto-collapsable-list-overflow-item.directive';\nexport * from './si-auto-collapsable-list-measurable.class';\nexport * from './si-auto-collapsable-list-additional-content.directive';\nexport * from './si-auto-collapsable-list.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}