@siemens/element-ng 49.1.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.
Files changed (77) hide show
  1. package/fesm2022/siemens-element-ng-accordion.mjs +2 -2
  2. package/fesm2022/siemens-element-ng-accordion.mjs.map +1 -1
  3. package/fesm2022/siemens-element-ng-application-header.mjs +11 -3
  4. package/fesm2022/siemens-element-ng-application-header.mjs.map +1 -1
  5. package/fesm2022/siemens-element-ng-auto-collapsable-list.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-avatar.mjs.map +1 -1
  7. package/fesm2022/siemens-element-ng-circle-status.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-common.mjs +2 -2
  9. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-content-action-bar.mjs +2 -2
  11. package/fesm2022/siemens-element-ng-content-action-bar.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-dashboard.mjs +1 -1
  13. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-date-range-filter.mjs.map +1 -1
  15. package/fesm2022/siemens-element-ng-datepicker.mjs +22 -24
  16. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  17. package/fesm2022/siemens-element-ng-file-uploader.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-filtered-search.mjs +89 -95
  19. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  21. package/fesm2022/siemens-element-ng-formly.mjs +1 -1
  22. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  23. package/fesm2022/siemens-element-ng-header-dropdown.mjs +2 -2
  24. package/fesm2022/siemens-element-ng-header-dropdown.mjs.map +1 -1
  25. package/fesm2022/siemens-element-ng-list-details.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-main-detail-container.mjs +21 -25
  27. package/fesm2022/siemens-element-ng-main-detail-container.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-menu.mjs +6 -6
  29. package/fesm2022/siemens-element-ng-menu.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-navbar-vertical.mjs +8 -4
  31. package/fesm2022/siemens-element-ng-navbar-vertical.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-navbar.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  34. package/fesm2022/siemens-element-ng-phone-number.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-photo-upload.mjs +1 -1
  36. package/fesm2022/siemens-element-ng-photo-upload.mjs.map +1 -1
  37. package/fesm2022/siemens-element-ng-search-bar.mjs +7 -2
  38. package/fesm2022/siemens-element-ng-search-bar.mjs.map +1 -1
  39. package/fesm2022/siemens-element-ng-select.mjs +2 -2
  40. package/fesm2022/siemens-element-ng-select.mjs.map +1 -1
  41. package/fesm2022/siemens-element-ng-side-panel.mjs +164 -10
  42. package/fesm2022/siemens-element-ng-side-panel.mjs.map +1 -1
  43. package/fesm2022/siemens-element-ng-split.mjs.map +1 -1
  44. package/fesm2022/siemens-element-ng-status-bar.mjs.map +1 -1
  45. package/fesm2022/siemens-element-ng-status-toggle.mjs +1 -1
  46. package/fesm2022/siemens-element-ng-status-toggle.mjs.map +1 -1
  47. package/fesm2022/siemens-element-ng-tree-view.mjs +11 -3
  48. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  49. package/fesm2022/siemens-element-ng-typeahead.mjs +14 -4
  50. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  51. package/package.json +4 -4
  52. package/schematics/vitest-setup.js +5 -0
  53. package/types/siemens-element-ng-application-header.d.ts +2 -1
  54. package/types/siemens-element-ng-auto-collapsable-list.d.ts +1 -1
  55. package/types/siemens-element-ng-avatar.d.ts +1 -1
  56. package/types/siemens-element-ng-circle-status.d.ts +1 -1
  57. package/types/siemens-element-ng-common.d.ts +1 -1
  58. package/types/siemens-element-ng-dashboard.d.ts +2 -2
  59. package/types/siemens-element-ng-date-range-filter.d.ts +1 -1
  60. package/types/siemens-element-ng-datepicker.d.ts +7 -7
  61. package/types/siemens-element-ng-file-uploader.d.ts +2 -2
  62. package/types/siemens-element-ng-filtered-search.d.ts +4 -10
  63. package/types/siemens-element-ng-form.d.ts +2 -2
  64. package/types/siemens-element-ng-list-details.d.ts +1 -1
  65. package/types/siemens-element-ng-main-detail-container.d.ts +10 -11
  66. package/types/siemens-element-ng-navbar-vertical.d.ts +7 -3
  67. package/types/siemens-element-ng-navbar.d.ts +1 -1
  68. package/types/siemens-element-ng-number-input.d.ts +1 -1
  69. package/types/siemens-element-ng-phone-number.d.ts +1 -1
  70. package/types/siemens-element-ng-photo-upload.d.ts +1 -1
  71. package/types/siemens-element-ng-search-bar.d.ts +1 -1
  72. package/types/siemens-element-ng-side-panel.d.ts +115 -5
  73. package/types/siemens-element-ng-split.d.ts +2 -2
  74. package/types/siemens-element-ng-status-bar.d.ts +1 -1
  75. package/types/siemens-element-ng-status-toggle.d.ts +1 -1
  76. package/types/siemens-element-ng-tree-view.d.ts +1 -1
  77. package/types/siemens-element-ng-typeahead.d.ts +8 -3
