@siemens/element-ng 49.2.0 → 49.3.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-accordion.mjs +2 -2
- package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-application-header.mjs +3 -3
- package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
- package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-datepicker.mjs +22 -24
- package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
- package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-main-detail-container.mjs +21 -25
- package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-menu.mjs +6 -6
- package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs +8 -4
- package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
- package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-search-bar.mjs +7 -2
- package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-side-panel.mjs +164 -10
- package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs +1 -1
- package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-tree-view.mjs +11 -3
- package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
- package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
- package/package.json +3 -3
- package/schematics/vitest-setup.js +5 -0
- package/types/siemens-element-ng-application-header.d.ts +1 -1
- package/types/siemens-element-ng-auto-collapsable-list.d.ts +1 -1
- package/types/siemens-element-ng-avatar.d.ts +1 -1
- package/types/siemens-element-ng-circle-status.d.ts +1 -1
- package/types/siemens-element-ng-dashboard.d.ts +2 -2
- package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
- package/types/siemens-element-ng-datepicker.d.ts +7 -7
- package/types/siemens-element-ng-file-uploader.d.ts +1 -1
- package/types/siemens-element-ng-filtered-search.d.ts +1 -1
- package/types/siemens-element-ng-form.d.ts +1 -1
- package/types/siemens-element-ng-list-details.d.ts +1 -1
- package/types/siemens-element-ng-main-detail-container.d.ts +10 -11
- package/types/siemens-element-ng-navbar-vertical.d.ts +7 -3
- package/types/siemens-element-ng-navbar.d.ts +1 -1
- package/types/siemens-element-ng-number-input.d.ts +1 -1
- package/types/siemens-element-ng-phone-number.d.ts +1 -1
- package/types/siemens-element-ng-photo-upload.d.ts +1 -1
- package/types/siemens-element-ng-search-bar.d.ts +1 -1
- package/types/siemens-element-ng-side-panel.d.ts +115 -5
- package/types/siemens-element-ng-split.d.ts +2 -2
- package/types/siemens-element-ng-status-bar.d.ts +1 -1
- package/types/siemens-element-ng-status-toggle.d.ts +1 -1
- package/types/siemens-element-ng-tree-view.d.ts +1 -1
- package/types/siemens-element-ng-typeahead.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-circle-status.mjs","sources":["../../../../projects/element-ng/circle-status/si-circle-status.component.ts","../../../../projects/element-ng/circle-status/si-circle-status.component.html","../../../../projects/element-ng/circle-status/si-circle-status.module.ts","../../../../projects/element-ng/circle-status/index.ts","../../../../projects/element-ng/circle-status/siemens-element-ng-circle-status.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { elementRight4 } from '@siemens/element-icons';\nimport { BlinkService, EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { Observable, Subscription } from 'rxjs';\n\n@Component({\n selector: 'si-circle-status',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-circle-status.component.html',\n styleUrl: './si-circle-status.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiCircleStatusComponent implements OnChanges, OnDestroy {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * The status (success, info, warning, danger) to be visualized.\n */\n readonly status = input<EntityStatusType>();\n\n /* DO NOT REMOVE: Even though the input is marked as deprecated, the core-team decided not to remove the\n input. The possibility to have custom color is often requested by projects, so we keep it.\n however in order to discourage it's use, we keep it marked deprecated.\n */\n /**\n * A custom color (e.g. `#fefefe`) for exceptional cases.\n * @deprecated use the semantic `status` input instead.\n */\n readonly color = input<string>();\n\n /**\n * Set a domain type icon (e.g. `element-door`) for which the status shall be shown.\n * Leave undefined for visualizing the status without an icon.\n */\n readonly icon = input<string>();\n\n /**\n * Set the size using either regular or small only works when used together with `icon`\n *\n * @defaultValue 'regular'\n */\n readonly size = input<'regular' | 'small'>('regular');\n\n /**\n * event direction is out\n *\n * @defaultValue false\n */\n readonly eventOut = input(false, { transform: booleanAttribute });\n\n /**\n * Custom icon class for event out\n */\n readonly eventIcon = input<string>();\n\n /**\n * Whether the status should appear with a pulsing circle around the badge.\n *\n * @defaultValue false\n */\n readonly blink = input(false, { transform: booleanAttribute });\n\n /**\n * Blink pulse generator for synchronized blinking with other components\n */\n readonly blinkPulse = input<Observable<boolean>>();\n\n /**\n * Aria label for icon and status combo. Needed for a11y\n */\n readonly ariaLabel = input<TranslatableString>();\n\n protected readonly backgroundClass = computed(() => this.statusIcon()?.background ?? '');\n protected readonly theAriaLabel = computed(() => this.ariaLabel() ?? this.autoLabel());\n protected readonly autoLabel = computed(() => {\n const status = this.status();\n const statusName = status && this.statusIcons[status] ? status : 'none';\n const direction = this.eventOut() ? ' out' : '';\n const iconName = this.icon()?.replace(/^element-{0,1}(.+)/, '$1 ') ?? '';\n return `${iconName.toLocaleLowerCase()}${\n this.status() && this.icon() ? 'in ' : ''\n }status ${statusName}${direction}`;\n });\n protected readonly statusIcon = computed<StatusIcon | undefined>(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n protected readonly blinkOn = signal(false);\n protected readonly contrastFix = signal(false);\n protected readonly icons = addIcons({ elementRight4 });\n private blinkSubs?: Subscription;\n\n private readonly bg = viewChild.required<ElementRef>('bg');\n\n private blinkService = inject(BlinkService);\n\n ngOnChanges(changes: SimpleChanges): void {\n if (this.blinkService && changes.blink) {\n this.blinkSubs?.unsubscribe();\n\n if (this.blink()) {\n const pulse = this.blinkPulse() ?? this.blinkService.pulse$;\n this.blinkSubs = pulse.subscribe(onOff => {\n this.blinkOn.set(onOff);\n });\n } else {\n this.blinkOn.set(false);\n }\n }\n if (changes.color || changes.blink) {\n queueMicrotask(() => {\n this.contrastFix.set(!!this.color() && this.blink() && this.calculateContrastFix());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.blinkSubs?.unsubscribe();\n }\n\n private calculateContrastFix(): boolean {\n // see https://www.w3.org/TR/AERT/#color-contrast\n const rgb = getComputedStyle(this.bg().nativeElement)\n .backgroundColor?.match(/\\d+/g)\n ?.map(v => +v);\n return !!rgb && Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000) <= 128;\n }\n}\n","<div\n class=\"status-indication d-flex align-items-center justify-content-center\"\n role=\"status\"\n [class.has-icon]=\"icon()\"\n [class.small]=\"size() === 'small'\"\n [attr.aria-label]=\"theAriaLabel() | translate\"\n>\n <div\n #bg\n [class]=\"`bg ${backgroundClass()}`\"\n [class.pulse]=\"blinkOn()\"\n [class.deprecated-color]=\"!status()\"\n [class.contrast-fix]=\"contrastFix()\"\n [style.background-color]=\"color()\"\n ></div>\n @if (!status()) {\n <div class=\"deprecated-dot\" [style.background-color]=\"color()\"></div>\n }\n @let iconConfig = statusIcon();\n @if (iconConfig) {\n <span class=\"status-icon icon-stack indicator\">\n <si-icon [class]=\"`status-icon ${iconConfig.color}`\" [icon]=\"iconConfig.icon\" />\n <si-icon [class]=\"`status-icon ${iconConfig.stackedColor}`\" [icon]=\"iconConfig.stacked\" />\n </span>\n }\n @let eventIconValue = eventIcon();\n @if (eventOut()) {\n <si-icon class=\"icon text-body event-out flip-rtl\" [icon]=\"icons.elementRight4\" />\n } @else if (eventIconValue) {\n <si-icon class=\"icon text-body event-out\" [icon]=\"eventIconValue\" />\n }\n @let iconValue = icon();\n @if (iconValue) {\n <si-icon class=\"icon position-relative text-body\" [icon]=\"iconValue\" />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiCircleStatusComponent } from './si-circle-status.component';\n\n@NgModule({\n imports: [SiCircleStatusComponent],\n exports: [SiCircleStatusComponent]\n})\nexport class SiCircleStatusModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-circle-status.component';\nexport * from './si-circle-status.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"siemens-element-ng-circle-status.mjs","sources":["../../../../projects/element-ng/circle-status/si-circle-status.component.ts","../../../../projects/element-ng/circle-status/si-circle-status.component.html","../../../../projects/element-ng/circle-status/si-circle-status.module.ts","../../../../projects/element-ng/circle-status/index.ts","../../../../projects/element-ng/circle-status/siemens-element-ng-circle-status.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n OnChanges,\n OnDestroy,\n signal,\n SimpleChanges,\n viewChild\n} from '@angular/core';\nimport { elementRight4 } from '@siemens/element-icons';\nimport { BlinkService, EntityStatusType, StatusIcon } from '@siemens/element-ng/common';\nimport { addIcons, SiIconComponent, STATUS_ICON_CONFIG } from '@siemens/element-ng/icon';\nimport { SiTranslatePipe, TranslatableString } from '@siemens/element-translate-ng/translate';\nimport { Observable, Subscription } from 'rxjs';\n\n@Component({\n selector: 'si-circle-status',\n imports: [SiIconComponent, SiTranslatePipe],\n templateUrl: './si-circle-status.component.html',\n styleUrl: './si-circle-status.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class SiCircleStatusComponent implements OnChanges, OnDestroy {\n private readonly statusIcons = inject(STATUS_ICON_CONFIG);\n /**\n * The status (success, info, warning, danger) to be visualized.\n */\n readonly status = input<EntityStatusType>();\n\n /* DO NOT REMOVE: Even though the input is marked as deprecated, the core-team decided not to remove the\n input. The possibility to have custom color is often requested by projects, so we keep it.\n however in order to discourage it's use, we keep it marked deprecated.\n */\n /**\n * A custom color (e.g. `#fefefe`) for exceptional cases.\n * @deprecated use the semantic `status` input instead.\n */\n readonly color = input<string>();\n\n /**\n * Set a domain type icon (e.g. `element-door`) for which the status shall be shown.\n * Leave undefined for visualizing the status without an icon.\n */\n readonly icon = input<string>();\n\n /**\n * Set the size using either regular or small only works when used together with `icon`\n *\n * @defaultValue 'regular'\n */\n readonly size = input<'regular' | 'small'>('regular');\n\n /**\n * event direction is out\n *\n * @defaultValue false\n */\n readonly eventOut = input(false, { transform: booleanAttribute });\n\n /**\n * Custom icon class for event out\n */\n readonly eventIcon = input<string>();\n\n /**\n * Whether the status should appear with a pulsing circle around the badge.\n *\n * @defaultValue false\n */\n readonly blink = input(false, { transform: booleanAttribute });\n\n /**\n * Blink pulse generator for synchronized blinking with other components\n */\n readonly blinkPulse = input<Observable<boolean>>();\n\n /**\n * Aria label for icon and status combo. Needed for a11y\n */\n readonly ariaLabel = input<TranslatableString>();\n\n protected readonly backgroundClass = computed(() => this.statusIcon()?.background ?? '');\n protected readonly theAriaLabel = computed(() => this.ariaLabel() ?? this.autoLabel());\n protected readonly autoLabel = computed(() => {\n const status = this.status();\n const statusName = status && this.statusIcons[status] ? status : 'none';\n const direction = this.eventOut() ? ' out' : '';\n const iconName = this.icon()?.replace(/^element-{0,1}(.+)/, '$1 ') ?? '';\n return `${iconName.toLocaleLowerCase()}${\n this.status() && this.icon() ? 'in ' : ''\n }status ${statusName}${direction}`;\n });\n protected readonly statusIcon = computed<StatusIcon | undefined>(() => {\n const status = this.status();\n return status ? this.statusIcons[status] : undefined;\n });\n protected readonly blinkOn = signal(false);\n protected readonly contrastFix = signal(false);\n protected readonly icons = addIcons({ elementRight4 });\n private blinkSubs?: Subscription;\n\n private readonly bg = viewChild.required<ElementRef>('bg');\n\n private blinkService = inject(BlinkService);\n\n ngOnChanges(changes: SimpleChanges<this>): void {\n if (this.blinkService && changes.blink) {\n this.blinkSubs?.unsubscribe();\n\n if (this.blink()) {\n const pulse = this.blinkPulse() ?? this.blinkService.pulse$;\n this.blinkSubs = pulse.subscribe(onOff => {\n this.blinkOn.set(onOff);\n });\n } else {\n this.blinkOn.set(false);\n }\n }\n if (changes.color || changes.blink) {\n queueMicrotask(() => {\n this.contrastFix.set(!!this.color() && this.blink() && this.calculateContrastFix());\n });\n }\n }\n\n ngOnDestroy(): void {\n this.blinkSubs?.unsubscribe();\n }\n\n private calculateContrastFix(): boolean {\n // see https://www.w3.org/TR/AERT/#color-contrast\n const rgb = getComputedStyle(this.bg().nativeElement)\n .backgroundColor?.match(/\\d+/g)\n ?.map(v => +v);\n return !!rgb && Math.round((rgb[0] * 299 + rgb[1] * 587 + rgb[2] * 114) / 1000) <= 128;\n }\n}\n","<div\n class=\"status-indication d-flex align-items-center justify-content-center\"\n role=\"status\"\n [class.has-icon]=\"icon()\"\n [class.small]=\"size() === 'small'\"\n [attr.aria-label]=\"theAriaLabel() | translate\"\n>\n <div\n #bg\n [class]=\"`bg ${backgroundClass()}`\"\n [class.pulse]=\"blinkOn()\"\n [class.deprecated-color]=\"!status()\"\n [class.contrast-fix]=\"contrastFix()\"\n [style.background-color]=\"color()\"\n ></div>\n @if (!status()) {\n <div class=\"deprecated-dot\" [style.background-color]=\"color()\"></div>\n }\n @let iconConfig = statusIcon();\n @if (iconConfig) {\n <span class=\"status-icon icon-stack indicator\">\n <si-icon [class]=\"`status-icon ${iconConfig.color}`\" [icon]=\"iconConfig.icon\" />\n <si-icon [class]=\"`status-icon ${iconConfig.stackedColor}`\" [icon]=\"iconConfig.stacked\" />\n </span>\n }\n @let eventIconValue = eventIcon();\n @if (eventOut()) {\n <si-icon class=\"icon text-body event-out flip-rtl\" [icon]=\"icons.elementRight4\" />\n } @else if (eventIconValue) {\n <si-icon class=\"icon text-body event-out\" [icon]=\"eventIconValue\" />\n }\n @let iconValue = icon();\n @if (iconValue) {\n <si-icon class=\"icon position-relative text-body\" [icon]=\"iconValue\" />\n }\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiCircleStatusComponent } from './si-circle-status.component';\n\n@NgModule({\n imports: [SiCircleStatusComponent],\n exports: [SiCircleStatusComponent]\n})\nexport class SiCircleStatusModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-circle-status.component';\nexport * from './si-circle-status.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -21,11 +21,11 @@ import { t, SiTranslatePipe } from '@siemens/element-translate-ng/translate';
|
|
|
21
21
|
class SiContentActionBarToggleComponent {
|
|
22
22
|
icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : []));
|
|
23
23
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiContentActionBarToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
24
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: SiContentActionBarToggleComponent, isStandalone: true, selector: "[si-content-action-bar-toggle]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "dropdown-item flex-grow-0 focus-inside" }, ngImport: i0, template: "<si-icon class=\"icon\" [icon]=\"icon()\" />\n", styles: [".item-wrapper{display:flex;align-items:center;flex:1;min-inline-size:1.25rem}.item-title:empty,.item-end:empty{display:none!important}:host-context(si-menu-bar,si-content-action-bar){color:var(--element-action-secondary-text);background:var(--element-base-1);padding-inline:8px}:host-context(si-menu-bar,si-content-action-bar) .item-wrapper{justify-content:center}:host-context(si-menu-bar,si-content-action-bar) .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar) .item-end{margin-inline-end:0!important}:host-context(si-menu-bar,si-content-action-bar) .item-title{padding-inline-start:0;flex:0 1 auto}:host-context(si-menu-bar,si-content-action-bar) .item-title:empty+.item-end .submenu{display:none}:host-context(si-menu-bar,si-content-action-bar) .icon+.item-title{padding-inline-start:4px}:host-context(si-menu-bar,si-content-action-bar) .item-end .submenu{transform:rotate(90deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true] .item-end .submenu{transform:rotate(270deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .item-title{padding-inline-start:4px!important}:host-context(si-menu-bar,si-content-action-bar):focus,:host-context(si-menu-bar,si-content-action-bar).focus{color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(si-menu-bar,si-content-action-bar):hover,:host-context(si-menu-bar,si-content-action-bar).hover{color:var(--element-action-secondary-text-hover);background:var(--element-action-secondary-hover)}:host-context(si-menu-bar,si-content-action-bar):active,:host-context(si-menu-bar,si-content-action-bar).active,:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true]{color:var(--element-action-primary-active);background:var(--element-action-secondary-active)}:host-context(si-menu-bar,si-content-action-bar):disabled,:host-context(si-menu-bar,si-content-action-bar).disabled{opacity:var(--element-action-disabled-opacity);color:var(--element-action-secondary-text);background:var(--element-base-1)}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
24
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.8", type: SiContentActionBarToggleComponent, isStandalone: true, selector: "[si-content-action-bar-toggle]", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, host: { classAttribute: "dropdown-item flex-grow-0 focus-inside" }, ngImport: i0, template: "<si-icon class=\"icon\" [icon]=\"icon()\" />\n", styles: [".item-wrapper{display:flex;align-items:center;flex:1;min-inline-size:1.25rem}.item-title:empty,.item-end:empty{display:none!important}:host-context(si-menu-bar,si-content-action-bar){color:var(--element-action-secondary-text);background:var(--element-base-1);padding-inline:8px}:host-context(si-menu-bar,si-content-action-bar) .item-wrapper{justify-content:center}:host-context(si-menu-bar,si-content-action-bar) .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar) .item-end{margin-inline-end:0!important}:host-context(si-menu-bar,si-content-action-bar) .item-title{padding-inline-start:0;flex:0 1 auto}:host-context(si-menu-bar,si-content-action-bar) .item-title:empty+.item-end .submenu{display:none}:host-context(si-menu-bar,si-content-action-bar) .icon+.item-title{padding-inline-start:4px}:host-context(si-menu-bar,si-content-action-bar) .item-end .submenu{transform:rotate(90deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true] .item-end .submenu{transform:rotate(270deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .item-title{padding-inline-start:4px!important}:host-context(si-menu-bar,si-content-action-bar):focus,:host-context(si-menu-bar,si-content-action-bar).focus{color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(si-menu-bar,si-content-action-bar):hover,:host-context(si-menu-bar,si-content-action-bar).hover{color:var(--element-action-secondary-text-hover);background:var(--element-action-secondary-hover)}:host-context(si-menu-bar,si-content-action-bar):active,:host-context(si-menu-bar,si-content-action-bar).active,:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true]{color:var(--element-action-primary-active);background:var(--element-action-secondary-active)}:host-context(si-menu-bar,si-content-action-bar):disabled,:host-context(si-menu-bar,si-content-action-bar).disabled{opacity:var(--element-action-disabled-opacity);color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(.card-outline){background:transparent}\n"], dependencies: [{ kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
25
25
|
}
|
|
26
26
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.8", ngImport: i0, type: SiContentActionBarToggleComponent, decorators: [{
|
|
27
27
|
type: Component,
|
|
28
|
-
args: [{ selector: '[si-content-action-bar-toggle]', imports: [SiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'dropdown-item flex-grow-0 focus-inside' }, template: "<si-icon class=\"icon\" [icon]=\"icon()\" />\n", styles: [".item-wrapper{display:flex;align-items:center;flex:1;min-inline-size:1.25rem}.item-title:empty,.item-end:empty{display:none!important}:host-context(si-menu-bar,si-content-action-bar){color:var(--element-action-secondary-text);background:var(--element-base-1);padding-inline:8px}:host-context(si-menu-bar,si-content-action-bar) .item-wrapper{justify-content:center}:host-context(si-menu-bar,si-content-action-bar) .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar) .item-end{margin-inline-end:0!important}:host-context(si-menu-bar,si-content-action-bar) .item-title{padding-inline-start:0;flex:0 1 auto}:host-context(si-menu-bar,si-content-action-bar) .item-title:empty+.item-end .submenu{display:none}:host-context(si-menu-bar,si-content-action-bar) .icon+.item-title{padding-inline-start:4px}:host-context(si-menu-bar,si-content-action-bar) .item-end .submenu{transform:rotate(90deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true] .item-end .submenu{transform:rotate(270deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .item-title{padding-inline-start:4px!important}:host-context(si-menu-bar,si-content-action-bar):focus,:host-context(si-menu-bar,si-content-action-bar).focus{color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(si-menu-bar,si-content-action-bar):hover,:host-context(si-menu-bar,si-content-action-bar).hover{color:var(--element-action-secondary-text-hover);background:var(--element-action-secondary-hover)}:host-context(si-menu-bar,si-content-action-bar):active,:host-context(si-menu-bar,si-content-action-bar).active,:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true]{color:var(--element-action-primary-active);background:var(--element-action-secondary-active)}:host-context(si-menu-bar,si-content-action-bar):disabled,:host-context(si-menu-bar,si-content-action-bar).disabled{opacity:var(--element-action-disabled-opacity);color:var(--element-action-secondary-text);background:var(--element-base-1)}\n"] }]
|
|
28
|
+
args: [{ selector: '[si-content-action-bar-toggle]', imports: [SiIconComponent], changeDetection: ChangeDetectionStrategy.OnPush, host: { class: 'dropdown-item flex-grow-0 focus-inside' }, template: "<si-icon class=\"icon\" [icon]=\"icon()\" />\n", styles: [".item-wrapper{display:flex;align-items:center;flex:1;min-inline-size:1.25rem}.item-title:empty,.item-end:empty{display:none!important}:host-context(si-menu-bar,si-content-action-bar){color:var(--element-action-secondary-text);background:var(--element-base-1);padding-inline:8px}:host-context(si-menu-bar,si-content-action-bar) .item-wrapper{justify-content:center}:host-context(si-menu-bar,si-content-action-bar) .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar) .item-end{margin-inline-end:0!important}:host-context(si-menu-bar,si-content-action-bar) .item-title{padding-inline-start:0;flex:0 1 auto}:host-context(si-menu-bar,si-content-action-bar) .item-title:empty+.item-end .submenu{display:none}:host-context(si-menu-bar,si-content-action-bar) .icon+.item-title{padding-inline-start:4px}:host-context(si-menu-bar,si-content-action-bar) .item-end .submenu{transform:rotate(90deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true] .item-end .submenu{transform:rotate(270deg)}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .icon{margin-inline:0}:host-context(si-menu-bar,si-content-action-bar)[aria-haspopup] .item-title{padding-inline-start:4px!important}:host-context(si-menu-bar,si-content-action-bar):focus,:host-context(si-menu-bar,si-content-action-bar).focus{color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(si-menu-bar,si-content-action-bar):hover,:host-context(si-menu-bar,si-content-action-bar).hover{color:var(--element-action-secondary-text-hover);background:var(--element-action-secondary-hover)}:host-context(si-menu-bar,si-content-action-bar):active,:host-context(si-menu-bar,si-content-action-bar).active,:host-context(si-menu-bar,si-content-action-bar)[aria-expanded=true]{color:var(--element-action-primary-active);background:var(--element-action-secondary-active)}:host-context(si-menu-bar,si-content-action-bar):disabled,:host-context(si-menu-bar,si-content-action-bar).disabled{opacity:var(--element-action-disabled-opacity);color:var(--element-action-secondary-text);background:var(--element-base-1)}:host-context(.card-outline){background:transparent}\n"] }]
|
|
29
29
|
}], propDecorators: { icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: true }] }] } });
|
|
30
30
|
|
|
31
31
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"siemens-element-ng-content-action-bar.mjs","sources":["../../../../projects/element-ng/content-action-bar/si-content-action-bar-toggle.component.ts","../../../../projects/element-ng/content-action-bar/si-content-action-bar-toggle.component.html","../../../../projects/element-ng/content-action-bar/si-content-action-bar.component.ts","../../../../projects/element-ng/content-action-bar/si-content-action-bar.component.html","../../../../projects/element-ng/content-action-bar/si-content-action-bar.module.ts","../../../../projects/element-ng/content-action-bar/index.ts","../../../../projects/element-ng/content-action-bar/siemens-element-ng-content-action-bar.ts"],"sourcesContent":["/**\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\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[si-content-action-bar-toggle]',\n imports: [SiIconComponent],\n templateUrl: './si-content-action-bar-toggle.component.html',\n styleUrl: '../menu/si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'dropdown-item flex-grow-0 focus-inside' }\n})\nexport class SiContentActionBarToggleComponent {\n readonly icon = input.required<string>();\n}\n","<si-icon class=\"icon\" [icon]=\"icon()\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuBar, CdkMenuModule } from '@angular/cdk/menu';\nimport {\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n linkedSignal,\n viewChild\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { elementCancel, elementOptionsVertical } from '@siemens/element-icons';\nimport { SiAutoCollapsableListModule } from '@siemens/element-ng/auto-collapsable-list';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { addIcons } from '@siemens/element-ng/icon';\nimport { SiLinkModule } from '@siemens/element-ng/link';\nimport {\n MenuItem,\n MenuItemAction,\n MenuItemCheckbox,\n MenuItemRadio,\n SiMenuActionService,\n SiMenuModule\n} from '@siemens/element-ng/menu';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiContentActionBarToggleComponent } from './si-content-action-bar-toggle.component';\nimport { ContentActionBarMainItem, ViewType } from './si-content-action-bar.model';\n\n@Component({\n selector: 'si-content-action-bar',\n imports: [\n SiMenuModule,\n CdkMenuModule,\n SiAutoCollapsableListModule,\n SiTranslatePipe,\n SiLinkModule,\n SiContentActionBarToggleComponent,\n SiTooltipDirective,\n RouterLink\n ],\n templateUrl: './si-content-action-bar.component.html',\n styleUrl: './si-content-action-bar.component.scss',\n host: {\n '[class]': 'viewType()'\n }\n})\nexport class SiContentActionBarComponent implements AfterViewInit {\n /**\n * List of primary actions. Supports up to **4** actions and omits additional ones.\n */\n readonly primaryActions = input<readonly (MenuItemLegacy | ContentActionBarMainItem)[]>();\n /**\n * List of secondary actions.\n */\n readonly secondaryActions = input<readonly (MenuItemLegacy | MenuItem)[]>();\n /**\n * A param that will be passed to the `action` in the primary/secondary actions.\n * This allows to re-use the same primary/secondary action arrays across rows\n * in a table.\n */\n readonly actionParam = input<any>();\n /**\n * Selection of view type as 'collapsible', 'expanded' or 'mobile'.\n *\n * @defaultValue 'expanded'\n */\n readonly viewType = input<ViewType>('expanded');\n /**\n * Toggle icon aria-label, required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`)\n * ```\n */\n readonly toggleItemLabel = input(t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`));\n /**\n * Option to remove all icons from dropdown menus of the content action bar.\n *\n * Some apps provide only few actions with icons, located in the set of primary actions.\n * The icons are visible in the `collapsible` and `expanded` view type. On reduced space,\n * primary actions are relocated in the same dropdown menu as the secondary actions. The\n * dropdown menu can look unbalanced, if a large number of secondary actions without\n * icons are presented with few actions with icons. This option balances the look and feel\n * by removing all icons from actions in the dropdown menu.\n *\n * @defaultValue false\n */\n readonly preventIconsInDropdownMenus = input(false, { transform: booleanAttribute });\n /**\n * Disables the whole content-action-bar.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n private readonly expandElement = viewChild<\n SiContentActionBarToggleComponent,\n ElementRef<HTMLElement>\n >('expandElement', { read: ElementRef });\n private readonly menuBarElement = viewChild<CdkMenuBar, ElementRef<HTMLDivElement>>(CdkMenuBar, {\n read: ElementRef\n });\n\n protected readonly mobileActions = computed(() => {\n const primaryActions = this.primaryActions();\n const secondaryActions = this.secondaryActions();\n const preventIcons = this.preventIconsInDropdownMenus();\n let actions: readonly (MenuItemLegacy | MenuItem)[] = [];\n if (primaryActions?.length && secondaryActions?.length) {\n actions = [...primaryActions, { title: '-' }, ...secondaryActions];\n } else if (primaryActions?.length) {\n actions = primaryActions;\n } else if (secondaryActions?.length) {\n actions = secondaryActions;\n }\n if (preventIcons) {\n actions = actions.map(action => ({\n ...action,\n icon: undefined\n }));\n }\n return actions;\n });\n protected readonly secondaryActionsInternal = computed(() => {\n let secondaryActions = this.secondaryActions();\n if (this.preventIconsInDropdownMenus()) {\n secondaryActions = secondaryActions?.map(action => ({\n ...action,\n icon: undefined\n }));\n }\n return secondaryActions;\n });\n protected readonly icons = addIcons({ elementCancel, elementOptionsVertical });\n protected readonly expanded = linkedSignal(() => this.viewType() === 'expanded');\n protected parentElement?: HTMLElement | null;\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private menuActionService = inject(SiMenuActionService, { optional: true });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n if (this.parentElement !== this.elementRef.nativeElement.parentElement) {\n this.parentElement = this.elementRef.nativeElement.parentElement;\n }\n });\n }\n\n protected expand(): void {\n this.expanded.set(true);\n setTimeout(() => this.menuBarElement()?.nativeElement.focus());\n }\n\n protected collapse(): void {\n this.expanded.set(false);\n setTimeout(() => this.expandElement()?.nativeElement.focus());\n }\n\n protected isNewItemStyle(\n item: MenuItemLegacy | ContentActionBarMainItem\n ): item is ContentActionBarMainItem {\n return 'label' in item;\n }\n\n protected runAction(item: MenuItemAction | MenuItemRadio | MenuItemCheckbox): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam(), item as any); // typescript cannot level down the item type properly\n }\n\n if (typeof item.action === 'string') {\n this.menuActionService?.actionTriggered(item, this.actionParam());\n }\n }\n}\n","@if (viewType() !== 'mobile' && primaryActions()?.length) {\n <div siAutoCollapsableList class=\"d-flex\" [siAutoCollapsableListContainerElement]=\"parentElement\">\n @if (viewType() === 'collapsible' && !expanded() && collapsibleListItem.canBeVisible()) {\n <button\n #expandElement\n si-content-action-bar-toggle\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n (click)=\"expand()\"\n ></button>\n }\n <si-menu-bar\n #collapsibleListItem=\"siAutoCollapsableListItem\"\n siAutoCollapsableListItem\n [forceHide]=\"!expanded()\"\n [disabled]=\"disabled()\"\n >\n <!-- ?? syntax is not working for track -->\n @for (primaryAction of primaryActions(); track primaryAction.id ? primaryAction.id : $index) {\n @if (isNewItemStyle(primaryAction)) {\n @switch (primaryAction.type) {\n @case ('action') {\n <button\n type=\"button\"\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n (triggered)=\"runAction(primaryAction)\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n }\n @case ('checkbox') {\n <button\n type=\"button\"\n si-menu-item-checkbox\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [checked]=\"primaryAction.checked\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [class.active]=\"primaryAction.checked\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n (triggered)=\"runAction(primaryAction)\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n }\n @case ('group') {\n <button\n type=\"button\"\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [cdkMenuTriggerFor]=\"groupSubmenu\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n <!-- Cannot use template context because of https://github.com/angular/components/issues/26256 -->\n <ng-template #groupSubmenu>\n <si-menu-factory [items]=\"primaryAction.children\" />\n </ng-template>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [routerLink]=\"primaryAction.routerLink\"\n [queryParams]=\"primaryAction.extras?.queryParams\"\n [queryParamsHandling]=\"primaryAction.extras?.queryParamsHandling\"\n [fragment]=\"primaryAction.extras?.fragment\"\n [state]=\"primaryAction.extras?.state\"\n [relativeTo]=\"primaryAction.extras?.relativeTo\"\n [preserveFragment]=\"primaryAction.extras?.preserveFragment\"\n [skipLocationChange]=\"primaryAction.extras?.skipLocationChange\"\n [replaceUrl]=\"primaryAction.extras?.replaceUrl\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [href]=\"primaryAction.href\"\n [target]=\"primaryAction.target\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </a>\n }\n }\n } @else {\n @if (primaryAction.items) {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"primaryAction.id\"\n [siLink]=\"primaryAction\"\n [icon]=\"primaryAction.icon\"\n [attr.aria-label]=\"primaryAction.title | translate\"\n [badge]=\"primaryAction.badge\"\n [actionParam]=\"actionParam()\"\n [iconBadgeDot]=\"primaryAction.badgeDot\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [cdkMenuTriggerFor]=\"primaryAction.items ? mainItemSubmenu : null\"\n >\n @if (!primaryAction.iconOnly && primaryAction.title) {\n <span>{{ primaryAction.title | translate }}</span>\n }\n <!-- Cannot use template context because of https://github.com/angular/components/issues/26256 -->\n <ng-template #mainItemSubmenu>\n <si-menu-factory [items]=\"primaryAction.items\" />\n </ng-template>\n </a>\n } @else {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"primaryAction.id\"\n [siLink]=\"primaryAction\"\n [icon]=\"primaryAction.icon\"\n [attr.aria-label]=\"primaryAction.title | translate\"\n [badge]=\"primaryAction.badge\"\n [actionParam]=\"actionParam()\"\n [iconBadgeDot]=\"primaryAction.badgeDot\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n >\n @if (!primaryAction.iconOnly && primaryAction.title) {\n <span>{{ primaryAction.title | translate }}</span>\n }\n </a>\n }\n }\n }\n @if (secondaryActions()?.length) {\n <button\n type=\"button\"\n si-content-action-bar-toggle\n cdkMenuItem\n [icon]=\"icons.elementOptionsVertical\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n [cdkMenuTriggerFor]=\"secondaryActionsMenu\"\n [disabled]=\"disabled()\"\n ></button>\n }\n @if (viewType() === 'collapsible') {\n <button\n type=\"button\"\n si-content-action-bar-toggle\n cdkMenuItem\n [icon]=\"icons.elementCancel\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n [disabled]=\"disabled()\"\n (cdkMenuItemTriggered)=\"collapse()\"\n >\n </button>\n }\n </si-menu-bar>\n <button\n si-content-action-bar-toggle\n siAutoCollapsableListOverflowItem\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [cdkMenuTriggerFor]=\"mobile\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n >\n </button>\n </div>\n}\n\n@if (viewType() === 'mobile' || !primaryActions()?.length) {\n <button\n si-content-action-bar-toggle\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [cdkMenuTriggerFor]=\"mobile\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n >\n </button>\n}\n\n<ng-template #secondaryActionsMenu>\n <si-menu-factory [items]=\"secondaryActionsInternal()\" [actionParam]=\"actionParam()\" />\n</ng-template>\n\n<ng-template #mobile>\n <si-menu-factory [items]=\"mobileActions()\" [actionParam]=\"actionParam()\" />\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiContentActionBarComponent } from './si-content-action-bar.component';\n\n@NgModule({\n imports: [SiContentActionBarComponent],\n exports: [SiContentActionBarComponent]\n})\nexport class SiContentActionBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-content-action-bar.component';\nexport * from './si-content-action-bar.module';\nexport * from './si-content-action-bar.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-content-action-bar.mjs","sources":["../../../../projects/element-ng/content-action-bar/si-content-action-bar-toggle.component.ts","../../../../projects/element-ng/content-action-bar/si-content-action-bar-toggle.component.html","../../../../projects/element-ng/content-action-bar/si-content-action-bar.component.ts","../../../../projects/element-ng/content-action-bar/si-content-action-bar.component.html","../../../../projects/element-ng/content-action-bar/si-content-action-bar.module.ts","../../../../projects/element-ng/content-action-bar/index.ts","../../../../projects/element-ng/content-action-bar/siemens-element-ng-content-action-bar.ts"],"sourcesContent":["/**\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\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[si-content-action-bar-toggle]',\n imports: [SiIconComponent],\n templateUrl: './si-content-action-bar-toggle.component.html',\n styleUrl: '../menu/si-menu-item.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush,\n host: { class: 'dropdown-item flex-grow-0 focus-inside' }\n})\nexport class SiContentActionBarToggleComponent {\n readonly icon = input.required<string>();\n}\n","<si-icon class=\"icon\" [icon]=\"icon()\" />\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { CdkMenuBar, CdkMenuModule } from '@angular/cdk/menu';\nimport {\n AfterViewInit,\n booleanAttribute,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n linkedSignal,\n viewChild\n} from '@angular/core';\nimport { RouterLink } from '@angular/router';\nimport { elementCancel, elementOptionsVertical } from '@siemens/element-icons';\nimport { SiAutoCollapsableListModule } from '@siemens/element-ng/auto-collapsable-list';\nimport { MenuItem as MenuItemLegacy } from '@siemens/element-ng/common';\nimport { addIcons } from '@siemens/element-ng/icon';\nimport { SiLinkModule } from '@siemens/element-ng/link';\nimport {\n MenuItem,\n MenuItemAction,\n MenuItemCheckbox,\n MenuItemRadio,\n SiMenuActionService,\n SiMenuModule\n} from '@siemens/element-ng/menu';\nimport { SiTooltipDirective } from '@siemens/element-ng/tooltip';\nimport { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';\n\nimport { SiContentActionBarToggleComponent } from './si-content-action-bar-toggle.component';\nimport { ContentActionBarMainItem, ViewType } from './si-content-action-bar.model';\n\n@Component({\n selector: 'si-content-action-bar',\n imports: [\n SiMenuModule,\n CdkMenuModule,\n SiAutoCollapsableListModule,\n SiTranslatePipe,\n SiLinkModule,\n SiContentActionBarToggleComponent,\n SiTooltipDirective,\n RouterLink\n ],\n templateUrl: './si-content-action-bar.component.html',\n styleUrl: './si-content-action-bar.component.scss',\n host: {\n '[class]': 'viewType()'\n }\n})\nexport class SiContentActionBarComponent implements AfterViewInit {\n /**\n * List of primary actions. Supports up to **4** actions and omits additional ones.\n */\n readonly primaryActions = input<readonly (MenuItemLegacy | ContentActionBarMainItem)[]>();\n /**\n * List of secondary actions.\n */\n readonly secondaryActions = input<readonly (MenuItemLegacy | MenuItem)[]>();\n /**\n * A param that will be passed to the `action` in the primary/secondary actions.\n * This allows to re-use the same primary/secondary action arrays across rows\n * in a table.\n */\n readonly actionParam = input<any>();\n /**\n * Selection of view type as 'collapsible', 'expanded' or 'mobile'.\n *\n * @defaultValue 'expanded'\n */\n readonly viewType = input<ViewType>('expanded');\n /**\n * Toggle icon aria-label, required for a11y\n *\n * @defaultValue\n * ```\n * t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`)\n * ```\n */\n readonly toggleItemLabel = input(t(() => $localize`:@@SI_CONTENT_ACTION_BAR.TOGGLE:Toggle`));\n /**\n * Option to remove all icons from dropdown menus of the content action bar.\n *\n * Some apps provide only few actions with icons, located in the set of primary actions.\n * The icons are visible in the `collapsible` and `expanded` view type. On reduced space,\n * primary actions are relocated in the same dropdown menu as the secondary actions. The\n * dropdown menu can look unbalanced, if a large number of secondary actions without\n * icons are presented with few actions with icons. This option balances the look and feel\n * by removing all icons from actions in the dropdown menu.\n *\n * @defaultValue false\n */\n readonly preventIconsInDropdownMenus = input(false, { transform: booleanAttribute });\n /**\n * Disables the whole content-action-bar.\n *\n * @defaultValue false\n */\n readonly disabled = input(false, { transform: booleanAttribute });\n\n private readonly expandElement = viewChild<\n SiContentActionBarToggleComponent,\n ElementRef<HTMLElement>\n >('expandElement', { read: ElementRef });\n private readonly menuBarElement = viewChild<CdkMenuBar, ElementRef<HTMLDivElement>>(CdkMenuBar, {\n read: ElementRef\n });\n\n protected readonly mobileActions = computed(() => {\n const primaryActions = this.primaryActions();\n const secondaryActions = this.secondaryActions();\n const preventIcons = this.preventIconsInDropdownMenus();\n let actions: readonly (MenuItemLegacy | MenuItem)[] = [];\n if (primaryActions?.length && secondaryActions?.length) {\n actions = [...primaryActions, { title: '-' }, ...secondaryActions];\n } else if (primaryActions?.length) {\n actions = primaryActions;\n } else if (secondaryActions?.length) {\n actions = secondaryActions;\n }\n if (preventIcons) {\n actions = actions.map(action => ({\n ...action,\n icon: undefined\n }));\n }\n return actions;\n });\n protected readonly secondaryActionsInternal = computed(() => {\n let secondaryActions = this.secondaryActions();\n if (this.preventIconsInDropdownMenus()) {\n secondaryActions = secondaryActions?.map(action => ({\n ...action,\n icon: undefined\n }));\n }\n return secondaryActions;\n });\n protected readonly icons = addIcons({ elementCancel, elementOptionsVertical });\n protected readonly expanded = linkedSignal(() => this.viewType() === 'expanded');\n protected parentElement?: HTMLElement | null;\n\n private elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private menuActionService = inject(SiMenuActionService, { optional: true });\n\n ngAfterViewInit(): void {\n setTimeout(() => {\n if (this.parentElement !== this.elementRef.nativeElement.parentElement) {\n this.parentElement = this.elementRef.nativeElement.parentElement;\n }\n });\n }\n\n protected expand(): void {\n this.expanded.set(true);\n setTimeout(() => this.menuBarElement()?.nativeElement.focus());\n }\n\n protected collapse(): void {\n this.expanded.set(false);\n setTimeout(() => this.expandElement()?.nativeElement.focus());\n }\n\n protected isNewItemStyle(\n item: MenuItemLegacy | ContentActionBarMainItem\n ): item is ContentActionBarMainItem {\n return 'label' in item;\n }\n\n protected runAction(item: MenuItemAction | MenuItemRadio | MenuItemCheckbox): void {\n if (typeof item.action === 'function') {\n item.action(this.actionParam(), item as any); // typescript cannot level down the item type properly\n }\n\n if (typeof item.action === 'string') {\n this.menuActionService?.actionTriggered(item, this.actionParam());\n }\n }\n}\n","@if (viewType() !== 'mobile' && primaryActions()?.length) {\n <div siAutoCollapsableList class=\"d-flex\" [siAutoCollapsableListContainerElement]=\"parentElement\">\n @if (viewType() === 'collapsible' && !expanded() && collapsibleListItem.canBeVisible()) {\n <button\n #expandElement\n si-content-action-bar-toggle\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n (click)=\"expand()\"\n ></button>\n }\n <si-menu-bar\n #collapsibleListItem=\"siAutoCollapsableListItem\"\n siAutoCollapsableListItem\n [forceHide]=\"!expanded()\"\n [disabled]=\"disabled()\"\n >\n <!-- ?? syntax is not working for track -->\n @for (primaryAction of primaryActions(); track primaryAction.id ? primaryAction.id : $index) {\n @if (isNewItemStyle(primaryAction)) {\n @switch (primaryAction.type) {\n @case ('action') {\n <button\n type=\"button\"\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n (triggered)=\"runAction(primaryAction)\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n }\n @case ('checkbox') {\n <button\n type=\"button\"\n si-menu-item-checkbox\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [checked]=\"primaryAction.checked\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [class.active]=\"primaryAction.checked\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n (triggered)=\"runAction(primaryAction)\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n }\n @case ('group') {\n <button\n type=\"button\"\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [cdkMenuTriggerFor]=\"groupSubmenu\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </button>\n <!-- Cannot use template context because of https://github.com/angular/components/issues/26256 -->\n <ng-template #groupSubmenu>\n <si-menu-factory [items]=\"primaryAction.children\" />\n </ng-template>\n }\n @case ('router-link') {\n <a\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [routerLink]=\"primaryAction.routerLink\"\n [queryParams]=\"primaryAction.extras?.queryParams\"\n [queryParamsHandling]=\"primaryAction.extras?.queryParamsHandling\"\n [fragment]=\"primaryAction.extras?.fragment\"\n [state]=\"primaryAction.extras?.state\"\n [relativeTo]=\"primaryAction.extras?.relativeTo\"\n [preserveFragment]=\"primaryAction.extras?.preserveFragment\"\n [skipLocationChange]=\"primaryAction.extras?.skipLocationChange\"\n [replaceUrl]=\"primaryAction.extras?.replaceUrl\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </a>\n }\n @case ('link') {\n <a\n si-menu-item\n [attr.data-id]=\"primaryAction.id\"\n [attr.aria-label]=\"primaryAction.label | translate\"\n [siTooltip]=\"primaryAction.iconOnly ? (primaryAction.label | translate) : ''\"\n [badge]=\"primaryAction.badge\"\n [badgeColor]=\"primaryAction.badgeColor ?? 'secondary'\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [icon]=\"primaryAction.icon\"\n [iconBadgeDot]=\"primaryAction.iconBadge\"\n [href]=\"primaryAction.href\"\n [target]=\"primaryAction.target\"\n >\n @if (!primaryAction.iconOnly) {\n {{ primaryAction.label | translate }}\n }\n </a>\n }\n }\n } @else {\n @if (primaryAction.items) {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"primaryAction.id\"\n [siLink]=\"primaryAction\"\n [icon]=\"primaryAction.icon\"\n [attr.aria-label]=\"primaryAction.title | translate\"\n [badge]=\"primaryAction.badge\"\n [actionParam]=\"actionParam()\"\n [iconBadgeDot]=\"primaryAction.badgeDot\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n [cdkMenuTriggerFor]=\"primaryAction.items ? mainItemSubmenu : null\"\n >\n @if (!primaryAction.iconOnly && primaryAction.title) {\n <span>{{ primaryAction.title | translate }}</span>\n }\n <!-- Cannot use template context because of https://github.com/angular/components/issues/26256 -->\n <ng-template #mainItemSubmenu>\n <si-menu-factory [items]=\"primaryAction.items\" />\n </ng-template>\n </a>\n } @else {\n <a\n si-menu-item\n activeClass=\"active\"\n [attr.data-id]=\"primaryAction.id\"\n [siLink]=\"primaryAction\"\n [icon]=\"primaryAction.icon\"\n [attr.aria-label]=\"primaryAction.title | translate\"\n [badge]=\"primaryAction.badge\"\n [actionParam]=\"actionParam()\"\n [iconBadgeDot]=\"primaryAction.badgeDot\"\n [disabled]=\"primaryAction.disabled || disabled()\"\n >\n @if (!primaryAction.iconOnly && primaryAction.title) {\n <span>{{ primaryAction.title | translate }}</span>\n }\n </a>\n }\n }\n }\n @if (secondaryActions()?.length) {\n <button\n type=\"button\"\n si-content-action-bar-toggle\n cdkMenuItem\n [icon]=\"icons.elementOptionsVertical\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n [cdkMenuTriggerFor]=\"secondaryActionsMenu\"\n [disabled]=\"disabled()\"\n ></button>\n }\n @if (viewType() === 'collapsible') {\n <button\n type=\"button\"\n si-content-action-bar-toggle\n cdkMenuItem\n [icon]=\"icons.elementCancel\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n [disabled]=\"disabled()\"\n (cdkMenuItemTriggered)=\"collapse()\"\n >\n </button>\n }\n </si-menu-bar>\n <button\n si-content-action-bar-toggle\n siAutoCollapsableListOverflowItem\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [cdkMenuTriggerFor]=\"mobile\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n >\n </button>\n </div>\n}\n\n@if (viewType() === 'mobile' || !primaryActions()?.length) {\n <button\n si-content-action-bar-toggle\n type=\"button\"\n [icon]=\"icons.elementOptionsVertical\"\n [cdkMenuTriggerFor]=\"mobile\"\n [disabled]=\"disabled()\"\n [attr.aria-label]=\"toggleItemLabel() | translate\"\n >\n </button>\n}\n\n<ng-template #secondaryActionsMenu>\n <si-menu-factory [items]=\"secondaryActionsInternal()\" [actionParam]=\"actionParam()\" />\n</ng-template>\n\n<ng-template #mobile>\n <si-menu-factory [items]=\"mobileActions()\" [actionParam]=\"actionParam()\" />\n</ng-template>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiContentActionBarComponent } from './si-content-action-bar.component';\n\n@NgModule({\n imports: [SiContentActionBarComponent],\n exports: [SiContentActionBarComponent]\n})\nexport class SiContentActionBarModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-content-action-bar.component';\nexport * from './si-content-action-bar.module';\nexport * from './si-content-action-bar.model';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|