@siemens/element-ng 49.1.0 → 49.2.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-application-header.mjs +10 -2
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-common.mjs +2 -2
- package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs +89 -95
- 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-select.mjs +2 -2
- package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs +14 -4
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/package.json +4 -4
- package/types/siemens-element-ng-application-header.d.ts +1 -0
- package/types/siemens-element-ng-common.d.ts +1 -1
- package/types/siemens-element-ng-file-uploader.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +3 -9
- package/types/siemens-element-ng-form.d.ts +1 -1
- package/types/siemens-element-ng-typeahead.d.ts +7 -2
|
@@ -767,8 +767,16 @@ class SiLaunchpadFactoryComponent {
|
|
|
767
767
|
isCategories(items) {
|
|
768
768
|
return items.some(item => 'apps' in item);
|
|
769
769
|
}
|
|
770
|
+
isFavoriteToggleDisabled(app) {
|
|
771
|
+
if ('_noFavorite' in app) {
|
|
772
|
+
return !!app._noFavorite;
|
|
773
|
+
}
|
|
774
|
+
else {
|
|
775
|
+
return false;
|
|
776
|
+
}
|
|
777
|
+
}
|
|
770
778
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
771
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLaunchpadFactoryComponent, isStandalone: true, selector: "si-launchpad-factory", inputs: { closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, subtitleText: { classPropertyName: "subtitleText", publicName: "subtitleText", isSignal: true, isRequired: false, transformFunction: null }, apps: { classPropertyName: "apps", publicName: "apps", isSignal: true, isRequired: true, transformFunction: null }, enableFavorites: { classPropertyName: "enableFavorites", publicName: "enableFavorites", isSignal: true, isRequired: false, transformFunction: null }, favoriteAppsText: { classPropertyName: "favoriteAppsText", publicName: "favoriteAppsText", isSignal: true, isRequired: false, transformFunction: null }, showMoreAppsText: { classPropertyName: "showMoreAppsText", publicName: "showMoreAppsText", isSignal: true, isRequired: false, transformFunction: null }, showLessAppsText: { classPropertyName: "showLessAppsText", publicName: "showLessAppsText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favoriteChange: "favoriteChange" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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() &&
|
|
779
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.0.8", type: SiLaunchpadFactoryComponent, isStandalone: true, selector: "si-launchpad-factory", inputs: { closeText: { classPropertyName: "closeText", publicName: "closeText", isSignal: true, isRequired: false, transformFunction: null }, titleText: { classPropertyName: "titleText", publicName: "titleText", isSignal: true, isRequired: false, transformFunction: null }, subtitleText: { classPropertyName: "subtitleText", publicName: "subtitleText", isSignal: true, isRequired: false, transformFunction: null }, apps: { classPropertyName: "apps", publicName: "apps", isSignal: true, isRequired: true, transformFunction: null }, enableFavorites: { classPropertyName: "enableFavorites", publicName: "enableFavorites", isSignal: true, isRequired: false, transformFunction: null }, favoriteAppsText: { classPropertyName: "favoriteAppsText", publicName: "favoriteAppsText", isSignal: true, isRequired: false, transformFunction: null }, showMoreAppsText: { classPropertyName: "showMoreAppsText", publicName: "showMoreAppsText", isSignal: true, isRequired: false, transformFunction: null }, showLessAppsText: { classPropertyName: "showLessAppsText", publicName: "showLessAppsText", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { favoriteChange: "favoriteChange" }, ngImport: i0, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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 </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"], dependencies: [{ kind: "ngmodule", type: A11yModule }, { kind: "directive", type: i1.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "ngmodule", type: SiLinkModule }, { kind: "component", type: SiLaunchpadAppComponent, selector: "a[si-launchpad-app]", inputs: ["external", "active", "enableFavoriteToggle", "favorite", "action", "iconUrl", "iconClass", "externalLinkText"], outputs: ["favoriteChange"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "directive", type: RouterLinkActive, selector: "[routerLinkActive]", inputs: ["routerLinkActiveOptions", "ariaCurrentWhenActive", "routerLinkActive"], outputs: ["isActiveChange"], exportAs: ["routerLinkActive"] }, { kind: "directive", type: RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
772
780
|
}
|
|
773
781
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiLaunchpadFactoryComponent, decorators: [{
|
|
774
782
|
type: Component,
|
|
@@ -780,7 +788,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImpor
|
|
|
780
788
|
SiIconComponent,
|
|
781
789
|
RouterLinkActive,
|
|
782
790
|
RouterLink
|
|
783
|
-
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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() &&
|
|
791
|
+
], changeDetection: ChangeDetectionStrategy.OnPush, template: "<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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 </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\n </div>\n</div>\n", styles: [".app-switcher{position:fixed;inset-block-start:calc(49px + var(--element-titlebar-spacing, 0px) + var(--element-system-banner-spacing, 0px));inset-inline:0;min-block-size:200px;max-block-size:calc(100vh - 48px - var(--element-titlebar-spacing, 0px) - var(--element-system-banner-spacing, 0px));padding:16px;display:flex;flex-direction:column;z-index:1033;background-color:var(--element-base-1)}@media(min-width:992px){.app-switcher{padding-block:16px;padding-inline:24px}}.apps-header{display:flex;align-items:center;justify-content:space-between}.apps-scroll{overflow-y:auto;padding-inline-end:16px;margin-inline-end:-16px}.btn-show-all{margin-block-start:16px;margin-block-end:8px}.btn-show-all.show{margin-block-end:24px}.btn-show-all.show:has(+div .launchpad-category-title){margin-block-end:0}\n"] }]
|
|
784
792
|
}], propDecorators: { closeText: [{ type: i0.Input, args: [{ isSignal: true, alias: "closeText", required: false }] }], titleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "titleText", required: false }] }], subtitleText: [{ type: i0.Input, args: [{ isSignal: true, alias: "subtitleText", required: false }] }], apps: [{ type: i0.Input, args: [{ isSignal: true, alias: "apps", required: true }] }], enableFavorites: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableFavorites", required: false }] }], favoriteAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "favoriteAppsText", required: false }] }], showMoreAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showMoreAppsText", required: false }] }], showLessAppsText: [{ type: i0.Input, args: [{ isSignal: true, alias: "showLessAppsText", required: false }] }], favoriteChange: [{ type: i0.Output, args: ["favoriteChange"] }] } });
|
|
785
793
|
|
|
786
794
|
/**
|
|
@@ -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-siemens-logo.component.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-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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Injector,\n input,\n OnDestroy,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\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 { defer, of, Subject } from 'rxjs';\nimport { map, skip, takeUntil } 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 changeDetection: ChangeDetectionStrategy.OnPush\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 readonly launchpad = input<TemplateRef<void>>();\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:Toggle 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 // defer is required to re-check the current breakpoint as it may change.\n readonly inlineDropdown = defer(() => {\n const expandBreakpoint = this.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 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.inlineDropdown\n .pipe(skip(1), takeUntil(this.closeMobileMenus))\n .subscribe(() => this.closeMobileMenus.next());\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 [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-lg\" [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-lg\" [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 [id]=\"id + '-launchpad'\">\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild\n} 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';\nimport { Subscription } from 'rxjs';\nimport { skip, takeUntil } from 'rxjs/operators';\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 changeDetection: ChangeDetectionStrategy.OnPush,\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:Toggle actions`)\n * ```\n */\n readonly mobileToggleLabel = input(\n t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Toggle 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 private inlineChangeSubscription?: Subscription;\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n this.inlineChangeSubscription?.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.inlineChangeSubscription = this.header.inlineDropdown\n .pipe(skip(1), takeUntil(this.header.closeMobileMenus))\n .subscribe(() => this.header.closeMobileMenus.next());\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-lg\" [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, HostListener, 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({})\nexport abstract class SiHeaderActionItemBase implements OnInit {\n /** @internal */\n dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, { optional: true });\n protected readonly icons = addIcons({ elementDown2 });\n\n private header = inject(SiApplicationHeaderComponent);\n\n ngOnInit(): void {\n if (this.dropdownTrigger) {\n this.header.closeMobileMenus.subscribe(() => this.dropdownTrigger!.close());\n }\n }\n\n @HostListener('click')\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 { computed, Directive, input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\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, OnInit\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 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 ngOnChanges(changes: SimpleChanges): void {\n if ('badge' in changes) {\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 get visuallyHideTitle(): boolean {\n return !this.collapsibleActions?.mobileExpanded();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\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 changeDetection: ChangeDetectionStrategy.OnPush,\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","<si-icon class=\"icon-lg\" [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 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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiAvatarComponent } from '@siemens/element-ng/avatar';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'header-item focus-inside p-4',\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","<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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { SiHeaderLogoDirective } from './si-header-logo.directive';\n\n/**\n * The siemens logo.\n * Should be located inside `.header-brand`.\n *\n * @deprecated Use the {@link SiHeaderLogoDirective} instead.\n * The new component will use the logo provided by the global theme instead\n * of containing a hard coded siemens logo.\n * ```html\n * // previous\n * <a si-header-siemens-logo routerLink=\"/\" aria-label=\"Siemens\" class=\"d-none d-md-flex\"></a>\n * // new\n * <a siHeaderLogo routerLink=\"/\" class=\"d-none d-md-flex\"></a>\n * ```\n *\n */\n@Component({\n selector: 'si-header-siemens-logo, [si-header-siemens-logo]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiHeaderSiemensLogoComponent extends SiHeaderLogoDirective {}\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-lg 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 ChangeDetectionStrategy,\n Component,\n HostListener,\n inject,\n input,\n model\n} 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'focus-inside',\n '[class.active]': 'active()',\n '[class.action]': 'action()'\n }\n})\nexport class SiLaunchpadAppComponent {\n /** @defaultValue false */\n readonly external = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly active = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly enableFavoriteToggle = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly favorite = model(false);\n /** @defaultValue false */\n readonly action = input(false, { transform: booleanAttribute });\n\n readonly iconUrl = input<string>();\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:External application`)\n * ```\n */\n readonly externalLinkText = input<TranslatableString>(\n t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:External application`)\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 { A11yModule } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output\n} from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\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 { SiLaunchpadAppComponent } from './si-launchpad-app.component';\nimport { App, AppCategory } from './si-launchpad.model';\n\nexport interface FavoriteChangeEvent {\n app: App;\n favorite: boolean;\n}\n\n@Component({\n selector: 'si-launchpad-factory',\n imports: [\n A11yModule,\n SiLinkModule,\n SiTranslatePipe,\n SiLaunchpadAppComponent,\n SiIconComponent,\n RouterLinkActive,\n RouterLink\n ],\n templateUrl: './si-launchpad-factory.component.html',\n styleUrl: './si-launchpad-factory.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\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 applications`)\n * ```\n */\n readonly titleText = input(t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch applications`));\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 /**\n * Title of the show less apps button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.SHOW_LESS:Show less`)\n * ```\n */\n readonly showLessAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.SHOW_LESS:Show less`));\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected showAllApps = false;\n protected readonly categories = computed(() => {\n const apps = this.apps();\n const favorites = this.favorites();\n const categories: AppCategory[] = [];\n if (this.enableFavorites() && this.hasFavorites()) {\n categories.push({\n name: this.favoriteAppsText(),\n apps: favorites\n });\n }\n\n if (this.isCategories(apps)) {\n categories.push(...apps);\n } else {\n categories.push({ name: '', apps: [...apps] });\n }\n return categories;\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 protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n private header = inject(SiApplicationHeaderComponent);\n\n protected closeLaunchpad(): void {\n this.header.closeLaunchpad();\n }\n\n protected toggleFavorite(app: App, favorite: boolean): void {\n this.favoriteChange.emit({ app, favorite });\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","<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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() && !$any(app)._noFavorite\"\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() && !$any(app)._noFavorite\"\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 </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\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-siemens-logo.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-siemens-logo.component.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-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 ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n Injector,\n input,\n OnDestroy,\n signal,\n TemplateRef,\n viewChild\n} from '@angular/core';\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 { defer, of, Subject } from 'rxjs';\nimport { map, skip, takeUntil } 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 changeDetection: ChangeDetectionStrategy.OnPush\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 readonly launchpad = input<TemplateRef<void>>();\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:Toggle 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 // defer is required to re-check the current breakpoint as it may change.\n readonly inlineDropdown = defer(() => {\n const expandBreakpoint = this.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 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.inlineDropdown\n .pipe(skip(1), takeUntil(this.closeMobileMenus))\n .subscribe(() => this.closeMobileMenus.next());\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 [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-lg\" [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-lg\" [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 [id]=\"id + '-launchpad'\">\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush\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 { ChangeDetectionStrategy, 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 changeDetection: ChangeDetectionStrategy.OnPush,\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 {\n ChangeDetectionStrategy,\n Component,\n ElementRef,\n inject,\n input,\n OnDestroy,\n signal,\n viewChild\n} 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';\nimport { Subscription } from 'rxjs';\nimport { skip, takeUntil } from 'rxjs/operators';\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 changeDetection: ChangeDetectionStrategy.OnPush,\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:Toggle actions`)\n * ```\n */\n readonly mobileToggleLabel = input(\n t(() => $localize`:@@SI_APPLICATION_HEADER.TOGGLE_ACTIONS:Toggle 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 private inlineChangeSubscription?: Subscription;\n\n ngOnDestroy(): void {\n this.closeMobileSub.unsubscribe();\n this.inlineChangeSubscription?.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.inlineChangeSubscription = this.header.inlineDropdown\n .pipe(skip(1), takeUntil(this.header.closeMobileMenus))\n .subscribe(() => this.header.closeMobileMenus.next());\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-lg\" [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, HostListener, 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({})\nexport abstract class SiHeaderActionItemBase implements OnInit {\n /** @internal */\n dropdownTrigger = inject(SiHeaderDropdownTriggerDirective, {\n self: true,\n optional: true\n });\n protected collapsibleActions = inject(SiHeaderCollapsibleActionsComponent, { optional: true });\n protected readonly icons = addIcons({ elementDown2 });\n\n private header = inject(SiApplicationHeaderComponent);\n\n ngOnInit(): void {\n if (this.dropdownTrigger) {\n this.header.closeMobileMenus.subscribe(() => this.dropdownTrigger!.close());\n }\n }\n\n @HostListener('click')\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 { computed, Directive, input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\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, OnInit\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 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 ngOnChanges(changes: SimpleChanges): void {\n if ('badge' in changes) {\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 get visuallyHideTitle(): boolean {\n return !this.collapsibleActions?.mobileExpanded();\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\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 changeDetection: ChangeDetectionStrategy.OnPush,\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","<si-icon class=\"icon-lg\" [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 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 { ChangeDetectionStrategy, Component, input } from '@angular/core';\nimport { SiAvatarComponent } from '@siemens/element-ng/avatar';\nimport { SiIconComponent } from '@siemens/element-ng/icon';\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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'header-item focus-inside p-4',\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","<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 { ChangeDetectionStrategy, Component } from '@angular/core';\n\nimport { SiHeaderLogoDirective } from './si-header-logo.directive';\n\n/**\n * The siemens logo.\n * Should be located inside `.header-brand`.\n *\n * @deprecated Use the {@link SiHeaderLogoDirective} instead.\n * The new component will use the logo provided by the global theme instead\n * of containing a hard coded siemens logo.\n * ```html\n * // previous\n * <a si-header-siemens-logo routerLink=\"/\" aria-label=\"Siemens\" class=\"d-none d-md-flex\"></a>\n * // new\n * <a siHeaderLogo routerLink=\"/\" class=\"d-none d-md-flex\"></a>\n * ```\n *\n */\n@Component({\n selector: 'si-header-siemens-logo, [si-header-siemens-logo]',\n template: '',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiHeaderSiemensLogoComponent extends SiHeaderLogoDirective {}\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-lg 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 ChangeDetectionStrategy,\n Component,\n HostListener,\n inject,\n input,\n model\n} 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 changeDetection: ChangeDetectionStrategy.OnPush,\n host: {\n class: 'focus-inside',\n '[class.active]': 'active()',\n '[class.action]': 'action()'\n }\n})\nexport class SiLaunchpadAppComponent {\n /** @defaultValue false */\n readonly external = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly active = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly enableFavoriteToggle = input(false, { transform: booleanAttribute });\n /** @defaultValue false */\n readonly favorite = model(false);\n /** @defaultValue false */\n readonly action = input(false, { transform: booleanAttribute });\n\n readonly iconUrl = input<string>();\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:External application`)\n * ```\n */\n readonly externalLinkText = input<TranslatableString>(\n t(() => $localize`:@@SI_LAUNCHPAD.EXTERNAL_LINK:External application`)\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 { A11yModule } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n inject,\n input,\n output\n} from '@angular/core';\nimport { ActivatedRoute, RouterLink, RouterLinkActive } from '@angular/router';\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 { SiLaunchpadAppComponent } from './si-launchpad-app.component';\nimport { App, AppCategory } from './si-launchpad.model';\n\nexport interface FavoriteChangeEvent {\n app: App;\n favorite: boolean;\n}\n\n@Component({\n selector: 'si-launchpad-factory',\n imports: [\n A11yModule,\n SiLinkModule,\n SiTranslatePipe,\n SiLaunchpadAppComponent,\n SiIconComponent,\n RouterLinkActive,\n RouterLink\n ],\n templateUrl: './si-launchpad-factory.component.html',\n styleUrl: './si-launchpad-factory.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\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 applications`)\n * ```\n */\n readonly titleText = input(t(() => $localize`:@@SI_LAUNCHPAD.TITLE:Switch applications`));\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 /**\n * Title of the show less apps button.\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_LAUNCHPAD.SHOW_LESS:Show less`)\n * ```\n */\n readonly showLessAppsText = input(t(() => $localize`:@@SI_LAUNCHPAD.SHOW_LESS:Show less`));\n\n readonly favoriteChange = output<FavoriteChangeEvent>();\n\n protected showAllApps = false;\n protected readonly categories = computed(() => {\n const apps = this.apps();\n const favorites = this.favorites();\n const categories: AppCategory[] = [];\n if (this.enableFavorites() && this.hasFavorites()) {\n categories.push({\n name: this.favoriteAppsText(),\n apps: favorites\n });\n }\n\n if (this.isCategories(apps)) {\n categories.push(...apps);\n } else {\n categories.push({ name: '', apps: [...apps] });\n }\n return categories;\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 protected readonly activatedRoute = inject(ActivatedRoute, { optional: true });\n private header = inject(SiApplicationHeaderComponent);\n\n protected closeLaunchpad(): void {\n this.header.closeLaunchpad();\n }\n\n protected toggleFavorite(app: App, favorite: boolean): void {\n this.favoriteChange.emit({ app, favorite });\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 protected isFavoriteToggleDisabled(app: App): boolean {\n if ('_noFavorite' in app) {\n return !!app._noFavorite;\n } else {\n return false;\n }\n }\n}\n","<!-- eslint-disable @angular-eslint/template/no-any -->\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-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 @for (category of categories(); track category; let first = $first) {\n @if (!enableFavorites() || !hasFavorites() || first || showAllApps) {\n <div>\n @if (category.name) {\n <div\n class=\"si-h4 launchpad-category-title mb-6\"\n [class.mt-4]=\"first\"\n [class.mt-8]=\"!first\"\n >\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 </div>\n }\n\n @if (enableFavorites() && first && hasFavorites()) {\n <button\n type=\"button\"\n class=\"btn btn-link btn-show-all dropdown-toggle text-decoration-none\"\n [class.show]=\"showAllApps\"\n (click)=\"showAllApps = !showAllApps\"\n >\n <b>{{ (showAllApps ? showLessAppsText() : showMoreAppsText()) | translate }}</b>\n <si-icon class=\"link-icon dropdown-caret\" [icon]=\"icons.elementDown2\" />\n </button>\n }\n }\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-siemens-logo.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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"}
|
|
@@ -586,7 +586,7 @@ const getAbsoluteContentPosition = (params) => {
|
|
|
586
586
|
const elementRect = element.getBoundingClientRect();
|
|
587
587
|
const start = rtl ? elementRect.right : elementRect.left;
|
|
588
588
|
const end = rtl ? elementRect.left : elementRect.right;
|
|
589
|
-
let relativeLeftOffset
|
|
589
|
+
let relativeLeftOffset;
|
|
590
590
|
if (direction === 'start' || direction === 'end') {
|
|
591
591
|
relativeLeftOffset =
|
|
592
592
|
placement.includes('end') || (!placement.includes('start') && direction === 'end')
|
|
@@ -609,7 +609,7 @@ const getAbsoluteContentPosition = (params) => {
|
|
|
609
609
|
}
|
|
610
610
|
}
|
|
611
611
|
}
|
|
612
|
-
let relativeTopOffset
|
|
612
|
+
let relativeTopOffset;
|
|
613
613
|
if (direction === 'up') {
|
|
614
614
|
relativeTopOffset = placement.includes('bottom') ? elementRect.bottom : elementRect.top;
|
|
615
615
|
}
|