@siemens/element-ng 51.4.0 → 51.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/siemens-element-ng-about.mjs +2 -2
- package/fesm2022/siemens-element-ng-about.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-ag-grid.mjs +5 -4
- package/fesm2022/siemens-element-ng-ag-grid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +39 -9
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-breadcrumb.mjs +15 -28
- package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-carousel.mjs +6 -4
- package/fesm2022/siemens-element-ng-carousel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs +1 -1
- package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +11 -1
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +5 -2
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs +1 -1
- package/fesm2022/siemens-element-ng-datatable.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +17 -5
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-empty-state.mjs +2 -2
- package/fesm2022/siemens-element-ng-empty-state.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +19 -5
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs +1 -1
- package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs +7 -4
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-loading-spinner.mjs +21 -7
- package/fesm2022/siemens-element-ng-loading-spinner.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-maplibre.mjs +2 -2
- package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +4 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs +9 -0
- package/fesm2022/siemens-element-ng-markdown-extensions-mermaid.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-markdown.mjs +6 -2
- package/fesm2022/siemens-element-ng-markdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +6 -6
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-modal.mjs +4 -3
- package/fesm2022/siemens-element-ng-modal.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs +10 -4
- package/fesm2022/siemens-element-ng-navbar-vertical-next.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +12 -6
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-notification-item.mjs +2 -2
- package/fesm2022/siemens-element-ng-notification-item.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-pills-input.mjs +5 -4
- package/fesm2022/siemens-element-ng-pills-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs +1 -1
- package/fesm2022/siemens-element-ng-popover-legacy.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-popover.mjs +33 -6
- package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs +1 -1
- package/fesm2022/siemens-element-ng-result-details-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-select.mjs +3 -3
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +17 -7
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-skip-links.mjs +18 -4
- package/fesm2022/siemens-element-ng-skip-links.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs +1 -1
- package/fesm2022/siemens-element-ng-source-chip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs +2 -2
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs +1 -1
- package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +3 -4
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +2 -2
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/package.json +6 -6
- package/schematics/utils/ts-compiler-host.js +21 -0
- package/template-i18n.json +2 -0
- package/types/siemens-element-ng-ag-grid.d.ts +1 -0
- package/types/siemens-element-ng-application-header.d.ts +11 -2
- package/types/siemens-element-ng-breadcrumb.d.ts +3 -6
- package/types/siemens-element-ng-common.d.ts +23 -3
- package/types/siemens-element-ng-dashboard.d.ts +4 -1
- package/types/siemens-element-ng-list-details.d.ts +2 -0
- package/types/siemens-element-ng-loading-spinner.d.ts +11 -4
- package/types/siemens-element-ng-markdown-extensions-katex.d.ts +4 -1
- package/types/siemens-element-ng-markdown-extensions-mermaid.d.ts +9 -0
- package/types/siemens-element-ng-navbar-vertical-next.d.ts +2 -1
- package/types/siemens-element-ng-navbar-vertical.d.ts +2 -2
- package/types/siemens-element-ng-popover.d.ts +18 -1
- package/types/siemens-element-ng-side-panel.d.ts +7 -2
- package/types/siemens-element-ng-skip-links.d.ts +4 -2
- package/types/siemens-element-ng-translate.d.ts +2 -0
|
@@ -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, ElementRef, input, viewChild } from '@angular/core';\nimport { SiAvatarComponent } from '@siemens/element-ng/avatar';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\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, SiTranslatePipe],\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 protected readonly itemTitle = viewChild.required('itemTitle', { read: ElementRef });\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 * Accessible label for the account item.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_APPLICATION_HEADER.ACCOUNT:Account of {{name}}`)\n * ```\n */\n readonly accountItemLabel = input(\n t(() => $localize`:@@SI_APPLICATION_HEADER.ACCOUNT:Account of {{name}}`)\n );\n}\n","<si-avatar\n size=\"small\"\n color=\"0\"\n aria-hidden=\"true\"\n [altText]=\"name()\"\n [initials]=\"initials()\"\n [imageUrl]=\"imageUrl()\"\n/>\n<div #itemTitle class=\"item-title\" [class.visually-hidden]=\"visuallyHideTitle()\">\n {{ accountItemLabel() | translate: { name: 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 {\n booleanAttribute,\n Component,\n ElementRef,\n HostListener,\n inject,\n input,\n model,\n TemplateRef,\n viewChild\n} from '@angular/core';\nimport { elementExport, elementFavorites, elementFavoritesFilled } from '@siemens/element-icons';\nimport { addIcons, SiIconComponent } from '@siemens/element-ng/icon';\nimport { SiTooltipService } from '@siemens/element-ng/tooltip';\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 providers: [SiTooltipService],\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 private readonly appName = viewChild<ElementRef<HTMLElement>>('appName');\n private readonly systemName = viewChild<ElementRef<HTMLElement>>('systemName');\n private readonly tooltip = viewChild.required<TemplateRef<unknown>>('appTooltip');\n\n constructor() {\n inject(SiTooltipService).createTooltip({\n element: inject(ElementRef),\n placement: () => 'auto',\n canShow: () => {\n const appName = this.appName()?.nativeElement;\n const systemName = this.systemName()?.nativeElement;\n return !!(\n (appName && appName.scrollWidth > appName.clientWidth) ||\n (systemName && systemName.scrollWidth > systemName.clientWidth)\n );\n },\n tooltip: this.tooltip,\n tooltipContext: () => undefined\n });\n }\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 #appName 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 #systemName class=\"si-body text-secondary mt-2 text-truncate mw-100\">\n <ng-content select=\"[app-systemName]\" />\n </div>\n</div>\n<ng-template #appTooltip>\n <div class=\"si-body-sbold\">{{ appName.textContent?.trim() }}</div>\n @if (systemName.textContent?.trim(); as systemNameText) {\n <div class=\"si-body\">{{ systemNameText }}</div>\n }\n</ng-template>\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,9 +1,11 @@
|
|
|
1
|
+
import { CdkMenuTrigger } from '@angular/cdk/menu';
|
|
1
2
|
import { NgTemplateOutlet } from '@angular/common';
|
|
2
3
|
import * as i0 from '@angular/core';
|
|
3
|
-
import { Directive, input, booleanAttribute, viewChild, viewChildren, inject, ChangeDetectorRef,
|
|
4
|
+
import { Directive, input, booleanAttribute, viewChild, viewChildren, inject, ChangeDetectorRef, ChangeDetectionStrategy, Component, NgModule } from '@angular/core';
|
|
4
5
|
import { elementRight2, elementBreadcrumbRoot } from '@siemens/element-icons';
|
|
5
6
|
import { addIcons, SiIconComponent } from '@siemens/element-ng/icon';
|
|
6
7
|
import { SiLinkDirective } from '@siemens/element-ng/link';
|
|
8
|
+
import { SiMenuDirective, SiMenuItemComponent } from '@siemens/element-ng/menu';
|
|
7
9
|
import { SiResizeObserverDirective } from '@siemens/element-ng/resize-observer';
|
|
8
10
|
import { SiTooltipOverflowDirective } from '@siemens/element-ng/tooltip';
|
|
9
11
|
import { t, injectSiTranslateService, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
@@ -38,7 +40,6 @@ const NUMBER_OF_SHOWN_ITEMS_AT_END = 2;
|
|
|
38
40
|
* Defines the width of the root icon in pixels.
|
|
39
41
|
*/
|
|
40
42
|
const ROOT_ICON_WIDTH = 24;
|
|
41
|
-
let controlIdCounter = 1;
|
|
42
43
|
class SiBreadcrumbComponent {
|
|
43
44
|
/** Array of breadcrumb items. */
|
|
44
45
|
items = input.required(/* @ts-ignore */
|
|
@@ -66,14 +67,14 @@ class SiBreadcrumbComponent {
|
|
|
66
67
|
itemsHidden = [];
|
|
67
68
|
breadcrumbShortened = false;
|
|
68
69
|
ellipsesLevel = 0;
|
|
69
|
-
|
|
70
|
-
breadcrumbDropdownOpen = undefined;
|
|
71
|
-
controlId = `__si-breadcrumb-${controlIdCounter++}-`;
|
|
70
|
+
hiddenItemsLabel = t(() => $localize `:@@SI_BREADCRUMB.HIDDEN_ITEMS:Hidden breadcrumb items`);
|
|
72
71
|
icons = addIcons({ elementBreadcrumbRoot, elementRight2 });
|
|
73
72
|
breadcrumbElement = viewChild.required('breadcrumb', /* @ts-ignore */
|
|
74
73
|
...(ngDevMode ? [{ debugName: "breadcrumbElement" }] : /* istanbul ignore next */ []));
|
|
75
74
|
breadcrumbElements = viewChildren('breadcrumbItem', /* @ts-ignore */
|
|
76
75
|
...(ngDevMode ? [{ debugName: "breadcrumbElements" }] : /* istanbul ignore next */ []));
|
|
76
|
+
breadcrumbMenu = viewChild(CdkMenuTrigger, /* @ts-ignore */
|
|
77
|
+
...(ngDevMode ? [{ debugName: "breadcrumbMenu" }] : /* istanbul ignore next */ []));
|
|
77
78
|
changeDetector = inject(ChangeDetectorRef);
|
|
78
79
|
translate = injectSiTranslateService();
|
|
79
80
|
ngOnChanges() {
|
|
@@ -109,7 +110,6 @@ class SiBreadcrumbComponent {
|
|
|
109
110
|
this.itemsShown = enumeratedItems;
|
|
110
111
|
this.itemsHidden = [];
|
|
111
112
|
this.breadcrumbShortened = false;
|
|
112
|
-
this.breadcrumbDropdownOpen = undefined;
|
|
113
113
|
this.itemsProcessed = true;
|
|
114
114
|
this.resetBreadcrumb();
|
|
115
115
|
});
|
|
@@ -118,32 +118,19 @@ class SiBreadcrumbComponent {
|
|
|
118
118
|
this.itemsShown = [];
|
|
119
119
|
this.itemsHidden = [];
|
|
120
120
|
this.breadcrumbShortened = false;
|
|
121
|
-
this.breadcrumbDropdownOpen = undefined;
|
|
122
121
|
this.itemsProcessed = true;
|
|
123
122
|
this.resetBreadcrumb();
|
|
124
123
|
}
|
|
125
124
|
}
|
|
126
|
-
/** Toggle the ellipses dropdown to show the hidden breadcrumb levels. */
|
|
127
|
-
toggleBreadcrumbDropdown(itemLevel) {
|
|
128
|
-
this.breadcrumbDropdownOpen = this.breadcrumbDropdownOpen === itemLevel ? undefined : itemLevel;
|
|
129
|
-
}
|
|
130
|
-
// Close dropdown on click anywhere else
|
|
131
|
-
documentClick(targetElement) {
|
|
132
|
-
if (this.breadcrumbDropdownOpen) {
|
|
133
|
-
if (!this.breadcrumbElement().nativeElement.contains(targetElement)) {
|
|
134
|
-
// Close all dropdowns.
|
|
135
|
-
this.breadcrumbDropdownOpen = undefined;
|
|
136
|
-
}
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
125
|
resetBreadcrumb() {
|
|
126
|
+
this.breadcrumbMenu()?.close();
|
|
140
127
|
if (this.itemsProcessed) {
|
|
141
128
|
this.numberOfItems = this.items().length;
|
|
142
129
|
// Add an additional the ellipses item to the end of the shownItems (breadcrumb items).
|
|
143
130
|
const ellipsesItem = { title: '...', level: this.numberOfItems };
|
|
144
131
|
this.itemsShown.push(ellipsesItem);
|
|
145
132
|
if (this.breadcrumbShortened) {
|
|
146
|
-
// If the breadcrumb was shortened before, remove the ellipses and add back itemsHidden (breadcrumb
|
|
133
|
+
// If the breadcrumb was shortened before, remove the ellipses and add back itemsHidden (breadcrumb menu items).
|
|
147
134
|
this.breadcrumbShortened = false;
|
|
148
135
|
this.itemsShown.splice(this.ellipsesLevel, 1, ...this.itemsHidden);
|
|
149
136
|
this.itemsHidden = [];
|
|
@@ -209,7 +196,7 @@ class SiBreadcrumbComponent {
|
|
|
209
196
|
}
|
|
210
197
|
}
|
|
211
198
|
});
|
|
212
|
-
// If breadcrumbShortened is true, move the items that do not fit to itemsHidden (breadcrumb
|
|
199
|
+
// If breadcrumbShortened is true, move the items that do not fit to itemsHidden (breadcrumb menu items) and add ellipses item.
|
|
213
200
|
if (this.breadcrumbShortened) {
|
|
214
201
|
this.ellipsesLevel = counter;
|
|
215
202
|
this.itemsHidden = this.itemsShown.slice(this.ellipsesLevel, reverseCounter);
|
|
@@ -220,23 +207,23 @@ class SiBreadcrumbComponent {
|
|
|
220
207
|
this.changeDetector.detectChanges();
|
|
221
208
|
}
|
|
222
209
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
223
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiBreadcrumbComponent, isStandalone: true, selector: "si-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, showRootAsText: { classPropertyName: "showRootAsText", publicName: "showRootAsText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } },
|
|
210
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiBreadcrumbComponent, isStandalone: true, selector: "si-breadcrumb", inputs: { items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, showRootAsText: { classPropertyName: "showRootAsText", publicName: "showRootAsText", isSignal: true, isRequired: false, transformFunction: null }, ariaLabel: { classPropertyName: "ariaLabel", publicName: "ariaLabel", isSignal: true, isRequired: false, transformFunction: null } }, viewQueries: [{ propertyName: "breadcrumbElement", first: true, predicate: ["breadcrumb"], descendants: true, isSignal: true }, { propertyName: "breadcrumbElements", predicate: ["breadcrumbItem"], descendants: true, isSignal: true }, { propertyName: "breadcrumbMenu", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "<nav class=\"py-2\" [attr.aria-label]=\"ariaLabel() | translate\">\n <ol #breadcrumb class=\"breadcrumb\" (siResizeObserver)=\"resetBreadcrumb()\">\n @for (item of itemsShown; track $index) {\n @if (!breadcrumbShortened || item.level !== ellipsesLevel) {\n <li #breadcrumbItem class=\"item\" [class.current-item]=\"item.lastItem\">\n @if (!$first) {\n <si-icon class=\"d-block icon-sm separator flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item }\" />\n </li>\n }\n @if (breadcrumbShortened && item.level === ellipsesLevel) {\n <li class=\"item breadcrumb-ellipses-item\">\n @if (!$first) {\n <si-icon class=\"d-block icon-sm separator flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n <button\n type=\"button\"\n class=\"btn btn-link\"\n [attr.aria-label]=\"hiddenItemsLabel | translate\"\n [cdkMenuTriggerFor]=\"hiddenItemsTemplate\"\n >...</button\n >\n </li>\n }\n }\n </ol>\n</nav>\n\n<ng-template #itemTemplate let-item=\"item\" siBreadcrumbItemTemplate>\n <a\n class=\"breadcrumb-link text-nowrap\"\n activeClass=\"active\"\n ariaCurrent=\"page\"\n siTooltipOverflow\n [class.disable-router-link]=\"!item.link && !item.action && !item.href\"\n [class.text-secondary]=\"item.lastItem\"\n [siLink]=\"item\"\n [exactMatch]=\"true\"\n [attr.aria-label]=\"item.title\"\n [attr.aria-disabled]=\"!item.link && !item.href && !item.action\"\n >\n @if (item.level === 0) {\n <si-icon class=\"d-block icon-sm flip-rtl\" [icon]=\"icons.elementBreadcrumbRoot\" />\n } @else {\n <span>{{ item.title }}</span>\n }\n </a>\n</ng-template>\n\n<ng-template #hiddenItemsTemplate>\n <si-menu [attr.aria-label]=\"hiddenItemsLabel | translate\">\n @for (item of itemsHidden; track $index) {\n <a\n si-menu-item\n activeClass=\"active\"\n ariaCurrent=\"page\"\n [disabled]=\"!item.link && !item.action && !item.href\"\n [siLink]=\"item\"\n [exactMatch]=\"true\"\n >\n {{ item.title }}\n </a>\n }\n </si-menu>\n</ng-template>\n", styles: [".breadcrumb{flex-wrap:nowrap}.item{display:flex;align-items:center;flex-shrink:0}.item:not(.current-item) .breadcrumb-link{max-inline-size:24ch}.separator{color:var(--si-sys-color-text-secondary);margin-block:0;margin-inline:0}.disable-router-link,.disable-router-link:hover{pointer-events:none;color:var(--si-sys-color-text-disabled)}\n"], dependencies: [{ kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: SiLinkDirective, selector: "[siLink]", inputs: ["siLink", "siLinkDefaultTarget", "actionParam", "activeClass", "exactMatch", "ariaCurrent"], outputs: ["activeChange"], exportAs: ["siLink"] }, { kind: "directive", type: SiMenuDirective, selector: "si-menu" }, { kind: "component", type: SiMenuItemComponent, selector: "si-menu-item, a[si-menu-item], button[si-menu-item]" }, { kind: "directive", type: SiResizeObserverDirective, selector: "[siResizeObserver]", inputs: ["resizeThrottle", "emitInitial"], outputs: ["siResizeObserver"] }, { kind: "directive", type: SiTooltipOverflowDirective, selector: "[siTooltipOverflow]" }, { kind: "directive", type: SiBreadcrumbItemTemplateDirective, selector: "[siBreadcrumbItemTemplate]" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
|
|
224
211
|
}
|
|
225
212
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiBreadcrumbComponent, decorators: [{
|
|
226
213
|
type: Component,
|
|
227
214
|
args: [{ selector: 'si-breadcrumb', imports: [
|
|
215
|
+
CdkMenuTrigger,
|
|
228
216
|
NgTemplateOutlet,
|
|
229
217
|
SiIconComponent,
|
|
230
218
|
SiLinkDirective,
|
|
219
|
+
SiMenuDirective,
|
|
220
|
+
SiMenuItemComponent,
|
|
231
221
|
SiResizeObserverDirective,
|
|
232
222
|
SiTooltipOverflowDirective,
|
|
233
223
|
SiTranslatePipe,
|
|
234
224
|
SiBreadcrumbItemTemplateDirective
|
|
235
|
-
], changeDetection: ChangeDetectionStrategy.Eager, template: "<nav class=\"py-2\" [attr.aria-label]=\"ariaLabel() | translate\">\n <ol #breadcrumb class=\"breadcrumb\" (siResizeObserver)=\"resetBreadcrumb()\">\n @for (item of itemsShown; track $index
|
|
236
|
-
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], showRootAsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRootAsText", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], breadcrumbElement: [{ type: i0.ViewChild, args: ['breadcrumb', { isSignal: true }] }], breadcrumbElements: [{ type: i0.ViewChildren, args: ['breadcrumbItem', { isSignal: true }] }],
|
|
237
|
-
type: HostListener,
|
|
238
|
-
args: ['document:click', ['$event.target']]
|
|
239
|
-
}] } });
|
|
225
|
+
], changeDetection: ChangeDetectionStrategy.Eager, template: "<nav class=\"py-2\" [attr.aria-label]=\"ariaLabel() | translate\">\n <ol #breadcrumb class=\"breadcrumb\" (siResizeObserver)=\"resetBreadcrumb()\">\n @for (item of itemsShown; track $index) {\n @if (!breadcrumbShortened || item.level !== ellipsesLevel) {\n <li #breadcrumbItem class=\"item\" [class.current-item]=\"item.lastItem\">\n @if (!$first) {\n <si-icon class=\"d-block icon-sm separator flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n <ng-container *ngTemplateOutlet=\"itemTemplate; context: { item: item }\" />\n </li>\n }\n @if (breadcrumbShortened && item.level === ellipsesLevel) {\n <li class=\"item breadcrumb-ellipses-item\">\n @if (!$first) {\n <si-icon class=\"d-block icon-sm separator flip-rtl\" [icon]=\"icons.elementRight2\" />\n }\n <button\n type=\"button\"\n class=\"btn btn-link\"\n [attr.aria-label]=\"hiddenItemsLabel | translate\"\n [cdkMenuTriggerFor]=\"hiddenItemsTemplate\"\n >...</button\n >\n </li>\n }\n }\n </ol>\n</nav>\n\n<ng-template #itemTemplate let-item=\"item\" siBreadcrumbItemTemplate>\n <a\n class=\"breadcrumb-link text-nowrap\"\n activeClass=\"active\"\n ariaCurrent=\"page\"\n siTooltipOverflow\n [class.disable-router-link]=\"!item.link && !item.action && !item.href\"\n [class.text-secondary]=\"item.lastItem\"\n [siLink]=\"item\"\n [exactMatch]=\"true\"\n [attr.aria-label]=\"item.title\"\n [attr.aria-disabled]=\"!item.link && !item.href && !item.action\"\n >\n @if (item.level === 0) {\n <si-icon class=\"d-block icon-sm flip-rtl\" [icon]=\"icons.elementBreadcrumbRoot\" />\n } @else {\n <span>{{ item.title }}</span>\n }\n </a>\n</ng-template>\n\n<ng-template #hiddenItemsTemplate>\n <si-menu [attr.aria-label]=\"hiddenItemsLabel | translate\">\n @for (item of itemsHidden; track $index) {\n <a\n si-menu-item\n activeClass=\"active\"\n ariaCurrent=\"page\"\n [disabled]=\"!item.link && !item.action && !item.href\"\n [siLink]=\"item\"\n [exactMatch]=\"true\"\n >\n {{ item.title }}\n </a>\n }\n </si-menu>\n</ng-template>\n", styles: [".breadcrumb{flex-wrap:nowrap}.item{display:flex;align-items:center;flex-shrink:0}.item:not(.current-item) .breadcrumb-link{max-inline-size:24ch}.separator{color:var(--si-sys-color-text-secondary);margin-block:0;margin-inline:0}.disable-router-link,.disable-router-link:hover{pointer-events:none;color:var(--si-sys-color-text-disabled)}\n"] }]
|
|
226
|
+
}], propDecorators: { items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], showRootAsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showRootAsText", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], breadcrumbElement: [{ type: i0.ViewChild, args: ['breadcrumb', { isSignal: true }] }], breadcrumbElements: [{ type: i0.ViewChildren, args: ['breadcrumbItem', { isSignal: true }] }], breadcrumbMenu: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkMenuTrigger), { isSignal: true }] }] } });
|
|
240
227
|
|
|
241
228
|
/**
|
|
242
229
|
* Copyright (c) Siemens 2016 - 2026
|