@siemens/element-ng 51.2.0 → 51.4.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 (61) hide show
  1. package/README.md +2 -2
  2. package/fesm2022/siemens-element-ng-breadcrumb.mjs +8 -46
  3. package/fesm2022/siemens-element-ng-breadcrumb.mjs.map +1 -1
  4. package/fesm2022/siemens-element-ng-chat-messages.mjs +2 -2
  5. package/fesm2022/siemens-element-ng-chat-messages.mjs.map +1 -1
  6. package/fesm2022/siemens-element-ng-common.mjs +5 -0
  7. package/fesm2022/siemens-element-ng-common.mjs.map +1 -1
  8. package/fesm2022/siemens-element-ng-dashboard.mjs +2 -3
  9. package/fesm2022/siemens-element-ng-dashboard.mjs.map +1 -1
  10. package/fesm2022/siemens-element-ng-datepicker.mjs +13 -3
  11. package/fesm2022/siemens-element-ng-datepicker.mjs.map +1 -1
  12. package/fesm2022/siemens-element-ng-filtered-search.mjs +261 -162
  13. package/fesm2022/siemens-element-ng-filtered-search.mjs.map +1 -1
  14. package/fesm2022/siemens-element-ng-form.mjs +4 -4
  15. package/fesm2022/siemens-element-ng-form.mjs.map +1 -1
  16. package/fesm2022/siemens-element-ng-formly.mjs +12 -8
  17. package/fesm2022/siemens-element-ng-formly.mjs.map +1 -1
  18. package/fesm2022/siemens-element-ng-maplibre.mjs +293 -10
  19. package/fesm2022/siemens-element-ng-maplibre.mjs.map +1 -1
  20. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs +2 -2
  21. package/fesm2022/siemens-element-ng-markdown-extensions-katex.mjs.map +1 -1
  22. package/fesm2022/siemens-element-ng-number-input.mjs +3 -2
  23. package/fesm2022/siemens-element-ng-number-input.mjs.map +1 -1
  24. package/fesm2022/siemens-element-ng-popover.mjs +19 -6
  25. package/fesm2022/siemens-element-ng-popover.mjs.map +1 -1
  26. package/fesm2022/siemens-element-ng-shadow-root.mjs +54 -1
  27. package/fesm2022/siemens-element-ng-shadow-root.mjs.map +1 -1
  28. package/fesm2022/siemens-element-ng-theme.mjs +59 -23
  29. package/fesm2022/siemens-element-ng-theme.mjs.map +1 -1
  30. package/fesm2022/siemens-element-ng-tooltip.mjs +82 -10
  31. package/fesm2022/siemens-element-ng-tooltip.mjs.map +1 -1
  32. package/fesm2022/siemens-element-ng-translate.mjs.map +1 -1
  33. package/fesm2022/siemens-element-ng-tree-view.mjs +15 -10
  34. package/fesm2022/siemens-element-ng-tree-view.mjs.map +1 -1
  35. package/fesm2022/siemens-element-ng-typeahead.mjs +9 -0
  36. package/fesm2022/siemens-element-ng-typeahead.mjs.map +1 -1
  37. package/maplibre/styles/maplibre-gl.scss +4 -0
  38. package/package.json +8 -8
  39. package/schematics/migrations/data/attribute-selectors.js +8 -1
  40. package/schematics/migrations/data/element-selectors.js +7 -1
  41. package/schematics/migrations/data/symbol-renaming.js +10 -0
  42. package/schematics/migrations/utilities/attribute-selector.migration.js +26 -10
  43. package/schematics/migrations/utilities/element-selector.migration.js +25 -15
  44. package/schematics/migrations/utilities/symbol-renaming.migration.js +90 -3
  45. package/schematics/utils/template-edit-utils.js +9 -0
  46. package/template-i18n.json +6 -0
  47. package/types/siemens-element-ng-breadcrumb.d.ts +1 -1
  48. package/types/siemens-element-ng-common.d.ts +5 -0
  49. package/types/siemens-element-ng-dashboard.d.ts +0 -1
  50. package/types/siemens-element-ng-datepicker.d.ts +6 -1
  51. package/types/siemens-element-ng-filtered-search.d.ts +26 -10
  52. package/types/siemens-element-ng-form.d.ts +1 -1
  53. package/types/siemens-element-ng-maplibre.d.ts +112 -5
  54. package/types/siemens-element-ng-number-input.d.ts +2 -2
  55. package/types/siemens-element-ng-popover.d.ts +2 -1
  56. package/types/siemens-element-ng-shadow-root.d.ts +16 -1
  57. package/types/siemens-element-ng-theme.d.ts +35 -7
  58. package/types/siemens-element-ng-tooltip.d.ts +14 -1
  59. package/types/siemens-element-ng-translate.d.ts +6 -0
  60. package/types/siemens-element-ng-tree-view.d.ts +1 -0
  61. package/types/siemens-element-ng-typeahead.d.ts +7 -0
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-tooltip.mjs","sources":["../../../../projects/element-ng/tooltip/si-tooltip.component.ts","../../../../projects/element-ng/tooltip/si-tooltip.component.html","../../../../projects/element-ng/tooltip/si-tooltip.service.ts","../../../../projects/element-ng/tooltip/si-tooltip.directive.ts","../../../../projects/element-ng/tooltip/si-tooltip.module.ts","../../../../projects/element-ng/tooltip/index.ts","../../../../projects/element-ng/tooltip/siemens-element-ng-tooltip.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange, OverlayRef } from '@angular/cdk/overlay';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef\n} from '@angular/core';\nimport { calculateOverlayArrowPosition, OverlayArrowPosition } from '@siemens/element-ng/common';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiTooltipContent } from './si-tooltip.model';\n\n@Component({\n selector: 'si-tooltip',\n imports: [NgTemplateOutlet, SiTranslatePipe, NgComponentOutlet],\n templateUrl: './si-tooltip.component.html',\n styleUrl: './si-tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n 'animate.leave': 'tooltip-leave'\n }\n})\nexport class TooltipComponent {\n /** ID assigned to the tooltip element. */\n readonly id = input<string>();\n\n /** Content rendered by the tooltip. */\n readonly tooltip = input<SiTooltipContent>();\n\n /** Context passed to tooltip template content. */\n readonly tooltipContext = input<unknown>();\n\n protected readonly tooltipPositionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlayRef = inject(OverlayRef);\n\n private lastPositionChange?: ConnectedOverlayPositionChange;\n private lastAnchor?: ElementRef;\n\n constructor() {\n let isFirstRun = true;\n afterRenderEffect(() => {\n this.tooltip();\n this.tooltipContext();\n if (isFirstRun) {\n isFirstRun = false;\n return;\n }\n this.overlayRef.updatePosition();\n if (this.lastPositionChange) {\n this.updateTooltipPosition(this.lastPositionChange, this.lastAnchor);\n }\n });\n }\n\n protected readonly tooltipText = computed<string | null>(() => {\n const tooltip = this.tooltip();\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n // When an ElementRef is provided, read its current text content whenever the\n // tooltip is shown, so dynamic content is always reflected.\n // The tooltip content is not updated while being displayed.\n if (tooltip instanceof ElementRef) {\n return tooltip.nativeElement.textContent.trim();\n }\n return null;\n });\n\n protected readonly tooltipTemplate = computed<TemplateRef<any> | null>(() => {\n const tooltip = this.tooltip();\n return tooltip instanceof TemplateRef ? tooltip : null;\n });\n\n protected readonly tooltipComponent = computed(() => {\n const tooltip = this.tooltip();\n return !(tooltip instanceof TemplateRef) &&\n !(tooltip instanceof ElementRef) &&\n typeof tooltip !== 'string'\n ? tooltip\n : null;\n });\n\n /** @internal */\n updateTooltipPosition(change: ConnectedOverlayPositionChange, anchor?: ElementRef): void {\n this.lastPositionChange = change;\n this.lastAnchor = anchor;\n const arrowClassTooltip = `tooltip-${change.connectionPair.overlayX}-${change.connectionPair.overlayY}`;\n // need two updates as class changes affect the position\n if (arrowClassTooltip !== this.tooltipPositionClass()) {\n this.tooltipPositionClass.set(arrowClassTooltip);\n }\n const arrowPos = calculateOverlayArrowPosition(change, this.elementRef, anchor);\n this.arrowPos.set(arrowPos);\n }\n}\n","<div\n class=\"tooltip show position-relative\"\n role=\"tooltip\"\n [id]=\"id()\"\n [class]=\"tooltipPositionClass()\"\n>\n <div\n class=\"tooltip-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n <div class=\"tooltip-inner\">\n @if (tooltipText()) {\n <div class=\"si-body\">{{ tooltipText() | translate }}</div>\n } @else if (tooltipTemplate()) {\n <ng-template\n [ngTemplateOutlet]=\"tooltipTemplate()\"\n [ngTemplateOutletContext]=\"tooltipContext()\"\n />\n } @else if (tooltipComponent()) {\n <ng-container [ngComponentOutlet]=\"tooltipComponent()!\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Overlay, OverlayRef, ScrollStrategy } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { isPlatformBrowser } from '@angular/common';\nimport {\n ComponentRef,\n DestroyRef,\n effect,\n ElementRef,\n EffectRef,\n inject,\n Injectable,\n Injector,\n inputBinding,\n PLATFORM_ID\n} from '@angular/core';\nimport {\n getOverlay,\n getOverlayPositions,\n getPositionStrategy,\n positions\n} from '@siemens/element-ng/common';\nimport { fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delayWhen, filter, takeUntil } from 'rxjs/operators';\n\nimport { TooltipComponent } from './si-tooltip.component';\nimport { SiTooltipContent } from './si-tooltip.model';\n\n/** @internal */\ninterface TooltipRef {\n destroy(): void;\n}\n\n/**\n * A no-op TooltipRef used on platform server where DOM APIs are unavailable.\n *\n * @internal\n */\nclass NoopTooltipRef {\n destroy(): void {}\n}\n\n/**\n * BrowserTooltipRef is attached to a specific element.\n * Use it to show or hide a tooltip for that element.\n *\n * @internal\n */\nclass BrowserTooltipRef {\n private readonly destroyRef = inject(DestroyRef);\n private readonly destroy$ = new Subject<void>();\n private isFocused = false;\n private isHovered = false;\n private overlayRef?: OverlayRef;\n private positionSubscription?: Subscription;\n private canShowEffect?: EffectRef;\n private placementEffect?: EffectRef;\n\n constructor(\n private config: {\n describedBy?: string;\n element: ElementRef;\n injector?: Injector;\n overlay: Overlay;\n placement: () => keyof typeof positions;\n canShow?: () => boolean;\n scrollStrategy?: () => ScrollStrategy | undefined;\n tooltip: () => SiTooltipContent;\n tooltipContext: () => unknown;\n }\n ) {\n const nativeElement = this.config.element.nativeElement;\n this.destroyRef.onDestroy(() => this.destroy());\n\n if (this.config.canShow) {\n this.canShowEffect = effect(() => this.updateCanShow());\n }\n\n this.placementEffect = effect(() => this.updatePlacement(this.config.placement()));\n\n fromEvent(nativeElement, 'focus')\n .pipe(\n filter(event => event instanceof FocusEvent),\n takeUntil(this.destroy$)\n )\n .subscribe(event => this.onFocus(event));\n\n fromEvent(nativeElement, 'mouseenter')\n .pipe(\n delayWhen(() =>\n // UX Guideline: tooltips on hover should be delayed by 500ms\n timer(500).pipe(\n takeUntil(fromEvent(nativeElement, 'mouseleave')),\n takeUntil(fromEvent(nativeElement, 'focusout')) // user started using keyboard\n )\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.onMouseEnter());\n\n fromEvent(nativeElement, 'focusout')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onFocusOut());\n\n fromEvent(nativeElement, 'mouseleave')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onMouseLeave());\n\n fromEvent(nativeElement, 'touchstart')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onTouchStart());\n\n this.showForCurrentInteraction();\n }\n\n private updateCanShow(): void {\n if (!this.config.canShow!()) {\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n return;\n }\n\n this.showForCurrentInteraction();\n }\n\n private showForCurrentInteraction(): void {\n const nativeElement = this.config.element.nativeElement;\n // The tooltip may become eligible after the element is already focused or\n // hovered (e.g. validation errors appear on blur while the pointer still\n // hovers the element). In that case show it based on the live interaction state.\n if (nativeElement === document.activeElement && nativeElement.matches(':focus-visible')) {\n this.isFocused = true;\n this.show();\n } else if (nativeElement.matches(':hover')) {\n this.onMouseEnter();\n }\n }\n\n private onFocus(event: FocusEvent): void {\n if (event.target instanceof Element) {\n if (event.target.matches(':focus-visible')) {\n this.isFocused = true;\n this.show();\n }\n }\n }\n\n private onFocusOut(): void {\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n }\n\n private onMouseEnter(): void {\n this.isHovered = true;\n this.show();\n }\n\n private onMouseLeave(): void {\n this.isHovered = false;\n this.hide();\n }\n\n private onTouchStart(): void {\n // On touch devices a tooltip is not useful and would obscure the content the\n // user just tapped. Reset the hover/focus state so it is hidden immediately.\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n }\n\n private getOrCreateOverlay(): OverlayRef {\n this.overlayRef ??= getOverlay(\n this.config.element,\n this.config.overlay,\n false,\n this.getPlacement(),\n false,\n true,\n this.config.scrollStrategy?.()\n );\n return this.overlayRef;\n }\n\n private show(): void {\n if (this.config.canShow && !this.config.canShow()) {\n return;\n }\n\n const overlayRef = this.getOrCreateOverlay();\n if (overlayRef.hasAttached()) {\n return;\n }\n\n const injector = Injector.create({\n parent: this.config.injector,\n providers: [{ provide: OverlayRef, useValue: overlayRef }]\n });\n\n const toolTipPortal = new ComponentPortal(TooltipComponent, undefined, injector, undefined, [\n inputBinding('id', () => this.config.describedBy),\n inputBinding('tooltip', this.config.tooltip),\n inputBinding('tooltipContext', this.config.tooltipContext)\n ]);\n const tooltipRef: ComponentRef<TooltipComponent> = overlayRef.attach(toolTipPortal);\n\n const positionStrategy = getPositionStrategy(overlayRef);\n this.positionSubscription?.unsubscribe();\n this.positionSubscription = positionStrategy?.positionChanges.subscribe(change =>\n tooltipRef.instance.updateTooltipPosition(change, this.config.element)\n );\n }\n\n private getPlacement(): keyof typeof positions {\n return this.config.placement();\n }\n\n private updatePlacement(placement: keyof typeof positions): void {\n const positionStrategy = this.overlayRef && getPositionStrategy(this.overlayRef);\n if (positionStrategy) {\n positionStrategy.withPositions(getOverlayPositions(this.config.element, placement));\n this.overlayRef?.updatePosition();\n }\n }\n\n private hide(): void {\n if (this.isFocused || this.isHovered) {\n return;\n }\n this.overlayRef?.detach();\n this.positionSubscription?.unsubscribe();\n }\n\n destroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.canShowEffect?.destroy();\n this.placementEffect?.destroy();\n this.overlayRef?.dispose();\n this.positionSubscription?.unsubscribe();\n }\n}\n\n/**\n * A service to create tooltips for specific elements.\n * Use this if the tooltip directive is not suitable.\n * Must not be used outside element-ng.\n *\n * @internal\n */\n// We cannot provide this in root, as people may override the cdk overlay creation.\n@Injectable()\nexport class SiTooltipService {\n private overlay = inject(Overlay);\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n createTooltip(config: {\n describedBy?: string;\n element: ElementRef;\n placement: () => keyof typeof positions;\n injector?: Injector;\n canShow?: () => boolean;\n tooltip: () => SiTooltipContent;\n tooltipContext: () => unknown;\n scrollStrategy?: () => ScrollStrategy | undefined;\n }): TooltipRef {\n if (!this.isBrowser) {\n return new NoopTooltipRef();\n }\n\n return new BrowserTooltipRef({\n ...config,\n overlay: this.overlay\n });\n }\n}\n\nexport type { TooltipRef };\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n TemplateRef\n} from '@angular/core';\nimport { defaultConnectedOverlayScrollStrategy, positions } from '@siemens/element-ng/common';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiTooltipService } from './si-tooltip.service';\n\n@Directive({\n selector: '[siTooltip]',\n providers: [SiTooltipService],\n host: {\n '[attr.aria-describedby]': 'isDisabled() ? null : describedBy'\n }\n})\nexport class SiTooltipDirective {\n private static idCounter = 0;\n\n /**\n * The tooltip text to be displayed\n *\n * @defaultValue ''\n */\n readonly siTooltip = input<TranslatableString | TemplateRef<any>>('');\n\n /**\n * The placement of the tooltip. One of 'top', 'start', end', 'bottom'\n *\n * @defaultValue 'auto'\n */\n readonly placement = input<keyof typeof positions>('auto');\n\n /**\n * Allows the tooltip to be disabled\n *\n * @defaultValue false\n */\n readonly isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * CDK scroll strategy used for the tooltip overlay.\n *\n * @defaultValue defaultConnectedOverlayScrollStrategy()\n */\n readonly tooltipScrollStrategy = input(defaultConnectedOverlayScrollStrategy());\n\n /**\n * The context for the attached template\n */\n readonly tooltipContext = input();\n\n protected describedBy = `__tooltip_${SiTooltipDirective.idCounter++}`;\n\n private readonly canShow = computed(() => !!this.siTooltip() && !this.isDisabled());\n private readonly tooltipService = inject(SiTooltipService);\n private readonly elementRef = inject(ElementRef);\n\n constructor() {\n this.tooltipService.createTooltip({\n describedBy: this.describedBy,\n element: this.elementRef,\n placement: this.placement,\n canShow: this.canShow,\n tooltip: this.siTooltip,\n tooltipContext: this.tooltipContext,\n scrollStrategy: this.tooltipScrollStrategy\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiTooltipDirective } from './si-tooltip.directive';\n\n@NgModule({\n imports: [SiTooltipDirective],\n exports: [SiTooltipDirective]\n})\nexport class SiTooltipModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tooltip.module';\nexport * from './si-tooltip.directive';\nexport * from './si-tooltip.service';\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-tooltip.mjs","sources":["../../../../projects/element-ng/tooltip/si-tooltip.component.ts","../../../../projects/element-ng/tooltip/si-tooltip.component.html","../../../../projects/element-ng/tooltip/si-tooltip.service.ts","../../../../projects/element-ng/tooltip/si-tooltip.directive.ts","../../../../projects/element-ng/tooltip/si-tooltip.module.ts","../../../../projects/element-ng/tooltip/si-tooltip-overflow.directive.ts","../../../../projects/element-ng/tooltip/index.ts","../../../../projects/element-ng/tooltip/siemens-element-ng-tooltip.ts"],"sourcesContent":["/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { ConnectedOverlayPositionChange, OverlayRef } from '@angular/cdk/overlay';\nimport { NgComponentOutlet, NgTemplateOutlet } from '@angular/common';\nimport {\n afterRenderEffect,\n ChangeDetectionStrategy,\n Component,\n computed,\n ElementRef,\n inject,\n input,\n signal,\n TemplateRef\n} from '@angular/core';\nimport { calculateOverlayArrowPosition, OverlayArrowPosition } from '@siemens/element-ng/common';\nimport { SiTranslatePipe } from '@siemens/element-translate-ng/translate';\n\nimport { SiTooltipContent } from './si-tooltip.model';\n\n@Component({\n selector: 'si-tooltip',\n imports: [NgTemplateOutlet, SiTranslatePipe, NgComponentOutlet],\n templateUrl: './si-tooltip.component.html',\n styleUrl: './si-tooltip.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n host: {\n 'animate.leave': 'tooltip-leave'\n }\n})\nexport class TooltipComponent {\n /** ID assigned to the tooltip element. */\n readonly id = input<string>();\n\n /** Content rendered by the tooltip. */\n readonly tooltip = input<SiTooltipContent>();\n\n /** Context passed to tooltip template content. */\n readonly tooltipContext = input<unknown>();\n\n protected readonly tooltipPositionClass = signal('');\n protected readonly arrowPos = signal<OverlayArrowPosition | undefined>(undefined);\n\n private readonly elementRef = inject(ElementRef);\n private readonly overlayRef = inject(OverlayRef);\n\n private lastPositionChange?: ConnectedOverlayPositionChange;\n private lastAnchor?: ElementRef;\n\n constructor() {\n let isFirstRun = true;\n afterRenderEffect(() => {\n this.tooltip();\n this.tooltipContext();\n if (isFirstRun) {\n isFirstRun = false;\n return;\n }\n this.overlayRef.updatePosition();\n if (this.lastPositionChange) {\n this.updateTooltipPosition(this.lastPositionChange, this.lastAnchor);\n }\n });\n }\n\n protected readonly tooltipText = computed<string | null>(() => {\n const tooltip = this.tooltip();\n if (typeof tooltip === 'string') {\n return tooltip;\n }\n // When an ElementRef is provided, read its current text content whenever the\n // tooltip is shown, so dynamic content is always reflected.\n // The tooltip content is not updated while being displayed.\n if (tooltip instanceof ElementRef) {\n return tooltip.nativeElement.textContent.trim();\n }\n return null;\n });\n\n protected readonly tooltipTemplate = computed<TemplateRef<any> | null>(() => {\n const tooltip = this.tooltip();\n return tooltip instanceof TemplateRef ? tooltip : null;\n });\n\n protected readonly tooltipComponent = computed(() => {\n const tooltip = this.tooltip();\n return !(tooltip instanceof TemplateRef) &&\n !(tooltip instanceof ElementRef) &&\n typeof tooltip !== 'string'\n ? tooltip\n : null;\n });\n\n /** @internal */\n updateTooltipPosition(change: ConnectedOverlayPositionChange, anchor?: ElementRef): void {\n this.lastPositionChange = change;\n this.lastAnchor = anchor;\n const arrowClassTooltip = `tooltip-${change.connectionPair.overlayX}-${change.connectionPair.overlayY}`;\n // need two updates as class changes affect the position\n if (arrowClassTooltip !== this.tooltipPositionClass()) {\n this.tooltipPositionClass.set(arrowClassTooltip);\n }\n const arrowPos = calculateOverlayArrowPosition(change, this.elementRef, anchor);\n this.arrowPos.set(arrowPos);\n }\n}\n","<div\n class=\"tooltip show position-relative\"\n role=\"tooltip\"\n [id]=\"id()\"\n [class]=\"tooltipPositionClass()\"\n>\n <div\n class=\"tooltip-arrow\"\n [style.left.px]=\"arrowPos()?.left\"\n [style.right.px]=\"arrowPos()?.right\"\n ></div>\n <div class=\"tooltip-inner\">\n @if (tooltipText()) {\n <div class=\"si-body\">{{ tooltipText() | translate }}</div>\n } @else if (tooltipTemplate()) {\n <ng-template\n [ngTemplateOutlet]=\"tooltipTemplate()\"\n [ngTemplateOutletContext]=\"tooltipContext()\"\n />\n } @else if (tooltipComponent()) {\n <ng-container [ngComponentOutlet]=\"tooltipComponent()!\" />\n }\n </div>\n</div>\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n FlexibleConnectedPositionStrategy,\n Overlay,\n OverlayRef,\n ScrollStrategy\n} from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport {\n afterNextRender,\n ComponentRef,\n DestroyRef,\n effect,\n ElementRef,\n EffectRef,\n inject,\n Injectable,\n Injector,\n inputBinding,\n PLATFORM_ID\n} from '@angular/core';\nimport { isRTL, positions } from '@siemens/element-ng/common';\nimport { fromEvent, Subject, Subscription, timer } from 'rxjs';\nimport { delayWhen, filter, takeUntil } from 'rxjs/operators';\n\nimport { TooltipComponent } from './si-tooltip.component';\nimport { SiTooltipContent } from './si-tooltip.model';\n\n/** @internal */\ninterface TooltipRef {\n destroy(): void;\n}\n\n/**\n * A no-op TooltipRef used on platform server where DOM APIs are unavailable.\n *\n * @internal\n */\nclass NoopTooltipRef {\n destroy(): void {}\n}\n\n/**\n * BrowserTooltipRef is attached to a specific element.\n * Use it to show or hide a tooltip for that element.\n *\n * @internal\n */\nclass BrowserTooltipRef {\n private readonly document = inject(DOCUMENT);\n private readonly destroyRef = inject(DestroyRef);\n private readonly injector = inject(Injector);\n private readonly destroy$ = new Subject<void>();\n private isFocused = false;\n private isHovered = false;\n private overlayRef?: OverlayRef;\n private positionStrategy?: FlexibleConnectedPositionStrategy;\n private positionSubscription?: Subscription;\n private canShowEffect?: EffectRef;\n private placementEffect?: EffectRef;\n\n constructor(\n private config: {\n describedBy?: string;\n element: ElementRef;\n injector?: Injector;\n overlay: Overlay;\n placement: () => keyof typeof positions;\n canShow?: () => boolean;\n scrollStrategy?: () => ScrollStrategy | undefined;\n tooltip: () => SiTooltipContent;\n tooltipContext: () => unknown;\n }\n ) {\n const nativeElement = this.config.element.nativeElement;\n this.destroyRef.onDestroy(() => this.destroy());\n\n if (this.config.canShow) {\n this.canShowEffect = effect(() => this.updateCanShow());\n }\n\n this.placementEffect = effect(() => this.updatePlacement(this.config.placement()));\n\n fromEvent(nativeElement, 'focus')\n .pipe(\n filter(event => event instanceof FocusEvent),\n takeUntil(this.destroy$)\n )\n .subscribe(event => this.onFocus(event));\n\n fromEvent(nativeElement, 'mouseenter')\n .pipe(\n delayWhen(() =>\n // UX Guideline: tooltips on hover should be delayed by 500ms\n timer(500).pipe(\n takeUntil(fromEvent(nativeElement, 'mouseleave')),\n takeUntil(fromEvent(nativeElement, 'focusout')) // user started using keyboard\n )\n ),\n takeUntil(this.destroy$)\n )\n .subscribe(() => this.onMouseEnter());\n\n fromEvent(nativeElement, 'focusout')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onFocusOut());\n\n fromEvent(nativeElement, 'mouseleave')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onMouseLeave());\n\n fromEvent(nativeElement, 'touchstart')\n .pipe(takeUntil(this.destroy$))\n .subscribe(() => this.onTouchStart());\n\n this.showForCurrentInteraction();\n }\n\n private updateCanShow(): void {\n if (!this.config.canShow!()) {\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n return;\n }\n\n this.showForCurrentInteraction();\n }\n\n private showForCurrentInteraction(): void {\n const nativeElement = this.config.element.nativeElement;\n // The tooltip may become eligible after the element is already focused or\n // hovered (e.g. validation errors appear on blur while the pointer still\n // hovers the element). In that case show it based on the live interaction state.\n if (nativeElement === document.activeElement && nativeElement.matches(':focus-visible')) {\n this.isFocused = true;\n this.show();\n } else if (nativeElement.matches(':hover')) {\n this.onMouseEnter();\n }\n }\n\n private onFocus(event: FocusEvent): void {\n if (event.target instanceof Element) {\n if (event.target.matches(':focus-visible')) {\n this.isFocused = true;\n this.show();\n }\n }\n }\n\n private onFocusOut(): void {\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n }\n\n private onMouseEnter(): void {\n this.isHovered = true;\n this.show();\n }\n\n private onMouseLeave(): void {\n this.isHovered = false;\n this.hide();\n }\n\n private onTouchStart(): void {\n // On touch devices a tooltip is not useful and would obscure the content the\n // user just tapped. Reset the hover/focus state so it is hidden immediately.\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n }\n\n private getOrCreateOverlay(): OverlayRef {\n if (!this.overlayRef) {\n this.positionStrategy = this.config.overlay\n .position()\n .flexibleConnectedTo(this.config.element)\n .withPush(false)\n .withGrowAfterOpen(true)\n .withFlexibleDimensions(false)\n .withPositions(positions[this.getPlacement()]);\n this.overlayRef = this.config.overlay.create({\n positionStrategy: this.positionStrategy,\n scrollStrategy:\n this.config.scrollStrategy?.() ?? this.config.overlay.scrollStrategies.reposition(),\n direction: isRTL() ? 'rtl' : 'ltr'\n });\n }\n return this.overlayRef;\n }\n\n private show(): void {\n if (this.config.canShow && !this.config.canShow()) {\n return;\n }\n\n const overlayRef = this.getOrCreateOverlay();\n if (overlayRef.hasAttached()) {\n return;\n }\n\n const injector = Injector.create({\n parent: this.config.injector,\n providers: [{ provide: OverlayRef, useValue: overlayRef }]\n });\n\n const toolTipPortal = new ComponentPortal(TooltipComponent, undefined, injector, undefined, [\n inputBinding('id', () => this.config.describedBy),\n inputBinding('tooltip', this.config.tooltip),\n inputBinding('tooltipContext', this.config.tooltipContext)\n ]);\n const tooltipRef: ComponentRef<TooltipComponent> = overlayRef.attach(toolTipPortal);\n\n // Wait until rendering so an Escape press that opens the tooltip (e.g. by\n // restoring focus) does not also dismiss it as the same event bubbles.\n afterNextRender(\n () => {\n if (tooltipRef.hostView.destroyed) {\n return;\n }\n\n fromEvent<KeyboardEvent>(this.document, 'keydown')\n .pipe(\n filter(event => event.key === 'Escape'),\n takeUntil(overlayRef.detachments()),\n takeUntil(this.destroy$)\n )\n .subscribe(() => {\n this.isFocused = false;\n this.isHovered = false;\n this.hide();\n });\n },\n { injector: this.injector }\n );\n\n this.positionSubscription?.unsubscribe();\n this.positionSubscription = this.positionStrategy?.positionChanges.subscribe(change =>\n tooltipRef.instance.updateTooltipPosition(change, this.config.element)\n );\n }\n\n private getPlacement(): keyof typeof positions {\n return this.config.placement();\n }\n\n private updatePlacement(placement: keyof typeof positions): void {\n if (this.positionStrategy) {\n this.positionStrategy.withPositions(positions[placement]);\n this.overlayRef?.updatePosition();\n }\n }\n\n private hide(): void {\n if (this.isFocused || this.isHovered) {\n return;\n }\n this.overlayRef?.detach();\n this.positionSubscription?.unsubscribe();\n }\n\n destroy(): void {\n this.destroy$.next();\n this.destroy$.complete();\n this.canShowEffect?.destroy();\n this.placementEffect?.destroy();\n this.overlayRef?.dispose();\n this.positionSubscription?.unsubscribe();\n }\n}\n\n/**\n * A service to create tooltips for specific elements.\n * Use this if the tooltip directive is not suitable.\n * Must not be used outside element-ng.\n *\n * @internal\n */\n// We cannot provide this in root, as people may override the cdk overlay creation.\n@Injectable()\nexport class SiTooltipService {\n private overlay = inject(Overlay);\n private isBrowser = isPlatformBrowser(inject(PLATFORM_ID));\n\n createTooltip(config: {\n describedBy?: string;\n element: ElementRef;\n placement: () => keyof typeof positions;\n injector?: Injector;\n canShow?: () => boolean;\n tooltip: () => SiTooltipContent;\n tooltipContext: () => unknown;\n scrollStrategy?: () => ScrollStrategy | undefined;\n }): TooltipRef {\n if (!this.isBrowser) {\n return new NoopTooltipRef();\n }\n\n return new BrowserTooltipRef({\n ...config,\n overlay: this.overlay\n });\n }\n}\n\nexport type { TooltipRef };\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n TemplateRef\n} from '@angular/core';\nimport { defaultConnectedOverlayScrollStrategy, positions } from '@siemens/element-ng/common';\nimport { TranslatableString } from '@siemens/element-translate-ng/translate';\n\nimport { SiTooltipService } from './si-tooltip.service';\n\n@Directive({\n selector: '[siTooltip]',\n providers: [SiTooltipService],\n host: {\n '[attr.aria-describedby]': 'isDisabled() ? null : describedBy'\n }\n})\nexport class SiTooltipDirective {\n private static idCounter = 0;\n\n /**\n * The tooltip text to be displayed\n *\n * @defaultValue ''\n */\n readonly siTooltip = input<TranslatableString | TemplateRef<any>>('');\n\n /**\n * The placement of the tooltip. One of 'top', 'start', end', 'bottom'\n *\n * @defaultValue 'auto'\n */\n readonly placement = input<keyof typeof positions>('auto');\n\n /**\n * Allows the tooltip to be disabled\n *\n * @defaultValue false\n */\n readonly isDisabled = input(false, { transform: booleanAttribute });\n\n /**\n * CDK scroll strategy used for the tooltip overlay.\n *\n * @defaultValue defaultConnectedOverlayScrollStrategy()\n */\n readonly tooltipScrollStrategy = input(defaultConnectedOverlayScrollStrategy());\n\n /**\n * The context for the attached template\n */\n readonly tooltipContext = input();\n\n protected describedBy = `__tooltip_${SiTooltipDirective.idCounter++}`;\n\n private readonly canShow = computed(() => !!this.siTooltip() && !this.isDisabled());\n private readonly tooltipService = inject(SiTooltipService);\n private readonly elementRef = inject(ElementRef);\n\n constructor() {\n this.tooltipService.createTooltip({\n describedBy: this.describedBy,\n element: this.elementRef,\n placement: this.placement,\n canShow: this.canShow,\n tooltip: this.siTooltip,\n tooltipContext: this.tooltipContext,\n scrollStrategy: this.tooltipScrollStrategy\n });\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { NgModule } from '@angular/core';\n\nimport { SiTooltipDirective } from './si-tooltip.directive';\n\n@NgModule({\n imports: [SiTooltipDirective],\n exports: [SiTooltipDirective]\n})\nexport class SiTooltipModule {}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Directive, ElementRef, inject } from '@angular/core';\n\nimport { SiTooltipService } from './si-tooltip.service';\n\n/**\n * Adds a tooltip containing the host element's text when that text is truncated.\n */\n@Directive({\n selector: '[siTooltipOverflow]',\n providers: [SiTooltipService],\n host: {\n class: 'text-truncate'\n }\n})\nexport class SiTooltipOverflowDirective {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly tooltipService = inject(SiTooltipService);\n private readonly element = this.elementRef.nativeElement;\n\n constructor() {\n this.tooltipService.createTooltip({\n element: this.elementRef,\n placement: () => 'auto',\n /*\n * `canShow` is evaluated everytime before the tooltip is eventually rendered.\n * So there is no need for any listener.\n * It also updates the `tooltipText`.\n */\n canShow: () => this.canShow(),\n tooltip: () => this.elementRef,\n tooltipContext: () => undefined\n });\n }\n\n private canShow(): boolean {\n // text-truncate uses horizontal ellipsis. Font metrics can cause vertical\n // overflow even when the full label is visible.\n return this.element.scrollWidth > this.element.clientWidth;\n }\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-tooltip.module';\nexport * from './si-tooltip.directive';\nexport * from './si-tooltip-overflow.directive';\nexport * from './si-tooltip.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"siemens-element-ng-translate.mjs","sources":["../../../../projects/element-ng/translate/si-translatable-keys.interface.ts","../../../../projects/element-ng/translate/si-translatable-overrides.provider.ts","../../../../projects/element-ng/translate/index.ts","../../../../projects/element-ng/translate/siemens-element-ng-translate.ts"],"sourcesContent":["/* eslint-disable */\n\n// Auto-generated file. Run 'npx update-translatable-keys' to update.\n\nexport interface SiTranslatableKeys {\n 'SI_ABOUT.LOGO_ALT'?: string;\n 'SI_AI_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_ALERT_DIALOG.OK'?: string;\n 'SI_APPLICATION_HEADER.LAUNCHPAD'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_ACTIONS'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_NAVIGATION'?: string;\n 'SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT'?: string;\n 'SI_BREADCRUMB'?: string;\n 'SI_BREADCRUMB_ROUTER_LABEL'?: string;\n 'SI_CAROUSEL.NEXT'?: string;\n 'SI_CAROUSEL.PAUSE'?: string;\n 'SI_CAROUSEL.PLAY'?: string;\n 'SI_CAROUSEL.PREVIOUS'?: string;\n 'SI_CAROUSEL.ROLE_DESCRIPTION'?: string;\n 'SI_CAROUSEL.SLIDE_PAGE'?: string;\n 'SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION'?: string;\n 'SI_CHANGE_PASSWORD.BACK'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CONFIRM_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.NEW_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.PASSWORD_POLICY'?: string;\n 'SI_CHAT_INPUT.ATTACH_FILE'?: string;\n 'SI_CHAT_INPUT.INTERRUPT'?: string;\n 'SI_CHAT_INPUT.LABEL'?: string;\n 'SI_CHAT_INPUT.PLACEHOLDER'?: string;\n 'SI_CHAT_INPUT.SECONDARY_ACTIONS'?: string;\n 'SI_CHAT_INPUT.SEND'?: string;\n 'SI_COLOR_PICKER.SELECTED_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.CANCEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.HIDDEN'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.SUBMIT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.VISIBLE'?: string;\n 'SI_CONFIRMATION_DIALOG.NO'?: string;\n 'SI_CONFIRMATION_DIALOG.YES'?: string;\n 'SI_CONTENT_ACTION_BAR.TOGGLE'?: string;\n 'SI_DASHBOARD.EXPAND'?: string;\n 'SI_DASHBOARD.EXPAND_WIDGET_ACTIONS'?: string;\n 'SI_DASHBOARD.RESTORE'?: string;\n 'SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON'?: string;\n 'SI_DATEPICKER.CALENDAR_WEEK_LABEL'?: string;\n 'SI_DATEPICKER.DISABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.ENABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.END_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.END_TIME_LABEL'?: string;\n 'SI_DATEPICKER.HOURS'?: string;\n 'SI_DATEPICKER.MILLISECONDS'?: string;\n 'SI_DATEPICKER.MINUTES'?: string;\n 'SI_DATEPICKER.NEXT'?: string;\n 'SI_DATEPICKER.PERIOD'?: string;\n 'SI_DATEPICKER.PREVIOUS'?: string;\n 'SI_DATEPICKER.SECONDS'?: string;\n 'SI_DATEPICKER.START_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.START_TIME_LABEL'?: string;\n 'SI_DATEPICKER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.ADVANCED'?: string;\n 'SI_DATE_RANGE_FILTER.AFTER'?: string;\n 'SI_DATE_RANGE_FILTER.APPLY'?: string;\n 'SI_DATE_RANGE_FILTER.BEFORE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER'?: string;\n 'SI_DATE_RANGE_FILTER.DAYS'?: string;\n 'SI_DATE_RANGE_FILTER.FROM'?: string;\n 'SI_DATE_RANGE_FILTER.HOURS'?: string;\n 'SI_DATE_RANGE_FILTER.MINUTES'?: string;\n 'SI_DATE_RANGE_FILTER.MONTHS'?: string;\n 'SI_DATE_RANGE_FILTER.NOW'?: string;\n 'SI_DATE_RANGE_FILTER.PRESETS'?: string;\n 'SI_DATE_RANGE_FILTER.PREVIEW'?: string;\n 'SI_DATE_RANGE_FILTER.RANGE'?: string;\n 'SI_DATE_RANGE_FILTER.REF_POINT'?: string;\n 'SI_DATE_RANGE_FILTER.SEARCH'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_END'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL'?: string;\n 'SI_DATE_RANGE_FILTER.TO'?: string;\n 'SI_DATE_RANGE_FILTER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.UNIT'?: string;\n 'SI_DATE_RANGE_FILTER.VALUE'?: string;\n 'SI_DATE_RANGE_FILTER.WEEKS'?: string;\n 'SI_DATE_RANGE_FILTER.WITHIN'?: string;\n 'SI_DATE_RANGE_FILTER.YEARS'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.CANCEL_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.SAVE_BTN'?: string;\n 'SI_ELECTRON_TITLEBAR.BACK'?: string;\n 'SI_ELECTRON_TITLEBAR.FORWARD'?: string;\n 'SI_ELECTRON_TITLEBAR.MENU'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK'?: string;\n 'SI_FILE_UPLOADER.ACCEPTED_FILE_TYPES'?: string;\n 'SI_FILE_UPLOADER.CANCEL'?: string;\n 'SI_FILE_UPLOADER.CLEAR'?: string;\n 'SI_FILE_UPLOADER.DROP'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_TYPE'?: string;\n 'SI_FILE_UPLOADER.MAX_FILE_REACHED'?: string;\n 'SI_FILE_UPLOADER.MAX_SIZE'?: string;\n 'SI_FILE_UPLOADER.REMOVE'?: string;\n 'SI_FILE_UPLOADER.UPLOAD'?: string;\n 'SI_FILE_UPLOADER.UPLOADING'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_COMPLETED'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_FAILED'?: string;\n 'SI_FILTERED_SEARCH.CLEAR'?: string;\n 'SI_FILTERED_SEARCH.ITEM_COUNT'?: string;\n 'SI_FILTERED_SEARCH.SEARCH'?: string;\n 'SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT'?: string;\n 'SI_FILTERED_SEARCH.SUBMIT_BUTTON'?: string;\n 'SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION'?: string;\n 'SI_FILTER_BAR.NO_FILTERS'?: string;\n 'SI_FILTER_BAR.RESET_FILTERS'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_END'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.EMAIL'?: string;\n 'SI_FORM_CONTAINER.ERROR.END_BEFORE_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.HOURS'?: string;\n 'SI_FORM_CONTAINER.ERROR.INVALID_PHONE'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV4'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV6'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.MILLISECONDS'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN'?: string;\n 'SI_FORM_CONTAINER.ERROR.MINUTES'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.PATTERN'?: string;\n 'SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE'?: string;\n 'SI_FORM_CONTAINER.ERROR.SECONDS'?: string;\n 'SI_ICON_STATUS.CAUTION'?: string;\n 'SI_ICON_STATUS.CRITICAL'?: string;\n 'SI_ICON_STATUS.DANGER'?: string;\n 'SI_ICON_STATUS.INFO'?: string;\n 'SI_ICON_STATUS.PENDING'?: string;\n 'SI_ICON_STATUS.PROGRESS'?: string;\n 'SI_ICON_STATUS.SUCCESS'?: string;\n 'SI_ICON_STATUS.UNKNOWN'?: string;\n 'SI_ICON_STATUS.WARNING'?: string;\n 'SI_LANGUAGE_SWITCHER.LABEL'?: string;\n 'SI_LAUNCHPAD.CLOSE'?: string;\n 'SI_LAUNCHPAD.DEFAULT_CATEGORY_TITLE'?: string;\n 'SI_LAUNCHPAD.EXTERNAL_LINK'?: string;\n 'SI_LAUNCHPAD.FAVORITE_APPS'?: string;\n 'SI_LAUNCHPAD.SHOW_LESS'?: string;\n 'SI_LAUNCHPAD.SHOW_MORE'?: string;\n 'SI_LAUNCHPAD.SUB_TITLE'?: string;\n 'SI_LAUNCHPAD.TITLE'?: string;\n 'SI_LIST_DETAILS.BACK'?: string;\n 'SI_LIST_WIDGET.SEARCH_PLACEHOLDER'?: string;\n 'SI_LIST_WIDGET.SORT_ASCENDING'?: string;\n 'SI_LIST_WIDGET.SORT_DESCENDING'?: string;\n 'SI_LOADING_SPINNER.LABEL'?: string;\n 'SI_LOGIN_BASIC.BACK'?: string;\n 'SI_LOGIN_BASIC.FORGOT_PASSWORD'?: string;\n 'SI_LOGIN_BASIC.LOGIN'?: string;\n 'SI_LOGIN_BASIC.NEXT'?: string;\n 'SI_LOGIN_BASIC.PASSWORD'?: string;\n 'SI_LOGIN_BASIC.REGISTER_NOW'?: string;\n 'SI_LOGIN_BASIC.USERNAME'?: string;\n 'SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP'?: string;\n 'SI_MAIN_DETAIL_CONTAINER.BACK'?: string;\n 'SI_MAP.FIND_MY_LOCATION'?: string;\n 'SI_MAP.FULLSCREEN_ENTER'?: string;\n 'SI_MAP.FULLSCREEN_EXIT'?: string;\n 'SI_MAP.GLOBE_DISABLE'?: string;\n 'SI_MAP.GLOBE_ENABLE'?: string;\n 'SI_MAP.LOCATION_NOT_AVAILABLE'?: string;\n 'SI_MAP.LOGO_TITLE'?: string;\n 'SI_MAP.MAC_HELP'?: string;\n 'SI_MAP.MAP_FEEDBACK'?: string;\n 'SI_MAP.MAP_TITLE'?: string;\n 'SI_MAP.MARKER_TITLE'?: string;\n 'SI_MAP.MOBILE_HELP'?: string;\n 'SI_MAP.POPUP_CLOSE'?: string;\n 'SI_MAP.RESET_BEARING'?: string;\n 'SI_MAP.SCALE_FEET'?: string;\n 'SI_MAP.SCALE_KILOMETERS'?: string;\n 'SI_MAP.SCALE_METERS'?: string;\n 'SI_MAP.SCALE_MILES'?: string;\n 'SI_MAP.SCALE_NAUTICAL_MILES'?: string;\n 'SI_MAP.TERRAIN_DISABLE'?: string;\n 'SI_MAP.TERRAIN_ENABLE'?: string;\n 'SI_MAP.TOGGLE_ATTRIBUTION'?: string;\n 'SI_MAP.WINDOWS_HELP'?: string;\n 'SI_MAP.ZOOM_IN'?: string;\n 'SI_MAP.ZOOM_OUT'?: string;\n 'SI_MAP_CLUSTER.LABEL'?: string;\n 'SI_MARKDOWN.COPIED_CODE'?: string;\n 'SI_MARKDOWN.COPY_CODE'?: string;\n 'SI_MARKDOWN.COPY_TABLE_AS_CSV'?: string;\n 'SI_MARKDOWN.DOWNLOAD_TABLE_AS_CSV'?: string;\n 'SI_MARKDOWN_CALLOUT.NOTE'?: string;\n 'SI_MARKDOWN_CALLOUT.TIP'?: string;\n 'SI_NAVBAR.OPEN_LAUNCHPAD'?: string;\n 'SI_NAVBAR.TOGGLE_NAVIGATION'?: string;\n 'SI_NAVBAR_VERTICAL.BACK'?: string;\n 'SI_NAVBAR_VERTICAL.COLLAPSE'?: string;\n 'SI_NAVBAR_VERTICAL.EXPAND'?: string;\n 'SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.TOGGLE'?: string;\n 'SI_PAGINATION.BACK'?: string;\n 'SI_PAGINATION.FORWARD'?: string;\n 'SI_PAGINATION.NAV_LABEL'?: string;\n 'SI_PASSWORD_TOGGLE.HIDE'?: string;\n 'SI_PASSWORD_TOGGLE.SHOW'?: string;\n 'SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER'?: string;\n 'SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY'?: string;\n 'SI_PHOTO_UPLOAD.APPLY_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CANCEL'?: string;\n 'SI_PHOTO_UPLOAD.CHANGE_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_TYPE'?: string;\n 'SI_PHOTO_UPLOAD.MODAL_TITLE'?: string;\n 'SI_PHOTO_UPLOAD.REMOVE'?: string;\n 'SI_PHOTO_UPLOAD.UPLOAD_PHOTO'?: string;\n 'SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL'?: string;\n 'SI_PROGRESSBAR.LABEL'?: string;\n 'SI_SEARCH_BAR.CLEAR_BUTTON'?: string;\n 'SI_SELECT.NO-RESULTS-FOUND'?: string;\n 'SI_SELECT.SEARCH-PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.CLOSE'?: string;\n 'SI_SIDE_PANEL.ENTER_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.EXIT_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.SEARCH_PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.TOGGLE'?: string;\n 'SI_SKIP_LINKS.JUMP_TO'?: string;\n 'SI_SLIDER.DECREMENT'?: string;\n 'SI_SLIDER.INCREMENT'?: string;\n 'SI_SLIDER.LABEL'?: string;\n 'SI_SOURCE_CHIP.SOURCES'?: string;\n 'SI_SPLIT.COLLAPSE_LABEL'?: string;\n 'SI_STATUS_BAR.ALL_OK'?: string;\n 'SI_STATUS_BAR.MUTE'?: string;\n 'SI_STATUS_BAR.TOGGLE'?: string;\n 'SI_THRESHOLD.ADD'?: string;\n 'SI_THRESHOLD.DELETE'?: string;\n 'SI_THRESHOLD.INPUT_LABEL'?: string;\n 'SI_THRESHOLD.STATUS'?: string;\n 'SI_TOAST.CLOSE'?: string;\n 'SI_TOUR.BACK'?: string;\n 'SI_TOUR.CLOSE'?: string;\n 'SI_TOUR.DONE'?: string;\n 'SI_TOUR.NEXT'?: string;\n 'SI_TOUR.PROGRESS'?: string;\n 'SI_TOUR.SKIP'?: string;\n 'SI_TREE_VIEW.COLLAPSE_ALL'?: string;\n 'SI_TREE_VIEW.EXPAND_ALL'?: string;\n 'SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL'?: string;\n 'SI_USER_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_WEATHER_WIDGET.FORECAST_LABEL'?: string;\n 'SI_WEATHER_WIDGET.ILLUSTRATION_ALT'?: string;\n 'SI_WEATHER_WIDGET.METRICS_LABEL'?: string;\n 'SI_WIZARD.BACK'?: string;\n 'SI_WIZARD.CANCEL'?: string;\n 'SI_WIZARD.COMPLETED'?: string;\n 'SI_WIZARD.NEXT'?: string;\n 'SI_WIZARD.SAVE'?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Provider } from '@angular/core';\nimport { SI_TRANSLATABLE_VALUES } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslatableKeys } from './si-translatable-keys.interface';\n\nexport const provideSiTranslatableOverrides: (values: SiTranslatableKeys) => Provider = values => ({\n useValue: values,\n multi: true,\n provide: SI_TRANSLATABLE_VALUES\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable-keys.interface';\nexport * from './si-translatable-overrides.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;MCSa,8BAA8B,GAA6C,MAAM,KAAK;AACjG,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE;AACV,CAAA;;ACbD;;;AAGG;;ACHH;;AAEG;;"}
1
+ {"version":3,"file":"siemens-element-ng-translate.mjs","sources":["../../../../projects/element-ng/translate/si-translatable-keys.interface.ts","../../../../projects/element-ng/translate/si-translatable-overrides.provider.ts","../../../../projects/element-ng/translate/index.ts","../../../../projects/element-ng/translate/siemens-element-ng-translate.ts"],"sourcesContent":["/* eslint-disable */\n\n// Auto-generated file. Run 'npx update-translatable-keys' to update.\n\nexport interface SiTranslatableKeys {\n 'SI_ABOUT.LOGO_ALT'?: string;\n 'SI_AI_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_ALERT_DIALOG.OK'?: string;\n 'SI_APPLICATION_HEADER.LAUNCHPAD'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_ACTIONS'?: string;\n 'SI_APPLICATION_HEADER.TOGGLE_NAVIGATION'?: string;\n 'SI_ATTACHMENT_LIST.REMOVE_ATTACHMENT'?: string;\n 'SI_BREADCRUMB'?: string;\n 'SI_BREADCRUMB_ROUTER_LABEL'?: string;\n 'SI_CAROUSEL.NEXT'?: string;\n 'SI_CAROUSEL.PAUSE'?: string;\n 'SI_CAROUSEL.PLAY'?: string;\n 'SI_CAROUSEL.PREVIOUS'?: string;\n 'SI_CAROUSEL.ROLE_DESCRIPTION'?: string;\n 'SI_CAROUSEL.SLIDE_PAGE'?: string;\n 'SI_CAROUSEL.SLIDE_ROLE_DESCRIPTION'?: string;\n 'SI_CHANGE_PASSWORD.BACK'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_FACTORY_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CHANGE_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.CONFIRM_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.NEW_PASSWORD'?: string;\n 'SI_CHANGE_PASSWORD.PASSWORD_POLICY'?: string;\n 'SI_CHAT_INPUT.ATTACH_FILE'?: string;\n 'SI_CHAT_INPUT.INTERRUPT'?: string;\n 'SI_CHAT_INPUT.LABEL'?: string;\n 'SI_CHAT_INPUT.PLACEHOLDER'?: string;\n 'SI_CHAT_INPUT.SECONDARY_ACTIONS'?: string;\n 'SI_CHAT_INPUT.SEND'?: string;\n 'SI_COLOR_PICKER.SELECTED_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.CANCEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.HIDDEN'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.ITEM_NOT_MOVED'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.LIST_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RENAME_INPUT_ARIA_LABEL'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.RESTORE_TO_DEFAULT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.SUBMIT'?: string;\n 'SI_COLUMN_SELECTION_DIALOG.VISIBLE'?: string;\n 'SI_CONFIRMATION_DIALOG.NO'?: string;\n 'SI_CONFIRMATION_DIALOG.YES'?: string;\n 'SI_CONTENT_ACTION_BAR.TOGGLE'?: string;\n 'SI_DASHBOARD.EXPAND'?: string;\n 'SI_DASHBOARD.EXPAND_WIDGET_ACTIONS'?: string;\n 'SI_DASHBOARD.RESTORE'?: string;\n 'SI_DATEPICKER.CALENDAR_TOGGLE_BUTTON'?: string;\n 'SI_DATEPICKER.CALENDAR_WEEK_LABEL'?: string;\n 'SI_DATEPICKER.DISABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.ENABLED_TIME_TEXT'?: string;\n 'SI_DATEPICKER.END_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.END_TIME_LABEL'?: string;\n 'SI_DATEPICKER.HOURS'?: string;\n 'SI_DATEPICKER.MILLISECONDS'?: string;\n 'SI_DATEPICKER.MINUTES'?: string;\n 'SI_DATEPICKER.NEXT'?: string;\n 'SI_DATEPICKER.PERIOD'?: string;\n 'SI_DATEPICKER.PREVIOUS'?: string;\n 'SI_DATEPICKER.SECONDS'?: string;\n 'SI_DATEPICKER.START_DATE_PLACEHOLDER'?: string;\n 'SI_DATEPICKER.START_TIME_LABEL'?: string;\n 'SI_DATEPICKER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.ADVANCED'?: string;\n 'SI_DATE_RANGE_FILTER.AFTER'?: string;\n 'SI_DATE_RANGE_FILTER.APPLY'?: string;\n 'SI_DATE_RANGE_FILTER.BEFORE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE'?: string;\n 'SI_DATE_RANGE_FILTER.DATE_PLACEHOLDER'?: string;\n 'SI_DATE_RANGE_FILTER.DAYS'?: string;\n 'SI_DATE_RANGE_FILTER.FROM'?: string;\n 'SI_DATE_RANGE_FILTER.HOURS'?: string;\n 'SI_DATE_RANGE_FILTER.MINUTES'?: string;\n 'SI_DATE_RANGE_FILTER.MONTHS'?: string;\n 'SI_DATE_RANGE_FILTER.NOW'?: string;\n 'SI_DATE_RANGE_FILTER.PRESETS'?: string;\n 'SI_DATE_RANGE_FILTER.PREVIEW'?: string;\n 'SI_DATE_RANGE_FILTER.RANGE'?: string;\n 'SI_DATE_RANGE_FILTER.REF_POINT'?: string;\n 'SI_DATE_RANGE_FILTER.SEARCH'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_END'?: string;\n 'SI_DATE_RANGE_FILTER.SELECT_RANGE_LABEL'?: string;\n 'SI_DATE_RANGE_FILTER.TO'?: string;\n 'SI_DATE_RANGE_FILTER.TODAY'?: string;\n 'SI_DATE_RANGE_FILTER.UNIT'?: string;\n 'SI_DATE_RANGE_FILTER.VALUE'?: string;\n 'SI_DATE_RANGE_FILTER.WEEKS'?: string;\n 'SI_DATE_RANGE_FILTER.WITHIN'?: string;\n 'SI_DATE_RANGE_FILTER.YEARS'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.CANCEL_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.DELETE_BTN'?: string;\n 'SI_DELETE_CONFIRMATION_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.CANCEL_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISABLE_SAVE_MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.DISCARD_BTN'?: string;\n 'SI_EDIT_DISCARD_DIALOG.MESSAGE'?: string;\n 'SI_EDIT_DISCARD_DIALOG.SAVE_BTN'?: string;\n 'SI_ELECTRON_TITLEBAR.BACK'?: string;\n 'SI_ELECTRON_TITLEBAR.FORWARD'?: string;\n 'SI_ELECTRON_TITLEBAR.MENU'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.ACCEPT'?: string;\n 'SI_EXPLICIT_LEGAL_ACKNOWLEDGE.BACK'?: string;\n 'SI_FILE_UPLOADER.ACCEPTED_FILE_TYPES'?: string;\n 'SI_FILE_UPLOADER.CANCEL'?: string;\n 'SI_FILE_UPLOADER.CLEAR'?: string;\n 'SI_FILE_UPLOADER.DROP'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_FILE_UPLOADER.ERROR_FILE_TYPE'?: string;\n 'SI_FILE_UPLOADER.MAX_FILE_REACHED'?: string;\n 'SI_FILE_UPLOADER.MAX_SIZE'?: string;\n 'SI_FILE_UPLOADER.REMOVE'?: string;\n 'SI_FILE_UPLOADER.UPLOAD'?: string;\n 'SI_FILE_UPLOADER.UPLOADING'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_COMPLETED'?: string;\n 'SI_FILE_UPLOADER.UPLOAD_FAILED'?: string;\n 'SI_FILTERED_SEARCH.CLEAR'?: string;\n 'SI_FILTERED_SEARCH.ITEM_COUNT'?: string;\n 'SI_FILTERED_SEARCH.SEARCH'?: string;\n 'SI_FILTERED_SEARCH.SEARCH_FOR_FREE_TEXT'?: string;\n 'SI_FILTERED_SEARCH.SUBMIT_BUTTON'?: string;\n 'SI_FILTER_BAR.COLLAPSED_FILTERS_DESCRIPTION'?: string;\n 'SI_FILTER_BAR.NO_FILTERS'?: string;\n 'SI_FILTER_BAR.RESET_FILTERS'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_END'?: string;\n 'SI_FORM_CONTAINER.ERROR.DATE_FORMAT_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.EMAIL'?: string;\n 'SI_FORM_CONTAINER.ERROR.END_BEFORE_START'?: string;\n 'SI_FORM_CONTAINER.ERROR.HOURS'?: string;\n 'SI_FORM_CONTAINER.ERROR.INVALID_PHONE'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV4'?: string;\n 'SI_FORM_CONTAINER.ERROR.IPV6'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MAX_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.MILLISECONDS'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN'?: string;\n 'SI_FORM_CONTAINER.ERROR.MINUTES'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_LENGTH'?: string;\n 'SI_FORM_CONTAINER.ERROR.MIN_TIME'?: string;\n 'SI_FORM_CONTAINER.ERROR.NUMBER_FORMAT'?: string;\n 'SI_FORM_CONTAINER.ERROR.PATTERN'?: string;\n 'SI_FORM_CONTAINER.ERROR.PHONE_COUNTRY'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_AFTER_MAX_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.RANGE_BEFORE_MIN_DATE'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED'?: string;\n 'SI_FORM_CONTAINER.ERROR.REQUIRED_TRUE'?: string;\n 'SI_FORM_CONTAINER.ERROR.SECONDS'?: string;\n 'SI_ICON_STATUS.CAUTION'?: string;\n 'SI_ICON_STATUS.CRITICAL'?: string;\n 'SI_ICON_STATUS.DANGER'?: string;\n 'SI_ICON_STATUS.INFO'?: string;\n 'SI_ICON_STATUS.PENDING'?: string;\n 'SI_ICON_STATUS.PROGRESS'?: string;\n 'SI_ICON_STATUS.SUCCESS'?: string;\n 'SI_ICON_STATUS.UNKNOWN'?: string;\n 'SI_ICON_STATUS.WARNING'?: string;\n 'SI_LANGUAGE_SWITCHER.LABEL'?: string;\n 'SI_LAUNCHPAD.CLOSE'?: string;\n 'SI_LAUNCHPAD.DEFAULT_CATEGORY_TITLE'?: string;\n 'SI_LAUNCHPAD.EXTERNAL_LINK'?: string;\n 'SI_LAUNCHPAD.FAVORITE_APPS'?: string;\n 'SI_LAUNCHPAD.SHOW_LESS'?: string;\n 'SI_LAUNCHPAD.SHOW_MORE'?: string;\n 'SI_LAUNCHPAD.SUB_TITLE'?: string;\n 'SI_LAUNCHPAD.TITLE'?: string;\n 'SI_LIST_DETAILS.BACK'?: string;\n 'SI_LIST_WIDGET.SEARCH_PLACEHOLDER'?: string;\n 'SI_LIST_WIDGET.SORT_ASCENDING'?: string;\n 'SI_LIST_WIDGET.SORT_DESCENDING'?: string;\n 'SI_LOADING_SPINNER.LABEL'?: string;\n 'SI_LOGIN_BASIC.BACK'?: string;\n 'SI_LOGIN_BASIC.FORGOT_PASSWORD'?: string;\n 'SI_LOGIN_BASIC.LOGIN'?: string;\n 'SI_LOGIN_BASIC.NEXT'?: string;\n 'SI_LOGIN_BASIC.PASSWORD'?: string;\n 'SI_LOGIN_BASIC.REGISTER_NOW'?: string;\n 'SI_LOGIN_BASIC.USERNAME'?: string;\n 'SI_LOGIN_SINGLE-SIGN-ON.LOGIN_SIGN_UP'?: string;\n 'SI_MAIN_DETAIL_CONTAINER.BACK'?: string;\n 'SI_MAP.FIND_MY_LOCATION'?: string;\n 'SI_MAP.FULLSCREEN_ENTER'?: string;\n 'SI_MAP.FULLSCREEN_EXIT'?: string;\n 'SI_MAP.GLOBE_DISABLE'?: string;\n 'SI_MAP.GLOBE_ENABLE'?: string;\n 'SI_MAP.LOCATION_NOT_AVAILABLE'?: string;\n 'SI_MAP.LOGO_TITLE'?: string;\n 'SI_MAP.MAC_HELP'?: string;\n 'SI_MAP.MAP_FEEDBACK'?: string;\n 'SI_MAP.MAP_TITLE'?: string;\n 'SI_MAP.MARKER_TITLE'?: string;\n 'SI_MAP.MOBILE_HELP'?: string;\n 'SI_MAP.POPUP_CLOSE'?: string;\n 'SI_MAP.RESET_BEARING'?: string;\n 'SI_MAP.SCALE_FEET'?: string;\n 'SI_MAP.SCALE_KILOMETERS'?: string;\n 'SI_MAP.SCALE_METERS'?: string;\n 'SI_MAP.SCALE_MILES'?: string;\n 'SI_MAP.SCALE_NAUTICAL_MILES'?: string;\n 'SI_MAP.TERRAIN_DISABLE'?: string;\n 'SI_MAP.TERRAIN_ENABLE'?: string;\n 'SI_MAP.TOGGLE_ATTRIBUTION'?: string;\n 'SI_MAP.WINDOWS_HELP'?: string;\n 'SI_MAP.ZOOM_IN'?: string;\n 'SI_MAP.ZOOM_OUT'?: string;\n 'SI_MAP_CLUSTER.CLOSE'?: string;\n 'SI_MAP_CLUSTER.ERROR'?: string;\n 'SI_MAP_CLUSTER.LABEL'?: string;\n 'SI_MAP_CLUSTER.LOAD_MORE'?: string;\n 'SI_MAP_CLUSTER.LOCATIONS'?: string;\n 'SI_MAP_CLUSTER.POPOVER_TITLE'?: string;\n 'SI_MAP_CLUSTER.RETRY'?: string;\n 'SI_MARKDOWN.COPIED_CODE'?: string;\n 'SI_MARKDOWN.COPY_CODE'?: string;\n 'SI_MARKDOWN.COPY_TABLE_AS_CSV'?: string;\n 'SI_MARKDOWN.DOWNLOAD_TABLE_AS_CSV'?: string;\n 'SI_MARKDOWN_CALLOUT.NOTE'?: string;\n 'SI_MARKDOWN_CALLOUT.TIP'?: string;\n 'SI_NAVBAR.OPEN_LAUNCHPAD'?: string;\n 'SI_NAVBAR.TOGGLE_NAVIGATION'?: string;\n 'SI_NAVBAR_VERTICAL.BACK'?: string;\n 'SI_NAVBAR_VERTICAL.COLLAPSE'?: string;\n 'SI_NAVBAR_VERTICAL.EXPAND'?: string;\n 'SI_NAVBAR_VERTICAL.SEARCH_PLACEHOLDER'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.MAIN_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.SKIP_LINK.NAVIGATION_LABEL'?: string;\n 'SI_NAVBAR_VERTICAL.TOGGLE'?: string;\n 'SI_PAGINATION.BACK'?: string;\n 'SI_PAGINATION.FORWARD'?: string;\n 'SI_PAGINATION.NAV_LABEL'?: string;\n 'SI_PASSWORD_TOGGLE.HIDE'?: string;\n 'SI_PASSWORD_TOGGLE.SHOW'?: string;\n 'SI_PHONE_NUMBER_INPUT.PHONE_NUMBER_INPUT_LABEL'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_NO-RESULTS_FOUND'?: string;\n 'SI_PHONE_NUMBER_INPUT.SEARCH_PLACEHOLDER'?: string;\n 'SI_PHONE_NUMBER_INPUT.SELECT_COUNTRY'?: string;\n 'SI_PHOTO_UPLOAD.APPLY_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CANCEL'?: string;\n 'SI_PHOTO_UPLOAD.CHANGE_PHOTO'?: string;\n 'SI_PHOTO_UPLOAD.CROPPER_FRAME_LABEL'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_SIZE_EXCEEDED'?: string;\n 'SI_PHOTO_UPLOAD.ERROR_FILE_TYPE'?: string;\n 'SI_PHOTO_UPLOAD.MODAL_TITLE'?: string;\n 'SI_PHOTO_UPLOAD.REMOVE'?: string;\n 'SI_PHOTO_UPLOAD.UPLOAD_PHOTO'?: string;\n 'SI_PILLS_INPUT.INPUT_ELEMENT_ARIA_LABEL'?: string;\n 'SI_PROGRESSBAR.LABEL'?: string;\n 'SI_SEARCH_BAR.CLEAR_BUTTON'?: string;\n 'SI_SELECT.NO-RESULTS-FOUND'?: string;\n 'SI_SELECT.SEARCH-PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.CLOSE'?: string;\n 'SI_SIDE_PANEL.ENTER_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.EXIT_FULLSCREEN'?: string;\n 'SI_SIDE_PANEL.SEARCH_PLACEHOLDER'?: string;\n 'SI_SIDE_PANEL.TOGGLE'?: string;\n 'SI_SKIP_LINKS.JUMP_TO'?: string;\n 'SI_SLIDER.DECREMENT'?: string;\n 'SI_SLIDER.INCREMENT'?: string;\n 'SI_SLIDER.LABEL'?: string;\n 'SI_SOURCE_CHIP.SOURCES'?: string;\n 'SI_SPLIT.COLLAPSE_LABEL'?: string;\n 'SI_STATUS_BAR.ALL_OK'?: string;\n 'SI_STATUS_BAR.MUTE'?: string;\n 'SI_STATUS_BAR.TOGGLE'?: string;\n 'SI_THRESHOLD.ADD'?: string;\n 'SI_THRESHOLD.DELETE'?: string;\n 'SI_THRESHOLD.INPUT_LABEL'?: string;\n 'SI_THRESHOLD.STATUS'?: string;\n 'SI_TOAST.CLOSE'?: string;\n 'SI_TOUR.BACK'?: string;\n 'SI_TOUR.CLOSE'?: string;\n 'SI_TOUR.DONE'?: string;\n 'SI_TOUR.NEXT'?: string;\n 'SI_TOUR.PROGRESS'?: string;\n 'SI_TOUR.SKIP'?: string;\n 'SI_TREE_VIEW.COLLAPSE_ALL'?: string;\n 'SI_TREE_VIEW.EXPAND_ALL'?: string;\n 'SI_TYPEAHEAD.AUTOCOMPLETE_LIST_LABEL'?: string;\n 'SI_USER_MESSAGE.SECONDARY_ACTIONS'?: string;\n 'SI_WEATHER_WIDGET.FORECAST_LABEL'?: string;\n 'SI_WEATHER_WIDGET.ILLUSTRATION_ALT'?: string;\n 'SI_WEATHER_WIDGET.METRICS_LABEL'?: string;\n 'SI_WIZARD.BACK'?: string;\n 'SI_WIZARD.CANCEL'?: string;\n 'SI_WIZARD.COMPLETED'?: string;\n 'SI_WIZARD.NEXT'?: string;\n 'SI_WIZARD.SAVE'?: string;\n}\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nimport { Provider } from '@angular/core';\nimport { SI_TRANSLATABLE_VALUES } from '@siemens/element-translate-ng/translate';\n\nimport { SiTranslatableKeys } from './si-translatable-keys.interface';\n\nexport const provideSiTranslatableOverrides: (values: SiTranslatableKeys) => Provider = values => ({\n useValue: values,\n multi: true,\n provide: SI_TRANSLATABLE_VALUES\n});\n","/**\n * Copyright (c) Siemens 2016 - 2026\n * SPDX-License-Identifier: MIT\n */\nexport * from './si-translatable-keys.interface';\nexport * from './si-translatable-overrides.provider';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;AAAA;;MCSa,8BAA8B,GAA6C,MAAM,KAAK;AACjG,IAAA,QAAQ,EAAE,MAAM;AAChB,IAAA,KAAK,EAAE,IAAI;AACX,IAAA,OAAO,EAAE;AACV,CAAA;;ACbD;;;AAGG;;ACHH;;AAEG;;"}
@@ -4,7 +4,7 @@ import { CdkMenuTrigger, CdkContextMenuTrigger } from '@angular/cdk/menu';
4
4
  import { NgTemplateOutlet } from '@angular/common';
5
5
  import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
6
  import { correctKeyRTL } from '@siemens/element-ng/common';
7
- import { SiIconComponent } from '@siemens/element-ng/icon';
7
+ import { SiIconComponent, addIcons } from '@siemens/element-ng/icon';
8
8
  import { SiLoadingSpinnerComponent } from '@siemens/element-ng/loading-spinner';
9
9
  import { SiMenuFactoryComponent } from '@siemens/element-ng/menu';
10
10
  import { SiTranslatePipe, t } from '@siemens/element-translate-ng/translate';
@@ -13,6 +13,7 @@ import { takeUntil, take, withLatestFrom, map } from 'rxjs/operators';
13
13
  import { FocusKeyManager } from '@angular/cdk/a11y';
14
14
  import * as i1 from '@angular/cdk/scrolling';
15
15
  import { CdkScrollableModule } from '@angular/cdk/scrolling';
16
+ import { elementCollapseAll, elementExpandAll } from '@siemens/element-icons';
16
17
  import { ResizeObserverService } from '@siemens/element-ng/resize-observer';
17
18
 
18
19
  /**
@@ -853,7 +854,7 @@ class SiTreeViewItemComponent {
853
854
  !this.treeViewComponent.flatTree());
854
855
  }
855
856
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiTreeViewItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
856
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiTreeViewItemComponent, isStandalone: true, selector: "si-tree-view-item", host: { attributes: { "role": "treeitem" }, listeners: { "contextmenu": "onContextMenu($event)", "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "treeItemContext.record.currentIndex === treeViewComponent.activeIndex ? 0 : -1", "class.focus-none": "true", "class.si-tree-ellipsis": "treeViewComponent.horizontalScrolling()", "class.si-tree-view-top-level-item": "!treeViewComponent.compactMode() && (treeViewComponent.flatTree() || (treeItem.level ?? 0) < 1)", "attr.aria-haspopup": "isContextMenuButtonVisible()", "attr.aria-level": "this.ariaLevel", "attr.aria-setsize": "this.ariaSetsize", "attr.aria-posinset": "this.ariaPosinset", "attr.aria-selected": "this.ariaSelected", "attr.aria-checked": "this.ariaChecked", "attr.aria-expanded": "this.ariaExpanded" } }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }], ngImport: i0, template: "@if (!isGroupedItem) {\n <div\n #contextMenuTrigger=\"cdkContextMenuTriggerFor\"\n class=\"si-tree-view-li si-tree-view-li-item focus-direct-sub-inside\"\n [class.si-tree-view-item-context-menu-visible]=\"\n !!(contextMenuTrigger.isOpen() || menuTrigger()?.isOpen())\n \"\n [class.si-tree-view-item-active]=\"treeItem.active\"\n [class.si-tree-view-item-selected]=\"enableSelection() && treeItem.selected\"\n [class.si-tree-view-item-not-selectable]=\"!treeItem.selectable\"\n [style.padding-inline-start]=\"biggerPaddingStart\"\n [cdkContextMenuTriggerFor]=\"contextMenu\"\n [cdkContextMenuDisabled]=\"!isContextMenuButtonVisible() || !treeItem.selectable\"\n (cdkContextMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkContextMenuClosed)=\"onToggleContextMenuClose()\"\n >\n <div class=\"si-tree-view-item\" (mousedown)=\"onMouseDownTreeItem($event)\">\n @if (showFolderStateStart && treeItem.state !== 'leaf') {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n biggerPaddingStart: negativeBiggerPaddingStart,\n paddingStart: paddingStart,\n toggleIcon: 'si-tree-view-item-dropdown-caret'\n }\"\n />\n }\n <ng-container [ngTemplateOutlet]=\"checkboxOrOption\" />\n\n <div\n class=\"si-tree-view-item-main d-flex flex-grow-1 align-self-stretch grab-area\"\n (click)=\"onItemClicked($event)\"\n >\n @if (showIcon()) {\n <div class=\"si-tree-stretch-center\">\n <si-icon class=\"si-tree-view-item-icon\" [icon]=\"treeItem.icon!\" />\n </div>\n }\n <div\n class=\"si-tree-view-item-object-data d-flex flex-column justify-content-center overflow-hidden\"\n >\n @if (!templates().length) {\n <ng-content select=\":not(si-tree-view-item):not([dragPreview])\"\n ><div class=\"text-truncate\" [class.si-h5]=\"enableSelection() && treeItem.selected\">{{\n treeItem.label | translate\n }}</div></ng-content\n >\n } @else {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n renderMatchingTemplate(treeItem);\n context: { $implicit: treeItem }\n \"\n />\n </div>\n }\n @if (enableDataField1() && treeItem.dataField1) {\n <p class=\"si-tree-view-item-object-data-field-1 text-truncate\">{{\n treeItem.dataField1 | translate\n }}</p>\n }\n @if (enableDataField2() && treeItem.dataField2) {\n <p class=\"si-tree-view-item-object-data-field-2 text-truncate\">{{\n treeItem.dataField2 | translate\n }}</p>\n }\n </div>\n @if (treeItem.badge) {\n <span class=\"badge flex-shrink-0\" [class]=\"`bg-${treeItem.badgeColor || 'default'}`\">{{\n treeItem.badge\n }}</span>\n }\n </div>\n <div\n class=\"si-tree-view-item-end-icons d-flex ms-2 align-items-center\"\n [class.si-tree-view-item-end-icons-sticky]=\"stickyEndItems()\"\n >\n @if (showStateIndicator() && getStateIndicatorColor()) {\n <div\n class=\"si-tree-view-state-indicator\"\n [style.background-color]=\"getStateIndicatorColor()\"\n [class.si-tree-view-state-indicator-endmost]=\"\n !enableContextMenuButton() && !showFolderStateEnd\n \"\n ></div>\n }\n @if (isContextMenuButtonVisible()) {\n <div class=\"si-tree-stretch-center si-tree-context-menu-btn\">\n <div\n #menuTrigger=\"cdkMenuTriggerFor\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"contextMenu\"\n (cdkMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkMenuClosed)=\"onToggleContextMenuClose()\"\n >\n <i\n aria-hidden=\"true\"\n class=\"si-tree-view-item-icon si-tree-view-menu-btn\"\n [class]=\"icons().itemMenu\"\n ></i>\n </div>\n </div>\n }\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"treeItem.state === 'leaf' ? spacerTemplate : toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon',\n positionEnd: true\n }\"\n />\n }\n </div>\n </div>\n </div>\n} @else {\n <div class=\"si-tree-view-li focus-direct-sub-inside\">\n <div class=\"si-tree-view-item-group\">\n @if (showFolderStateStart) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n <ng-container\n [ngTemplateOutlet]=\"checkboxOrOption\"\n [ngTemplateOutletContext]=\"{ classNames: 'form-check mb-2' }\"\n />\n\n <p class=\"mb-0\">{{ treeItem.label | translate }}</p>\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n </div>\n </div>\n}\n\n<ng-template #contextMenu>\n <si-menu-factory class=\"me-5\" [items]=\"contextMenuItems()!\" [actionParam]=\"treeItem\" />\n</ng-template>\n\n<ng-template #checkboxOrOption let-classNames=\"classNames\">\n @if (showCheckOrOptionBox) {\n <a class=\"input-box\" tabindex=\"-1\" [class]=\"classNames\">\n <input\n class=\"form-check-input\"\n tabindex=\"-1\"\n [type]=\"getInputType()\"\n [indeterminate]=\"this.treeItem.checked === 'indeterminate' ? true : null\"\n [checked]=\"this.treeItem.checked === 'checked'\"\n [disabled]=\"!treeItem.selectable\"\n [attr.aria-label]=\"treeItem.label | translate\"\n (click)=\"onBoxClicked()\"\n />\n </a>\n }\n</ng-template>\n\n<ng-template\n #toggleTemplate\n let-biggerPaddingStart=\"biggerPaddingStart\"\n let-paddingStart=\"paddingStart\"\n let-toggleIcon=\"toggleIcon\"\n let-positionEnd=\"positionEnd\"\n>\n @let folderStateClass = getItemFolderStateClass();\n <a\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n tabindex=\"-1\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n [class.disabled]=\"!folderStateClass\"\n [style.margin-inline-start]=\"biggerPaddingStart\"\n [style.padding-inline-start]=\"paddingStart\"\n (click)=\"onItemFolderClicked()\"\n >\n @if (isExpanding) {\n <si-loading-spinner />\n } @else {\n <i aria-hidden=\"true\" [class]=\"`${toggleIcon} ${folderStateClass}`\"></i>\n }\n </a>\n</ng-template>\n\n<ng-template #spacerTemplate let-positionEnd=\"positionEnd\">\n <div\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n >\n <i aria-hidden=\"true\" class=\"si-tree-view-item-icon si-tree-view-item-icon-spacer\"></i>\n </div>\n</ng-template>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder{block-size:auto!important;margin-inline:0;margin-block:revert!important;min-block-size:revert;position:static;z-index:auto}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder:after{content:none!important}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder>*{display:revert}:host{display:block}:host.cdk-drag-placeholder{block-size:0;margin-inline:8px;margin-block:0!important;opacity:1!important;min-block-size:0!important;position:relative;z-index:999}:host.cdk-drag-placeholder:after{position:absolute;inline-size:100%;block-size:2px;content:\"\";background-color:var(--si-sys-color-effects-focus)!important}:host.cdk-drag-placeholder>*{display:none}:host.cdk-drag:not(.cdk-drag-placeholder){transform:none!important}:host.cdk-drop-list-dragging *:hover,:host.cdk-drop-list-dragging .si-tree-view-item-end-icons,:host.cdk-drop-list-dragging .si-tree-view-item-context-menu-visible,:host .cdk-drop-list-dragging *:hover,:host .cdk-drop-list-dragging .si-tree-view-item-end-icons,:host .cdk-drop-list-dragging .si-tree-view-item-context-menu-visible{background-color:transparent!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{padding-inline-start:8px!important;padding-inline-end:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .si-tree-view-item-toggle{padding-inline-start:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .badge{margin-inline-end:0}:host.cdk-drag-preview .si-tree-view-item-end-icons,:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{background-color:var(--si-sys-color-background-3)!important}.si-tree-view-li.si-tree-view-li-item{position:relative}.si-tree-view-li.si-tree-view-li-item:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible,.si-tree-view-li.si-tree-view-li-item:hover .si-tree-view-item-end-icons,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-hover-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-select-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-end-icons{background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item:hover{cursor:default;background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-dropdown-caret{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-context-menu-btn>div[role=button]{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end .si-tree-view-item-icon{color:var(--si-sys-color-text-primary)}.si-tree-view-li.si-tree-view-li-item .si-tree-view-item-end-icons{background-color:var(--si-tree-view-background)}.si-tree-view-item-group,.si-tree-view-item{display:flex;align-items:center}.si-tree-stretch-center{align-self:stretch;display:flex;align-items:center;justify-content:center;margin:0;text-decoration:none}.si-tree-view-item-toggle.disabled .si-tree-view-item-icon{inline-size:var(--si-sys-sizing-spacing-x-80)}.si-tree-stretch-center+.si-tree-view-item-toggle-end .si-tree-view-item-icon{margin-inline-start:calc(var(--si-sys-sizing-spacing-x-20) * -1)}.si-tree-view-item-icon{padding-inline-end:var(--si-sys-sizing-spacing-x-20)}.si-tree-view-item-icon.si-tree-view-item-icon-spacer{box-sizing:content-box;inline-size:var(--si-tree-view-icon-size)}.si-tree-view-item-object-data,.si-tree-view-item-icon{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item{justify-content:space-between;min-block-size:var(--si-tree-view-item-min-height);padding-inline:var(--si-tree-view-padding-base-horizontal) calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item:hover{cursor:pointer}:host-context(.si-tree-view-flat) .si-tree-view-item{padding-inline-start:calc(var(--si-tree-view-padding-base-horizontal) / 2)}.si-tree-view-state-indicator{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) * .75);min-inline-size:.375rem;block-size:.375rem;border-radius:50%}.si-tree-view-state-indicator.si-tree-view-state-indicator-endmost{margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) * 1.75)}.si-tree-view-item-group{padding-block:calc(2 * var(--si-tree-view-padding-base-vertical));padding-inline:calc(var(--si-tree-view-padding-base-horizontal) / 2);cursor:default}.si-tree-view-item-group .si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-group .si-tree-view-item-icon:hover{cursor:pointer}.si-tree-view-item-dropdown-caret,.si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-icon,.si-tree-view-item-icon:hover{color:var(--si-sys-color-text-primary);text-decoration:none;font-size:var(--si-tree-view-icon-size)}.si-tree-view-item-main{overflow-x:hidden}.si-tree-view-item-main>.badge{margin-block:auto}.si-tree-view-item-object-data>.si-tree-view-item-object-data-field-1{color:var(--si-tree-view-item-object-data-field-1-color)}:host.si-tree-ellipsis .si-tree-view-item-object-data{overflow-x:hidden}.si-tree-view-item-object-data>*{white-space:nowrap;margin-block:0;line-height:var(--si-tree-view-item-line-height)}:host.si-tree-ellipsis .si-tree-view-item-object-data>*{overflow:hidden;text-overflow:ellipsis}.si-tree-view-menu-btn{pointer-events:none}.si-tree-view-item-end-icons{block-size:calc(var(--si-tree-view-item-min-height) - 2 * (var(--element-button-focus-width) + var(--element-button-focus-overlay-width)))}.si-tree-view-item-end-icons.si-tree-view-item-end-icons-sticky{position:sticky;inset-inline-end:0}.input-box{margin-inline:var(--si-sys-sizing-spacing-x-10) var(--si-sys-sizing-spacing-x-50)}.form-check-input{display:block}si-loading-spinner{--loading-spinner-size: var(--si-tree-view-icon-size)}\n"], dependencies: [{ kind: "directive", type: CdkContextMenuTrigger, selector: "[cdkContextMenuTriggerFor]", inputs: ["cdkContextMenuTriggerFor", "cdkContextMenuPosition", "cdkContextMenuTriggerData", "cdkContextMenuTriggerTransformOriginOn", "cdkContextMenuDisabled"], outputs: ["cdkContextMenuOpened", "cdkContextMenuClosed"], exportAs: ["cdkContextMenuTriggerFor"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
857
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: SiTreeViewItemComponent, isStandalone: true, selector: "si-tree-view-item", host: { attributes: { "role": "treeitem" }, listeners: { "contextmenu": "onContextMenu($event)", "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "treeItemContext.record.currentIndex === treeViewComponent.activeIndex ? 0 : -1", "class.focus-none": "true", "class.si-tree-ellipsis": "treeViewComponent.horizontalScrolling()", "class.si-tree-view-top-level-item": "!treeViewComponent.compactMode() && (treeViewComponent.flatTree() || (treeItem.level ?? 0) < 1)", "attr.aria-haspopup": "isContextMenuButtonVisible()", "attr.aria-level": "this.ariaLevel", "attr.aria-setsize": "this.ariaSetsize", "attr.aria-posinset": "this.ariaPosinset", "attr.aria-selected": "this.ariaSelected", "attr.aria-checked": "this.ariaChecked", "attr.aria-expanded": "this.ariaExpanded" }, classAttribute: "drop-line-placeholder" }, viewQueries: [{ propertyName: "menuTrigger", first: true, predicate: CdkMenuTrigger, descendants: true, isSignal: true }], ngImport: i0, template: "@if (!isGroupedItem) {\n <div\n #contextMenuTrigger=\"cdkContextMenuTriggerFor\"\n class=\"si-tree-view-li si-tree-view-li-item focus-direct-sub-inside grab-area\"\n [class.si-tree-view-item-context-menu-visible]=\"\n !!(contextMenuTrigger.isOpen() || menuTrigger()?.isOpen())\n \"\n [class.si-tree-view-item-active]=\"treeItem.active\"\n [class.si-tree-view-item-selected]=\"enableSelection() && treeItem.selected\"\n [class.si-tree-view-item-not-selectable]=\"!treeItem.selectable\"\n [style.padding-inline-start]=\"biggerPaddingStart\"\n [cdkContextMenuTriggerFor]=\"contextMenu\"\n [cdkContextMenuDisabled]=\"!isContextMenuButtonVisible() || !treeItem.selectable\"\n (cdkContextMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkContextMenuClosed)=\"onToggleContextMenuClose()\"\n (click)=\"onItemClicked($event)\"\n >\n <div class=\"si-tree-view-item\" (mousedown)=\"onMouseDownTreeItem($event)\">\n @if (showFolderStateStart && treeItem.state !== 'leaf') {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n biggerPaddingStart: negativeBiggerPaddingStart,\n paddingStart: paddingStart,\n toggleIcon: 'si-tree-view-item-dropdown-caret'\n }\"\n />\n }\n <ng-container [ngTemplateOutlet]=\"checkboxOrOption\" />\n\n <div class=\"si-tree-view-item-main d-flex flex-grow-1 align-self-stretch\">\n @if (showIcon()) {\n <div class=\"si-tree-stretch-center\">\n <si-icon class=\"si-tree-view-item-icon\" [icon]=\"treeItem.icon!\" />\n </div>\n }\n <div\n class=\"si-tree-view-item-object-data d-flex flex-column justify-content-center overflow-hidden\"\n >\n @if (!templates().length) {\n <ng-content select=\":not(si-tree-view-item):not([dragPreview])\"\n ><div class=\"text-truncate\" [class.si-h5]=\"enableSelection() && treeItem.selected\">{{\n treeItem.label | translate\n }}</div></ng-content\n >\n } @else {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n renderMatchingTemplate(treeItem);\n context: { $implicit: treeItem }\n \"\n />\n </div>\n }\n @if (enableDataField1() && treeItem.dataField1) {\n <p class=\"si-tree-view-item-object-data-field-1 text-truncate\">{{\n treeItem.dataField1 | translate\n }}</p>\n }\n @if (enableDataField2() && treeItem.dataField2) {\n <p class=\"si-tree-view-item-object-data-field-2 text-truncate\">{{\n treeItem.dataField2 | translate\n }}</p>\n }\n </div>\n @if (treeItem.badge) {\n <span class=\"badge flex-shrink-0\" [class]=\"`bg-${treeItem.badgeColor || 'default'}`\">{{\n treeItem.badge\n }}</span>\n }\n </div>\n <div\n class=\"si-tree-view-item-end-icons d-flex ms-2 align-items-center\"\n [class.si-tree-view-item-end-icons-sticky]=\"stickyEndItems()\"\n >\n @if (showStateIndicator() && getStateIndicatorColor()) {\n <div\n class=\"si-tree-view-state-indicator\"\n [style.background-color]=\"getStateIndicatorColor()\"\n [class.si-tree-view-state-indicator-endmost]=\"\n !enableContextMenuButton() && !showFolderStateEnd\n \"\n ></div>\n }\n @if (isContextMenuButtonVisible()) {\n <div class=\"si-tree-stretch-center si-tree-context-menu-btn\">\n <div\n #menuTrigger=\"cdkMenuTriggerFor\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"contextMenu\"\n (cdkMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkMenuClosed)=\"onToggleContextMenuClose()\"\n (click)=\"$event.stopPropagation()\"\n >\n <i\n aria-hidden=\"true\"\n class=\"si-tree-view-item-icon si-tree-view-menu-btn\"\n [class]=\"icons().itemMenu\"\n ></i>\n </div>\n </div>\n }\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"treeItem.state === 'leaf' ? spacerTemplate : toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon',\n positionEnd: true\n }\"\n />\n }\n </div>\n </div>\n </div>\n} @else {\n <div class=\"si-tree-view-li focus-direct-sub-inside\">\n <div class=\"si-tree-view-item-group\">\n @if (showFolderStateStart) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n <ng-container\n [ngTemplateOutlet]=\"checkboxOrOption\"\n [ngTemplateOutletContext]=\"{ classNames: 'form-check mb-2' }\"\n />\n\n <p class=\"mb-0\">{{ treeItem.label | translate }}</p>\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n </div>\n </div>\n}\n\n<ng-template #contextMenu>\n <si-menu-factory class=\"me-5\" [items]=\"contextMenuItems()!\" [actionParam]=\"treeItem\" />\n</ng-template>\n\n<ng-template #checkboxOrOption let-classNames=\"classNames\">\n @if (showCheckOrOptionBox) {\n <a class=\"input-box\" tabindex=\"-1\" [class]=\"classNames\" (click)=\"$event.stopPropagation()\">\n <input\n class=\"form-check-input\"\n tabindex=\"-1\"\n [type]=\"getInputType()\"\n [indeterminate]=\"this.treeItem.checked === 'indeterminate' ? true : null\"\n [checked]=\"this.treeItem.checked === 'checked'\"\n [disabled]=\"!treeItem.selectable\"\n [attr.aria-label]=\"treeItem.label | translate\"\n (click)=\"onBoxClicked()\"\n />\n </a>\n }\n</ng-template>\n\n<ng-template\n #toggleTemplate\n let-biggerPaddingStart=\"biggerPaddingStart\"\n let-paddingStart=\"paddingStart\"\n let-toggleIcon=\"toggleIcon\"\n let-positionEnd=\"positionEnd\"\n>\n @let folderStateClass = getItemFolderStateClass();\n <a\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n tabindex=\"-1\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n [class.disabled]=\"!folderStateClass\"\n [style.margin-inline-start]=\"biggerPaddingStart\"\n [style.padding-inline-start]=\"paddingStart\"\n (click)=\"onItemFolderClicked(); $event.stopPropagation()\"\n >\n @if (isExpanding) {\n <si-loading-spinner />\n } @else {\n <i aria-hidden=\"true\" [class]=\"`${toggleIcon} ${folderStateClass}`\"></i>\n }\n </a>\n</ng-template>\n\n<ng-template #spacerTemplate let-positionEnd=\"positionEnd\">\n <div\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n >\n <i aria-hidden=\"true\" class=\"si-tree-view-item-icon si-tree-view-item-icon-spacer\"></i>\n </div>\n</ng-template>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:block}:host.cdk-drag:not(.cdk-drag-placeholder){transform:none!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{padding-inline-start:8px!important;padding-inline-end:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .si-tree-view-item-toggle{padding-inline-start:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .badge{margin-inline-end:0}:host.cdk-drag-preview .si-tree-view-item-end-icons,:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{background-color:var(--si-sys-color-background-3)!important}:host-context(.cdk-drop-list-dragging) *:hover,:host-context(.cdk-drop-list-dragging) .si-tree-view-item-end-icons,:host-context(.cdk-drop-list-dragging) .si-tree-view-item-context-menu-visible,:host .cdk-drop-list-dragging *:hover,:host .cdk-drop-list-dragging .si-tree-view-item-end-icons,:host .cdk-drop-list-dragging .si-tree-view-item-context-menu-visible{background-color:transparent!important}.si-tree-view-li.si-tree-view-li-item{position:relative;cursor:pointer}.si-tree-view-li.si-tree-view-li-item:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible,.si-tree-view-li.si-tree-view-li-item:hover .si-tree-view-item-end-icons,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-hover-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-select-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable{cursor:default}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-end-icons{background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item:hover{cursor:default;background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-dropdown-caret,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end .si-tree-view-item-icon{color:var(--si-sys-color-text-primary)}.si-tree-view-li.si-tree-view-li-item .si-tree-view-item-end-icons{background-color:var(--si-tree-view-background)}.si-tree-view-item-group,.si-tree-view-item{display:flex;align-items:center}.si-tree-stretch-center{align-self:stretch;display:flex;align-items:center;justify-content:center;margin:0;text-decoration:none}a.si-tree-view-item-toggle,.si-tree-context-menu-btn>div[role=button]{cursor:pointer}.si-tree-view-item-toggle.disabled .si-tree-view-item-icon{inline-size:var(--si-sys-sizing-spacing-x-80)}.si-tree-stretch-center+.si-tree-view-item-toggle-end .si-tree-view-item-icon{margin-inline-start:calc(var(--si-sys-sizing-spacing-x-20) * -1)}.si-tree-view-item-icon{padding-inline-end:var(--si-sys-sizing-spacing-x-20)}.si-tree-view-item-icon.si-tree-view-item-icon-spacer{box-sizing:content-box;inline-size:var(--si-tree-view-icon-size)}.si-tree-view-item-object-data,.si-tree-view-item-icon{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item{justify-content:space-between;min-block-size:var(--si-tree-view-item-min-height);padding-inline:var(--si-tree-view-padding-base-horizontal) calc(var(--si-tree-view-padding-base-horizontal) / 4)}:host-context(.si-tree-view-flat) .si-tree-view-item{padding-inline-start:calc(var(--si-tree-view-padding-base-horizontal) / 2)}.si-tree-view-state-indicator{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) * .75);min-inline-size:.375rem;block-size:.375rem;border-radius:50%}.si-tree-view-state-indicator.si-tree-view-state-indicator-endmost{margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) * 1.75)}.si-tree-view-item-group{padding-block:calc(2 * var(--si-tree-view-padding-base-vertical));padding-inline:calc(var(--si-tree-view-padding-base-horizontal) / 2);cursor:default}.si-tree-view-item-group .si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-group .si-tree-view-item-icon:hover{cursor:pointer}.si-tree-view-item-dropdown-caret,.si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-icon,.si-tree-view-item-icon:hover{color:var(--si-sys-color-text-primary);text-decoration:none;font-size:var(--si-tree-view-icon-size)}.si-tree-view-item-main{overflow-x:hidden}.si-tree-view-item-main>.badge{margin-block:auto}.si-tree-view-item-object-data>.si-tree-view-item-object-data-field-1{color:var(--si-tree-view-item-object-data-field-1-color)}:host.si-tree-ellipsis .si-tree-view-item-object-data{overflow-x:hidden}.si-tree-view-item-object-data>*{white-space:nowrap;margin-block:0;line-height:var(--si-tree-view-item-line-height)}:host.si-tree-ellipsis .si-tree-view-item-object-data>*{overflow:hidden;text-overflow:ellipsis}.si-tree-view-menu-btn{pointer-events:none}.si-tree-view-item-end-icons{block-size:calc(var(--si-tree-view-item-min-height) - 2 * (var(--element-button-focus-width) + var(--element-button-focus-overlay-width)))}.si-tree-view-item-end-icons.si-tree-view-item-end-icons-sticky{position:sticky;inset-inline-end:0}.input-box{margin-inline:var(--si-sys-sizing-spacing-x-10) var(--si-sys-sizing-spacing-x-50)}.form-check-input{display:block}si-loading-spinner{--loading-spinner-size: var(--si-tree-view-icon-size)}\n"], dependencies: [{ kind: "directive", type: CdkContextMenuTrigger, selector: "[cdkContextMenuTriggerFor]", inputs: ["cdkContextMenuTriggerFor", "cdkContextMenuPosition", "cdkContextMenuTriggerData", "cdkContextMenuTriggerTransformOriginOn", "cdkContextMenuDisabled"], outputs: ["cdkContextMenuOpened", "cdkContextMenuClosed"], exportAs: ["cdkContextMenuTriggerFor"] }, { kind: "directive", type: CdkMenuTrigger, selector: "[cdkMenuTriggerFor]", inputs: ["cdkMenuTriggerFor", "cdkMenuPosition", "cdkMenuTriggerData", "cdkMenuTriggerTransformOriginOn"], outputs: ["cdkMenuOpened", "cdkMenuClosed"], exportAs: ["cdkMenuTriggerFor"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "component", type: SiLoadingSpinnerComponent, selector: "si-loading-spinner", inputs: ["isBlockingSpinner", "isSpinnerOverlay", "ariaLabel"] }, { kind: "component", type: SiMenuFactoryComponent, selector: "si-menu-factory", inputs: ["items", "actionParam"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
857
858
  }
858
859
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiTreeViewItemComponent, decorators: [{
859
860
  type: Component,
@@ -866,6 +867,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
866
867
  SiMenuFactoryComponent,
867
868
  SiTranslatePipe
868
869
  ], changeDetection: ChangeDetectionStrategy.Eager, host: {
870
+ class: 'drop-line-placeholder',
869
871
  role: 'treeitem',
870
872
  '[attr.tabindex]': 'treeItemContext.record.currentIndex === treeViewComponent.activeIndex ? 0 : -1',
871
873
  '[class.focus-none]': 'true',
@@ -874,7 +876,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
874
876
  '[attr.aria-haspopup]': 'isContextMenuButtonVisible()',
875
877
  '(contextmenu)': 'onContextMenu($event)',
876
878
  '(keydown)': 'onKeydown($event)'
877
- }, template: "@if (!isGroupedItem) {\n <div\n #contextMenuTrigger=\"cdkContextMenuTriggerFor\"\n class=\"si-tree-view-li si-tree-view-li-item focus-direct-sub-inside\"\n [class.si-tree-view-item-context-menu-visible]=\"\n !!(contextMenuTrigger.isOpen() || menuTrigger()?.isOpen())\n \"\n [class.si-tree-view-item-active]=\"treeItem.active\"\n [class.si-tree-view-item-selected]=\"enableSelection() && treeItem.selected\"\n [class.si-tree-view-item-not-selectable]=\"!treeItem.selectable\"\n [style.padding-inline-start]=\"biggerPaddingStart\"\n [cdkContextMenuTriggerFor]=\"contextMenu\"\n [cdkContextMenuDisabled]=\"!isContextMenuButtonVisible() || !treeItem.selectable\"\n (cdkContextMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkContextMenuClosed)=\"onToggleContextMenuClose()\"\n >\n <div class=\"si-tree-view-item\" (mousedown)=\"onMouseDownTreeItem($event)\">\n @if (showFolderStateStart && treeItem.state !== 'leaf') {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n biggerPaddingStart: negativeBiggerPaddingStart,\n paddingStart: paddingStart,\n toggleIcon: 'si-tree-view-item-dropdown-caret'\n }\"\n />\n }\n <ng-container [ngTemplateOutlet]=\"checkboxOrOption\" />\n\n <div\n class=\"si-tree-view-item-main d-flex flex-grow-1 align-self-stretch grab-area\"\n (click)=\"onItemClicked($event)\"\n >\n @if (showIcon()) {\n <div class=\"si-tree-stretch-center\">\n <si-icon class=\"si-tree-view-item-icon\" [icon]=\"treeItem.icon!\" />\n </div>\n }\n <div\n class=\"si-tree-view-item-object-data d-flex flex-column justify-content-center overflow-hidden\"\n >\n @if (!templates().length) {\n <ng-content select=\":not(si-tree-view-item):not([dragPreview])\"\n ><div class=\"text-truncate\" [class.si-h5]=\"enableSelection() && treeItem.selected\">{{\n treeItem.label | translate\n }}</div></ng-content\n >\n } @else {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n renderMatchingTemplate(treeItem);\n context: { $implicit: treeItem }\n \"\n />\n </div>\n }\n @if (enableDataField1() && treeItem.dataField1) {\n <p class=\"si-tree-view-item-object-data-field-1 text-truncate\">{{\n treeItem.dataField1 | translate\n }}</p>\n }\n @if (enableDataField2() && treeItem.dataField2) {\n <p class=\"si-tree-view-item-object-data-field-2 text-truncate\">{{\n treeItem.dataField2 | translate\n }}</p>\n }\n </div>\n @if (treeItem.badge) {\n <span class=\"badge flex-shrink-0\" [class]=\"`bg-${treeItem.badgeColor || 'default'}`\">{{\n treeItem.badge\n }}</span>\n }\n </div>\n <div\n class=\"si-tree-view-item-end-icons d-flex ms-2 align-items-center\"\n [class.si-tree-view-item-end-icons-sticky]=\"stickyEndItems()\"\n >\n @if (showStateIndicator() && getStateIndicatorColor()) {\n <div\n class=\"si-tree-view-state-indicator\"\n [style.background-color]=\"getStateIndicatorColor()\"\n [class.si-tree-view-state-indicator-endmost]=\"\n !enableContextMenuButton() && !showFolderStateEnd\n \"\n ></div>\n }\n @if (isContextMenuButtonVisible()) {\n <div class=\"si-tree-stretch-center si-tree-context-menu-btn\">\n <div\n #menuTrigger=\"cdkMenuTriggerFor\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"contextMenu\"\n (cdkMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkMenuClosed)=\"onToggleContextMenuClose()\"\n >\n <i\n aria-hidden=\"true\"\n class=\"si-tree-view-item-icon si-tree-view-menu-btn\"\n [class]=\"icons().itemMenu\"\n ></i>\n </div>\n </div>\n }\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"treeItem.state === 'leaf' ? spacerTemplate : toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon',\n positionEnd: true\n }\"\n />\n }\n </div>\n </div>\n </div>\n} @else {\n <div class=\"si-tree-view-li focus-direct-sub-inside\">\n <div class=\"si-tree-view-item-group\">\n @if (showFolderStateStart) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n <ng-container\n [ngTemplateOutlet]=\"checkboxOrOption\"\n [ngTemplateOutletContext]=\"{ classNames: 'form-check mb-2' }\"\n />\n\n <p class=\"mb-0\">{{ treeItem.label | translate }}</p>\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n </div>\n </div>\n}\n\n<ng-template #contextMenu>\n <si-menu-factory class=\"me-5\" [items]=\"contextMenuItems()!\" [actionParam]=\"treeItem\" />\n</ng-template>\n\n<ng-template #checkboxOrOption let-classNames=\"classNames\">\n @if (showCheckOrOptionBox) {\n <a class=\"input-box\" tabindex=\"-1\" [class]=\"classNames\">\n <input\n class=\"form-check-input\"\n tabindex=\"-1\"\n [type]=\"getInputType()\"\n [indeterminate]=\"this.treeItem.checked === 'indeterminate' ? true : null\"\n [checked]=\"this.treeItem.checked === 'checked'\"\n [disabled]=\"!treeItem.selectable\"\n [attr.aria-label]=\"treeItem.label | translate\"\n (click)=\"onBoxClicked()\"\n />\n </a>\n }\n</ng-template>\n\n<ng-template\n #toggleTemplate\n let-biggerPaddingStart=\"biggerPaddingStart\"\n let-paddingStart=\"paddingStart\"\n let-toggleIcon=\"toggleIcon\"\n let-positionEnd=\"positionEnd\"\n>\n @let folderStateClass = getItemFolderStateClass();\n <a\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n tabindex=\"-1\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n [class.disabled]=\"!folderStateClass\"\n [style.margin-inline-start]=\"biggerPaddingStart\"\n [style.padding-inline-start]=\"paddingStart\"\n (click)=\"onItemFolderClicked()\"\n >\n @if (isExpanding) {\n <si-loading-spinner />\n } @else {\n <i aria-hidden=\"true\" [class]=\"`${toggleIcon} ${folderStateClass}`\"></i>\n }\n </a>\n</ng-template>\n\n<ng-template #spacerTemplate let-positionEnd=\"positionEnd\">\n <div\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n >\n <i aria-hidden=\"true\" class=\"si-tree-view-item-icon si-tree-view-item-icon-spacer\"></i>\n </div>\n</ng-template>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder{block-size:auto!important;margin-inline:0;margin-block:revert!important;min-block-size:revert;position:static;z-index:auto}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder:after{content:none!important}:host-context(.cdk-drop-list[cdkDropListHasAnchor]) :host.cdk-drag-placeholder>*{display:revert}:host{display:block}:host.cdk-drag-placeholder{block-size:0;margin-inline:8px;margin-block:0!important;opacity:1!important;min-block-size:0!important;position:relative;z-index:999}:host.cdk-drag-placeholder:after{position:absolute;inline-size:100%;block-size:2px;content:\"\";background-color:var(--si-sys-color-effects-focus)!important}:host.cdk-drag-placeholder>*{display:none}:host.cdk-drag:not(.cdk-drag-placeholder){transform:none!important}:host.cdk-drop-list-dragging *:hover,:host.cdk-drop-list-dragging .si-tree-view-item-end-icons,:host.cdk-drop-list-dragging .si-tree-view-item-context-menu-visible,:host .cdk-drop-list-dragging *:hover,:host .cdk-drop-list-dragging .si-tree-view-item-end-icons,:host .cdk-drop-list-dragging .si-tree-view-item-context-menu-visible{background-color:transparent!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{padding-inline-start:8px!important;padding-inline-end:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .si-tree-view-item-toggle{padding-inline-start:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .badge{margin-inline-end:0}:host.cdk-drag-preview .si-tree-view-item-end-icons,:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{background-color:var(--si-sys-color-background-3)!important}.si-tree-view-li.si-tree-view-li-item{position:relative}.si-tree-view-li.si-tree-view-li-item:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible,.si-tree-view-li.si-tree-view-li-item:hover .si-tree-view-item-end-icons,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-hover-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-select-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-end-icons{background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item:hover{cursor:default;background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-dropdown-caret{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-context-menu-btn>div[role=button]{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end .si-tree-view-item-icon{color:var(--si-sys-color-text-primary)}.si-tree-view-li.si-tree-view-li-item .si-tree-view-item-end-icons{background-color:var(--si-tree-view-background)}.si-tree-view-item-group,.si-tree-view-item{display:flex;align-items:center}.si-tree-stretch-center{align-self:stretch;display:flex;align-items:center;justify-content:center;margin:0;text-decoration:none}.si-tree-view-item-toggle.disabled .si-tree-view-item-icon{inline-size:var(--si-sys-sizing-spacing-x-80)}.si-tree-stretch-center+.si-tree-view-item-toggle-end .si-tree-view-item-icon{margin-inline-start:calc(var(--si-sys-sizing-spacing-x-20) * -1)}.si-tree-view-item-icon{padding-inline-end:var(--si-sys-sizing-spacing-x-20)}.si-tree-view-item-icon.si-tree-view-item-icon-spacer{box-sizing:content-box;inline-size:var(--si-tree-view-icon-size)}.si-tree-view-item-object-data,.si-tree-view-item-icon{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item{justify-content:space-between;min-block-size:var(--si-tree-view-item-min-height);padding-inline:var(--si-tree-view-padding-base-horizontal) calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item:hover{cursor:pointer}:host-context(.si-tree-view-flat) .si-tree-view-item{padding-inline-start:calc(var(--si-tree-view-padding-base-horizontal) / 2)}.si-tree-view-state-indicator{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) * .75);min-inline-size:.375rem;block-size:.375rem;border-radius:50%}.si-tree-view-state-indicator.si-tree-view-state-indicator-endmost{margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) * 1.75)}.si-tree-view-item-group{padding-block:calc(2 * var(--si-tree-view-padding-base-vertical));padding-inline:calc(var(--si-tree-view-padding-base-horizontal) / 2);cursor:default}.si-tree-view-item-group .si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-group .si-tree-view-item-icon:hover{cursor:pointer}.si-tree-view-item-dropdown-caret,.si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-icon,.si-tree-view-item-icon:hover{color:var(--si-sys-color-text-primary);text-decoration:none;font-size:var(--si-tree-view-icon-size)}.si-tree-view-item-main{overflow-x:hidden}.si-tree-view-item-main>.badge{margin-block:auto}.si-tree-view-item-object-data>.si-tree-view-item-object-data-field-1{color:var(--si-tree-view-item-object-data-field-1-color)}:host.si-tree-ellipsis .si-tree-view-item-object-data{overflow-x:hidden}.si-tree-view-item-object-data>*{white-space:nowrap;margin-block:0;line-height:var(--si-tree-view-item-line-height)}:host.si-tree-ellipsis .si-tree-view-item-object-data>*{overflow:hidden;text-overflow:ellipsis}.si-tree-view-menu-btn{pointer-events:none}.si-tree-view-item-end-icons{block-size:calc(var(--si-tree-view-item-min-height) - 2 * (var(--element-button-focus-width) + var(--element-button-focus-overlay-width)))}.si-tree-view-item-end-icons.si-tree-view-item-end-icons-sticky{position:sticky;inset-inline-end:0}.input-box{margin-inline:var(--si-sys-sizing-spacing-x-10) var(--si-sys-sizing-spacing-x-50)}.form-check-input{display:block}si-loading-spinner{--loading-spinner-size: var(--si-tree-view-icon-size)}\n"] }]
879
+ }, template: "@if (!isGroupedItem) {\n <div\n #contextMenuTrigger=\"cdkContextMenuTriggerFor\"\n class=\"si-tree-view-li si-tree-view-li-item focus-direct-sub-inside grab-area\"\n [class.si-tree-view-item-context-menu-visible]=\"\n !!(contextMenuTrigger.isOpen() || menuTrigger()?.isOpen())\n \"\n [class.si-tree-view-item-active]=\"treeItem.active\"\n [class.si-tree-view-item-selected]=\"enableSelection() && treeItem.selected\"\n [class.si-tree-view-item-not-selectable]=\"!treeItem.selectable\"\n [style.padding-inline-start]=\"biggerPaddingStart\"\n [cdkContextMenuTriggerFor]=\"contextMenu\"\n [cdkContextMenuDisabled]=\"!isContextMenuButtonVisible() || !treeItem.selectable\"\n (cdkContextMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkContextMenuClosed)=\"onToggleContextMenuClose()\"\n (click)=\"onItemClicked($event)\"\n >\n <div class=\"si-tree-view-item\" (mousedown)=\"onMouseDownTreeItem($event)\">\n @if (showFolderStateStart && treeItem.state !== 'leaf') {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n biggerPaddingStart: negativeBiggerPaddingStart,\n paddingStart: paddingStart,\n toggleIcon: 'si-tree-view-item-dropdown-caret'\n }\"\n />\n }\n <ng-container [ngTemplateOutlet]=\"checkboxOrOption\" />\n\n <div class=\"si-tree-view-item-main d-flex flex-grow-1 align-self-stretch\">\n @if (showIcon()) {\n <div class=\"si-tree-stretch-center\">\n <si-icon class=\"si-tree-view-item-icon\" [icon]=\"treeItem.icon!\" />\n </div>\n }\n <div\n class=\"si-tree-view-item-object-data d-flex flex-column justify-content-center overflow-hidden\"\n >\n @if (!templates().length) {\n <ng-content select=\":not(si-tree-view-item):not([dragPreview])\"\n ><div class=\"text-truncate\" [class.si-h5]=\"enableSelection() && treeItem.selected\">{{\n treeItem.label | translate\n }}</div></ng-content\n >\n } @else {\n <div>\n <ng-container\n *ngTemplateOutlet=\"\n renderMatchingTemplate(treeItem);\n context: { $implicit: treeItem }\n \"\n />\n </div>\n }\n @if (enableDataField1() && treeItem.dataField1) {\n <p class=\"si-tree-view-item-object-data-field-1 text-truncate\">{{\n treeItem.dataField1 | translate\n }}</p>\n }\n @if (enableDataField2() && treeItem.dataField2) {\n <p class=\"si-tree-view-item-object-data-field-2 text-truncate\">{{\n treeItem.dataField2 | translate\n }}</p>\n }\n </div>\n @if (treeItem.badge) {\n <span class=\"badge flex-shrink-0\" [class]=\"`bg-${treeItem.badgeColor || 'default'}`\">{{\n treeItem.badge\n }}</span>\n }\n </div>\n <div\n class=\"si-tree-view-item-end-icons d-flex ms-2 align-items-center\"\n [class.si-tree-view-item-end-icons-sticky]=\"stickyEndItems()\"\n >\n @if (showStateIndicator() && getStateIndicatorColor()) {\n <div\n class=\"si-tree-view-state-indicator\"\n [style.background-color]=\"getStateIndicatorColor()\"\n [class.si-tree-view-state-indicator-endmost]=\"\n !enableContextMenuButton() && !showFolderStateEnd\n \"\n ></div>\n }\n @if (isContextMenuButtonVisible()) {\n <div class=\"si-tree-stretch-center si-tree-context-menu-btn\">\n <div\n #menuTrigger=\"cdkMenuTriggerFor\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n [cdkMenuTriggerFor]=\"contextMenu\"\n (cdkMenuOpened)=\"onToggleContextMenuOpen()\"\n (cdkMenuClosed)=\"onToggleContextMenuClose()\"\n (click)=\"$event.stopPropagation()\"\n >\n <i\n aria-hidden=\"true\"\n class=\"si-tree-view-item-icon si-tree-view-menu-btn\"\n [class]=\"icons().itemMenu\"\n ></i>\n </div>\n </div>\n }\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"treeItem.state === 'leaf' ? spacerTemplate : toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon',\n positionEnd: true\n }\"\n />\n }\n </div>\n </div>\n </div>\n} @else {\n <div class=\"si-tree-view-li focus-direct-sub-inside\">\n <div class=\"si-tree-view-item-group\">\n @if (showFolderStateStart) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n <ng-container\n [ngTemplateOutlet]=\"checkboxOrOption\"\n [ngTemplateOutletContext]=\"{ classNames: 'form-check mb-2' }\"\n />\n\n <p class=\"mb-0\">{{ treeItem.label | translate }}</p>\n @if (showFolderStateEnd) {\n <ng-container\n [ngTemplateOutlet]=\"toggleTemplate\"\n [ngTemplateOutletContext]=\"{\n toggleIcon: 'si-tree-view-item-icon'\n }\"\n />\n }\n </div>\n </div>\n}\n\n<ng-template #contextMenu>\n <si-menu-factory class=\"me-5\" [items]=\"contextMenuItems()!\" [actionParam]=\"treeItem\" />\n</ng-template>\n\n<ng-template #checkboxOrOption let-classNames=\"classNames\">\n @if (showCheckOrOptionBox) {\n <a class=\"input-box\" tabindex=\"-1\" [class]=\"classNames\" (click)=\"$event.stopPropagation()\">\n <input\n class=\"form-check-input\"\n tabindex=\"-1\"\n [type]=\"getInputType()\"\n [indeterminate]=\"this.treeItem.checked === 'indeterminate' ? true : null\"\n [checked]=\"this.treeItem.checked === 'checked'\"\n [disabled]=\"!treeItem.selectable\"\n [attr.aria-label]=\"treeItem.label | translate\"\n (click)=\"onBoxClicked()\"\n />\n </a>\n }\n</ng-template>\n\n<ng-template\n #toggleTemplate\n let-biggerPaddingStart=\"biggerPaddingStart\"\n let-paddingStart=\"paddingStart\"\n let-toggleIcon=\"toggleIcon\"\n let-positionEnd=\"positionEnd\"\n>\n @let folderStateClass = getItemFolderStateClass();\n <a\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n tabindex=\"-1\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n [class.disabled]=\"!folderStateClass\"\n [style.margin-inline-start]=\"biggerPaddingStart\"\n [style.padding-inline-start]=\"paddingStart\"\n (click)=\"onItemFolderClicked(); $event.stopPropagation()\"\n >\n @if (isExpanding) {\n <si-loading-spinner />\n } @else {\n <i aria-hidden=\"true\" [class]=\"`${toggleIcon} ${folderStateClass}`\"></i>\n }\n </a>\n</ng-template>\n\n<ng-template #spacerTemplate let-positionEnd=\"positionEnd\">\n <div\n class=\"si-tree-stretch-center si-tree-view-item-toggle\"\n [class.si-tree-view-item-toggle-end]=\"positionEnd\"\n >\n <i aria-hidden=\"true\" class=\"si-tree-view-item-icon si-tree-view-item-icon-spacer\"></i>\n </div>\n</ng-template>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:block}:host.cdk-drag:not(.cdk-drag-placeholder){transform:none!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{padding-inline-start:8px!important;padding-inline-end:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .si-tree-view-item-toggle{padding-inline-start:12px!important}:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item .badge{margin-inline-end:0}:host.cdk-drag-preview .si-tree-view-item-end-icons,:host.cdk-drag-preview .si-tree-view-li.si-tree-view-li-item{background-color:var(--si-sys-color-background-3)!important}:host-context(.cdk-drop-list-dragging) *:hover,:host-context(.cdk-drop-list-dragging) .si-tree-view-item-end-icons,:host-context(.cdk-drop-list-dragging) .si-tree-view-item-context-menu-visible,:host .cdk-drop-list-dragging *:hover,:host .cdk-drop-list-dragging .si-tree-view-item-end-icons,:host .cdk-drop-list-dragging .si-tree-view-item-context-menu-visible{background-color:transparent!important}.si-tree-view-li.si-tree-view-li-item{position:relative;cursor:pointer}.si-tree-view-li.si-tree-view-li-item:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible,.si-tree-view-li.si-tree-view-li-item:hover .si-tree-view-item-end-icons,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-context-menu-visible .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-hover-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-selected .si-tree-view-item-end-icons{background-color:var(--si-tree-view-item-select-color)}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable{cursor:default}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable:hover,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-end-icons{background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item:hover{cursor:default;background-color:unset}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-dropdown-caret,.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end{cursor:pointer}.si-tree-view-li.si-tree-view-li-item.si-tree-view-item-not-selectable .si-tree-view-item-toggle-end .si-tree-view-item-icon{color:var(--si-sys-color-text-primary)}.si-tree-view-li.si-tree-view-li-item .si-tree-view-item-end-icons{background-color:var(--si-tree-view-background)}.si-tree-view-item-group,.si-tree-view-item{display:flex;align-items:center}.si-tree-stretch-center{align-self:stretch;display:flex;align-items:center;justify-content:center;margin:0;text-decoration:none}a.si-tree-view-item-toggle,.si-tree-context-menu-btn>div[role=button]{cursor:pointer}.si-tree-view-item-toggle.disabled .si-tree-view-item-icon{inline-size:var(--si-sys-sizing-spacing-x-80)}.si-tree-stretch-center+.si-tree-view-item-toggle-end .si-tree-view-item-icon{margin-inline-start:calc(var(--si-sys-sizing-spacing-x-20) * -1)}.si-tree-view-item-icon{padding-inline-end:var(--si-sys-sizing-spacing-x-20)}.si-tree-view-item-icon.si-tree-view-item-icon-spacer{box-sizing:content-box;inline-size:var(--si-tree-view-icon-size)}.si-tree-view-item-object-data,.si-tree-view-item-icon{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) / 4)}.si-tree-view-item{justify-content:space-between;min-block-size:var(--si-tree-view-item-min-height);padding-inline:var(--si-tree-view-padding-base-horizontal) calc(var(--si-tree-view-padding-base-horizontal) / 4)}:host-context(.si-tree-view-flat) .si-tree-view-item{padding-inline-start:calc(var(--si-tree-view-padding-base-horizontal) / 2)}.si-tree-view-state-indicator{margin-block:0;margin-inline:calc(var(--si-tree-view-padding-base-horizontal) * .75);min-inline-size:.375rem;block-size:.375rem;border-radius:50%}.si-tree-view-state-indicator.si-tree-view-state-indicator-endmost{margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) * 1.75)}.si-tree-view-item-group{padding-block:calc(2 * var(--si-tree-view-padding-base-vertical));padding-inline:calc(var(--si-tree-view-padding-base-horizontal) / 2);cursor:default}.si-tree-view-item-group .si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-group .si-tree-view-item-icon:hover{cursor:pointer}.si-tree-view-item-dropdown-caret,.si-tree-view-item-dropdown-caret:hover,.si-tree-view-item-icon,.si-tree-view-item-icon:hover{color:var(--si-sys-color-text-primary);text-decoration:none;font-size:var(--si-tree-view-icon-size)}.si-tree-view-item-main{overflow-x:hidden}.si-tree-view-item-main>.badge{margin-block:auto}.si-tree-view-item-object-data>.si-tree-view-item-object-data-field-1{color:var(--si-tree-view-item-object-data-field-1-color)}:host.si-tree-ellipsis .si-tree-view-item-object-data{overflow-x:hidden}.si-tree-view-item-object-data>*{white-space:nowrap;margin-block:0;line-height:var(--si-tree-view-item-line-height)}:host.si-tree-ellipsis .si-tree-view-item-object-data>*{overflow:hidden;text-overflow:ellipsis}.si-tree-view-menu-btn{pointer-events:none}.si-tree-view-item-end-icons{block-size:calc(var(--si-tree-view-item-min-height) - 2 * (var(--element-button-focus-width) + var(--element-button-focus-overlay-width)))}.si-tree-view-item-end-icons.si-tree-view-item-end-icons-sticky{position:sticky;inset-inline-end:0}.input-box{margin-inline:var(--si-sys-sizing-spacing-x-10) var(--si-sys-sizing-spacing-x-50)}.form-check-input{display:block}si-loading-spinner{--loading-spinner-size: var(--si-tree-view-icon-size)}\n"] }]
878
880
  }], ctorParameters: () => [], propDecorators: { menuTrigger: [{ type: i0.ViewChild, args: [i0.forwardRef(() => CdkMenuTrigger), { isSignal: true }] }], ariaLevel: [{
879
881
  type: HostBinding,
880
882
  args: ['attr.aria-level']
@@ -1690,10 +1692,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
1690
1692
  * Copyright (c) Siemens 2016 - 2026
1691
1693
  * SPDX-License-Identifier: MIT
1692
1694
  */
1693
- /*
1694
- * WARNING: Parts of this component are made to be used in conjunction with Bootstrap.
1695
- * Bootstrap is not included with this package and has to be installed separately.
1696
- */
1697
1695
  const rootDefaults = {
1698
1696
  label: 'root',
1699
1697
  level: ROOT_LEVEL,
@@ -1983,6 +1981,7 @@ class SiTreeViewComponent {
1983
1981
  virtualRoot = { ...rootDefaults };
1984
1982
  _items = signal(this.items(), /* @ts-ignore */
1985
1983
  ...(ngDevMode ? [{ debugName: "_items" }] : /* istanbul ignore next */ []));
1984
+ svgIcons = addIcons({ elementExpandAll, elementCollapseAll });
1986
1985
  updateTreeItemDefaults(item) {
1987
1986
  item.showCheckbox ??= this.enableCheckbox();
1988
1987
  item.showOptionbox ??= this.enableOptionbox();
@@ -2815,11 +2814,17 @@ class SiTreeViewComponent {
2815
2814
  SiTreeViewService,
2816
2815
  SiTreeViewVirtualizationService,
2817
2816
  { provide: SI_TREE_VIEW, useExisting: SiTreeViewComponent }
2818
- ], queries: [{ propertyName: "templates", predicate: SiTreeViewItemTemplateDirective, isSignal: true }, { propertyName: "treeItemContentTemplate", first: true, predicate: SiTreeViewItemDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "nextItems", predicate: SiTreeViewItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "children", predicate: SiTreeViewItemComponent, descendants: true, isSignal: true }, { propertyName: "treeViewInnerElement", first: true, predicate: ["treeViewInner"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (!flatTree() && expandCollapseAll()) {\n <div class=\"si-tree-view-expand-collapse-container p-4\">\n <button\n class=\"btn btn-icon btn-tertiary element-expand-all\"\n type=\"button\"\n [title]=\"expandAllTooltip() | translate\"\n [attr.aria-label]=\"expandAllTooltip() | translate\"\n (click)=\"expandAll()\"\n >\n </button>\n <button\n class=\"btn btn-icon btn-tertiary ms-4 element-collapse-all\"\n type=\"button\"\n [title]=\"collapseAllTooltip() | translate\"\n [attr.aria-label]=\"collapseAllTooltip() | translate\"\n (click)=\"collapseAll()\"\n >\n </button>\n </div>\n}\n@if (flatTree()) {\n <div class=\"si-tree-view-header\">\n <span\n class=\"si-tree-view-header-btn si-tree-view-header-root\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerHome\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateHome()\"\n (keydown.enter)=\"onFlatTreeNavigateHome()\"\n ></span>\n @if (lastBreadCrumbItem) {\n <span\n class=\"si-tree-view-header-btn\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerArrow\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateUp()\"\n (keydown.enter)=\"onFlatTreeNavigateUp()\"\n ></span>\n <span class=\"text-center text-truncate\">{{ lastBreadCrumbItem.label | translate }}</span>\n }\n </div>\n}\n<div\n #treeViewInner\n cdkScrollable\n class=\"si-tree-view focus-inside\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"!singleSelectMode()\"\n [attr.aria-label]=\"ariaLabel() ? (ariaLabel() | translate) : undefined\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class.si-tree-horizontal-scroll]=\"horizontalScrolling()\"\n [class.si-tree-view-flat]=\"flatTree()\"\n [class.si-tree-expand-collapse]=\"!flatTree() && expandCollapseAll()\"\n>\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightBefore\"></div>\n }\n @if (itemsVirtualized) {\n <div class=\"si-tree-view-root-ul\">\n <ng-content select=\"[cdkDropList], [siTreeViewItem]\" />\n @if (!treeItemContentTemplate()) {\n <si-tree-view-item *siTreeViewItem=\"let index = index; let treeItem = treeItem\" />\n }\n </div>\n }\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightAfter\"></div>\n }\n</div>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:flex;flex-direction:column;background-color:var(--si-tree-view-background)}.si-tree-view-header{padding:calc(var(--si-tree-view-padding-base-horizontal) / 2);border-block-end:1px solid var(--si-tree-view-border-color)}.si-tree-view-header>*{align-self:center}.si-tree-view-header-btn{cursor:pointer;margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) / 2);font-size:var(--si-tree-view-icon-size)}.si-tree-view-header-root{margin-inline-end:0}.si-tree-view{overflow:auto;flex:1 0 0;min-block-size:0}.si-tree-view.si-tree-horizontal-scroll{display:flex;flex-wrap:wrap;align-content:flex-start}.si-tree-view-root-ul{list-style:none;padding:0;margin:0;flex:1 1 auto}::ng-deep .si-tree-view-top-level-item{margin-block-start:var(--si-sys-sizing-spacing-y-40)}.si-tree-expand-collapse ::ng-deep .si-tree-view-top-level-item:first-child{margin-block-start:0}@supports (-webkit-touch-callout: none){.si-tree-horizontal-scroll{transform:translateZ(0)}}\n"], dependencies: [{ kind: "component", type: SiTreeViewItemComponent, selector: "si-tree-view-item" }, { kind: "ngmodule", type: CdkScrollableModule }, { kind: "directive", type: i1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: SiTreeViewItemDirective, selector: "[siTreeViewItem]" }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
2817
+ ], queries: [{ propertyName: "templates", predicate: SiTreeViewItemTemplateDirective, isSignal: true }, { propertyName: "treeItemContentTemplate", first: true, predicate: SiTreeViewItemDirective, descendants: true, read: TemplateRef, isSignal: true }, { propertyName: "nextItems", predicate: SiTreeViewItemComponent, descendants: true, isSignal: true }], viewQueries: [{ propertyName: "children", predicate: SiTreeViewItemComponent, descendants: true, isSignal: true }, { propertyName: "treeViewInnerElement", first: true, predicate: ["treeViewInner"], descendants: true, isSignal: true }], usesOnChanges: true, ngImport: i0, template: "@if (!flatTree() && expandCollapseAll()) {\n <div class=\"si-tree-view-expand-collapse-container p-4\">\n <button\n class=\"btn btn-icon btn-tertiary\"\n type=\"button\"\n [title]=\"expandAllTooltip() | translate\"\n [attr.aria-label]=\"expandAllTooltip() | translate\"\n (click)=\"expandAll()\"\n >\n <si-icon [icon]=\"svgIcons.elementExpandAll\" />\n </button>\n <button\n class=\"btn btn-icon btn-tertiary ms-4\"\n type=\"button\"\n [title]=\"collapseAllTooltip() | translate\"\n [attr.aria-label]=\"collapseAllTooltip() | translate\"\n (click)=\"collapseAll()\"\n >\n <si-icon [icon]=\"svgIcons.elementCollapseAll\" />\n </button>\n </div>\n}\n@if (flatTree()) {\n <div class=\"si-tree-view-header\">\n <span\n class=\"si-tree-view-header-btn si-tree-view-header-root\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerHome\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateHome()\"\n (keydown.enter)=\"onFlatTreeNavigateHome()\"\n ></span>\n @if (lastBreadCrumbItem) {\n <span\n class=\"si-tree-view-header-btn\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerArrow\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateUp()\"\n (keydown.enter)=\"onFlatTreeNavigateUp()\"\n ></span>\n <span class=\"text-center text-truncate\">{{ lastBreadCrumbItem.label | translate }}</span>\n }\n </div>\n}\n<div\n #treeViewInner\n cdkScrollable\n class=\"si-tree-view focus-inside\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"!singleSelectMode()\"\n [attr.aria-label]=\"ariaLabel() ? (ariaLabel() | translate) : undefined\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class.si-tree-horizontal-scroll]=\"horizontalScrolling()\"\n [class.si-tree-view-flat]=\"flatTree()\"\n [class.si-tree-expand-collapse]=\"!flatTree() && expandCollapseAll()\"\n>\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightBefore\"></div>\n }\n @if (itemsVirtualized) {\n <div class=\"si-tree-view-root-ul\">\n <ng-content select=\"[cdkDropList], [siTreeViewItem]\" />\n @if (!treeItemContentTemplate()) {\n <si-tree-view-item *siTreeViewItem=\"let index = index; let treeItem = treeItem\" />\n }\n </div>\n }\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightAfter\"></div>\n }\n</div>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:flex;flex-direction:column;background-color:var(--si-tree-view-background)}.si-tree-view-header{padding:calc(var(--si-tree-view-padding-base-horizontal) / 2);border-block-end:1px solid var(--si-tree-view-border-color)}.si-tree-view-header>*{align-self:center}.si-tree-view-header-btn{cursor:pointer;margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) / 2);font-size:var(--si-tree-view-icon-size)}.si-tree-view-header-root{margin-inline-end:0}.si-tree-view{overflow:auto;flex:1 0 0;min-block-size:0}.si-tree-view.si-tree-horizontal-scroll{display:flex;flex-wrap:wrap;align-content:flex-start}.si-tree-view-root-ul{list-style:none;padding:0;margin:0;flex:1 1 auto}::ng-deep .si-tree-view-top-level-item{margin-block-start:var(--si-sys-sizing-spacing-y-40)}.si-tree-expand-collapse ::ng-deep .si-tree-view-top-level-item:first-child{margin-block-start:0}@supports (-webkit-touch-callout: none){.si-tree-horizontal-scroll{transform:translateZ(0)}}\n"], dependencies: [{ kind: "component", type: SiTreeViewItemComponent, selector: "si-tree-view-item" }, { kind: "ngmodule", type: CdkScrollableModule }, { kind: "directive", type: i1.CdkScrollable, selector: "[cdk-scrollable], [cdkScrollable]" }, { kind: "directive", type: SiTreeViewItemDirective, selector: "[siTreeViewItem]" }, { kind: "component", type: SiIconComponent, selector: "si-icon", inputs: ["icon"] }, { kind: "pipe", type: SiTranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.Eager });
2819
2818
  }
2820
2819
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: SiTreeViewComponent, decorators: [{
2821
2820
  type: Component,
2822
- args: [{ selector: 'si-tree-view', imports: [SiTranslatePipe, SiTreeViewItemComponent, CdkScrollableModule, SiTreeViewItemDirective], providers: [
2821
+ args: [{ selector: 'si-tree-view', imports: [
2822
+ SiTranslatePipe,
2823
+ SiTreeViewItemComponent,
2824
+ CdkScrollableModule,
2825
+ SiTreeViewItemDirective,
2826
+ SiIconComponent
2827
+ ], providers: [
2823
2828
  SiTreeViewConverterService,
2824
2829
  SiTreeViewItemHeightService,
2825
2830
  SiTreeViewService,
@@ -2831,7 +2836,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
2831
2836
  '(document:keyup.meta)': 'onKeyUpMeta()',
2832
2837
  '(document:mouseleave)': 'onMouseLeave()',
2833
2838
  '(keydown)': 'handleKeydown($event)'
2834
- }, template: "@if (!flatTree() && expandCollapseAll()) {\n <div class=\"si-tree-view-expand-collapse-container p-4\">\n <button\n class=\"btn btn-icon btn-tertiary element-expand-all\"\n type=\"button\"\n [title]=\"expandAllTooltip() | translate\"\n [attr.aria-label]=\"expandAllTooltip() | translate\"\n (click)=\"expandAll()\"\n >\n </button>\n <button\n class=\"btn btn-icon btn-tertiary ms-4 element-collapse-all\"\n type=\"button\"\n [title]=\"collapseAllTooltip() | translate\"\n [attr.aria-label]=\"collapseAllTooltip() | translate\"\n (click)=\"collapseAll()\"\n >\n </button>\n </div>\n}\n@if (flatTree()) {\n <div class=\"si-tree-view-header\">\n <span\n class=\"si-tree-view-header-btn si-tree-view-header-root\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerHome\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateHome()\"\n (keydown.enter)=\"onFlatTreeNavigateHome()\"\n ></span>\n @if (lastBreadCrumbItem) {\n <span\n class=\"si-tree-view-header-btn\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerArrow\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateUp()\"\n (keydown.enter)=\"onFlatTreeNavigateUp()\"\n ></span>\n <span class=\"text-center text-truncate\">{{ lastBreadCrumbItem.label | translate }}</span>\n }\n </div>\n}\n<div\n #treeViewInner\n cdkScrollable\n class=\"si-tree-view focus-inside\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"!singleSelectMode()\"\n [attr.aria-label]=\"ariaLabel() ? (ariaLabel() | translate) : undefined\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class.si-tree-horizontal-scroll]=\"horizontalScrolling()\"\n [class.si-tree-view-flat]=\"flatTree()\"\n [class.si-tree-expand-collapse]=\"!flatTree() && expandCollapseAll()\"\n>\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightBefore\"></div>\n }\n @if (itemsVirtualized) {\n <div class=\"si-tree-view-root-ul\">\n <ng-content select=\"[cdkDropList], [siTreeViewItem]\" />\n @if (!treeItemContentTemplate()) {\n <si-tree-view-item *siTreeViewItem=\"let index = index; let treeItem = treeItem\" />\n }\n </div>\n }\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightAfter\"></div>\n }\n</div>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:flex;flex-direction:column;background-color:var(--si-tree-view-background)}.si-tree-view-header{padding:calc(var(--si-tree-view-padding-base-horizontal) / 2);border-block-end:1px solid var(--si-tree-view-border-color)}.si-tree-view-header>*{align-self:center}.si-tree-view-header-btn{cursor:pointer;margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) / 2);font-size:var(--si-tree-view-icon-size)}.si-tree-view-header-root{margin-inline-end:0}.si-tree-view{overflow:auto;flex:1 0 0;min-block-size:0}.si-tree-view.si-tree-horizontal-scroll{display:flex;flex-wrap:wrap;align-content:flex-start}.si-tree-view-root-ul{list-style:none;padding:0;margin:0;flex:1 1 auto}::ng-deep .si-tree-view-top-level-item{margin-block-start:var(--si-sys-sizing-spacing-y-40)}.si-tree-expand-collapse ::ng-deep .si-tree-view-top-level-item:first-child{margin-block-start:0}@supports (-webkit-touch-callout: none){.si-tree-horizontal-scroll{transform:translateZ(0)}}\n"] }]
2839
+ }, template: "@if (!flatTree() && expandCollapseAll()) {\n <div class=\"si-tree-view-expand-collapse-container p-4\">\n <button\n class=\"btn btn-icon btn-tertiary\"\n type=\"button\"\n [title]=\"expandAllTooltip() | translate\"\n [attr.aria-label]=\"expandAllTooltip() | translate\"\n (click)=\"expandAll()\"\n >\n <si-icon [icon]=\"svgIcons.elementExpandAll\" />\n </button>\n <button\n class=\"btn btn-icon btn-tertiary ms-4\"\n type=\"button\"\n [title]=\"collapseAllTooltip() | translate\"\n [attr.aria-label]=\"collapseAllTooltip() | translate\"\n (click)=\"collapseAll()\"\n >\n <si-icon [icon]=\"svgIcons.elementCollapseAll\" />\n </button>\n </div>\n}\n@if (flatTree()) {\n <div class=\"si-tree-view-header\">\n <span\n class=\"si-tree-view-header-btn si-tree-view-header-root\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerHome\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateHome()\"\n (keydown.enter)=\"onFlatTreeNavigateHome()\"\n ></span>\n @if (lastBreadCrumbItem) {\n <span\n class=\"si-tree-view-header-btn\"\n tabindex=\"0\"\n [class]=\"computedIcons().headerArrow\"\n [class.disabled]=\"headerShowsRoot\"\n (click)=\"onFlatTreeNavigateUp()\"\n (keydown.enter)=\"onFlatTreeNavigateUp()\"\n ></span>\n <span class=\"text-center text-truncate\">{{ lastBreadCrumbItem.label | translate }}</span>\n }\n </div>\n}\n<div\n #treeViewInner\n cdkScrollable\n class=\"si-tree-view focus-inside\"\n role=\"tree\"\n [attr.aria-multiselectable]=\"!singleSelectMode()\"\n [attr.aria-label]=\"ariaLabel() ? (ariaLabel() | translate) : undefined\"\n [attr.aria-labelledby]=\"ariaLabelledBy()\"\n [class.si-tree-horizontal-scroll]=\"horizontalScrolling()\"\n [class.si-tree-view-flat]=\"flatTree()\"\n [class.si-tree-expand-collapse]=\"!flatTree() && expandCollapseAll()\"\n>\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightBefore\"></div>\n }\n @if (itemsVirtualized) {\n <div class=\"si-tree-view-root-ul\">\n <ng-content select=\"[cdkDropList], [siTreeViewItem]\" />\n @if (!treeItemContentTemplate()) {\n <si-tree-view-item *siTreeViewItem=\"let index = index; let treeItem = treeItem\" />\n }\n </div>\n }\n @if (isVirtualized()) {\n <div [class.w-100]=\"horizontalScrolling()\" [style.height]=\"heightAfter\"></div>\n }\n</div>\n", styles: [":host{--si-tree-view-background: var(--si-sys-color-background-1);--si-tree-view-border-color: var(--si-sys-color-border-4);--si-tree-view-icon-size: var(--si-sys-sizing-icon-md);--si-tree-view-padding-base-horizontal: 8px;--si-tree-view-padding-base-vertical: 8px;--si-tree-view-item-hover-color: var(--si-sys-color-background-hover);--si-tree-view-item-select-color: var(--si-sys-color-background-active);--si-tree-view-item-line-height: var(--si-sys-typography-line-height-body);--si-tree-view-item-min-height: 40px;--si-tree-view-item-object-data-field-1-color: var(--si-sys-color-text-secondary)}:host-context(.tree-sm){--si-tree-view-item-min-height: 32px;--si-tree-view-padding-base-vertical: 0px}:host-context(.tree-xs){--si-tree-view-item-min-height: 24px;--si-tree-view-padding-base-vertical: 0px}:host{display:flex;flex-direction:column;background-color:var(--si-tree-view-background)}.si-tree-view-header{padding:calc(var(--si-tree-view-padding-base-horizontal) / 2);border-block-end:1px solid var(--si-tree-view-border-color)}.si-tree-view-header>*{align-self:center}.si-tree-view-header-btn{cursor:pointer;margin-inline-end:calc(var(--si-tree-view-padding-base-horizontal) / 2);font-size:var(--si-tree-view-icon-size)}.si-tree-view-header-root{margin-inline-end:0}.si-tree-view{overflow:auto;flex:1 0 0;min-block-size:0}.si-tree-view.si-tree-horizontal-scroll{display:flex;flex-wrap:wrap;align-content:flex-start}.si-tree-view-root-ul{list-style:none;padding:0;margin:0;flex:1 1 auto}::ng-deep .si-tree-view-top-level-item{margin-block-start:var(--si-sys-sizing-spacing-y-40)}.si-tree-expand-collapse ::ng-deep .si-tree-view-top-level-item:first-child{margin-block-start:0}@supports (-webkit-touch-callout: none){.si-tree-horizontal-scroll{transform:translateZ(0)}}\n"] }]
2835
2840
  }], propDecorators: { contextMenuItems: [{ type: i0.Input, args: [{ isSignal: true, alias: "contextMenuItems", required: false }] }], childrenIndentation: [{ type: i0.Input, args: [{ isSignal: true, alias: "childrenIndentation", required: false }] }], horizontalScrolling: [{ type: i0.Input, args: [{ isSignal: true, alias: "horizontalScrolling", required: false }] }], compactMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "compactMode", required: false }] }], expandCollapseAll: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandCollapseAll", required: false }] }], expandAllTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandAllTooltip", required: false }] }], collapseAllTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapseAllTooltip", required: false }] }], icons: [{ type: i0.Input, args: [{ isSignal: true, alias: "icons", required: false }] }], pageSize: [{ type: i0.Input, args: [{ isSignal: true, alias: "pageSize", required: false }] }], pagesVirtualized: [{ type: i0.Input, args: [{ isSignal: true, alias: "pagesVirtualized", required: false }] }], folderStateStart: [{ type: i0.Input, args: [{ isSignal: true, alias: "folderStateStart", required: false }] }], isVirtualized: [{ type: i0.Input, args: [{ isSignal: true, alias: "isVirtualized", required: false }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: false }] }], trackBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "trackBy", required: false }] }], selectedItem: [{ type: i0.Input, args: [{ isSignal: true, alias: "selectedItem", required: false }] }], singleSelectMode: [{ type: i0.Input, args: [{ isSignal: true, alias: "singleSelectMode", required: false }] }], enableDataField1: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableDataField1", required: false }] }], enableDataField2: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableDataField2", required: false }] }], enableStateIndicator: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableStateIndicator", required: false }] }], enableIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableIcon", required: false }] }], enableContextMenuButton: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableContextMenuButton", required: false }] }], enableSelection: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableSelection", required: false }] }], deleteChildrenOnCollapse: [{ type: i0.Input, args: [{ isSignal: true, alias: "deleteChildrenOnCollapse", required: false }] }], flatTree: [{ type: i0.Input, args: [{ isSignal: true, alias: "flatTree", required: false }] }], groupedList: [{ type: i0.Input, args: [{ isSignal: true, alias: "groupedList", required: false }] }], enableCheckbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableCheckbox", required: false }] }], enableOptionbox: [{ type: i0.Input, args: [{ isSignal: true, alias: "enableOptionbox", required: false }] }], expandOnClick: [{ type: i0.Input, args: [{ isSignal: true, alias: "expandOnClick", required: false }] }], inheritChecked: [{ type: i0.Input, args: [{ isSignal: true, alias: "inheritChecked", required: false }] }], noActionsString: [{ type: i0.Input, args: [{ isSignal: true, alias: "noActionsString", required: false }] }], ariaLabel: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabel", required: false }] }], ariaLabelledBy: [{ type: i0.Input, args: [{ isSignal: true, alias: "ariaLabelledBy", required: false }] }], itemsVirtualizedChanged: [{ type: i0.Output, args: ["itemsVirtualizedChanged"] }], treeItemFolderClicked: [{ type: i0.Output, args: ["treeItemFolderClicked"] }], treeItemFolderStateChanged: [{ type: i0.Output, args: ["treeItemFolderStateChanged"] }], treeItemClicked: [{ type: i0.Output, args: ["treeItemClicked"] }], treeItemCheckboxClicked: [{ type: i0.Output, args: ["treeItemCheckboxClicked"] }], loadChildren: [{ type: i0.Output, args: ["loadChildren"] }], treeItemsSelected: [{ type: i0.Output, args: ["treeItemsSelected"] }], templates: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SiTreeViewItemTemplateDirective), { isSignal: true }] }], children: [{ type: i0.ViewChildren, args: [i0.forwardRef(() => SiTreeViewItemComponent), { isSignal: true }] }], treeItemContentTemplate: [{ type: i0.ContentChild, args: [i0.forwardRef(() => SiTreeViewItemDirective), { ...{
2836
2841
  read: TemplateRef
2837
2842
  }, isSignal: true }] }], nextItems: [{ type: i0.ContentChildren, args: [i0.forwardRef(() => SiTreeViewItemComponent), { ...{ descendants: true }, isSignal: true }] }], treeViewInnerElement: [{ type: i0.ViewChild, args: ['treeViewInner', { isSignal: true }] }] } });