@@ -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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"}
@@ -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 = 0;
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 = 0;
612
+ let relativeTopOffset;
613
613
  if (direction === 'up') {
614
614
  relativeTopOffset = placement.includes('bottom') ? elementRect.bottom : elementRect.top;
615
615
  }
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-common.mjs","sources":["../../../../projects/element-ng/common/services/blink.service.ts","../../../../projects/element-ng/common/services/si-uistate.service.ts","../../../../projects/element-ng/common/services/text-measure.service.ts","../../../../projects/element-ng/common/services/scrollbar-helper.service.ts","../../../../projects/element-ng/common/services/index.ts","../../../../projects/element-ng/common/models/status-type.model.ts","../../../../projects/element-ng/common/models/positions.model.ts","../../../../projects/element-ng/common/models/index.ts","../../../../projects/element-ng/common/helpers/animation.helpers.ts","../../../../projects/element-ng/common/helpers/rtl.ts","../../../../projects/element-ng/common/helpers/positioning.helpers.ts","../../../../projects/element-ng/common/helpers/global-events.helpers.ts","../../../../projects/element-ng/common/helpers/overlay-helper.ts","../../../../projects/element-ng/common/helpers/index.ts","../../../../projects/element-ng/common/decorators/webcomponent.decorator.ts","../../../../projects/element-ng/common/decorators/index.ts","../../../../projects/element-ng/common/index.ts","../../../../projects/element-ng/common/siemens-element-ng-common.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport {\n distinctUntilChanged,\n endWith,\n filter,\n map,\n repeat,\n share,\n takeUntil\n} from 'rxjs/operators';\n\n/**\n * A global blink pulse generator for synchronized blinking patterns across an entire application.\n * Use to trigger any blinking by subscribing to `pulse$`.\n */\n@Injectable({ providedIn: 'root' })\nexport class BlinkService {\n private pause$ = new BehaviorSubject<boolean>(false);\n\n private off$ = this.pause$.pipe(filter(v => v));\n private on$ = this.pause$.pipe(filter(v => !v));\n\n /**\n * Blink pulse. Subscribe to it to toggle `on` CSS class when true, `off` CSS class when `false`.\n * Do animations using CSS transitions\n *\n * @defaultValue\n * ```\n * timer(0, 1400).pipe(\n * map(count => count % 2 === 0),\n * distinctUntilChanged(),\n * takeUntil(this.off$),\n * endWith(false),\n * repeat({ delay: () => this.on$ }),\n * share()\n * )\n * ```\n */\n public readonly pulse$ = timer(0, 1400).pipe(\n map(count => count % 2 === 0),\n distinctUntilChanged(),\n takeUntil(this.off$),\n endWith(false),\n repeat({ delay: () => this.on$ }),\n share()\n );\n\n /**\n * Pause the blinking.\n */\n pause(): void {\n this.pause$.next(true);\n }\n\n /**\n * Resume the blinking.\n */\n resume(): void {\n this.pause$.next(false);\n }\n\n /**\n * Whether the blinking is paused or not.\n */\n isPaused(): boolean {\n return this.pause$.value;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, InjectionToken, PLATFORM_ID, Provider, Type } from '@angular/core';\n\nconst SI_UI_STATE_STORAGE = new InjectionToken<UIStateStorage>('si.ui-state.storage', {\n providedIn: 'root',\n factory: () => {\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n return new LocalStorageUIStateStorage();\n }\n return { save: () => {}, load: () => null };\n }\n});\n\n/**\n * Interface that defines a UIStateStore.\n * It must be provided via {@link provideSiUiState}.\n */\nexport interface UIStateStorage {\n /**\n * Saves data under a specific stateId.\n * Already existing data for that stateId should be overridden.\n * Asynchronous implementations must return a {@link Promise} and resolve it once saving was completed.\n *\n * Errors should be handled by the implementation.\n * The `SiUIStateService` does not handle errors.\n */\n save(stateId: string, data: string): void | Promise<void>;\n\n /**\n * Loads data for a specific stateId.\n * Can be asynchronous.\n *\n * Errors should be handled by the implementation.\n * The `SiUIStateService` does not handle errors.\n *\n * @returns The data or undefined if the data does not exist.\n * Asynchronous implementations must return a {@link Promise} containing the data.\n */\n load(stateId: string): string | undefined | null | Promise<string | undefined | null>;\n}\n\nclass LocalStorageUIStateStorage implements UIStateStorage {\n save(stateId: string, data: string): void {\n localStorage.setItem(`si.ui-state.${stateId}`, data);\n }\n\n load(stateId: string): string | null {\n return localStorage.getItem(`si.ui-state.${stateId}`);\n }\n}\n\n/** @internal */\nexport const SI_UI_STATE_SERVICE = new InjectionToken<SiUIStateService>('si.ui-state.service');\n\n/**\n * Service to save and load UI states.\n * @internal\n */\n@Injectable()\nclass SiUIStateService {\n private storage = inject(SI_UI_STATE_STORAGE);\n\n /**\n * Saves the provided state in the storage.\n * @param stateId - The unique id or key under which the state shall be saved.\n * @param state - The state to be saved.\n * @param version - The version of the state object.\n * This can be used to migrate state objects.\n */\n save<TState>(stateId: string, state: TState, version = 0): Promise<void> {\n return Promise.resolve(\n this.storage.save(\n stateId,\n JSON.stringify({\n version,\n state\n })\n )\n );\n }\n\n /**\n * Loads and returns the state for the given stateId and version.\n * @param stateId - The unique id or key for which the state shall be loaded.\n * @param version - The version of the state object.\n * This can be used to migrate state objects.\n * @returns A Promise containing the state or undefined if the state does not exist or the version did not match.\n */\n load<TState = unknown>(stateId: string, version = 0): PromiseLike<TState | undefined> {\n // DO NOT ADD async keyword.\n // This method should stay synchronous if the storage is synchronous.\n // Otherwise, the navbar will play expand animations on load.\n const dataOrPromise = this.storage.load(stateId);\n if (dataOrPromise instanceof Promise) {\n return dataOrPromise.then(data => this.readData(data, version));\n } else {\n const promiseLike = {\n then: onfulfilled => {\n const data = this.readData<TState>(dataOrPromise, version);\n if (onfulfilled) {\n return onfulfilled(data);\n } else {\n return promiseLike;\n }\n }\n } as PromiseLike<TState | undefined>;\n\n return promiseLike;\n }\n }\n\n private readData<TState = unknown>(\n data: string | null | undefined,\n version: number\n ): TState | undefined {\n if (data) {\n const parsed = JSON.parse(data);\n if (parsed.version === version) {\n return parsed.state;\n }\n }\n\n return undefined;\n }\n}\n\nexport type { SiUIStateService };\n\n/** Enables the automatic storage of UI state for enabled components. */\nexport const provideSiUiState = (config?: { store?: Type<UIStateStorage> }): Provider[] => {\n return [\n { provide: SI_UI_STATE_SERVICE, useClass: SiUIStateService },\n config?.store ? { provide: SI_UI_STATE_STORAGE, useClass: config.store } : []\n ];\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\n\nexport interface FontStyleOverride {\n fontStyle?: string;\n fontVariant?: string;\n fontWeight?: string;\n fontSize?: string;\n fontFamily?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextMeasureService {\n private measureCanvas?: CanvasRenderingContext2D;\n private defaultFont?: string;\n private document = inject(DOCUMENT);\n /** Measure text width in pixel. */\n measureText(text: string, fontRef?: HTMLElement | string, overrides?: FontStyleOverride): number {\n this.ensureCanvas();\n this.setFontStyle(fontRef, overrides);\n return Math.ceil(this.measureCanvas!.measureText(text).width);\n }\n /** Get font styles for `font` CSS short-hand property. */\n getFontStyle(element: HTMLElement, overrides?: FontStyleOverride): string {\n const style = getComputedStyle(element);\n // note: can't use destructuring on `style` as it doesn't work on Firefox\n const fontStyle = overrides?.fontStyle ?? style.fontStyle;\n const fontVariant = overrides?.fontVariant ?? style.fontVariant;\n const fontWeight = overrides?.fontWeight ?? style.fontWeight;\n const fontSize = overrides?.fontSize ?? style.fontSize;\n const fontFamily = overrides?.fontFamily ?? style.fontFamily;\n return `${fontStyle} ${fontVariant} ${fontWeight} ${fontSize} ${fontFamily}`\n .replace(/ +/g, ' ')\n .trim();\n }\n\n private ensureCanvas(): void {\n if (this.measureCanvas) {\n return;\n }\n const canvas = this.document.createElement('canvas') as HTMLCanvasElement;\n this.measureCanvas = canvas.getContext('2d') as CanvasRenderingContext2D;\n }\n\n private setFontStyle(fontRef?: HTMLElement | string, overrides?: FontStyleOverride): void {\n if (typeof fontRef === 'string') {\n this.measureCanvas!.font = fontRef;\n return;\n }\n if (fontRef || overrides) {\n this.measureCanvas!.font = this.getFontStyle(fontRef ?? this.document.body, overrides);\n return;\n }\n this.defaultFont ??= this.getFontStyle(this.document.body);\n this.measureCanvas!.font = this.defaultFont;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\n\n/**\n * Gets the width of the scrollbar. Nesc for windows\n * http://stackoverflow.com/a/13382873/888165\n */\n@Injectable({ providedIn: 'root' })\nexport class ScrollbarHelper {\n private document = inject(DOCUMENT);\n\n /**\n * The width of the scrollbar.\n *\n * @defaultValue this.getWidth()\n */\n readonly width: number = this.getWidth();\n\n private getWidth(): number {\n const outer = this.document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n (outer.style as any).msOverflowStyle = 'scrollbar';\n this.document.body.appendChild(outer);\n\n const widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n const inner = this.document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n const widthWithScroll = inner.offsetWidth;\n outer.parentNode?.removeChild(outer);\n\n return widthNoScroll - widthWithScroll;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './blink.service';\nexport * from './si-uistate.service';\nexport * from './text-measure.service';\nexport * from './scrollbar-helper.service';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nexport type StatusType = 'success' | 'info' | 'warning' | 'danger' | 'caution' | 'critical';\nexport type ExtendedStatusType = StatusType | 'unknown';\nexport type EntityStatusType = ExtendedStatusType | 'pending' | 'progress';\nexport type AccentLineType = StatusType | 'caution' | 'primary' | 'inactive';\n\nexport interface StatusIcon {\n icon: string;\n color: string;\n stacked: string;\n stackedColor: string;\n background: string;\n severity: number; // for sorting\n ariaLabel?: TranslatableString;\n}\n\nexport const STATUS_ICON: { [key in EntityStatusType]: StatusIcon } = {\n success: {\n icon: 'element-circle-filled',\n color: 'status-success',\n stacked: 'element-state-tick smooth-auto',\n stackedColor: 'status-success-contrast',\n background: 'bg-base-success',\n severity: 5\n },\n info: {\n icon: 'element-square-filled',\n color: 'status-info',\n stacked: 'element-state-info smooth-auto',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 4\n },\n caution: {\n icon: 'element-square-45-filled',\n color: 'status-caution',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 3\n },\n warning: {\n icon: 'element-triangle-filled',\n color: 'status-warning',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-warning-contrast',\n background: 'bg-base-warning',\n severity: 2\n },\n danger: {\n icon: 'element-circle-filled',\n color: 'status-danger',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-danger-contrast',\n background: 'bg-base-danger',\n severity: 1\n },\n critical: {\n icon: 'element-octagon-filled',\n color: 'status-critical',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-critical-contrast',\n background: 'bg-base-critical',\n severity: 0\n },\n progress: {\n icon: 'element-circle-filled',\n color: 'status-info',\n stacked: 'element-state-progress smooth-auto',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 7\n },\n pending: {\n icon: 'element-circle-filled',\n color: 'status-caution',\n stacked: 'element-state-pause smooth-auto',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 6\n },\n unknown: {\n icon: 'element-circle-filled',\n color: 'status-neutral',\n stacked: 'element-state-question-mark',\n stackedColor: 'text-body',\n background: 'bg-base-0',\n severity: 8\n }\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nconst positionStart: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'center',\n originX: 'start',\n originY: 'center'\n};\n\nconst positionEnd: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'center',\n originX: 'end',\n originY: 'center'\n};\n\nexport const positionTopCenter: ConnectionPositionPair = {\n overlayX: 'center',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionTopStart: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionTopEnd: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionBottomCenter: ConnectionPositionPair = {\n overlayX: 'center',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positionBottomStart: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positionBottomEnd: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positions = {\n top: [\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart,\n positionEnd\n ],\n end: [\n positionEnd,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart\n ],\n bottom: [\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionStart,\n positionEnd\n ],\n start: [\n positionStart,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionEnd\n ],\n auto: [\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart,\n positionEnd\n ]\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './color-variant.model';\nexport * from './menu.model';\nexport * from './status-type.model';\nexport * from './positions.model';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/**\n * @returns Returns whether animations are disabled via the CSS var. This is either set by\n * an application on low-end devices or in case the device is configured for reduced motion\n * (i.e. `@media (prefers-reduced-motion)` matches)\n */\nexport const areAnimationsDisabled = (): boolean => {\n const style = getComputedStyle(document.documentElement);\n const flag = style.getPropertyValue('--element-animations-enabled');\n return parseInt(flag, 10) === 0;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const isRTL = (elem?: HTMLElement): boolean =>\n getComputedStyle(elem ?? document.documentElement).direction === 'rtl';\n\nexport const correctKeyRTL = (key: string): string => {\n if (!isRTL()) {\n return key;\n }\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { isRTL } from './rtl';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Direction = 'down' | 'up' | 'start' | 'end';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type PlacementBasicVertical = 'top' | 'bottom';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type PlacementBasic = 'start' | 'end' | PlacementBasicVertical;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Placement = '' | PlacementBasic | `${PlacementBasic} ${PlacementBasic}`;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Align = 'start' | 'center' | 'end';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const AXIS_X = {\n axis: 'X',\n directionRegular: 'end',\n directionReverse: 'start',\n upperBound: 'left',\n lowerBound: 'right',\n size: 'width',\n windowSize: 'innerWidth'\n} as const;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const AXIS_Y = {\n axis: 'Y',\n directionRegular: 'down',\n directionReverse: 'up',\n upperBound: 'top',\n lowerBound: 'bottom',\n size: 'height',\n windowSize: 'innerHeight'\n} as const;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const BOUNDING_RECT_WINDOW = {\n getBoundingClientRect: () => ({\n top: 0,\n left: 0,\n bottom: window.innerHeight,\n right: window.innerWidth\n })\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const resolveReference = (\n hostElement: HTMLElement,\n reference: string\n): HTMLElement | null => {\n if (reference) {\n const childReferenceCheck = hostElement.querySelector(reference);\n if (childReferenceCheck) {\n return childReferenceCheck as HTMLElement;\n }\n const referenceCheck = hostElement.closest(reference);\n if (referenceCheck) {\n return referenceCheck as HTMLElement;\n }\n const all = document.querySelectorAll(reference);\n return (all[all.length - 1] as HTMLElement) ?? null;\n }\n return null;\n};\n\nconst getScrollParentsChain = (\n element: HTMLElement | null,\n axis: 'X' | 'Y',\n scrollParentsList: (typeof BOUNDING_RECT_WINDOW)[] = []\n): (typeof BOUNDING_RECT_WINDOW)[] => {\n if (element) {\n const overflowStyle =\n getComputedStyle(element)[axis === 'X' ? 'overflowX' : 'overflowY'] || 'visible';\n if (\n element[axis === 'X' ? 'clientWidth' : 'clientHeight'] &&\n overflowStyle !== 'visible' &&\n overflowStyle !== 'hidden'\n ) {\n scrollParentsList.push(document.documentElement === element ? BOUNDING_RECT_WINDOW : element);\n }\n if (element !== document.documentElement) {\n getScrollParentsChain(\n (element as any).dropdownParentElement ?? element.parentElement ?? document.body,\n axis,\n scrollParentsList\n );\n }\n }\n return scrollParentsList;\n};\n\nconst getCombinedBoundingClientRect = (\n elements: HTMLElement[]\n): { top: number; bottom: number; left: number; right: number } => {\n let top = 0;\n let bottom = 0;\n let left = 0;\n let right = 0;\n if (elements.length > 0) {\n const tops: number[] = [];\n const bottoms: number[] = [];\n const lefts: number[] = [];\n const rights: number[] = [];\n elements.forEach(element => {\n const rect = element.getBoundingClientRect();\n tops.push(rect.top);\n bottoms.push(rect.bottom);\n lefts.push(rect.left);\n rights.push(rect.right);\n });\n top = Math.min(...tops);\n bottom = Math.max(...bottoms);\n left = Math.min(...lefts);\n right = Math.max(...rights);\n }\n return { top, bottom, left, right };\n};\n\nconst calculatePlacementRefOuterBounds = (\n currentAxis: typeof AXIS_X | typeof AXIS_Y,\n placementReferenceElement: HTMLElement | null\n): { upper: number; lower: number } => {\n // The chain of scroll parents of the placement ref element up to and often including the body, checking for possible overlaps.\n const placementRefScrollParents = getScrollParentsChain(\n placementReferenceElement,\n currentAxis.axis\n );\n const placementRefScrollParentRects = placementRefScrollParents.map(item =>\n item.getBoundingClientRect()\n );\n // The biggest upper bound (top, left) of all scroll parents (and viewport = 0), the point before which content will be cut off.\n const placementRefScrollParentsUpperBound = Math.max(\n 0,\n ...placementRefScrollParentRects.map(item => item[currentAxis.upperBound])\n );\n // The smallest lower bound (bottom, right) of all scroll parents (and viewport), the point after which content will be cut off.\n const placementRefScrollParentsLowerBound = Math.min(\n window[currentAxis.windowSize],\n ...placementRefScrollParentRects.map(item => item[currentAxis.lowerBound])\n );\n return { upper: placementRefScrollParentsUpperBound, lower: placementRefScrollParentsLowerBound };\n};\n\nconst calculateDirectionFromPlacementRef = (params: {\n currentAxis: typeof AXIS_X | typeof AXIS_Y;\n positionRegular: { left: number; top: number };\n positionReverse: { left: number; top: number };\n contentSize: number;\n placementRefBounds: { upper: number; lower: number };\n currentDirection: Direction;\n rtl?: boolean;\n}): Direction => {\n const {\n currentAxis,\n positionRegular,\n positionReverse,\n contentSize,\n placementRefBounds,\n currentDirection,\n rtl\n } = params;\n // A number showing how many visible pixels would be available from the placement ref in regular / scroll (down, end) direction\n const placementRefSpaceRegular =\n placementRefBounds.lower - positionRegular[currentAxis.upperBound];\n // A number showing how many visible pixels would be available from the placement ref in reverse (up, start) direction\n const placementRefSpaceReverse =\n positionReverse[currentAxis.upperBound] - placementRefBounds.upper;\n if (placementRefSpaceReverse < contentSize && placementRefSpaceRegular < contentSize) {\n // If there would not be enough room in both directions, always prefer regular / scroll (down, end) direction,\n // since this way the element can expand and scroll while this cannot happen if there's not enough room in front.\n return rtl ? currentAxis.directionReverse : currentAxis.directionRegular;\n } else if (placementRefSpaceReverse < contentSize) {\n return currentAxis.directionRegular;\n } else if (placementRefSpaceRegular < contentSize) {\n return currentAxis.directionReverse;\n }\n // If there would be enough room in both directions, use the set direction (or the regular one if not set).\n return currentDirection;\n};\n\nconst getAbsoluteContentPosition = (params: {\n direction: Direction;\n placement: Placement;\n element: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): { left: number; top: number } => {\n const { direction, placement, element, align, rtl } = params;\n const elementRect = element.getBoundingClientRect();\n\n const start = rtl ? elementRect.right : elementRect.left;\n const end = rtl ? elementRect.left : elementRect.right;\n\n let relativeLeftOffset = 0;\n if (direction === 'start' || direction === 'end') {\n relativeLeftOffset =\n placement.includes('end') || (!placement.includes('start') && direction === 'end')\n ? end\n : start;\n } else {\n if (placement.includes('start')) {\n relativeLeftOffset = start;\n } else {\n if (placement.includes('end') || align === 'end') {\n relativeLeftOffset = end;\n } else if (align === 'center') {\n relativeLeftOffset = elementRect.left + (elementRect.right - elementRect.left) / 2;\n } else {\n relativeLeftOffset = start;\n }\n }\n }\n let relativeTopOffset = 0;\n if (direction === 'up') {\n relativeTopOffset = placement.includes('bottom') ? elementRect.bottom : elementRect.top;\n } else if (direction === 'start' || direction === 'end') {\n relativeTopOffset = !placement.includes('bottom') ? elementRect.top : elementRect.bottom;\n } else {\n relativeTopOffset = placement.includes('top') ? elementRect.top : elementRect.bottom;\n }\n return { left: relativeLeftOffset, top: relativeTopOffset };\n};\n\nconst getRelativeContentPosition = (params: {\n contentElement: HTMLElement;\n direction: Direction;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): { left: number; top: number } => {\n const { contentElement, direction, placement, placementReferenceElement, align, rtl } = params;\n const contentParent = (contentElement as HTMLElement).offsetParent ?? document.body;\n const contentParentRect = contentParent.getBoundingClientRect();\n const relativePosition = getAbsoluteContentPosition({\n direction,\n placement,\n element: placementReferenceElement,\n align,\n rtl\n });\n const leftOffset = relativePosition.left - contentParentRect.left + contentParent.scrollLeft;\n const topOffset = relativePosition.top - contentParentRect.top + contentParent.scrollTop;\n return { left: leftOffset, top: topOffset };\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const getContentPositionString = (params: {\n contentElement: HTMLElement;\n direction: Direction;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): string => {\n const { contentElement, direction, placement, placementReferenceElement, align, rtl } = params;\n const position = getRelativeContentPosition({\n contentElement,\n direction,\n placement,\n placementReferenceElement,\n align,\n rtl: rtl ?? isRTL()\n });\n return `translate3d(${position.left}px, ${position.top}px, 0px)`;\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const responsivelyCheckDirection = (params: {\n isScrolling?: boolean;\n currentDirection: Direction;\n contentElements: HTMLElement[];\n hostElement: HTMLElement | null;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n responsiveDirectionToPlacement: boolean;\n closeOnPlacementReferenceScrollOut: boolean;\n closeOnContentScrollOut: boolean;\n minSpaceThresholdFactor?: number;\n placementReverse?: Placement;\n rtl?: boolean;\n}): { responsiveDirection?: Direction; close: boolean } => {\n const {\n isScrolling,\n currentDirection,\n contentElements,\n hostElement,\n placement,\n placementReferenceElement,\n align,\n responsiveDirectionToPlacement,\n closeOnPlacementReferenceScrollOut,\n closeOnContentScrollOut,\n minSpaceThresholdFactor,\n placementReverse,\n rtl\n } = params;\n\n const actualRtl = rtl ?? isRTL();\n\n let responsiveDirection: Direction | undefined;\n\n const actualCurrentDirection = actualRtl\n ? currentDirection === 'start'\n ? 'end'\n : currentDirection === 'end'\n ? 'start'\n : currentDirection\n : currentDirection;\n\n // Defines how the properties to access are named in the current axis.\n const currentAxis = currentDirection === 'start' || currentDirection === 'end' ? AXIS_X : AXIS_Y;\n // The combined (enclosing) client rect for all component contents.\n const contentsRect = getCombinedBoundingClientRect(contentElements);\n // The chain of scroll parents of the container host element up to and often including the body, checking for possible overlaps.\n const containerScrollParents = getScrollParentsChain(hostElement, currentAxis.axis);\n const containerScrollParentRects = containerScrollParents.map(item =>\n item.getBoundingClientRect()\n );\n // The biggest upper bound (top, left) of all scroll parents (and viewport = 0), the point before which content will be cut off.\n const scrollParentsUpperBound = Math.max(\n 0,\n ...containerScrollParentRects.map(item => item[currentAxis.upperBound])\n );\n // The smallest lower bound (bottom, right) of all scroll parents (and viewport), the point after which content will be cut off.\n const scrollParentsLowerBound = Math.min(\n window[currentAxis.windowSize],\n ...containerScrollParentRects.map(item => item[currentAxis.lowerBound])\n );\n\n // The point from which the component will be opened if opening in regular / scroll (down, end) direction.\n // Influenced by `componentPlacementReference`, `componentPlacement` and `componentAlign`.\n const positionRegular = getAbsoluteContentPosition({\n direction: currentAxis.directionRegular,\n placement,\n element: placementReferenceElement,\n align\n });\n // The point from which the component will be opened if opening in reverse (up, start) direction.\n // Influenced by `componentPlacementReference`, `componentPlacement` and `componentAlign`.\n const positionReverse = getAbsoluteContentPosition({\n direction: currentAxis.directionReverse,\n placement: placementReverse ?? placement,\n element: placementReferenceElement,\n align\n });\n\n // The enclosing size (height, width) of all contents combined\n const contentsSize = contentsRect[currentAxis.lowerBound] - contentsRect[currentAxis.upperBound];\n\n // A number showing how many visible pixels would be available in regular / scroll (down, end) direction\n const spaceRegular = scrollParentsLowerBound - positionRegular[currentAxis.upperBound];\n // A number showing how many visible pixels would be available in reverse (up, start) direction\n const spaceReverse = positionReverse[currentAxis.upperBound] - scrollParentsUpperBound;\n\n let placementRefBounds: { upper: number; lower: number } | undefined;\n if (spaceReverse < contentsSize && spaceRegular < contentsSize) {\n // If there would not be enough room in both directions, always prefer regular / scroll (down, end) direction,\n // since this way the element can expand and scroll while this cannot happen if there's not enough room in front.\n responsiveDirection = actualRtl ? currentAxis.directionReverse : currentAxis.directionRegular;\n } else if (minSpaceThresholdFactor) {\n const contentsSizeWithThreshold = contentsSize + minSpaceThresholdFactor * contentsSize;\n if (spaceReverse < contentsSizeWithThreshold && spaceRegular < contentsSizeWithThreshold) {\n // If a threshold is set and there would not be enough space including the threshold in both directions\n // use the direction with more space\n if (spaceReverse < spaceRegular) {\n responsiveDirection = currentAxis.directionRegular;\n } else {\n responsiveDirection = currentAxis.directionReverse;\n }\n } else if (spaceReverse < contentsSizeWithThreshold) {\n responsiveDirection = currentAxis.directionRegular;\n } else if (spaceRegular < contentsSizeWithThreshold) {\n responsiveDirection = currentAxis.directionReverse;\n }\n }\n if (!responsiveDirection) {\n if (spaceReverse < contentsSize) {\n responsiveDirection = currentAxis.directionRegular;\n } else if (spaceRegular < contentsSize) {\n responsiveDirection = currentAxis.directionReverse;\n } else {\n if (\n responsiveDirectionToPlacement &&\n placementReferenceElement &&\n hostElement !== placementReferenceElement\n ) {\n placementRefBounds = calculatePlacementRefOuterBounds(\n currentAxis,\n placementReferenceElement\n );\n responsiveDirection = calculateDirectionFromPlacementRef({\n currentAxis,\n positionRegular,\n positionReverse,\n contentSize: contentsSize,\n placementRefBounds,\n currentDirection: actualCurrentDirection,\n rtl: actualRtl\n });\n } else {\n // If there would be enough room in both directions, use the set direction (or the regular one if not set).\n responsiveDirection = actualCurrentDirection;\n }\n }\n }\n\n let close = false;\n if (isScrolling) {\n // Check if the container host or placement reference is hidden and close the component. (Mostly done when scrolling.)\n if (\n closeOnPlacementReferenceScrollOut &&\n placementReferenceElement &&\n hostElement !== placementReferenceElement\n ) {\n placementRefBounds ??= calculatePlacementRefOuterBounds(\n currentAxis,\n placementReferenceElement\n );\n const placementRefRect = placementReferenceElement.getBoundingClientRect();\n // A number showing how many visible pixels of the placement ref would be shown in reverse (up, start) direction\n const placementRefVisibleTop =\n placementRefRect[currentAxis.lowerBound] - placementRefBounds.upper;\n // A number showing how many visible pixels of the placement ref would be shown in regular / scroll (down, end) direction\n const placementRefVisibleBottom =\n placementRefBounds.lower - placementRefRect[currentAxis.upperBound];\n if (placementRefVisibleTop < 0 || placementRefVisibleBottom < 0) {\n // Close the component if the placement ref is not visible.\n close = true;\n }\n }\n if (!close && closeOnContentScrollOut) {\n // A number showing how many visible pixels would be available the other way if set to regular / scroll (down, end) direction\n const spaceRegularOtherSide =\n scrollParentsLowerBound - positionReverse[currentAxis.upperBound];\n // A number showing how many visible pixels would be available the other way if set to reverse (up, start) direction\n const spaceReverseOtherSide =\n positionRegular[currentAxis.upperBound] - scrollParentsUpperBound;\n if (spaceRegularOtherSide < 0 || spaceReverseOtherSide < 0) {\n // Close the component if there is not enough space even in the other direction.\n close = true;\n }\n }\n }\n responsiveDirection = actualRtl\n ? responsiveDirection === 'start'\n ? 'end'\n : responsiveDirection === 'end'\n ? 'start'\n : responsiveDirection\n : responsiveDirection;\n return { responsiveDirection, close };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n// Adds a window listener which can optionally be active, returns the unregister function.\n// For some events (e.g. \"touchmove\") an explicit \"passive: false\" is required in order to\n// be able to do $event.preventDefault(). Unfortunately there is no way in Angular to pass\n// options to Rendrer2/EventManager event handling.\nexport const listenGlobal = (\n eventName: string,\n handler: (e: any) => void,\n active?: boolean\n): (() => void) => {\n let opts: any = false;\n if (active !== undefined) {\n opts = { passive: !active };\n }\n\n window.addEventListener(eventName, handler, opts);\n return () => {\n window.removeEventListener(eventName, handler, opts);\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy\n} from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\n\nimport {\n positionBottomEnd,\n positionBottomStart,\n positions,\n positionTopEnd,\n positionTopStart\n} from '../models/positions.model';\nimport { isRTL } from './rtl';\n\nexport function makePositionStrategy(\n elementRef: ElementRef<any> | undefined,\n overlay: Overlay,\n placement: keyof typeof positions | ConnectionPositionPair[],\n constrain = false,\n center = true\n): PositionStrategy {\n if (!elementRef?.nativeElement) {\n return overlay.position().global().centerHorizontally().centerVertically();\n }\n\n const popoverPositions = getOverlayPositions(elementRef, placement, center);\n const positionStrategy = overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withPush(false)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(constrain)\n .withPositions(popoverPositions);\n if (constrain) {\n positionStrategy.withViewportMargin(8);\n }\n return positionStrategy;\n}\n\nexport function makeOverlay(\n positionStrategy: PositionStrategy,\n overlay: Overlay,\n hasBackdrop: boolean\n): OverlayRef {\n const config = new OverlayConfig();\n config.positionStrategy = positionStrategy;\n config.scrollStrategy = overlay.scrollStrategies.reposition();\n config.direction = isRTL() ? 'rtl' : 'ltr';\n if (hasBackdrop) {\n config.hasBackdrop = true;\n config.backdropClass = 'cdk-overlay-transparent-backdrop';\n } else {\n config.hasBackdrop = false;\n }\n return overlay.create(config);\n}\n\nexport function getOverlay(\n elementRef: ElementRef<any>,\n overlay: Overlay,\n hasBackdrop: boolean,\n placement: keyof typeof positions | ConnectionPositionPair[],\n constrain = false,\n center = true\n): OverlayRef {\n const positionStrategy = makePositionStrategy(elementRef, overlay, placement, constrain, center);\n return makeOverlay(positionStrategy, overlay, hasBackdrop);\n}\n\nexport function getPositionStrategy(\n overlayref: OverlayRef\n): FlexibleConnectedPositionStrategy | undefined {\n return overlayref.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n}\n\nexport function getOverlayPositions(\n elementRef: ElementRef<any>,\n placement: keyof typeof positions | ConnectionPositionPair[],\n center = true\n): ConnectionPositionPair[] {\n if (elementRef.nativeElement && center) {\n const rtl = isRTL();\n const halfWidth = Math.round(elementRef.nativeElement.offsetWidth / 2);\n positionTopStart.offsetX = positionBottomStart.offsetX = halfWidth * (rtl ? 1 : -1);\n positionTopEnd.offsetX = positionBottomEnd.offsetX = halfWidth * (rtl ? -1 : 1);\n } else {\n positionTopStart.offsetX = undefined;\n positionTopEnd.offsetX = undefined;\n positionBottomStart.offsetX = undefined;\n positionBottomEnd.offsetX = undefined;\n }\n return typeof placement === 'string' ? positions[placement] : placement;\n}\n\nexport function hasTrigger(trigger: string, triggers?: string): boolean {\n return (triggers?.split(/\\s+/) ?? []).includes(trigger);\n}\n\nexport interface OverlayArrowPosition {\n left?: number;\n right?: number;\n}\n/**\n * calculates the arrow position from left/right for tooltips, popovers, etc\n * @param change - the event from the position strategy\n * @param overlay - ElementRef for the overlay content, i.e. the popover/tooltip component\n * @param anchor - ElementRef for the anchoring element, i.e. the trigger of the popover/tooltip\n */\nexport function calculateOverlayArrowPosition(\n change: ConnectedOverlayPositionChange,\n overlay: ElementRef,\n anchor?: ElementRef\n): OverlayArrowPosition {\n if (anchor && ['bottom', 'top'].includes(change.connectionPair.originY)) {\n // Calculate offset to the anchor element center\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\n const overlayRect = overlay.nativeElement.getBoundingClientRect();\n const center = anchorRect.left + anchorRect.width / 2;\n // Position arrow centered to the anchor element\n\n // prettier-ignore\n return isRTL()\n ? { right: overlayRect.right - center }\n : { left: center - overlayRect.left };\n }\n\n const offsetX = change.connectionPair.offsetX;\n if (offsetX) {\n // prettier-ignore\n return offsetX < 0\n ? { left: -offsetX }\n : { right: offsetX };\n }\n return {};\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './animation.helpers';\nexport * from './positioning.helpers';\nexport * from './rtl';\nexport * from './global-events.helpers';\nexport * from './overlay-helper';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Type } from '@angular/core';\n\n// note: this _must_ be a function, not an arrow\n// eslint-disable-next-line\nexport function WebComponentContentChildren<T>(host: Type<T>) {\n // holds the Type information of child component and the property name of parent component which is used to hold it.\n return (...args: any) => {\n args[0].__contentQuery = {\n host,\n prop: args[1]\n };\n };\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './webcomponent.decorator';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './services';\nexport * from './models';\nexport * from './helpers';\nexport * from './decorators';\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-common.mjs","sources":["../../../../projects/element-ng/common/services/blink.service.ts","../../../../projects/element-ng/common/services/si-uistate.service.ts","../../../../projects/element-ng/common/services/text-measure.service.ts","../../../../projects/element-ng/common/services/scrollbar-helper.service.ts","../../../../projects/element-ng/common/services/index.ts","../../../../projects/element-ng/common/models/status-type.model.ts","../../../../projects/element-ng/common/models/positions.model.ts","../../../../projects/element-ng/common/models/index.ts","../../../../projects/element-ng/common/helpers/animation.helpers.ts","../../../../projects/element-ng/common/helpers/rtl.ts","../../../../projects/element-ng/common/helpers/positioning.helpers.ts","../../../../projects/element-ng/common/helpers/global-events.helpers.ts","../../../../projects/element-ng/common/helpers/overlay-helper.ts","../../../../projects/element-ng/common/helpers/index.ts","../../../../projects/element-ng/common/decorators/webcomponent.decorator.ts","../../../../projects/element-ng/common/decorators/index.ts","../../../../projects/element-ng/common/index.ts","../../../../projects/element-ng/common/siemens-element-ng-common.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport {\n distinctUntilChanged,\n endWith,\n filter,\n map,\n repeat,\n share,\n takeUntil\n} from 'rxjs/operators';\n\n/**\n * A global blink pulse generator for synchronized blinking patterns across an entire application.\n * Use to trigger any blinking by subscribing to `pulse$`.\n */\n@Injectable({ providedIn: 'root' })\nexport class BlinkService {\n private pause$ = new BehaviorSubject<boolean>(false);\n\n private off$ = this.pause$.pipe(filter(v => v));\n private on$ = this.pause$.pipe(filter(v => !v));\n\n /**\n * Blink pulse. Subscribe to it to toggle `on` CSS class when true, `off` CSS class when `false`.\n * Do animations using CSS transitions\n *\n * @defaultValue\n * ```\n * timer(0, 1400).pipe(\n * map(count => count % 2 === 0),\n * distinctUntilChanged(),\n * takeUntil(this.off$),\n * endWith(false),\n * repeat({ delay: () => this.on$ }),\n * share()\n * )\n * ```\n */\n public readonly pulse$ = timer(0, 1400).pipe(\n map(count => count % 2 === 0),\n distinctUntilChanged(),\n takeUntil(this.off$),\n endWith(false),\n repeat({ delay: () => this.on$ }),\n share()\n );\n\n /**\n * Pause the blinking.\n */\n pause(): void {\n this.pause$.next(true);\n }\n\n /**\n * Resume the blinking.\n */\n resume(): void {\n this.pause$.next(false);\n }\n\n /**\n * Whether the blinking is paused or not.\n */\n isPaused(): boolean {\n return this.pause$.value;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { isPlatformBrowser } from '@angular/common';\nimport { inject, Injectable, InjectionToken, PLATFORM_ID, Provider, Type } from '@angular/core';\n\nconst SI_UI_STATE_STORAGE = new InjectionToken<UIStateStorage>('si.ui-state.storage', {\n providedIn: 'root',\n factory: () => {\n if (isPlatformBrowser(inject(PLATFORM_ID))) {\n return new LocalStorageUIStateStorage();\n }\n return { save: () => {}, load: () => null };\n }\n});\n\n/**\n * Interface that defines a UIStateStore.\n * It must be provided via {@link provideSiUiState}.\n */\nexport interface UIStateStorage {\n /**\n * Saves data under a specific stateId.\n * Already existing data for that stateId should be overridden.\n * Asynchronous implementations must return a {@link Promise} and resolve it once saving was completed.\n *\n * Errors should be handled by the implementation.\n * The `SiUIStateService` does not handle errors.\n */\n save(stateId: string, data: string): void | Promise<void>;\n\n /**\n * Loads data for a specific stateId.\n * Can be asynchronous.\n *\n * Errors should be handled by the implementation.\n * The `SiUIStateService` does not handle errors.\n *\n * @returns The data or undefined if the data does not exist.\n * Asynchronous implementations must return a {@link Promise} containing the data.\n */\n load(stateId: string): string | undefined | null | Promise<string | undefined | null>;\n}\n\nclass LocalStorageUIStateStorage implements UIStateStorage {\n save(stateId: string, data: string): void {\n localStorage.setItem(`si.ui-state.${stateId}`, data);\n }\n\n load(stateId: string): string | null {\n return localStorage.getItem(`si.ui-state.${stateId}`);\n }\n}\n\n/** @internal */\nexport const SI_UI_STATE_SERVICE = new InjectionToken<SiUIStateService>('si.ui-state.service');\n\n/**\n * Service to save and load UI states.\n * @internal\n */\n@Injectable()\nclass SiUIStateService {\n private storage = inject(SI_UI_STATE_STORAGE);\n\n /**\n * Saves the provided state in the storage.\n * @param stateId - The unique id or key under which the state shall be saved.\n * @param state - The state to be saved.\n * @param version - The version of the state object.\n * This can be used to migrate state objects.\n */\n save<TState>(stateId: string, state: TState, version = 0): Promise<void> {\n return Promise.resolve(\n this.storage.save(\n stateId,\n JSON.stringify({\n version,\n state\n })\n )\n );\n }\n\n /**\n * Loads and returns the state for the given stateId and version.\n * @param stateId - The unique id or key for which the state shall be loaded.\n * @param version - The version of the state object.\n * This can be used to migrate state objects.\n * @returns A Promise containing the state or undefined if the state does not exist or the version did not match.\n */\n load<TState = unknown>(stateId: string, version = 0): PromiseLike<TState | undefined> {\n // DO NOT ADD async keyword.\n // This method should stay synchronous if the storage is synchronous.\n // Otherwise, the navbar will play expand animations on load.\n const dataOrPromise = this.storage.load(stateId);\n if (dataOrPromise instanceof Promise) {\n return dataOrPromise.then(data => this.readData(data, version));\n } else {\n const promiseLike = {\n then: onfulfilled => {\n const data = this.readData<TState>(dataOrPromise, version);\n if (onfulfilled) {\n return onfulfilled(data);\n } else {\n return promiseLike;\n }\n }\n } as PromiseLike<TState | undefined>;\n\n return promiseLike;\n }\n }\n\n private readData<TState = unknown>(\n data: string | null | undefined,\n version: number\n ): TState | undefined {\n if (data) {\n const parsed = JSON.parse(data);\n if (parsed.version === version) {\n return parsed.state;\n }\n }\n\n return undefined;\n }\n}\n\nexport type { SiUIStateService };\n\n/** Enables the automatic storage of UI state for enabled components. */\nexport const provideSiUiState = (config?: { store?: Type<UIStateStorage> }): Provider[] => {\n return [\n { provide: SI_UI_STATE_SERVICE, useClass: SiUIStateService },\n config?.store ? { provide: SI_UI_STATE_STORAGE, useClass: config.store } : []\n ];\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\n\nexport interface FontStyleOverride {\n fontStyle?: string;\n fontVariant?: string;\n fontWeight?: string;\n fontSize?: string;\n fontFamily?: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class TextMeasureService {\n private measureCanvas?: CanvasRenderingContext2D;\n private defaultFont?: string;\n private document = inject(DOCUMENT);\n /** Measure text width in pixel. */\n measureText(text: string, fontRef?: HTMLElement | string, overrides?: FontStyleOverride): number {\n this.ensureCanvas();\n this.setFontStyle(fontRef, overrides);\n return Math.ceil(this.measureCanvas!.measureText(text).width);\n }\n /** Get font styles for `font` CSS short-hand property. */\n getFontStyle(element: HTMLElement, overrides?: FontStyleOverride): string {\n const style = getComputedStyle(element);\n // note: can't use destructuring on `style` as it doesn't work on Firefox\n const fontStyle = overrides?.fontStyle ?? style.fontStyle;\n const fontVariant = overrides?.fontVariant ?? style.fontVariant;\n const fontWeight = overrides?.fontWeight ?? style.fontWeight;\n const fontSize = overrides?.fontSize ?? style.fontSize;\n const fontFamily = overrides?.fontFamily ?? style.fontFamily;\n return `${fontStyle} ${fontVariant} ${fontWeight} ${fontSize} ${fontFamily}`\n .replace(/ +/g, ' ')\n .trim();\n }\n\n private ensureCanvas(): void {\n if (this.measureCanvas) {\n return;\n }\n const canvas = this.document.createElement('canvas') as HTMLCanvasElement;\n this.measureCanvas = canvas.getContext('2d') as CanvasRenderingContext2D;\n }\n\n private setFontStyle(fontRef?: HTMLElement | string, overrides?: FontStyleOverride): void {\n if (typeof fontRef === 'string') {\n this.measureCanvas!.font = fontRef;\n return;\n }\n if (fontRef || overrides) {\n this.measureCanvas!.font = this.getFontStyle(fontRef ?? this.document.body, overrides);\n return;\n }\n this.defaultFont ??= this.getFontStyle(this.document.body);\n this.measureCanvas!.font = this.defaultFont;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { inject, Injectable, DOCUMENT } from '@angular/core';\n\n/**\n * Gets the width of the scrollbar. Nesc for windows\n * http://stackoverflow.com/a/13382873/888165\n */\n@Injectable({ providedIn: 'root' })\nexport class ScrollbarHelper {\n private document = inject(DOCUMENT);\n\n /**\n * The width of the scrollbar.\n *\n * @defaultValue this.getWidth()\n */\n readonly width: number = this.getWidth();\n\n private getWidth(): number {\n const outer = this.document.createElement('div');\n outer.style.visibility = 'hidden';\n outer.style.width = '100px';\n (outer.style as any).msOverflowStyle = 'scrollbar';\n this.document.body.appendChild(outer);\n\n const widthNoScroll = outer.offsetWidth;\n outer.style.overflow = 'scroll';\n\n const inner = this.document.createElement('div');\n inner.style.width = '100%';\n outer.appendChild(inner);\n\n const widthWithScroll = inner.offsetWidth;\n outer.parentNode?.removeChild(outer);\n\n return widthNoScroll - widthWithScroll;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './blink.service';\nexport * from './si-uistate.service';\nexport * from './text-measure.service';\nexport * from './scrollbar-helper.service';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nexport type StatusType = 'success' | 'info' | 'warning' | 'danger' | 'caution' | 'critical';\nexport type ExtendedStatusType = StatusType | 'unknown';\nexport type EntityStatusType = ExtendedStatusType | 'pending' | 'progress';\nexport type AccentLineType = StatusType | 'caution' | 'primary' | 'inactive';\n\nexport interface StatusIcon {\n icon: string;\n color: string;\n stacked: string;\n stackedColor: string;\n background: string;\n severity: number; // for sorting\n ariaLabel?: TranslatableString;\n}\n\nexport const STATUS_ICON: { [key in EntityStatusType]: StatusIcon } = {\n success: {\n icon: 'element-circle-filled',\n color: 'status-success',\n stacked: 'element-state-tick smooth-auto',\n stackedColor: 'status-success-contrast',\n background: 'bg-base-success',\n severity: 5\n },\n info: {\n icon: 'element-square-filled',\n color: 'status-info',\n stacked: 'element-state-info smooth-auto',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 4\n },\n caution: {\n icon: 'element-square-45-filled',\n color: 'status-caution',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 3\n },\n warning: {\n icon: 'element-triangle-filled',\n color: 'status-warning',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-warning-contrast',\n background: 'bg-base-warning',\n severity: 2\n },\n danger: {\n icon: 'element-circle-filled',\n color: 'status-danger',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-danger-contrast',\n background: 'bg-base-danger',\n severity: 1\n },\n critical: {\n icon: 'element-octagon-filled',\n color: 'status-critical',\n stacked: 'element-state-exclamation-mark smooth-auto',\n stackedColor: 'status-critical-contrast',\n background: 'bg-base-critical',\n severity: 0\n },\n progress: {\n icon: 'element-circle-filled',\n color: 'status-info',\n stacked: 'element-state-progress smooth-auto',\n stackedColor: 'status-info-contrast',\n background: 'bg-base-info',\n severity: 7\n },\n pending: {\n icon: 'element-circle-filled',\n color: 'status-caution',\n stacked: 'element-state-pause smooth-auto',\n stackedColor: 'status-caution-contrast',\n background: 'bg-base-caution',\n severity: 6\n },\n unknown: {\n icon: 'element-circle-filled',\n color: 'status-neutral',\n stacked: 'element-state-question-mark',\n stackedColor: 'text-body',\n background: 'bg-base-0',\n severity: 8\n }\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectionPositionPair } from '@angular/cdk/overlay';\n\nconst positionStart: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'center',\n originX: 'start',\n originY: 'center'\n};\n\nconst positionEnd: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'center',\n originX: 'end',\n originY: 'center'\n};\n\nexport const positionTopCenter: ConnectionPositionPair = {\n overlayX: 'center',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionTopStart: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionTopEnd: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'bottom',\n originX: 'center',\n originY: 'top'\n};\n\nexport const positionBottomCenter: ConnectionPositionPair = {\n overlayX: 'center',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positionBottomStart: ConnectionPositionPair = {\n overlayX: 'start',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positionBottomEnd: ConnectionPositionPair = {\n overlayX: 'end',\n overlayY: 'top',\n originX: 'center',\n originY: 'bottom'\n};\n\nexport const positions = {\n top: [\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart,\n positionEnd\n ],\n end: [\n positionEnd,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart\n ],\n bottom: [\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionStart,\n positionEnd\n ],\n start: [\n positionStart,\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionEnd\n ],\n auto: [\n positionTopCenter,\n positionTopStart,\n positionTopEnd,\n positionBottomCenter,\n positionBottomStart,\n positionBottomEnd,\n positionStart,\n positionEnd\n ]\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './color-variant.model';\nexport * from './menu.model';\nexport * from './status-type.model';\nexport * from './positions.model';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/**\n * @returns Returns whether animations are disabled via the CSS var. This is either set by\n * an application on low-end devices or in case the device is configured for reduced motion\n * (i.e. `@media (prefers-reduced-motion)` matches)\n */\nexport const areAnimationsDisabled = (): boolean => {\n const style = getComputedStyle(document.documentElement);\n const flag = style.getPropertyValue('--element-animations-enabled');\n return parseInt(flag, 10) === 0;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/** */\nexport const isRTL = (elem?: HTMLElement): boolean =>\n getComputedStyle(elem ?? document.documentElement).direction === 'rtl';\n\nexport const correctKeyRTL = (key: string): string => {\n if (!isRTL()) {\n return key;\n }\n return key === 'ArrowLeft' ? 'ArrowRight' : key === 'ArrowRight' ? 'ArrowLeft' : key;\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { isRTL } from './rtl';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Direction = 'down' | 'up' | 'start' | 'end';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type PlacementBasicVertical = 'top' | 'bottom';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type PlacementBasic = 'start' | 'end' | PlacementBasicVertical;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Placement = '' | PlacementBasic | `${PlacementBasic} ${PlacementBasic}`;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport type Align = 'start' | 'center' | 'end';\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const AXIS_X = {\n axis: 'X',\n directionRegular: 'end',\n directionReverse: 'start',\n upperBound: 'left',\n lowerBound: 'right',\n size: 'width',\n windowSize: 'innerWidth'\n} as const;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const AXIS_Y = {\n axis: 'Y',\n directionRegular: 'down',\n directionReverse: 'up',\n upperBound: 'top',\n lowerBound: 'bottom',\n size: 'height',\n windowSize: 'innerHeight'\n} as const;\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const BOUNDING_RECT_WINDOW = {\n getBoundingClientRect: () => ({\n top: 0,\n left: 0,\n bottom: window.innerHeight,\n right: window.innerWidth\n })\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const resolveReference = (\n hostElement: HTMLElement,\n reference: string\n): HTMLElement | null => {\n if (reference) {\n const childReferenceCheck = hostElement.querySelector(reference);\n if (childReferenceCheck) {\n return childReferenceCheck as HTMLElement;\n }\n const referenceCheck = hostElement.closest(reference);\n if (referenceCheck) {\n return referenceCheck as HTMLElement;\n }\n const all = document.querySelectorAll(reference);\n return (all[all.length - 1] as HTMLElement) ?? null;\n }\n return null;\n};\n\nconst getScrollParentsChain = (\n element: HTMLElement | null,\n axis: 'X' | 'Y',\n scrollParentsList: (typeof BOUNDING_RECT_WINDOW)[] = []\n): (typeof BOUNDING_RECT_WINDOW)[] => {\n if (element) {\n const overflowStyle =\n getComputedStyle(element)[axis === 'X' ? 'overflowX' : 'overflowY'] || 'visible';\n if (\n element[axis === 'X' ? 'clientWidth' : 'clientHeight'] &&\n overflowStyle !== 'visible' &&\n overflowStyle !== 'hidden'\n ) {\n scrollParentsList.push(document.documentElement === element ? BOUNDING_RECT_WINDOW : element);\n }\n if (element !== document.documentElement) {\n getScrollParentsChain(\n (element as any).dropdownParentElement ?? element.parentElement ?? document.body,\n axis,\n scrollParentsList\n );\n }\n }\n return scrollParentsList;\n};\n\nconst getCombinedBoundingClientRect = (\n elements: HTMLElement[]\n): { top: number; bottom: number; left: number; right: number } => {\n let top = 0;\n let bottom = 0;\n let left = 0;\n let right = 0;\n if (elements.length > 0) {\n const tops: number[] = [];\n const bottoms: number[] = [];\n const lefts: number[] = [];\n const rights: number[] = [];\n elements.forEach(element => {\n const rect = element.getBoundingClientRect();\n tops.push(rect.top);\n bottoms.push(rect.bottom);\n lefts.push(rect.left);\n rights.push(rect.right);\n });\n top = Math.min(...tops);\n bottom = Math.max(...bottoms);\n left = Math.min(...lefts);\n right = Math.max(...rights);\n }\n return { top, bottom, left, right };\n};\n\nconst calculatePlacementRefOuterBounds = (\n currentAxis: typeof AXIS_X | typeof AXIS_Y,\n placementReferenceElement: HTMLElement | null\n): { upper: number; lower: number } => {\n // The chain of scroll parents of the placement ref element up to and often including the body, checking for possible overlaps.\n const placementRefScrollParents = getScrollParentsChain(\n placementReferenceElement,\n currentAxis.axis\n );\n const placementRefScrollParentRects = placementRefScrollParents.map(item =>\n item.getBoundingClientRect()\n );\n // The biggest upper bound (top, left) of all scroll parents (and viewport = 0), the point before which content will be cut off.\n const placementRefScrollParentsUpperBound = Math.max(\n 0,\n ...placementRefScrollParentRects.map(item => item[currentAxis.upperBound])\n );\n // The smallest lower bound (bottom, right) of all scroll parents (and viewport), the point after which content will be cut off.\n const placementRefScrollParentsLowerBound = Math.min(\n window[currentAxis.windowSize],\n ...placementRefScrollParentRects.map(item => item[currentAxis.lowerBound])\n );\n return { upper: placementRefScrollParentsUpperBound, lower: placementRefScrollParentsLowerBound };\n};\n\nconst calculateDirectionFromPlacementRef = (params: {\n currentAxis: typeof AXIS_X | typeof AXIS_Y;\n positionRegular: { left: number; top: number };\n positionReverse: { left: number; top: number };\n contentSize: number;\n placementRefBounds: { upper: number; lower: number };\n currentDirection: Direction;\n rtl?: boolean;\n}): Direction => {\n const {\n currentAxis,\n positionRegular,\n positionReverse,\n contentSize,\n placementRefBounds,\n currentDirection,\n rtl\n } = params;\n // A number showing how many visible pixels would be available from the placement ref in regular / scroll (down, end) direction\n const placementRefSpaceRegular =\n placementRefBounds.lower - positionRegular[currentAxis.upperBound];\n // A number showing how many visible pixels would be available from the placement ref in reverse (up, start) direction\n const placementRefSpaceReverse =\n positionReverse[currentAxis.upperBound] - placementRefBounds.upper;\n if (placementRefSpaceReverse < contentSize && placementRefSpaceRegular < contentSize) {\n // If there would not be enough room in both directions, always prefer regular / scroll (down, end) direction,\n // since this way the element can expand and scroll while this cannot happen if there's not enough room in front.\n return rtl ? currentAxis.directionReverse : currentAxis.directionRegular;\n } else if (placementRefSpaceReverse < contentSize) {\n return currentAxis.directionRegular;\n } else if (placementRefSpaceRegular < contentSize) {\n return currentAxis.directionReverse;\n }\n // If there would be enough room in both directions, use the set direction (or the regular one if not set).\n return currentDirection;\n};\n\nconst getAbsoluteContentPosition = (params: {\n direction: Direction;\n placement: Placement;\n element: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): { left: number; top: number } => {\n const { direction, placement, element, align, rtl } = params;\n const elementRect = element.getBoundingClientRect();\n\n const start = rtl ? elementRect.right : elementRect.left;\n const end = rtl ? elementRect.left : elementRect.right;\n\n let relativeLeftOffset: number;\n if (direction === 'start' || direction === 'end') {\n relativeLeftOffset =\n placement.includes('end') || (!placement.includes('start') && direction === 'end')\n ? end\n : start;\n } else {\n if (placement.includes('start')) {\n relativeLeftOffset = start;\n } else {\n if (placement.includes('end') || align === 'end') {\n relativeLeftOffset = end;\n } else if (align === 'center') {\n relativeLeftOffset = elementRect.left + (elementRect.right - elementRect.left) / 2;\n } else {\n relativeLeftOffset = start;\n }\n }\n }\n let relativeTopOffset: number;\n if (direction === 'up') {\n relativeTopOffset = placement.includes('bottom') ? elementRect.bottom : elementRect.top;\n } else if (direction === 'start' || direction === 'end') {\n relativeTopOffset = !placement.includes('bottom') ? elementRect.top : elementRect.bottom;\n } else {\n relativeTopOffset = placement.includes('top') ? elementRect.top : elementRect.bottom;\n }\n return { left: relativeLeftOffset, top: relativeTopOffset };\n};\n\nconst getRelativeContentPosition = (params: {\n contentElement: HTMLElement;\n direction: Direction;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): { left: number; top: number } => {\n const { contentElement, direction, placement, placementReferenceElement, align, rtl } = params;\n const contentParent = (contentElement as HTMLElement).offsetParent ?? document.body;\n const contentParentRect = contentParent.getBoundingClientRect();\n const relativePosition = getAbsoluteContentPosition({\n direction,\n placement,\n element: placementReferenceElement,\n align,\n rtl\n });\n const leftOffset = relativePosition.left - contentParentRect.left + contentParent.scrollLeft;\n const topOffset = relativePosition.top - contentParentRect.top + contentParent.scrollTop;\n return { left: leftOffset, top: topOffset };\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const getContentPositionString = (params: {\n contentElement: HTMLElement;\n direction: Direction;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n rtl?: boolean;\n}): string => {\n const { contentElement, direction, placement, placementReferenceElement, align, rtl } = params;\n const position = getRelativeContentPosition({\n contentElement,\n direction,\n placement,\n placementReferenceElement,\n align,\n rtl: rtl ?? isRTL()\n });\n return `translate3d(${position.left}px, ${position.top}px, 0px)`;\n};\n\n/** @deprecated Use the CDK Overlay instead. */\nexport const responsivelyCheckDirection = (params: {\n isScrolling?: boolean;\n currentDirection: Direction;\n contentElements: HTMLElement[];\n hostElement: HTMLElement | null;\n placement: Placement;\n placementReferenceElement: HTMLElement;\n align: Align;\n responsiveDirectionToPlacement: boolean;\n closeOnPlacementReferenceScrollOut: boolean;\n closeOnContentScrollOut: boolean;\n minSpaceThresholdFactor?: number;\n placementReverse?: Placement;\n rtl?: boolean;\n}): { responsiveDirection?: Direction; close: boolean } => {\n const {\n isScrolling,\n currentDirection,\n contentElements,\n hostElement,\n placement,\n placementReferenceElement,\n align,\n responsiveDirectionToPlacement,\n closeOnPlacementReferenceScrollOut,\n closeOnContentScrollOut,\n minSpaceThresholdFactor,\n placementReverse,\n rtl\n } = params;\n\n const actualRtl = rtl ?? isRTL();\n\n let responsiveDirection: Direction | undefined;\n\n const actualCurrentDirection = actualRtl\n ? currentDirection === 'start'\n ? 'end'\n : currentDirection === 'end'\n ? 'start'\n : currentDirection\n : currentDirection;\n\n // Defines how the properties to access are named in the current axis.\n const currentAxis = currentDirection === 'start' || currentDirection === 'end' ? AXIS_X : AXIS_Y;\n // The combined (enclosing) client rect for all component contents.\n const contentsRect = getCombinedBoundingClientRect(contentElements);\n // The chain of scroll parents of the container host element up to and often including the body, checking for possible overlaps.\n const containerScrollParents = getScrollParentsChain(hostElement, currentAxis.axis);\n const containerScrollParentRects = containerScrollParents.map(item =>\n item.getBoundingClientRect()\n );\n // The biggest upper bound (top, left) of all scroll parents (and viewport = 0), the point before which content will be cut off.\n const scrollParentsUpperBound = Math.max(\n 0,\n ...containerScrollParentRects.map(item => item[currentAxis.upperBound])\n );\n // The smallest lower bound (bottom, right) of all scroll parents (and viewport), the point after which content will be cut off.\n const scrollParentsLowerBound = Math.min(\n window[currentAxis.windowSize],\n ...containerScrollParentRects.map(item => item[currentAxis.lowerBound])\n );\n\n // The point from which the component will be opened if opening in regular / scroll (down, end) direction.\n // Influenced by `componentPlacementReference`, `componentPlacement` and `componentAlign`.\n const positionRegular = getAbsoluteContentPosition({\n direction: currentAxis.directionRegular,\n placement,\n element: placementReferenceElement,\n align\n });\n // The point from which the component will be opened if opening in reverse (up, start) direction.\n // Influenced by `componentPlacementReference`, `componentPlacement` and `componentAlign`.\n const positionReverse = getAbsoluteContentPosition({\n direction: currentAxis.directionReverse,\n placement: placementReverse ?? placement,\n element: placementReferenceElement,\n align\n });\n\n // The enclosing size (height, width) of all contents combined\n const contentsSize = contentsRect[currentAxis.lowerBound] - contentsRect[currentAxis.upperBound];\n\n // A number showing how many visible pixels would be available in regular / scroll (down, end) direction\n const spaceRegular = scrollParentsLowerBound - positionRegular[currentAxis.upperBound];\n // A number showing how many visible pixels would be available in reverse (up, start) direction\n const spaceReverse = positionReverse[currentAxis.upperBound] - scrollParentsUpperBound;\n\n let placementRefBounds: { upper: number; lower: number } | undefined;\n if (spaceReverse < contentsSize && spaceRegular < contentsSize) {\n // If there would not be enough room in both directions, always prefer regular / scroll (down, end) direction,\n // since this way the element can expand and scroll while this cannot happen if there's not enough room in front.\n responsiveDirection = actualRtl ? currentAxis.directionReverse : currentAxis.directionRegular;\n } else if (minSpaceThresholdFactor) {\n const contentsSizeWithThreshold = contentsSize + minSpaceThresholdFactor * contentsSize;\n if (spaceReverse < contentsSizeWithThreshold && spaceRegular < contentsSizeWithThreshold) {\n // If a threshold is set and there would not be enough space including the threshold in both directions\n // use the direction with more space\n if (spaceReverse < spaceRegular) {\n responsiveDirection = currentAxis.directionRegular;\n } else {\n responsiveDirection = currentAxis.directionReverse;\n }\n } else if (spaceReverse < contentsSizeWithThreshold) {\n responsiveDirection = currentAxis.directionRegular;\n } else if (spaceRegular < contentsSizeWithThreshold) {\n responsiveDirection = currentAxis.directionReverse;\n }\n }\n if (!responsiveDirection) {\n if (spaceReverse < contentsSize) {\n responsiveDirection = currentAxis.directionRegular;\n } else if (spaceRegular < contentsSize) {\n responsiveDirection = currentAxis.directionReverse;\n } else {\n if (\n responsiveDirectionToPlacement &&\n placementReferenceElement &&\n hostElement !== placementReferenceElement\n ) {\n placementRefBounds = calculatePlacementRefOuterBounds(\n currentAxis,\n placementReferenceElement\n );\n responsiveDirection = calculateDirectionFromPlacementRef({\n currentAxis,\n positionRegular,\n positionReverse,\n contentSize: contentsSize,\n placementRefBounds,\n currentDirection: actualCurrentDirection,\n rtl: actualRtl\n });\n } else {\n // If there would be enough room in both directions, use the set direction (or the regular one if not set).\n responsiveDirection = actualCurrentDirection;\n }\n }\n }\n\n let close = false;\n if (isScrolling) {\n // Check if the container host or placement reference is hidden and close the component. (Mostly done when scrolling.)\n if (\n closeOnPlacementReferenceScrollOut &&\n placementReferenceElement &&\n hostElement !== placementReferenceElement\n ) {\n placementRefBounds ??= calculatePlacementRefOuterBounds(\n currentAxis,\n placementReferenceElement\n );\n const placementRefRect = placementReferenceElement.getBoundingClientRect();\n // A number showing how many visible pixels of the placement ref would be shown in reverse (up, start) direction\n const placementRefVisibleTop =\n placementRefRect[currentAxis.lowerBound] - placementRefBounds.upper;\n // A number showing how many visible pixels of the placement ref would be shown in regular / scroll (down, end) direction\n const placementRefVisibleBottom =\n placementRefBounds.lower - placementRefRect[currentAxis.upperBound];\n if (placementRefVisibleTop < 0 || placementRefVisibleBottom < 0) {\n // Close the component if the placement ref is not visible.\n close = true;\n }\n }\n if (!close && closeOnContentScrollOut) {\n // A number showing how many visible pixels would be available the other way if set to regular / scroll (down, end) direction\n const spaceRegularOtherSide =\n scrollParentsLowerBound - positionReverse[currentAxis.upperBound];\n // A number showing how many visible pixels would be available the other way if set to reverse (up, start) direction\n const spaceReverseOtherSide =\n positionRegular[currentAxis.upperBound] - scrollParentsUpperBound;\n if (spaceRegularOtherSide < 0 || spaceReverseOtherSide < 0) {\n // Close the component if there is not enough space even in the other direction.\n close = true;\n }\n }\n }\n responsiveDirection = actualRtl\n ? responsiveDirection === 'start'\n ? 'end'\n : responsiveDirection === 'end'\n ? 'start'\n : responsiveDirection\n : responsiveDirection;\n return { responsiveDirection, close };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n// Adds a window listener which can optionally be active, returns the unregister function.\n// For some events (e.g. \"touchmove\") an explicit \"passive: false\" is required in order to\n// be able to do $event.preventDefault(). Unfortunately there is no way in Angular to pass\n// options to Rendrer2/EventManager event handling.\nexport const listenGlobal = (\n eventName: string,\n handler: (e: any) => void,\n active?: boolean\n): (() => void) => {\n let opts: any = false;\n if (active !== undefined) {\n opts = { passive: !active };\n }\n\n window.addEventListener(eventName, handler, opts);\n return () => {\n window.removeEventListener(eventName, handler, opts);\n };\n};\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\n/* eslint-disable prefer-arrow/prefer-arrow-functions */\nimport {\n ConnectedOverlayPositionChange,\n ConnectionPositionPair,\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayConfig,\n OverlayRef,\n PositionStrategy\n} from '@angular/cdk/overlay';\nimport { ElementRef } from '@angular/core';\n\nimport {\n positionBottomEnd,\n positionBottomStart,\n positions,\n positionTopEnd,\n positionTopStart\n} from '../models/positions.model';\nimport { isRTL } from './rtl';\n\nexport function makePositionStrategy(\n elementRef: ElementRef<any> | undefined,\n overlay: Overlay,\n placement: keyof typeof positions | ConnectionPositionPair[],\n constrain = false,\n center = true\n): PositionStrategy {\n if (!elementRef?.nativeElement) {\n return overlay.position().global().centerHorizontally().centerVertically();\n }\n\n const popoverPositions = getOverlayPositions(elementRef, placement, center);\n const positionStrategy = overlay\n .position()\n .flexibleConnectedTo(elementRef)\n .withPush(false)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(constrain)\n .withPositions(popoverPositions);\n if (constrain) {\n positionStrategy.withViewportMargin(8);\n }\n return positionStrategy;\n}\n\nexport function makeOverlay(\n positionStrategy: PositionStrategy,\n overlay: Overlay,\n hasBackdrop: boolean\n): OverlayRef {\n const config = new OverlayConfig();\n config.positionStrategy = positionStrategy;\n config.scrollStrategy = overlay.scrollStrategies.reposition();\n config.direction = isRTL() ? 'rtl' : 'ltr';\n if (hasBackdrop) {\n config.hasBackdrop = true;\n config.backdropClass = 'cdk-overlay-transparent-backdrop';\n } else {\n config.hasBackdrop = false;\n }\n return overlay.create(config);\n}\n\nexport function getOverlay(\n elementRef: ElementRef<any>,\n overlay: Overlay,\n hasBackdrop: boolean,\n placement: keyof typeof positions | ConnectionPositionPair[],\n constrain = false,\n center = true\n): OverlayRef {\n const positionStrategy = makePositionStrategy(elementRef, overlay, placement, constrain, center);\n return makeOverlay(positionStrategy, overlay, hasBackdrop);\n}\n\nexport function getPositionStrategy(\n overlayref: OverlayRef\n): FlexibleConnectedPositionStrategy | undefined {\n return overlayref.getConfig().positionStrategy as FlexibleConnectedPositionStrategy;\n}\n\nexport function getOverlayPositions(\n elementRef: ElementRef<any>,\n placement: keyof typeof positions | ConnectionPositionPair[],\n center = true\n): ConnectionPositionPair[] {\n if (elementRef.nativeElement && center) {\n const rtl = isRTL();\n const halfWidth = Math.round(elementRef.nativeElement.offsetWidth / 2);\n positionTopStart.offsetX = positionBottomStart.offsetX = halfWidth * (rtl ? 1 : -1);\n positionTopEnd.offsetX = positionBottomEnd.offsetX = halfWidth * (rtl ? -1 : 1);\n } else {\n positionTopStart.offsetX = undefined;\n positionTopEnd.offsetX = undefined;\n positionBottomStart.offsetX = undefined;\n positionBottomEnd.offsetX = undefined;\n }\n return typeof placement === 'string' ? positions[placement] : placement;\n}\n\nexport function hasTrigger(trigger: string, triggers?: string): boolean {\n return (triggers?.split(/\\s+/) ?? []).includes(trigger);\n}\n\nexport interface OverlayArrowPosition {\n left?: number;\n right?: number;\n}\n/**\n * calculates the arrow position from left/right for tooltips, popovers, etc\n * @param change - the event from the position strategy\n * @param overlay - ElementRef for the overlay content, i.e. the popover/tooltip component\n * @param anchor - ElementRef for the anchoring element, i.e. the trigger of the popover/tooltip\n */\nexport function calculateOverlayArrowPosition(\n change: ConnectedOverlayPositionChange,\n overlay: ElementRef,\n anchor?: ElementRef\n): OverlayArrowPosition {\n if (anchor && ['bottom', 'top'].includes(change.connectionPair.originY)) {\n // Calculate offset to the anchor element center\n const anchorRect = anchor.nativeElement.getBoundingClientRect();\n const overlayRect = overlay.nativeElement.getBoundingClientRect();\n const center = anchorRect.left + anchorRect.width / 2;\n // Position arrow centered to the anchor element\n\n // prettier-ignore\n return isRTL()\n ? { right: overlayRect.right - center }\n : { left: center - overlayRect.left };\n }\n\n const offsetX = change.connectionPair.offsetX;\n if (offsetX) {\n // prettier-ignore\n return offsetX < 0\n ? { left: -offsetX }\n : { right: offsetX };\n }\n return {};\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './animation.helpers';\nexport * from './positioning.helpers';\nexport * from './rtl';\nexport * from './global-events.helpers';\nexport * from './overlay-helper';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Type } from '@angular/core';\n\n// note: this _must_ be a function, not an arrow\n// eslint-disable-next-line\nexport function WebComponentContentChildren<T>(host: Type<T>) {\n // holds the Type information of child component and the property name of parent component which is used to hold it.\n return (...args: any) => {\n args[0].__contentQuery = {\n host,\n prop: args[1]\n };\n };\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './webcomponent.decorator';\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './services';\nexport * from './models';\nexport * from './helpers';\nexport * from './decorators';\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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"}